You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-4Lines changed: 7 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Terraform Module to setup Kong(OSS) in ECS with self managed EC2 instances.
9
9
10
10
# Assumptions
11
11
12
-
This setup assumes that the `ECS cluster` that has `Auto Scaling Group (ASG)` exist with the name `default`. If you are using different name, you can provide those in the variables section of your Terraform configuration.This module also have a provision that your hosted zone can be in same amazon account where your resources are going to create or in a different amazon account. So, if you are having hosted zone in a different account you need to pass IAM role ARN for cross-account Route53 access.
12
+
This setup assumes that the `ECS cluster` that has `Auto Scaling Group (ASG)` exist with the name `default`. If you are using different name, you can provide those in the variables section of your Terraform configuration.
13
13
14
14
## Adding Parameters to AWS Systems Manager Parameter Store
| <aname="input_public_subnet_ids"></a> [public\_subnet\_ids](#input\_public\_subnet\_ids)| List of public subnet IDs for public-facing load balancers |`list(string)`| n/a | yes |
93
95
| <aname="input_rds_db_tags"></a> [rds\_db\_tags](#input\_rds\_db\_tags)| List of tags |`map(string)`|`{}`| no |
94
96
| <aname="input_rds_instance_class"></a> [rds\_instance\_class](#input\_rds\_instance\_class)| The RDS instance class for Kong database (e.g., db.t3.micro, db.r5.large) |`string`|`"db.t3.micro"`| no |
97
+
| <aname="input_route53_assume_role_arn"></a> [route53\_assume\_role\_arn](#input\_route53\_assume\_role\_arn)| ARN of the IAM role to assume in the hosted-zone account (should be null for same-account). |`string`|`null`| no |
95
98
| <aname="input_ssl_policy"></a> [ssl\_policy](#input\_ssl\_policy)| Name of the SSL Policy for the listener. |`string`|`"ELBSecurityPolicy-2016-08"`| no |
96
99
| <aname="input_vpc_id"></a> [vpc\_id](#input\_vpc\_id)| The ID of the VPC where Kong infrastructure will be deployed |`string`| n/a | yes |
Copy file name to clipboardExpand all lines: examples/complete/README.md
+7-24Lines changed: 7 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,28 +1,4 @@
1
1
<!-- BEGIN_TF_DOCS -->
2
-
# Complete Example
3
-
4
-
This example demonstrates a **production-ready Kong deployment** with all configurable options, including RDS settings, ECS task configuration, monitoring, and cross-account Route53 support.
5
-
6
-
## Use Case
7
-
8
-
Use this example when you need:
9
-
- Full control over RDS database configuration (instance class, storage, backup retention, multi-AZ, etc.)
10
-
- Custom ECS task settings (CPU, memory, logging)
11
-
- Performance insights and monitoring
12
-
- Production-grade setup with deletion protection and backups
13
-
- Flexible Route53 DNS configuration (same-account or cross-account)
14
-
15
-
## Key Features
16
-
17
-
- Comprehensive RDS PostgreSQL configuration with performance insights
18
-
- Multi-AZ deployment support for high availability
19
-
- Customizable ECS task resources and logging
20
-
- SSL/TLS configuration with custom SSL policies
21
-
- Cross-account Route53 support via assume role
22
-
- Production backup and maintenance windows
23
-
24
-
## Usage
25
-
26
2
### Example Variable Values
27
3
28
4
Here is an example of how to define the variable values in your `terraform.tfvars` file:
Place this `terraform.tfvars` file in the same directory as your Terraform configuration to automatically load these values. Adjust the values as needed to fit your specific environment and requirements.
@@ -74,6 +54,7 @@ Place this `terraform.tfvars` file in the same directory as your Terraform confi
| <aname="input_public_subnet_ids"></a> [public\_subnet\_ids](#input\_public\_subnet\_ids)| List of public subnet IDs |`list(string)`| n/a | yes |
119
100
| <aname="input_rds_db_tags"></a> [rds\_db\_tags](#input\_rds\_db\_tags)| List of tags |`map(string)`| n/a | yes |
120
101
| <aname="input_rds_instance_class"></a> [rds\_instance\_class](#input\_rds\_instance\_class)| The instance class to use |`string`| n/a | yes |
102
+
| <aname="input_region"></a> [region](#input\_region)| The AWS region |`string`| n/a | yes |
103
+
| <aname="input_route53_assume_role_arn"></a> [route53\_assume\_role\_arn](#input\_route53\_assume\_role\_arn)| IAM role ARN for cross-account Route53 access. |`string`| n/a | yes |
121
104
| <aname="input_ssl_policy"></a> [ssl\_policy](#input\_ssl\_policy)| (Optional) Name of the SSL Policy for the listener. |`string`| n/a | yes |
122
105
| <aname="input_vpc_id"></a> [vpc\_id](#input\_vpc\_id)| The ID of the VPC |`string`| n/a | yes |
Place this `terraform.tfvars` file in the same directory as your Terraform configuration to automatically load these values. Adjust the values as needed to fit your specific environment and requirements.
@@ -83,6 +20,7 @@ Place this `terraform.tfvars` file in the same directory as your Terraform confi
| <aname="input_cluster_name"></a> [cluster\_name](#input\_cluster\_name)| Name of the cluster |`string`| n/a | yes |
105
44
| <aname="input_kong_admin_domain_name"></a> [kong\_admin\_domain\_name](#input\_kong\_admin\_domain\_name)| The admin domain name for Kong |`string`| n/a | yes |
106
45
| <aname="input_kong_public_domain_name"></a> [kong\_public\_domain\_name](#input\_kong\_public\_domain\_name)| The public domain name for Kong |`string`| n/a | yes |
46
+
| <aname="input_postgres_engine_version"></a> [postgres\_engine\_version](#input\_postgres\_engine\_version)| The version of the Postgres engine |`number`| n/a | yes |
47
+
| <aname="input_postgres_major_engine_version"></a> [postgres\_major\_engine\_version](#input\_postgres\_major\_engine\_version)| The major version of the Postgres engine |`number`| n/a | yes |
107
48
| <aname="input_private_subnet_ids"></a> [private\_subnet\_ids](#input\_private\_subnet\_ids)| List of private subnet IDs |`list(string)`| n/a | yes |
108
49
| <aname="input_public_subnet_ids"></a> [public\_subnet\_ids](#input\_public\_subnet\_ids)| List of public subnet IDs |`list(string)`| n/a | yes |
50
+
| <aname="input_region"></a> [region](#input\_region)| The AWS region |`string`| n/a | yes |
51
+
| <aname="input_route53_assume_role_arn"></a> [route53\_assume\_role\_arn](#input\_route53\_assume\_role\_arn)| The ARN of the DNS role |`string`|`null`| no |
109
52
| <aname="input_vpc_id"></a> [vpc\_id](#input\_vpc\_id)| The ID of the VPC |`string`| n/a | yes |
# Same-account setup - no cross-account role needed
47
-
route53_assume_role_arn = null
48
-
49
-
region = "ap-south-1"
50
-
cluster_name = "default"
12
+
region = "us-east-1"
51
13
```
52
14
53
15
Place this `terraform.tfvars` file in the same directory as your Terraform configuration to automatically load these values. Adjust the values as needed to fit your specific environment and requirements.
@@ -57,6 +19,7 @@ Place this `terraform.tfvars` file in the same directory as your Terraform confi
| <aname="input_cluster_name"></a> [cluster\_name](#input\_cluster\_name)| Name of the cluster |`string`| n/a | yes |
79
43
| <aname="input_kong_admin_domain_name"></a> [kong\_admin\_domain\_name](#input\_kong\_admin\_domain\_name)| The admin domain name for Kong |`string`| n/a | yes |
80
44
| <aname="input_kong_public_domain_name"></a> [kong\_public\_domain\_name](#input\_kong\_public\_domain\_name)| The public domain name for Kong |`string`| n/a | yes |
45
+
| <aname="input_postgres_engine_version"></a> [postgres\_engine\_version](#input\_postgres\_engine\_version)| The version of the Postgres engine |`number`| n/a | yes |
46
+
| <aname="input_postgres_major_engine_version"></a> [postgres\_major\_engine\_version](#input\_postgres\_major\_engine\_version)| The major version of the Postgres engine |`number`| n/a | yes |
81
47
| <aname="input_private_subnet_ids"></a> [private\_subnet\_ids](#input\_private\_subnet\_ids)| List of private subnet IDs |`list(string)`| n/a | yes |
82
48
| <aname="input_public_subnet_ids"></a> [public\_subnet\_ids](#input\_public\_subnet\_ids)| List of public subnet IDs |`list(string)`| n/a | yes |
49
+
| <aname="input_region"></a> [region](#input\_region)| The AWS region |`string`| n/a | yes |
50
+
| <aname="input_route53_assume_role_arn"></a> [route53\_assume\_role\_arn](#input\_route53\_assume\_role\_arn)| The ARN of the DNS role |`string`|`null`| no |
83
51
| <aname="input_vpc_id"></a> [vpc\_id](#input\_vpc\_id)| The ID of the VPC |`string`| n/a | yes |
0 commit comments