Skip to content

clowdhaus/terraform-aws-eks-report

Repository files navigation

AWS EKS Report Terraform module

Terraform module which reports on Amazon EKS clusters.

Usage

See examples directory for working examples to reference:

⚠️ Note - the email addressed used must be verified in SES. See SES documentation for information on verifying email addresses.

module "eks_report" {
  source = "clowdhaus/eks-report/aws"

  event_schedule_expression = "cron(0 10 * * ? *)"

  to_email_addresses = ["youremail@youraddress.com"]
  from_email_address = "youremail@youraddress.com"

  notify_eos_within_days = 180

  tags = {
    Terraform   = "true"
    Environment = "dev"
  }
}

Example Email Report

Sample email report

Examples

Examples codified under the examples are intended to give users references for how to use the module(s) as well as testing/validating changes to the source code of the module. If contributing to the project, please be sure to make any appropriate updates to the relevant examples to allow maintainers to test your changes and to keep the examples up to date for users. Thank you!

Requirements

Name Version
terraform >= 1.0
aws >= 4.0

Providers

Name Version
aws >= 4.0

Modules

Name Source Version
describe_lambda terraform-aws-modules/lambda/aws ~> 4.12
eventbridge terraform-aws-modules/eventbridge/aws ~> 1.17
list_lambda terraform-aws-modules/lambda/aws ~> 4.12
notify_lambda terraform-aws-modules/lambda/aws ~> 4.12
step_function terraform-aws-modules/step-functions/aws ~> 2.7

Resources

Name Type
aws_ses_template.this resource
aws_caller_identity.current data source
aws_iam_policy_document.describe data source
aws_iam_policy_document.list data source
aws_partition.current data source
aws_region.current data source

Inputs

Name Description Type Default Required
create Controls if resources should be created (affects nearly all resources) bool true no
create_ses_template Controls if the SES Template should be created bool true no
describe_lambda_description The description of the Lambda function to describe EKS clusters string null no
describe_lambda_environment_variables A map that defines environment variables for the Lambda function to describe EKS clusters map(string) {} no
describe_lambda_name The name of the Lambda function to describe EKS clusters string null no
event_schedule_expression The schedule expression for the Event Bridge Rule string "cron(0 10 * * ? *)" no
eventbridge_iam_role_name The name of the IAM role to use for the Event Bridge Rule string null no
eventbridge_rule_name The name of the Event Bridge Rule string null no
from_email_address The email address to send the report from. Required if supplying values for to_email_addresses string null no
lambda_assume_role_arns The ARNs of IAM roles that the Lambda function will assume to access clusters in different accounts list(string) [] no
lambda_layers List of Lambda Layer Version ARNs (maximum of 5) to attach to your Lambda Function list(string) [] no
lambda_memory Amount of memory in MB your Lambda Function can use at runtime. Valid value between 128 MB to 10,240 MB (10 GB), in 64 MB increments number 1024 no
lambda_runtime The runtime environment for the Lambda functions string "python3.9" no
lambda_timeout The amount of time the Lambda Function has to run in seconds number 300 no
list_lambda_description The description of the Lambda function to list EKS clusters string null no
list_lambda_environment_variables A map that defines environment variables for the Lambda function to list EKS clusters map(string) {} no
list_lambda_name The name of the Lambda function to list EKS clusters string null no
log_group_retention_in_days The number of days you want to retain log events in the log groups created number 30 no
name Common name used across resources created string "eks-report" no
notify_eos_within_days The number of days before the end of support to send the notification number 120 no
notify_lambda_description The description of the Lambda function that sends the notification string null no
notify_lambda_environment_variables A map that defines environment variables for the Lambda function that sends the notification map(string) {} no
notify_lambda_name The name of the Lambda function that sends the notification string null no
ses_template_arn The ARN of an existing SES Template string null no
ses_template_name The name of the SES Template string "EKS-Report" no
ses_template_subject The subject of the SES Template string "Amazon EKS Report" no
tags A map of tags to add to all resources map(string) {} no
to_email_addresses The email address to send the report to list(string) [] no

Outputs

Name Description
describe_lambda_function_arn The ARN of the Lambda Function
describe_lambda_role_arn The ARN of the IAM role created for the Lambda Function
list_lambda_function_arn The ARN of the Lambda Function
list_lambda_role_arn The ARN of the IAM role created for the Lambda Function
notify_lambda_function_arn The ARN of the Lambda Function
notify_lambda_role_arn The ARN of the IAM role created for the Lambda Function
ses_template_arn The ARN of the SES Template
ses_template_id The name of the SES template
step_function_arn The ARN of the Step Function
step_function_role_arn The ARN of the IAM role created for the Step Function

License

Apache-2.0 Licensed. See LICENSE.

About

Terraform module which reports on Amazon EKS clusters

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published