Infrastructure Update - Kubernetes 1.31 Deployment
🚀 What’s New
We have made the following updates to our Terraform codebase:
Kubernetes Version: Upgraded to v1.31
S3 Filestore Bucket: Filestore S3 bucket will be created automatically and filestore Secrets are now automatically created during infra creation.
By default, secrets are created in the egov namespace.
To change the namespace, update the namespace variable in variables.tf.
variable "filestore_namespace" {
description = "Provide the namespace to create filestore secret"
default = "egov" #REPLACE
}
⚙️ Configuration Details
Instance Type: Default instance type is set to m5.xlarge
To Modify Configurations:
Update variables.tf to change instance type or to provide multiple instance types
variable "instance_types" {
description = "Arry of instance types for SPOT instances"
default = ["m5a.xlarge", "r5ad.xlarge", "m6a.xlarge"]
}
Migrating from v1.30 to v1.31
🔧 Step 1: Update Kubernetes Version in variables.tf
Locate the kubernetes_version variable in your variables.tf file and update the version from 1.30 to 1.31.
variable "kubernetes_version" {
description = "kubernetes version"
default = "1.31"
}
🛠️ Step 2: Remove Module Dependency to Prevent node IAM Role Updates
Before:
module "eks_managed_node_group" {
depends_on = [module.eks]
# other config...
}
After:
module "eks_managed_node_group" {
# other config...
}
▶️ Step 3: Apply Terraform Changes
Run the following commands to initialize the provider, review the plan, and apply the upgrade:
terraform init
terraform plan
terraform apply
✅ Verification
After the upgrade completes:
Confirm the Kubernetes version using the AWS Console or CLI:
aws eks describe-cluster --name <your-cluster-name> --query "cluster.version"
📚 Documentation
Refer to our Core Infrastructure Documentation to deploy the infrastructure end-to-end.