Skip to content

Commit

Permalink
Merge pull request #95 from squareops/release-4.0.2
Browse files Browse the repository at this point in the history
Release 4.0.2
  • Loading branch information
ns-squareops authored Jan 30, 2025
2 parents 3f799aa + f7d6290 commit bdc660e
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 23 deletions.
103 changes: 83 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,27 @@ This module provides a set of reusable, configurable, and scalable AWS EKS addon
```hcl
module "eks-addons" {
source = "squareops/eks-addons/aws"
version = "3.1.1"
version = "4.0.2"
name = local.name
tags = local.additional_tags
vpc_id = "vpc-xxxxxx" # pass VPC ID
private_subnet_ids = ["subnet-xxxxx", "subnet-xxxxx"] # pass Subnet IDs
vpc_id = local.vpc_id
private_subnet_ids = local.private_subnet_ids # pass the private subnet IDs
public_subnet_ids = local.public_subnet_ids # pass the private subnet IDs
environment = local.environment
ipv6_enabled = local.ipv6_enabled
kms_key_arn = local.kms_key_arn
kms_policy_arn = "arn:aws:iam::xxx:policy/eks-kms-policy" # eks module will create kms_policy_arn
worker_iam_role_name = "eks-node-role" # enter role name created by eks module
worker_iam_role_arn = "arn:aws:iam::xxx:role/eks-node-role" # enter roll ARN
kms_policy_arn = local.kms_policy_arn
worker_iam_role_arn = local.worker_iam_role_arn
worker_iam_role_name = local.worker_iam_role_name
eks_cluster_name = data.aws_eks_cluster.cluster.name
#VPC-CNI-DRIVER
amazon_eks_vpc_cni_enabled = false # enable VPC-CNI
amazon_eks_vpc_cni_enabled = true # enable VPC-CNI
vpc_cni_version = "v1.19.2-eksbuild.1"
#EBS-CSI-DRIVER
enable_amazon_eks_aws_ebs_csi_driver = false # enable EBS CSI Driver
ebs_csi_driver_version = "v1.36.0-eksbuild.1"
amazon_eks_aws_ebs_csi_driver_config = {
values = [file("${path.module}/config/ebs-csi.yaml")]
}
Expand All @@ -39,37 +42,47 @@ module "eks-addons" {
## EfS-STORAGE-CLASS
efs_storage_class_enabled = false # to enable EBS storage class
efs_version = "2.3.2"
## SERVICE-MONITORING-CRDs
service_monitor_crd_enabled = false # enable service monitor along with K8S-dashboard (required CRD) or when require service monitor in reloader and cert-manager
## METRIC-SERVER
metrics_server_enabled = false # to enable metrics server
metrics_server_version = "3.12.1"
metrics_server_helm_config = [file("${path.module}/config/metrics-server.yaml")]
# VerticalPodAutoscaler
vpa_enabled = false
vpa_version = "9.9.0"
vpa_config = {
values = [file("${path.module}/config/vpa-crd.yaml")]
}
## CLUSTER-AUTOSCALER
cluster_autoscaler_enabled = false # to enable cluster autoscaller
cluster_autoscaler_version = "9.37.0"
cluster_autoscaler_helm_config = [file("${path.module}/config/cluster-autoscaler.yaml")]
## NODE-TERMINATION-HANDLER
aws_node_termination_handler_enabled = false # to enable node termination handler
aws_node_termination_handler_version = "0.21.0"
aws_node_termination_handler_helm_config = {
values = [file("${path.module}/config/aws-node-termination-handler.yaml")]
enable_service_monitor = false # to enable monitoring for node termination handler
enable_notifications = true
enable_notifications = false
}
## KEDA
keda_enabled = false # to enable Keda in the EKS cluster
keda_version = "2.14.2"
keda_helm_config = {
values = [file("${path.module}/config/keda.yaml")]
}
## KARPENTER
karpenter_enabled = false # to enable Karpenter (installs required CRDs )
karpenter_version = "1.0.6"
karpenter_helm_config = {
enable_service_monitor = false # to enable monitoring for kafalserpenter
values = [file("${path.module}/config/karpenter.yaml")]
Expand All @@ -81,14 +94,21 @@ module "eks-addons" {
values = [file("${path.module}/config/coredns-hpa.yaml")]
}
## ClusterProportionalAutoscaler (Configured for CoreDNS)
cluster_proportional_autoscaler_enabled = false # to enable cluster proportional autoscaler
cluster_proportional_autoscaler_chart_version = "1.1.0"
cluster_proportional_autoscaler_helm_config = [file("${path.module}/config/cluster-proportional-autoscaler.yaml")]
## EXTERNAL-SECRETS
external_secrets_enabled = false # to enable external secrets
external_secrets_version = "0.9.19"
external_secrets_helm_config = {
values = [file("${path.module}/config/external-secret.yaml")]
}
## CERT-MANAGER
cert_manager_enabled = false # to enable Cert-manager
cert_manager_version = "v1.15.1"
cert_manager_helm_config = {
values = [file("${path.module}/config/cert-manager.yaml")]
enable_service_monitor = false # to enable monitoring for Cert Manager
Expand All @@ -97,23 +117,35 @@ module "eks-addons" {
## CONFIG-RELOADER
reloader_enabled = false # to enable config reloader in the EKS cluster
reloader_version = "v1.0.115"
reloader_helm_config = {
values = [file("${path.module}/config/reloader.yaml")]
enable_service_monitor = false # to enable monitoring for reloader
}
## INGRESS-NGINX
ingress_nginx_enabled = false # to enable ingress nginx
private_nlb_enabled = false # to enable Internal (Private) Ingress , set this and ingress_nginx_enable "false" together
ingress_nginx_version = "4.11.0"
ingress_nginx_config = {
values = [file("${path.module}/config/ingress-nginx.yaml")]
enable_service_monitor = false # enable monitoring in nginx ingress
ingress_class_name = "nginx" # enter ingress class name according to your requirement (example: "nginx", "internal-ingress")
namespace = "nginx" # enter namespace according to the requirement (example: "nginx", "internal-ingress")
ingress_class_name = "nginx" # enter ingress class name according to your requirement
namespace = "nginx" # enter namespace according to the requirement
}
## PRIVATE INGRESS-NGINX
private_ingress_nginx_enabled = false # to enable Internal (Private) Ingress
private_ingress_nginx_version = "4.11.0"
private_ingress_nginx_config = {
values = [file("${path.module}/config/ingress-nginx.yaml")]
enable_service_monitor = false # enable monitoring in nginx ingress
ingress_class_name = "private-nginx" # enter ingress class name according to your requirement (example: "nginx", "internal-ingress")
namespace = "private-nginx" # enter namespace according to the requirement (example: "nginx", "internal-ingress")
}
## AWS-APPLICATION-LOAD-BALANCER-CONTROLLER
aws_load_balancer_controller_enabled = false # to enable load balancer controller
aws_load_balancer_controller_version = "1.8.1"
aws_load_balancer_controller_helm_config = {
values = [file("${path.module}/config/aws-alb.yaml")]
namespace = "alb" # enter namespace according to the requirement (example: "alb")
Expand All @@ -122,15 +154,18 @@ module "eks-addons" {
## KUBERNETES-DASHBOARD
kubernetes_dashboard_enabled = false
kubernetes_dashboard_version = "6.0.8"
kubernetes_dashboard_config = {
k8s_dashboard_ingress_load_balancer = "nlb" ##Choose your load balancer type (e.g., NLB or ALB). Enable load balancer controller, if you require ALB, Enable Ingress Nginx if NLB.
k8s_dashboard_ingress_load_balancer = "nlb" # Pass either "nlb/alb" to choose load balancer controller as ingress-nginx controller or ALB controller
private_alb_enabled = false # to enable Internal (Private) ALB , set this and aws_load_balancer_controller_enabled "true" together
alb_acm_certificate_arn = "" # If using ALB in above parameter, ensure you provide the ACM certificate ARN for SSL.
k8s_dashboard_hostname = "k8s-dashboard.rnd.squareops.in" # Enter Hostname
ingress_class_name = "nginx" # For public nlb use "nginx", for private NLB use "private-nginx", For ALB, use "alb"
}
## ArgoCD
argocd_enabled = false
argocd_version = "7.3.11"
argocd_config = {
hostname = "argocd.rnd.squareops.in"
values_yaml = file("${path.module}/config/argocd.yaml")
Expand All @@ -139,20 +174,41 @@ module "eks-addons" {
autoscaling_enabled = true
slack_notification_token = ""
argocd_notifications_enabled = false
ingress_class_name = "nginx" # enter ingress class name according to your requirement (example: "ingress-nginx", "internal-ingress")
ingress_class_name = "nginx" # For public nlb use "nginx", for private NLB use "private-nginx", For ALB, use "alb"
argocd_ingress_load_balancer = "nlb" # Pass either "nlb/alb" to choose load balancer controller as ingress-nginx controller or ALB controller
private_alb_enabled = "false" # to enable Internal (Private) ALB , set this and aws_load_balancer_controller_enabled "true" together
alb_acm_certificate_arn = "" # If using ALB in above parameter, ensure you provide the ACM certificate ARN for SSL.
}
argoproject_config = {
name = "argo-project" # enter name for aro-project appProjects
}
## ArgoCD-Workflow
argoworkflow_enabled = false
argoworkflow_version = "0.29.2"
argoworkflow_config = {
values = file("${path.module}/config/argocd-workflow.yaml")
namespace = local.argocd_namespace
autoscaling_enabled = true
hostname = "argocd-workflow.rnd.squareops.in"
ingress_class_name = "nginx" # enter ingress class name according to your requirement (example: "ingress-nginx", "internal-ingress")
values = file("${path.module}/config/argocd-workflow.yaml")
namespace = local.argocd_namespace
autoscaling_enabled = true
hostname = "argoworkflow.rnd.squareops.in"
ingress_class_name = "nginx" # For public nlb use "nginx", for private NLB use "private-nginx", For ALB, use "alb"
argoworkflow_ingress_load_balancer = "nlb" # Pass either "nlb/alb" to choose load balancer controller as ingress-nginx controller or ALB controller
private_alb_enabled = "false" # to enable Internal (Private) ALB , set this and aws_load_balancer_controller_enabled "true" together
alb_acm_certificate_arn = "" # If using ALB in above parameter, ensure you provide the ACM certificate ARN for SSL.
}
## ArgoRollout
argorollout_enabled = false
argorollout_config = {
values = file("${path.module}/config/argo-rollout.yaml")
namespace = local.argocd_namespace
hostname = "argo-rollout.rnd.squareops.in"
enable_dashboard = false
ingress_class_name = "nginx" # For public nlb use "nginx", for private NLB use "private-nginx", For ALB, use "alb"
argorollout_ingress_load_balancer = "nlb" # Pass either "nlb/alb" to choose load balancer controller as ingress-nginx controller or ALB controller
private_alb_enabled = "false" # to enable Internal (Private) ALB , set this and aws_load_balancer_controller_enabled "true" together
alb_acm_certificate_arn = "" # If using ALB in above parameter, ensure you provide the ACM certificate ARN for SSL.
chart_version = "2.38.0"
}
# VELERO
Expand All @@ -172,10 +228,12 @@ module "eks-addons" {
## KUBECLARITY
kubeclarity_enabled = false # to enable kube clarity
kubeclarity_version = "2.23.0"
kubeclarity_hostname = "kubeclarity.prod.in"
## KUBECOST
kubecost_enabled = false # to enable kube cost
kubecost_version = "v2.1.0-eksbuild.1"
kubecost_hostname = "kubecost.prod.in"
## DEFECT-DOJO
Expand All @@ -184,6 +242,7 @@ module "eks-addons" {
## FALCO
falco_enabled = false # to enable falco
falco_version = "4.0.0"
slack_webhook = "xoxb-379541400966-iibMHnnoaPzVl"
}
Expand All @@ -206,9 +265,13 @@ module "eks-addons" {
| Release 1.1.7 | ✔ | ✔ | ✔ | ✔ | ✔ |
| Release 1.1.8 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Release 3.0.0 | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ | ✔ | ✔ |
| Release 3.1.1 | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ | ✔ | ✔ |
| Release 3.1.0 | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ | ✔ | ✔ |
| Release 3.1.3 | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ | ✔ | ✔ |
| Release 4.0.0 | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ | ✔ | ✔ |
| Release 4.0.1 | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ | ✔ | ✔ |
| Release 4.0.2 | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ | ✔ | ✔ |

Note: The latest release 3.0.0 support EKS version 1.28, 1.29 and 1.30. For EKS version <=1.27 refer the previous release.
Note: The latest release 4.0.0 support EKS version 1.28, 1.29 and 1.30. For EKS version <=1.27 refer the previous release.
## IAM Permissions
The required IAM permissions to create resources from this module can be found [here](https://github.com/squareops/terraform-aws-eks-addons.git/blob/main/IAM.md)

Expand Down
2 changes: 1 addition & 1 deletion examples/complete/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

| Name | Source | Version |
|------|--------|---------|
| <a name="module_eks-addons"></a> [eks-addons](#module\_eks-addons) | squareops/eks-addons/aws | 4.0.1 |
| <a name="module_eks-addons"></a> [eks-addons](#module\_eks-addons) | squareops/eks-addons/aws | 4.0.2 |

## Resources

Expand Down
2 changes: 1 addition & 1 deletion examples/complete/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ locals {

module "eks-addons" {
source = "squareops/eks-addons/aws"
version = "4.0.1"
version = "4.0.2"
name = local.name
tags = local.additional_tags
vpc_id = local.vpc_id
Expand Down
2 changes: 1 addition & 1 deletion locals.tf
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ locals {
il-central-1 = "066635153087.dkr.ecr.il-central-1.amazonaws.com",
me-south-1 = "558608220178.dkr.ecr.me-south-1.amazonaws.com",
me-central-1 = "759879836304.dkr.ecr.me-central-1.amazonaws.com",
mx-central-1 = "730335286997.dkr.ecr.mx-central-1.amazonaws.com",
mx-central-1 = "730335286997.dkr.ecr.mx-central-1.amazonaws.com",
sa-east-1 = "602401143452.dkr.ecr.sa-east-1.amazonaws.com",
us-east-1 = "602401143452.dkr.ecr.us-east-1.amazonaws.com",
us-east-2 = "602401143452.dkr.ecr.us-east-2.amazonaws.com",
Expand Down
2 changes: 2 additions & 0 deletions modules/argocd/config/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ configs:
p, role:readonly, gpgkeys, get, *, allow
p, role:readonly, logs, get, */*, allow
g, qa, role:readonly
params:
application.namespaces: "*"

server:
config:
Expand Down

0 comments on commit bdc660e

Please sign in to comment.