Skip to content

Commit

Permalink
feat: Add Application Autoscaling, Cloudfront, Cloudtrail, ECS, EFS, …
Browse files Browse the repository at this point in the history
…and Kafka controllers
  • Loading branch information
edgarsilva948 committed Aug 10, 2024
1 parent 173df26 commit 8c73cda
Show file tree
Hide file tree
Showing 6 changed files with 863 additions and 78 deletions.
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

0 comments on commit 8c73cda

Please sign in to comment.