Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add Application Autoscaling, Cloudfront, Cloudtrail, ECS, EFS and Kafka controllers #70

Merged
merged 1 commit into from
Aug 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 45 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,33 @@ module "eks_ack_addons" {
ecrpublic_token = "<ecr token>"

# Controllers to enable
enable_sagemaker = true
enable_memorydb = true
enable_opensearchservice = true
enable_ecr = true
enable_sns = true
enable_sqs = true
enable_lambda = true
enable_iam = true
enable_ec2 = true
enable_eks = true
enable_kms = true
enable_acm = true
enable_apigatewayv2 = true
enable_dynamodb = true
enable_s3 = true
enable_elasticache = true
enable_rds = true
enable_prometheusservice = true
enable_emrcontainers = true
enable_sfn = true
enable_eventbridge = true
enable_kafka = true
enable_efs = true
enable_ecs = true
enable_cloudtrail = true
enable_cloudfront = true
enable_applicationautoscaling = true
enable_sagemaker = true
enable_memorydb = true
enable_opensearchservice = true
enable_ecr = true
enable_sns = true
enable_sqs = true
enable_lambda = true
enable_iam = true
enable_ec2 = true
enable_eks = true
enable_kms = true
enable_acm = true
enable_apigatewayv2 = true
enable_dynamodb = true
enable_s3 = true
enable_elasticache = true
enable_rds = true
enable_prometheusservice = true
enable_emrcontainers = true
enable_sfn = true
enable_eventbridge = true

tags = {
Environment = "dev"
Expand Down Expand Up @@ -74,14 +80,20 @@ Examples codified under the [`examples`](https://github.com/aws-ia/terraform-aws
|------|--------|---------|
| <a name="module_acm"></a> [acm](#module\_acm) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_apigatewayv2"></a> [apigatewayv2](#module\_apigatewayv2) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_applicationautoscaling"></a> [applicationautoscaling](#module\_applicationautoscaling) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_cloudfront"></a> [cloudfront](#module\_cloudfront) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_cloudtrail"></a> [cloudtrail](#module\_cloudtrail) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_dynamodb"></a> [dynamodb](#module\_dynamodb) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_ec2"></a> [ec2](#module\_ec2) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_ecr"></a> [ecr](#module\_ecr) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_ecs"></a> [ecs](#module\_ecs) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_efs"></a> [efs](#module\_efs) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_eks"></a> [eks](#module\_eks) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_elasticache"></a> [elasticache](#module\_elasticache) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_emrcontainers"></a> [emrcontainers](#module\_emrcontainers) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_eventbridge"></a> [eventbridge](#module\_eventbridge) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_iam"></a> [iam](#module\_iam) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_kafka"></a> [kafka](#module\_kafka) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_kms"></a> [kms](#module\_kms) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_lambda"></a> [lambda](#module\_lambda) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
| <a name="module_memorydb"></a> [memorydb](#module\_memorydb) | aws-ia/eks-blueprints-addon/aws | 1.1.1 |
Expand Down Expand Up @@ -125,6 +137,9 @@ Examples codified under the [`examples`](https://github.com/aws-ia/terraform-aws
|------|-------------|------|---------|:--------:|
| <a name="input_acm"></a> [acm](#input\_acm) | ACK acm Helm Chart config | `any` | `{}` | no |
| <a name="input_apigatewayv2"></a> [apigatewayv2](#input\_apigatewayv2) | ACK API gateway v2 Helm Chart config | `any` | `{}` | no |
| <a name="input_applicationautoscaling"></a> [applicationautoscaling](#input\_applicationautoscaling) | ACK Application Autoscaling Helm Chart config | `any` | `{}` | no |
| <a name="input_cloudfront"></a> [cloudfront](#input\_cloudfront) | ACK cloudfront Helm Chart config | `any` | `{}` | no |
| <a name="input_cloudtrail"></a> [cloudtrail](#input\_cloudtrail) | ACK Cloudtrail Helm Chart config | `any` | `{}` | no |
| <a name="input_cluster_endpoint"></a> [cluster\_endpoint](#input\_cluster\_endpoint) | Endpoint for your Kubernetes API server | `string` | n/a | yes |
| <a name="input_cluster_name"></a> [cluster\_name](#input\_cluster\_name) | Name of the EKS cluster | `string` | n/a | yes |
| <a name="input_create_delay_dependencies"></a> [create\_delay\_dependencies](#input\_create\_delay\_dependencies) | Dependency attribute which must be resolved before starting the `create_delay_duration` | `list(string)` | `[]` | no |
Expand All @@ -135,19 +150,27 @@ Examples codified under the [`examples`](https://github.com/aws-ia/terraform-aws
| <a name="input_ecr"></a> [ecr](#input\_ecr) | ACK ECR Helm Chart config | `any` | `{}` | no |
| <a name="input_ecrpublic_token"></a> [ecrpublic\_token](#input\_ecrpublic\_token) | Password decoded from the authorization token for accessing public ECR | `string` | `""` | no |
| <a name="input_ecrpublic_username"></a> [ecrpublic\_username](#input\_ecrpublic\_username) | User name decoded from the authorization token for accessing public ECR | `string` | `""` | no |
| <a name="input_ecs"></a> [ecs](#input\_ecs) | ACK ECS Helm Chart config | `any` | `{}` | no |
| <a name="input_efs"></a> [efs](#input\_efs) | ACK EFS Helm Chart config | `any` | `{}` | no |
| <a name="input_eks"></a> [eks](#input\_eks) | ACK eks Helm Chart config | `any` | `{}` | no |
| <a name="input_elasticache"></a> [elasticache](#input\_elasticache) | ACK elasticache Helm Chart config | `any` | `{}` | no |
| <a name="input_emrcontainers"></a> [emrcontainers](#input\_emrcontainers) | ACK EMR container Helm Chart config | `any` | `{}` | no |
| <a name="input_enable_acm"></a> [enable\_acm](#input\_enable\_acm) | Enable ACK acm add-on | `bool` | `false` | no |
| <a name="input_enable_apigatewayv2"></a> [enable\_apigatewayv2](#input\_enable\_apigatewayv2) | Enable ACK API gateway v2 add-on | `bool` | `false` | no |
| <a name="input_enable_applicationautoscaling"></a> [enable\_applicationautoscaling](#input\_enable\_applicationautoscaling) | Enable ACK Application Autoscaling add-on | `bool` | `false` | no |
| <a name="input_enable_cloudfront"></a> [enable\_cloudfront](#input\_enable\_cloudfront) | Enable ACK Cloudfront add-on | `bool` | `false` | no |
| <a name="input_enable_cloudtrail"></a> [enable\_cloudtrail](#input\_enable\_cloudtrail) | Enable ACK Cloudtrail add-on | `bool` | `false` | no |
| <a name="input_enable_dynamodb"></a> [enable\_dynamodb](#input\_enable\_dynamodb) | Enable ACK dynamodb add-on | `bool` | `false` | no |
| <a name="input_enable_ec2"></a> [enable\_ec2](#input\_enable\_ec2) | Enable ACK ec2 add-on | `bool` | `false` | no |
| <a name="input_enable_ecr"></a> [enable\_ecr](#input\_enable\_ecr) | Enable ACK ECR add-on | `bool` | `false` | no |
| <a name="input_enable_ecs"></a> [enable\_ecs](#input\_enable\_ecs) | Enable ACK ECS add-on | `bool` | `false` | no |
| <a name="input_enable_efs"></a> [enable\_efs](#input\_enable\_efs) | Enable ACK EFS add-on | `bool` | `false` | no |
| <a name="input_enable_eks"></a> [enable\_eks](#input\_enable\_eks) | Enable ACK eks add-on | `bool` | `false` | no |
| <a name="input_enable_elasticache"></a> [enable\_elasticache](#input\_enable\_elasticache) | Enable ACK elasticache add-on | `bool` | `false` | no |
| <a name="input_enable_emrcontainers"></a> [enable\_emrcontainers](#input\_enable\_emrcontainers) | Enable ACK EMR container add-on | `bool` | `false` | no |
| <a name="input_enable_eventbridge"></a> [enable\_eventbridge](#input\_enable\_eventbridge) | Enable ACK EventBridge add-on | `bool` | `false` | no |
| <a name="input_enable_iam"></a> [enable\_iam](#input\_enable\_iam) | Enable ACK iam add-on | `bool` | `false` | no |
| <a name="input_enable_kafka"></a> [enable\_kafka](#input\_enable\_kafka) | Enable ACK Kafka add-on | `bool` | `false` | no |
| <a name="input_enable_kms"></a> [enable\_kms](#input\_enable\_kms) | Enable ACK kms add-on | `bool` | `false` | no |
| <a name="input_enable_lambda"></a> [enable\_lambda](#input\_enable\_lambda) | Enable ACK Lambda add-on | `bool` | `false` | no |
| <a name="input_enable_memorydb"></a> [enable\_memorydb](#input\_enable\_memorydb) | Enable ACK MemoryDB add-on | `bool` | `false` | no |
Expand All @@ -161,6 +184,7 @@ Examples codified under the [`examples`](https://github.com/aws-ia/terraform-aws
| <a name="input_enable_sqs"></a> [enable\_sqs](#input\_enable\_sqs) | Enable ACK SQS add-on | `bool` | `false` | no |
| <a name="input_eventbridge"></a> [eventbridge](#input\_eventbridge) | ACK EventBridge Helm Chart config | `any` | `{}` | no |
| <a name="input_iam"></a> [iam](#input\_iam) | ACK iam Helm Chart config | `any` | `{}` | no |
| <a name="input_kafka"></a> [kafka](#input\_kafka) | ACK Kafka Helm Chart config | `any` | `{}` | no |
| <a name="input_kms"></a> [kms](#input\_kms) | ACK kms Helm Chart config | `any` | `{}` | no |
| <a name="input_lambda"></a> [lambda](#input\_lambda) | ACK Lambda Helm Chart config | `any` | `{}` | no |
| <a name="input_memorydb"></a> [memorydb](#input\_memorydb) | ACK MemoryDB Helm Chart config | `any` | `{}` | no |
Expand Down
83 changes: 47 additions & 36 deletions examples/complete/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
# Complete Example

Configuration in this directory creates an AWS EKS cluster with the following ACK addons:

- Amazon Kafka
- Amazon EFS
- Amazon ECS
- Amazon CloudTrail
- Amazon CloudFront
- Amazon Application Auto Scaling
- Amazon ACM Controller
- Amazon ApiGatewayV2 Controller
- Amazon DynamoDB Controller
Expand Down Expand Up @@ -63,41 +68,47 @@ aws eks --region <REGION> update-kubeconfig --name <CLUSTER_NAME>
kubectl get pods -A

NAMESPACE NAME READY STATUS RESTARTS AGE
ack-system ack-acm-5ffccbd5d5-6ns6v 1/1 Running 0 60s
ack-system ack-apigatewayv2-cf6cd9d67-gfw5k 1/1 Running 0 60s
ack-system ack-dynamodb-bd47f88b7-4smb5 1/1 Running 0 60s
ack-system ack-ec2-54dfcf968-2vvcf 1/1 Running 0 60s
ack-system ack-ecr-5b4699f87b-n5bfp 1/1 Running 0 60s
ack-system ack-eks-9cb44fc-vgsvf 1/1 Running 0 59s
ack-system ack-elasticache-5758ff66bd-fn7cv 1/1 Running 0 59s
ack-system ack-emrcontainers-69ffb54758-s4d25 1/1 Running 0 59s
ack-system ack-eventbridge-58c7d4c8f5-hzc7m 1/1 Running 0 59s
ack-system ack-iam-7486c996c8-qmmd6 1/1 Running 0 58s
ack-system ack-kms-bb956b4fc-vtn7x 1/1 Running 0 58s
ack-system ack-lambda-65bd7fbc8d-lql8x 1/1 Running 0 58s
ack-system ack-memorydb-76c988f6dd-zxprv 1/1 Running 0 58s
ack-system ack-opensearchservice-7fd9d8c866-xzqfh 1/1 Running 0 57s
ack-system ack-prometheusservice-5bccddc6f-clnz9 1/1 Running 0 57s
ack-system ack-rds-57499b447d-qqf7w 1/1 Running 0 57s
ack-system ack-s3-78b44bf586-4f25v 1/1 Running 0 57s
ack-system ack-sagemaker-74f65d4cb9-9r74h 1/1 Running 0 57s
ack-system ack-sfn-7494cbccf-mwq7z 1/1 Running 0 56s
ack-system ack-sns-56bb579874-hk78c 1/1 Running 0 56s
ack-system ack-sqs-5f7bc84d45-jtd5b 1/1 Running 0 56s
kube-system aws-load-balancer-controller-84b5bf9c5f-4dm9s 1/1 Running 0 34m
kube-system aws-load-balancer-controller-84b5bf9c5f-62km5 1/1 Running 0 34m
kube-system aws-node-2pfp8 2/2 Running 0 32m
kube-system aws-node-c6mdg 2/2 Running 0 32m
kube-system aws-node-d8m55 2/2 Running 0 32m
kube-system coredns-787cb67946-8psqv 1/1 Running 0 38m
kube-system coredns-787cb67946-nvtnt 1/1 Running 0 38m
kube-system eks-pod-identity-agent-2lw9f 1/1 Running 0 33m
kube-system eks-pod-identity-agent-dhdxs 1/1 Running 0 33m
kube-system eks-pod-identity-agent-zt7gz 1/1 Running 0 33m
kube-system kube-proxy-2xjzt 1/1 Running 0 33m
kube-system kube-proxy-h27hw 1/1 Running 0 34m
kube-system kube-proxy-kd57b 1/1 Running 0 33m
kube-system metrics-server-7577444cf8-7f95q 1/1 Running 0 35m
ack-system ack-acm-5697f4c5b4-bpkrg 1/1 Running 0 10m
ack-system ack-apigatewayv2-76d6bbd788-82m2h 1/1 Running 0 9m37s
ack-system ack-applicationautoscaling-5fd6c8bf8f-kl4gt 1/1 Running 0 8m58s
ack-system ack-cloudfront-544f4887c4-dr6ds 1/1 Running 0 8m12s
ack-system ack-cloudtrail-5dc78b7576-hnk4d 1/1 Running 0 10m
ack-system ack-dynamodb-7f4b47488d-tftpf 1/1 Running 0 8m37s
ack-system ack-ec2-5fbf6f55d9-smb4k 1/1 Running 0 9m37s
ack-system ack-ecr-5b4699f87b-j6kxq 1/1 Running 0 9m7s
ack-system ack-ecs-74d8d67695-dbpth 1/1 Running 0 10m
ack-system ack-efs-7b9f965b96-rpwts 1/1 Running 0 9m54s
ack-system ack-eks-54945d94d4-6stzs 1/1 Running 0 8m34s
ack-system ack-elasticache-5758ff66bd-dwfkh 1/1 Running 0 10m
ack-system ack-emrcontainers-74c5d7b8c-bljlk 1/1 Running 0 10m
ack-system ack-eventbridge-b76bd85b8-rxgsf 1/1 Running 0 9m46s
ack-system ack-iam-89dd5d6b5-2hzch 1/1 Running 0 8m24s
ack-system ack-kafka-7bd95bd59-pz258 1/1 Running 0 9m40s
ack-system ack-kms-58b89848db-p4w6c 1/1 Running 0 8m21s
ack-system ack-lambda-65bd7fbc8d-529d7 1/1 Running 0 10m
ack-system ack-memorydb-76c988f6dd-phbsc 1/1 Running 0 8m7s
ack-system ack-opensearchservice-7fd9d8c866-fg6h6 1/1 Running 0 8m33s
ack-system ack-prometheusservice-6d657cd878-kcdsh 1/1 Running 0 9m58s
ack-system ack-rds-7df84bf989-87j4s 1/1 Running 0 9m31s
ack-system ack-s3-6ffc4698c6-kg8vw 1/1 Running 0 8m28s
ack-system ack-sagemaker-74f65d4cb9-dzxng 1/1 Running 0 8m24s
ack-system ack-sfn-6b875794cb-k7dnb 1/1 Running 0 10m
ack-system ack-sns-5c75794dbc-6n42j 1/1 Running 0 10m
ack-system ack-sqs-55dfc46cd6-n6qb8 1/1 Running 0 10m
kube-system aws-load-balancer-controller-84b5bf9c5f-k88tj 1/1 Running 0 10m
kube-system aws-load-balancer-controller-84b5bf9c5f-xqczl 1/1 Running 0 10m
kube-system aws-node-6kswr 2/2 Running 0 8m22s
kube-system aws-node-8fkb7 2/2 Running 0 8m26s
kube-system aws-node-c482x 2/2 Running 0 8m18s
kube-system coredns-787cb67946-lsxph 1/1 Running 0 14m
kube-system coredns-787cb67946-zbq6s 1/1 Running 0 14m
kube-system eks-pod-identity-agent-6b2bc 1/1 Running 0 8m39s
kube-system eks-pod-identity-agent-b8gh8 1/1 Running 0 8m39s
kube-system eks-pod-identity-agent-cq5kr 1/1 Running 0 8m39s
kube-system kube-proxy-6jn9z 1/1 Running 0 10m
kube-system kube-proxy-6mfvr 1/1 Running 0 10m
kube-system kube-proxy-k4c6w 1/1 Running 0 10m
kube-system metrics-server-7577444cf8-f4vgk 1/1 Running 0 11m
```

## Sample Application Deployment
Expand Down
48 changes: 27 additions & 21 deletions examples/complete/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -131,27 +131,33 @@ module "eks_ack_addons" {
ecrpublic_token = data.aws_ecrpublic_authorization_token.token.password

# Controllers to enable
enable_sagemaker = true
enable_memorydb = true
enable_opensearchservice = true
enable_ecr = true
enable_sns = true
enable_sqs = true
enable_lambda = true
enable_iam = true
enable_ec2 = true
enable_eks = true
enable_kms = true
enable_acm = true
enable_apigatewayv2 = true
enable_dynamodb = true
enable_s3 = true
enable_elasticache = true
enable_rds = true
enable_prometheusservice = true
enable_emrcontainers = true
enable_sfn = true
enable_eventbridge = true
enable_kafka = true
enable_efs = true
enable_ecs = true
enable_cloudtrail = true
enable_cloudfront = true
enable_applicationautoscaling = true
enable_sagemaker = true
enable_memorydb = true
enable_opensearchservice = true
enable_ecr = true
enable_sns = true
enable_sqs = true
enable_lambda = true
enable_iam = true
enable_ec2 = true
enable_eks = true
enable_kms = true
enable_acm = true
enable_apigatewayv2 = true
enable_dynamodb = true
enable_s3 = true
enable_elasticache = true
enable_rds = true
enable_prometheusservice = true
enable_emrcontainers = true
enable_sfn = true
enable_eventbridge = true

tags = local.tags
}
Expand Down
Loading