From e5e227f68e1ba8aad27b15880e2a0b42211e8368 Mon Sep 17 00:00:00 2001 From: Venkat Date: Thu, 5 Dec 2024 01:28:21 +0000 Subject: [PATCH 1/3] feat: upgrade k8s from 1.29 -> 1.30 --- README.md | 20 ++++++++++---------- docs/.header.md | 16 ++++++++-------- tests/main.tf | 16 ++++++++-------- variables.tf | 6 +++--- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 184942a..4820a55 100644 --- a/README.md +++ b/README.md @@ -17,17 +17,17 @@ For more details see: https://github.com/GlueOps/terraform-module-cloud-aws-kube module "captain" { iam_role_to_assume = "arn:aws:iam::1234567890:role/glueops-captain-role" source = "git::https://github.com/GlueOps/terraform-module-cloud-aws-kubernetes-cluster.git" - eks_version = "1.29" + eks_version = "1.30" csi_driver_version = "v1.37.0-eksbuild.1" coredns_version = "v1.11.3-eksbuild.2" - kube_proxy_version = "v1.29.10-eksbuild.3" + kube_proxy_version = "v1.30.6-eksbuild.3" vpc_cidr_block = "10.65.0.0/26" region = "us-west-2" availability_zones = ["us-west-2a", "us-west-2b"] node_pools = [ # { -# "kubernetes_version" : "1.29", -# "ami_release_version" : "1.29.10-20241121", +# "kubernetes_version" : "1.30", +# "ami_release_version" : "1.30.6-20241121", # "ami_type" : "AL2_x86_64", # "instance_type" : "t3a.large", # "name" : "glueops-platform-node-pool-1", @@ -48,8 +48,8 @@ module "captain" { # ] # }, # { -# "kubernetes_version" : "1.29", -# "ami_release_version" : "1.29.10-20241121", +# "kubernetes_version" : "1.30", +# "ami_release_version" : "1.30.6-20241121", # "ami_type" : "AL2_x86_64", # "instance_type" : "t3a.small", # "name" : "glueops-platform-node-pool-argocd-app-controller-1", @@ -70,8 +70,8 @@ module "captain" { # ] # }, # { -# "kubernetes_version" : "1.29", -# "ami_release_version" : "1.29.10-20241121", +# "kubernetes_version" : "1.30", +# "ami_release_version" : "1.30.6-20241121", # "ami_type" : "AL2_x86_64", # "instance_type" : "t3a.medium", # "name" : "clusterwide-node-pool-1", @@ -199,8 +199,8 @@ No requirements. | [csi\_driver\_version](#input\_csi\_driver\_version) | You should grab the appropriate version number from: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG.md | `string` | `"v1.37.0-eksbuild.1"` | no | | [eks\_version](#input\_eks\_version) | The version of EKS to deploy | `string` | `"1.27"` | no | | [iam\_role\_to\_assume](#input\_iam\_role\_to\_assume) | The full ARN of the IAM role to assume | `string` | n/a | yes | -| [kube\_proxy\_version](#input\_kube\_proxy\_version) | You should grab the appropriate version number from: https://docs.aws.amazon.com/eks/latest/userguide/managing-kube-proxy.html | `string` | `"v1.29.10-eksbuild.3"` | no | -| [node\_pools](#input\_node\_pools) | node pool configurations:
- name (string): Name of the node pool. MUST BE UNIQUE! Recommended to use YYYYMMDD in the name
- node\_count (number): number of nodes to create in the node pool.
- instance\_type (string): Instance type to use for the nodes. ref: https://instances.vantage.sh/
- kubernetes\_version (string): Generally this is the same version as the EKS cluster. But if doing a node pool upgrade this may be a different version.
- ami\_release\_version (string): AMI Release version to use for EKS worker nodes. ref: https://github.com/awslabs/amazon-eks-ami/releases
- ami\_type (string): e.g. AMD64 or ARM
- spot (bool): Enable spot instances for the nodes. DO NOT ENABLE IN PROD!
- disk\_size\_gb (number): Disk size in GB for the nodes.
- max\_pods (number): max pods that can be scheduled per node.
- ssh\_key\_pair\_names (list(string)): List of SSH key pair names to associate with the nodes. ref: https://us-west-2.console.aws.amazon.com/ec2/home?region=us-west-2#KeyPairs:
- kubernetes\_labels (map(string)): Map of labels to apply to the nodes. ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
- kubernetes\_taints (list(object)): List of taints to apply to the nodes. ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ |
list(object({
name = string
node_count = number
instance_type = string
kubernetes_version = string
ami_release_version = string
ami_type = string
spot = bool
disk_size_gb = number
max_pods = number
ssh_key_pair_names = list(string)
kubernetes_labels = map(string)
kubernetes_taints = list(object({
key = string
value = string
effect = string
}))

}))
|
[
{
"ami_release_version": "1.29.10-20241121",
"ami_type": "AL2_x86_64",
"disk_size_gb": 20,
"instance_type": "t3a.large",
"kubernetes_labels": {},
"kubernetes_taints": [],
"kubernetes_version": "1.29",
"max_pods": 110,
"name": "default-pool",
"node_count": 1,
"spot": false,
"ssh_key_pair_names": []
}
]
| no | +| [kube\_proxy\_version](#input\_kube\_proxy\_version) | You should grab the appropriate version number from: https://docs.aws.amazon.com/eks/latest/userguide/managing-kube-proxy.html | `string` | `"v1.30.6-eksbuild.3"` | no | +| [node\_pools](#input\_node\_pools) | node pool configurations:
- name (string): Name of the node pool. MUST BE UNIQUE! Recommended to use YYYYMMDD in the name
- node\_count (number): number of nodes to create in the node pool.
- instance\_type (string): Instance type to use for the nodes. ref: https://instances.vantage.sh/
- kubernetes\_version (string): Generally this is the same version as the EKS cluster. But if doing a node pool upgrade this may be a different version.
- ami\_release\_version (string): AMI Release version to use for EKS worker nodes. ref: https://github.com/awslabs/amazon-eks-ami/releases
- ami\_type (string): e.g. AMD64 or ARM
- spot (bool): Enable spot instances for the nodes. DO NOT ENABLE IN PROD!
- disk\_size\_gb (number): Disk size in GB for the nodes.
- max\_pods (number): max pods that can be scheduled per node.
- ssh\_key\_pair\_names (list(string)): List of SSH key pair names to associate with the nodes. ref: https://us-west-2.console.aws.amazon.com/ec2/home?region=us-west-2#KeyPairs:
- kubernetes\_labels (map(string)): Map of labels to apply to the nodes. ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
- kubernetes\_taints (list(object)): List of taints to apply to the nodes. ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ |
list(object({
name = string
node_count = number
instance_type = string
kubernetes_version = string
ami_release_version = string
ami_type = string
spot = bool
disk_size_gb = number
max_pods = number
ssh_key_pair_names = list(string)
kubernetes_labels = map(string)
kubernetes_taints = list(object({
key = string
value = string
effect = string
}))

}))
|
[
{
"ami_release_version": "1.30.6-20241121",
"ami_type": "AL2_x86_64",
"disk_size_gb": 20,
"instance_type": "t3a.large",
"kubernetes_labels": {},
"kubernetes_taints": [],
"kubernetes_version": "1.30",
"max_pods": 110,
"name": "default-pool",
"node_count": 1,
"spot": false,
"ssh_key_pair_names": []
}
]
| no | | [peering\_configs](#input\_peering\_configs) | A list of maps containing VPC peering configuration details |
list(object({
vpc_peering_connection_id = string
destination_cidr_block = string
}))
| `[]` | no | | [region](#input\_region) | The AWS region to deploy into | `string` | n/a | yes | | [vpc\_cidr\_block](#input\_vpc\_cidr\_block) | The CIDR block for the VPC | `string` | `"10.65.0.0/26"` | no | diff --git a/docs/.header.md b/docs/.header.md index 61e89ab..7bd78aa 100644 --- a/docs/.header.md +++ b/docs/.header.md @@ -17,17 +17,17 @@ For more details see: https://github.com/GlueOps/terraform-module-cloud-aws-kube module "captain" { iam_role_to_assume = "arn:aws:iam::1234567890:role/glueops-captain-role" source = "git::https://github.com/GlueOps/terraform-module-cloud-aws-kubernetes-cluster.git" - eks_version = "1.29" + eks_version = "1.30" csi_driver_version = "v1.37.0-eksbuild.1" coredns_version = "v1.11.3-eksbuild.2" - kube_proxy_version = "v1.29.10-eksbuild.3" + kube_proxy_version = "v1.30.6-eksbuild.3" vpc_cidr_block = "10.65.0.0/26" region = "us-west-2" availability_zones = ["us-west-2a", "us-west-2b"] node_pools = [ # { -# "kubernetes_version" : "1.29", -# "ami_release_version" : "1.29.10-20241121", +# "kubernetes_version" : "1.30", +# "ami_release_version" : "1.30.6-20241121", # "ami_type" : "AL2_x86_64", # "instance_type" : "t3a.large", # "name" : "glueops-platform-node-pool-1", @@ -48,8 +48,8 @@ module "captain" { # ] # }, # { -# "kubernetes_version" : "1.29", -# "ami_release_version" : "1.29.10-20241121", +# "kubernetes_version" : "1.30", +# "ami_release_version" : "1.30.6-20241121", # "ami_type" : "AL2_x86_64", # "instance_type" : "t3a.small", # "name" : "glueops-platform-node-pool-argocd-app-controller-1", @@ -70,8 +70,8 @@ module "captain" { # ] # }, # { -# "kubernetes_version" : "1.29", -# "ami_release_version" : "1.29.10-20241121", +# "kubernetes_version" : "1.30", +# "ami_release_version" : "1.30.6-20241121", # "ami_type" : "AL2_x86_64", # "instance_type" : "t3a.medium", # "name" : "clusterwide-node-pool-1", diff --git a/tests/main.tf b/tests/main.tf index 40b5b9d..c001650 100644 --- a/tests/main.tf +++ b/tests/main.tf @@ -1,17 +1,17 @@ module "captain" { iam_role_to_assume = "arn:aws:iam::761182885829:role/glueops-captain-role" source = "../" - eks_version = "1.29" + eks_version = "1.30" csi_driver_version = "v1.37.0-eksbuild.1" coredns_version = "v1.11.3-eksbuild.2" - kube_proxy_version = "v1.29.10-eksbuild.3" + kube_proxy_version = "v1.30.6-eksbuild.3" vpc_cidr_block = "10.65.0.0/26" region = "us-west-2" availability_zones = ["us-west-2a", "us-west-2b"] node_pools = [ # { - # "kubernetes_version" : "1.29", - # "ami_release_version" : "1.29.10-20241121", + # "kubernetes_version" : "1.30", + # "ami_release_version" : "1.30.6-20241121", # "ami_type" : "AL2_x86_64", # "instance_type" : "t3a.large", # "name" : "glueops-platform-node-pool-1", @@ -32,8 +32,8 @@ module "captain" { # ] # }, # { - # "kubernetes_version" : "1.29", - # "ami_release_version" : "1.29.10-20241121", + # "kubernetes_version" : "1.30", + # "ami_release_version" : "1.30.6-20241121", # "ami_type" : "AL2_x86_64", # "instance_type" : "t3a.small", # "name" : "glueops-platform-node-pool-argocd-app-controller-1", @@ -54,8 +54,8 @@ module "captain" { # ] # }, # { - # "kubernetes_version" : "1.29", - # "ami_release_version" : "1.29.10-20241121", + # "kubernetes_version" : "1.30", + # "ami_release_version" : "1.30.6-20241121", # "ami_type" : "AL2_x86_64", # "instance_type" : "t3a.medium", # "name" : "clusterwide-node-pool-1", diff --git a/variables.tf b/variables.tf index 51066b7..3bcf82c 100644 --- a/variables.tf +++ b/variables.tf @@ -17,7 +17,7 @@ variable "coredns_version" { variable "kube_proxy_version" { type = string - default = "v1.29.10-eksbuild.3" + default = "v1.30.6-eksbuild.3" description = "You should grab the appropriate version number from: https://docs.aws.amazon.com/eks/latest/userguide/managing-kube-proxy.html" } @@ -92,8 +92,8 @@ variable "node_pools" { name = "default-pool" node_count = 1 instance_type = "t3a.large" - ami_release_version = "1.29.10-20241121" - kubernetes_version = "1.29" + ami_release_version = "1.30.6-20241121" + kubernetes_version = "1.30" ami_type = "AL2_x86_64" spot = false disk_size_gb = 20 From 4598ef7c6c3690cf548e91828016aefb6391825b Mon Sep 17 00:00:00 2001 From: Venkat Date: Thu, 5 Dec 2024 07:26:42 +0000 Subject: [PATCH 2/3] fix: default version of 1.27 -> 1.30 --- variables.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variables.tf b/variables.tf index 3bcf82c..415d34a 100644 --- a/variables.tf +++ b/variables.tf @@ -65,7 +65,7 @@ variable "availability_zones" { variable "eks_version" { type = string description = "The version of EKS to deploy" - default = "1.27" + default = "1.30" } variable "node_pools" { From bfd50fe5baaa1aae6ed70d7a7342f5439c28613b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 5 Dec 2024 07:26:57 +0000 Subject: [PATCH 3/3] docs: automated update of terraform docs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4820a55..3fa0733 100644 --- a/README.md +++ b/README.md @@ -197,7 +197,7 @@ No requirements. | [availability\_zones](#input\_availability\_zones) | The availability zones to deploy into | `list(string)` |
[
"us-west-2a",
"us-west-2b",
"us-west-2c"
]
| no | | [coredns\_version](#input\_coredns\_version) | You should grab the appropriate version number from: https://docs.aws.amazon.com/eks/latest/userguide/managing-coredns.html | `string` | `"v1.11.3-eksbuild.2"` | no | | [csi\_driver\_version](#input\_csi\_driver\_version) | You should grab the appropriate version number from: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG.md | `string` | `"v1.37.0-eksbuild.1"` | no | -| [eks\_version](#input\_eks\_version) | The version of EKS to deploy | `string` | `"1.27"` | no | +| [eks\_version](#input\_eks\_version) | The version of EKS to deploy | `string` | `"1.30"` | no | | [iam\_role\_to\_assume](#input\_iam\_role\_to\_assume) | The full ARN of the IAM role to assume | `string` | n/a | yes | | [kube\_proxy\_version](#input\_kube\_proxy\_version) | You should grab the appropriate version number from: https://docs.aws.amazon.com/eks/latest/userguide/managing-kube-proxy.html | `string` | `"v1.30.6-eksbuild.3"` | no | | [node\_pools](#input\_node\_pools) | node pool configurations:
- name (string): Name of the node pool. MUST BE UNIQUE! Recommended to use YYYYMMDD in the name
- node\_count (number): number of nodes to create in the node pool.
- instance\_type (string): Instance type to use for the nodes. ref: https://instances.vantage.sh/
- kubernetes\_version (string): Generally this is the same version as the EKS cluster. But if doing a node pool upgrade this may be a different version.
- ami\_release\_version (string): AMI Release version to use for EKS worker nodes. ref: https://github.com/awslabs/amazon-eks-ami/releases
- ami\_type (string): e.g. AMD64 or ARM
- spot (bool): Enable spot instances for the nodes. DO NOT ENABLE IN PROD!
- disk\_size\_gb (number): Disk size in GB for the nodes.
- max\_pods (number): max pods that can be scheduled per node.
- ssh\_key\_pair\_names (list(string)): List of SSH key pair names to associate with the nodes. ref: https://us-west-2.console.aws.amazon.com/ec2/home?region=us-west-2#KeyPairs:
- kubernetes\_labels (map(string)): Map of labels to apply to the nodes. ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
- kubernetes\_taints (list(object)): List of taints to apply to the nodes. ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ |
list(object({
name = string
node_count = number
instance_type = string
kubernetes_version = string
ami_release_version = string
ami_type = string
spot = bool
disk_size_gb = number
max_pods = number
ssh_key_pair_names = list(string)
kubernetes_labels = map(string)
kubernetes_taints = list(object({
key = string
value = string
effect = string
}))

}))
|
[
{
"ami_release_version": "1.30.6-20241121",
"ami_type": "AL2_x86_64",
"disk_size_gb": 20,
"instance_type": "t3a.large",
"kubernetes_labels": {},
"kubernetes_taints": [],
"kubernetes_version": "1.30",
"max_pods": 110,
"name": "default-pool",
"node_count": 1,
"spot": false,
"ssh_key_pair_names": []
}
]
| no |