Skip to content

Commit cf2d945

Browse files
Merge pull request #21 from squareops/feature-version-upgrade
Feature version upgrade
2 parents bc7ec13 + e5ce56c commit cf2d945

31 files changed

Lines changed: 366 additions & 156 deletions

File tree

README.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ module "eks_addons" {
2323
karpenter_enabled = true
2424
private_subnet_ids = [""]
2525
single_az_sc_config = [{ name = "infra-service-sc", zone = "zone-name" }]
26+
coredns_hpa_enabled = true
2627
kubeclarity_enabled = true
2728
kubeclarity_hostname = "kubeclarity.prod.in"
2829
kubecost_enabled = true
@@ -39,8 +40,8 @@ module "eks_addons" {
3940
cluster_autoscaler_enabled = true
4041
service_monitor_crd_enabled = true
4142
enable_aws_load_balancer_controller = true
42-
falco_enabled = true
43-
slack_webhook = ""
43+
falco_enabled = true
44+
slack_webhook = ""
4445
istio_enabled = true
4546
istio_config = {
4647
ingress_gateway_enabled = true
@@ -81,17 +82,18 @@ module "eks_addons" {
8182

8283
## Compatibility
8384

84-
| Release | Kubernetes 1.23 | Kubernetes 1.24 | Kubernetes 1.25 | Kubernetes 1.26 | Kubernetes 1.27 |
85-
|------------------|------------------|------------------|----------------------|----------------------|----------------------|
85+
| Release | Kubernetes 1.23 | Kubernetes 1.24 | Kubernetes 1.25 | Kubernetes 1.26 | Kubernetes 1.27 | Kubernetes 1.28 |
86+
|------------------|------------------|------------------|----------------------|----------------------|----------------------|----------------------|
8687
| Release 1.0.0 | ✔ | ✔ | ✔ | ✔ |
8788
| Release 1.1.0 | ✔ | ✔ | ✔ | ✔ |
8889
| Release 1.1.1 | ✔ | ✔ | ✔ | ✔ | ✔ |
8990
| Release 1.1.2 | ✔ | ✔ | ✔ | ✔ | ✔ |
9091
| Release 1.1.3 | ✔ | ✔ | ✔ | ✔ | ✔ |
9192
| Release 1.1.4 | ✔ | ✔ | ✔ | ✔ | ✔ |
9293
| Release 1.1.5 | ✔ | ✔ | ✔ | ✔ | ✔ |
93-
| Release 1.1.6 | ✔ | ✔ | ✔ | ✔ | ✔ |
94-
| Release 1.1.7 | ✔ | ✔ | ✔ | ✔ | ✔ |
94+
| Release 1.1.6 | ✔ | ✔ | ✔ | ✔ | ✔ |
95+
| Release 1.1.7 | ✔ | ✔ | ✔ | ✔ | ✔ |
96+
| Release 1.1.8 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
9597

9698

9799
## IAM Permissions
@@ -300,15 +302,16 @@ Before enabling the **Kubecost** addon for your Amazon EKS cluster, please make
300302
| <a name="input_cluster_issuer"></a> [cluster\_issuer](#input\_cluster\_issuer) | Specify the letsecrypt cluster-issuer for ingress tls. | `string` | `"letsencrypt-prod"` | no |
301303
| <a name="input_cluster_propotional_autoscaler_enabled"></a> [cluster\_propotional\_autoscaler\_enabled](#input\_cluster\_propotional\_autoscaler\_enabled) | Enable or disable Cluster propotional autoscaler add-on | `bool` | `false` | no |
302304
| <a name="input_core_dns_hpa_config"></a> [core\_dns\_hpa\_config](#input\_core\_dns\_hpa\_config) | Configuration to provide settings of hpa over core dns | `any` | <pre>{<br> "corednsdeploymentname": "coredns",<br> "maxReplicas": 10,<br> "minReplicas": 2,<br> "targetCPUUtilizationPercentage": 80,<br> "targetMemoryUtilizationPercentage": "150Mi"<br>}</pre> | no |
305+
| <a name="input_coredns_hpa_enabled"></a> [coredns\_hpa\_enabled](#input\_coredns\_hpa\_enabled) | Determines whether Horizontal Pod Autoscaling (HPA) for CoreDNS is enabled. | `bool` | `false` | no |
303306
| <a name="input_defectdojo_enabled"></a> [defectdojo\_enabled](#input\_defectdojo\_enabled) | Enable istio for service mesh. | `bool` | `false` | no |
304307
| <a name="input_defectdojo_hostname"></a> [defectdojo\_hostname](#input\_defectdojo\_hostname) | Specify the hostname for the kubecsot. | `string` | `""` | no |
305308
| <a name="input_efs_storage_class_enabled"></a> [efs\_storage\_class\_enabled](#input\_efs\_storage\_class\_enabled) | Enable or disable the Amazon Elastic File System (EFS) add-on for EKS cluster. | `bool` | `false` | no |
306309
| <a name="input_eks_cluster_name"></a> [eks\_cluster\_name](#input\_eks\_cluster\_name) | Fetch Cluster ID of the cluster | `string` | `""` | no |
307310
| <a name="input_environment"></a> [environment](#input\_environment) | Environment identifier for the Amazon Elastic Kubernetes Service (EKS) cluster. | `string` | `""` | no |
308311
| <a name="input_external_secrets_enabled"></a> [external\_secrets\_enabled](#input\_external\_secrets\_enabled) | Enable or disable External Secrets operator add-on for managing external secrets. | `bool` | `false` | no |
309-
| <a name="input_falco_enabled"></a> [falco\_enabled](#input\_falco\_enabled) | n/a | `bool` | `false` | no |
312+
| <a name="input_falco_enabled"></a> [falco\_enabled](#input\_falco\_enabled) | Determines whether Falco is enabled. | `bool` | `false` | no |
310313
| <a name="input_ingress_nginx_enabled"></a> [ingress\_nginx\_enabled](#input\_ingress\_nginx\_enabled) | Enable or disable Nginx Ingress Controller add-on for routing external traffic to Kubernetes services. | `bool` | `false` | no |
311-
| <a name="input_ingress_nginx_version"></a> [ingress\_nginx\_version](#input\_ingress\_nginx\_version) | Specify the version of the NGINX Ingress Controller | `string` | `"4.7.0"` | no |
314+
| <a name="input_ingress_nginx_version"></a> [ingress\_nginx\_version](#input\_ingress\_nginx\_version) | Specify the version of the NGINX Ingress Controller | `string` | `"4.9.1"` | no |
312315
| <a name="input_internal_ingress_nginx_enabled"></a> [internal\_ingress\_nginx\_enabled](#input\_internal\_ingress\_nginx\_enabled) | Enable or disable the deployment of an internal ingress controller for Kubernetes. | `bool` | `false` | no |
313316
| <a name="input_ipv6_enabled"></a> [ipv6\_enabled](#input\_ipv6\_enabled) | whether IPv6 enabled or not | `bool` | `false` | no |
314317
| <a name="input_istio_config"></a> [istio\_config](#input\_istio\_config) | Configuration to provide settings for Istio | <pre>object({<br> ingress_gateway_enabled = bool<br> ingress_gateway_namespace = optional(string, "istio-ingressgateway")<br> egress_gateway_enabled = bool<br> egress_gateway_namespace = optional(string, "istio-egressgateway")<br> envoy_access_logs_enabled = bool<br> prometheus_monitoring_enabled = bool<br> istio_values_yaml = any<br> })</pre> | <pre>{<br> "egress_gateway_enabled": false,<br> "envoy_access_logs_enabled": true,<br> "ingress_gateway_enabled": true,<br> "istio_values_yaml": "",<br> "prometheus_monitoring_enabled": true<br>}</pre> | no |
@@ -325,7 +328,7 @@ Before enabling the **Kubecost** addon for your Amazon EKS cluster, please make
325328
| <a name="input_kubecost_enabled"></a> [kubecost\_enabled](#input\_kubecost\_enabled) | Enable or disable the deployment of an Kubecost for Kubernetes. | `bool` | `false` | no |
326329
| <a name="input_kubecost_hostname"></a> [kubecost\_hostname](#input\_kubecost\_hostname) | Specify the hostname for the kubecsot. | `string` | `""` | no |
327330
| <a name="input_metrics_server_enabled"></a> [metrics\_server\_enabled](#input\_metrics\_server\_enabled) | Enable or disable the metrics server add-on for EKS cluster. | `bool` | `false` | no |
328-
| <a name="input_metrics_server_helm_version"></a> [metrics\_server\_helm\_version](#input\_metrics\_server\_helm\_version) | Version of the metrics server helm chart | `string` | `"3.8.2"` | no |
331+
| <a name="input_metrics_server_helm_version"></a> [metrics\_server\_helm\_version](#input\_metrics\_server\_helm\_version) | Version of the metrics server helm chart | `string` | `"3.11.0"` | no |
329332
| <a name="input_metrics_server_vpa_config"></a> [metrics\_server\_vpa\_config](#input\_metrics\_server\_vpa\_config) | Configuration to provide settings of vpa over metrics server | `any` | <pre>{<br> "maxCPU": "100m",<br> "maxMemory": "500Mi",<br> "metricsServerDeploymentName": "metrics-server",<br> "minCPU": "25m",<br> "minMemory": "150Mi"<br>}</pre> | no |
330333
| <a name="input_name"></a> [name](#input\_name) | Specify the name prefix of the EKS cluster resources. | `string` | `""` | no |
331334
| <a name="input_node_termination_handler_version"></a> [node\_termination\_handler\_version](#input\_node\_termination\_handler\_version) | Specify the version of node termination handler | `string` | `"0.21.0"` | no |
@@ -334,7 +337,7 @@ Before enabling the **Kubecost** addon for your Amazon EKS cluster, please make
334337
| <a name="input_service_monitor_crd_enabled"></a> [service\_monitor\_crd\_enabled](#input\_service\_monitor\_crd\_enabled) | Enable or disable the installation of Custom Resource Definitions (CRDs) for Prometheus Service Monitor. | `bool` | `false` | no |
335338
| <a name="input_single_az_ebs_gp3_storage_class_enabled"></a> [single\_az\_ebs\_gp3\_storage\_class\_enabled](#input\_single\_az\_ebs\_gp3\_storage\_class\_enabled) | Whether to enable the Single AZ storage class or not. | `bool` | `false` | no |
336339
| <a name="input_single_az_sc_config"></a> [single\_az\_sc\_config](#input\_single\_az\_sc\_config) | Name and regions for storage class in Key-Value pair. | `list(any)` | `[]` | no |
337-
| <a name="input_slack_webhook"></a> [slack\_webhook](#input\_slack\_webhook) | n/a | `string` | `""` | no |
340+
| <a name="input_slack_webhook"></a> [slack\_webhook](#input\_slack\_webhook) | The Slack webhook URL used for notifications. | `string` | `""` | no |
338341
| <a name="input_storageClassName"></a> [storageClassName](#input\_storageClassName) | Specify the hostname for the kubecsot. | `string` | `"infra-service-sc"` | no |
339342
| <a name="input_velero_config"></a> [velero\_config](#input\_velero\_config) | Configuration to provide settings for Velero, including which namespaces to backup, retention period, backup schedule, and backup bucket name. | `any` | <pre>{<br> "backup_bucket_name": "",<br> "namespaces": "",<br> "retention_period_in_days": 45,<br> "schedule_backup_cron_time": "",<br> "slack_notification_channel_name": "",<br> "slack_notification_token": "",<br> "velero_backup_name": ""<br>}</pre> | no |
340343
| <a name="input_velero_enabled"></a> [velero\_enabled](#input\_velero\_enabled) | Enable or disable the installation of Velero, which is a backup and restore solution for Kubernetes clusters. | `bool` | `false` | no |

examples/complete/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ No inputs.
4343

4444
| Name | Description |
4545
|------|-------------|
46+
| <a name="output_defectdojo"></a> [defectdojo](#output\_defectdojo) | DefectDojo endpoint and credentials |
4647
| <a name="output_ebs_encryption_enable"></a> [ebs\_encryption\_enable](#output\_ebs\_encryption\_enable) | Whether Amazon Elastic Block Store (EBS) encryption is enabled or not. |
4748
| <a name="output_efs_id"></a> [efs\_id](#output\_efs\_id) | ID of the Amazon Elastic File System (EFS) that has been created for the EKS cluster. |
4849
| <a name="output_environment"></a> [environment](#output\_environment) | Environment Name for the EKS cluster |

examples/complete/config/istio.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ global:
4949
memory: 80Mi
5050
limits:
5151
cpu: 100m
52-
memory: 128Mi
53-
52+
memory: 128Mi
53+
5454
pilot:
5555
resources:
5656
limits:
@@ -67,4 +67,4 @@ pilot:
6767
- key: "Addons-Services"
6868
operator: In
6969
values:
70-
- "true"
70+
- "true"

examples/complete/main.tf

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -7,42 +7,44 @@ locals {
77
Expires = "Never"
88
Department = "Engineering"
99
}
10-
ipv6_enabled = true
10+
ipv6_enabled = false
1111
}
1212

1313
module "eks-addons" {
14-
source = "squareops/eks-addons/aws"
15-
name = local.name
16-
vpc_id = "vpc-aba8a102ccxyza"
17-
environment = local.environment
18-
ipv6_enabled = local.ipv6_enabled
19-
kms_key_arn = "arn:aws:kms:${local.region}:222222222222:key/e2b8a99d-b8b1"
20-
keda_enabled = true
21-
kms_policy_arn = "arn:aws:iam::222222222222:policy/eks-cluster-policy" ## eks module will create kms_policy_arn
22-
eks_cluster_name = "eks_cluster_name"
23-
reloader_enabled = true
24-
karpenter_enabled = true
25-
private_subnet_ids = ["subnet-b2c34cd9279xyza", "subnet-7ef8daf598fxyza"]
26-
single_az_sc_config = [{ name = "infra-service-sc", zone = "${local.region}a" }]
27-
kubeclarity_enabled = true
28-
kubeclarity_hostname = "kubeclarity.prod.in"
29-
kubecost_enabled = true
30-
kubecost_hostname = "kubecost.prod.in"
31-
defectdojo_enabled = true
32-
defectdojo_hostname = "defectdojo.prod.in"
33-
cert_manager_enabled = true
34-
worker_iam_role_name = ""
35-
worker_iam_role_arn = ""
36-
ingress_nginx_enabled = true
37-
metrics_server_enabled = true
38-
external_secrets_enabled = true
39-
amazon_eks_vpc_cni_enabled = true
40-
cluster_autoscaler_enabled = true
41-
service_monitor_crd_enabled = true
42-
aws_load_balancer_controller_enabled = true
43-
falco_enabled = true
44-
slack_webhook = ""
45-
istio_enabled = true
14+
source = "squareops/eks-addons/aws"
15+
name = local.name
16+
vpc_id = "vpc-abcd5245c2331xyz"
17+
environment = local.environment
18+
ipv6_enabled = local.ipv6_enabled
19+
kms_key_arn = "arn:aws:kms:us-east-2:xxxxxxxxxx:key/mrk-abd9394bda5947cc864adc657d90386f"
20+
keda_enabled = true
21+
kms_policy_arn = "arn:aws:iam::xxxxxxxxxxxx:policy/policy_name" ## eks module will create kms_policy_arn
22+
eks_cluster_name = "cluster_name"
23+
reloader_enabled = true
24+
karpenter_enabled = true
25+
private_subnet_ids = ["subnet-xxxxxxxxxxxx", "subnet-xxxxxxxxxxxx"]
26+
single_az_ebs_gp3_storage_class_enabled = true
27+
single_az_sc_config = [{ name = "infra-service-sc", zone = "${local.region}a" }]
28+
coredns_hpa_enabled = true
29+
kubeclarity_enabled = true
30+
kubeclarity_hostname = "kubeclarity.prod.in"
31+
kubecost_enabled = false
32+
kubecost_hostname = "kubecost.prod.in"
33+
defectdojo_enabled = true
34+
defectdojo_hostname = "defectdojo.prod.in"
35+
cert_manager_enabled = true
36+
worker_iam_role_name = "node-role"
37+
worker_iam_role_arn = "arn:aws:iam::xxxxxxxxxx:role/node-role"
38+
ingress_nginx_enabled = true
39+
metrics_server_enabled = true
40+
external_secrets_enabled = true
41+
amazon_eks_vpc_cni_enabled = true
42+
cluster_autoscaler_enabled = true
43+
service_monitor_crd_enabled = true
44+
aws_load_balancer_controller_enabled = true
45+
falco_enabled = true
46+
slack_webhook = "xoxb-379541400966-iibMHnnoaPzVl"
47+
istio_enabled = true
4648
istio_config = {
4749
ingress_gateway_enabled = true
4850
egress_gateway_enabled = true
@@ -63,16 +65,15 @@ module "eks-addons" {
6365
aws_node_termination_handler_enabled = true
6466
amazon_eks_aws_ebs_csi_driver_enabled = true
6567
cluster_propotional_autoscaler_enabled = true
66-
single_az_ebs_gp3_storage_class_enabled = true
6768
cert_manager_install_letsencrypt_http_issuers = true
6869
velero_enabled = true
6970
velero_config = {
70-
namespaces = "my-application" ## If you want full cluster backup, leave it blank else provide namespace.
71-
slack_notification_token = "xoxb-EuvmxrYxRatsM8R"
72-
slack_notification_channel_name = "slack-notifications-channel"
71+
namespaces = "" ## If you want full cluster backup, leave it blank else provide namespace.
72+
slack_notification_token = "xoxb-379541400966-iibMHnnoaPzVl"
73+
slack_notification_channel_name = "slack-notification-channel"
7374
retention_period_in_days = 45
7475
schedule_backup_cron_time = "* 6 * * *"
75-
velero_backup_name = "my-application-backup"
76-
backup_bucket_name = "velero-cluster-backup"
76+
velero_backup_name = "application-backup"
77+
backup_bucket_name = "velero-bucket"
7778
}
7879
}

examples/complete/output.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ output "efs_id" {
1818
description = "ID of the Amazon Elastic File System (EFS) that has been created for the EKS cluster."
1919
}
2020

21+
output "defectdojo" {
22+
description = "DefectDojo endpoint and credentials"
23+
value = module.eks-addons.defectdojo
24+
}
25+
2126
output "internal_nginx_ingress_controller_dns_hostname" {
2227
description = "DNS hostname of the NGINX Ingress Controller that can be used to access it from within the cluster."
2328
value = module.eks-addons.internal_nginx_ingress_controller_dns_hostname

0 commit comments

Comments
 (0)