Skip to content

Commit a2e524c

Browse files
Feat/adding kube proxy and fixing core dns (#114)
* fix(coredns): remove service account role arn as it's only needed for csi addon * feat: consolidate all addons into one file and add kube proxy * docs: automated update of terraform docs * fix: kube-proxy. no configuration values/tains are needed * Update addons.tf * Update addons.tf --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent cf58335 commit a2e524c

File tree

6 files changed

+42
-21
lines changed

6 files changed

+42
-21
lines changed

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ module "captain" {
2020
eks_version = "1.28"
2121
csi_driver_version = "v1.30.0-eksbuild.1"
2222
coredns_version = "v1.10.1-eksbuild.7"
23+
kube_proxy_version = "v1.28.6-eksbuild.2"
2324
vpc_cidr_block = "10.65.0.0/26"
2425
region = "us-west-2"
2526
availability_zones = ["us-west-2a", "us-west-2b"]
@@ -154,6 +155,7 @@ No requirements.
154155
|------|------|
155156
| [aws_eks_addon.coredns](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_addon) | resource |
156157
| [aws_eks_addon.ebs_csi](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_addon) | resource |
158+
| [aws_eks_addon.kube_proxy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_addon) | resource |
157159
| [aws_iam_role.eks_addon_ebs_csi_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
158160
| [aws_iam_role_policy_attachment.ebs_csi](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
159161
| [aws_security_group.captain](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |
@@ -168,10 +170,11 @@ No requirements.
168170
| Name | Description | Type | Default | Required |
169171
|------|-------------|------|---------|:--------:|
170172
| <a name="input_availability_zones"></a> [availability\_zones](#input\_availability\_zones) | The availability zones to deploy into | `list(string)` | <pre>[<br> "us-west-2a",<br> "us-west-2b",<br> "us-west-2c"<br>]</pre> | no |
171-
| <a name="input_coredns_version"></a> [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.10.1-eksbuild.6"` | no |
172-
| <a name="input_csi_driver_version"></a> [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.26.1-eksbuild.1"` | no |
173-
| <a name="input_eks_version"></a> [eks\_version](#input\_eks\_version) | The version of EKS to deploy | `string` | `"1.28"` | no |
173+
| <a name="input_coredns_version"></a> [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.10.1-eksbuild.7"` | no |
174+
| <a name="input_csi_driver_version"></a> [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.29.1-eksbuild.1"` | no |
175+
| <a name="input_eks_version"></a> [eks\_version](#input\_eks\_version) | The version of EKS to deploy | `string` | `"1.27"` | no |
174176
| <a name="input_iam_role_to_assume"></a> [iam\_role\_to\_assume](#input\_iam\_role\_to\_assume) | The full ARN of the IAM role to assume | `string` | n/a | yes |
177+
| <a name="input_kube_proxy_version"></a> [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.27.10-eksbuild.2"` | no |
175178
| <a name="input_node_pools"></a> [node\_pools](#input\_node\_pools) | node pool configurations:<br> - name (string): Name of the node pool. MUST BE UNIQUE! Recommended to use YYYYMMDD in the name<br> - node\_count (number): number of nodes to create in the node pool.<br> - instance\_type (string): Instance type to use for the nodes. ref: https://instances.vantage.sh/<br> - ami\_image\_id (string): AMI image ID to use for EKS worker nodes. This varies per region!! ref: https://github.com/awslabs/amazon-eks-ami/releases to find the AMI ID go to the console: https://us-west-2.console.aws.amazon.com/ec2/home?region=us-west-2#Images:visibility=public-images;search=amazon-eks-node-1.28-v20230703<br> - spot (bool): Enable spot instances for the nodes. DO NOT ENABLE IN PROD!<br> - disk\_size\_gb (number): Disk size in GB for the nodes.<br> - max\_pods (number): max pods that can be scheduled per node.<br> - 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:<br> - kubernetes\_labels (map(string)): Map of labels to apply to the nodes. ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/<br> - kubernetes\_taints (list(object)): List of taints to apply to the nodes. ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ | <pre>list(object({<br> name = string<br> node_count = number<br> instance_type = string<br> ami_image_id = string<br> spot = bool<br> disk_size_gb = number<br> max_pods = number<br> ssh_key_pair_names = list(string)<br> kubernetes_labels = map(string)<br> kubernetes_taints = list(object({<br> key = string<br> value = string<br> effect = string<br> }))<br><br> }))</pre> | <pre>[<br> {<br> "ami_image_id": "ami-077ca19cf151a75e0",<br> "disk_size_gb": 20,<br> "instance_type": "t3a.large",<br> "kubernetes_labels": {},<br> "kubernetes_taints": [],<br> "max_pods": 110,<br> "name": "default-pool",<br> "node_count": 1,<br> "spot": false,<br> "ssh_key_pair_names": []<br> }<br>]</pre> | no |
176179
| <a name="input_peering_configs"></a> [peering\_configs](#input\_peering\_configs) | A list of maps containing VPC peering configuration details | <pre>list(object({<br> vpc_peering_connection_id = string<br> destination_cidr_block = string<br> }))</pre> | `[]` | no |
177180
| <a name="input_region"></a> [region](#input\_region) | The AWS region to deploy into | `string` | n/a | yes |

addon_coredns.tf

Lines changed: 0 additions & 15 deletions
This file was deleted.

addon_csi.tf renamed to addons.tf

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,28 @@ resource "aws_eks_addon" "ebs_csi" {
5353
configuration_values = local.csi_addon_node_tolerations
5454

5555
}
56+
57+
resource "aws_eks_addon" "coredns" {
58+
cluster_name = module.kubernetes.eks_cluster_id
59+
addon_name = "coredns"
60+
addon_version = var.coredns_version
61+
resolve_conflicts_on_create = "OVERWRITE"
62+
resolve_conflicts_on_update = "OVERWRITE"
63+
64+
service_account_role_arn = aws_iam_role.eks_addon_ebs_csi_role.arn
65+
depends_on = [module.node_pool]
66+
count = length(var.node_pools) > 0 ? 1 : 0
67+
configuration_values = local.coredns_addon_node_tolerations
68+
}
69+
70+
71+
resource "aws_eks_addon" "kube_proxy" {
72+
cluster_name = module.kubernetes.eks_cluster_id
73+
addon_name = "kube-proxy"
74+
addon_version = var.kube_proxy_version
75+
resolve_conflicts_on_create = "OVERWRITE"
76+
resolve_conflicts_on_update = "OVERWRITE"
77+
78+
depends_on = [module.node_pool]
79+
count = length(var.node_pools) > 0 ? 1 : 0
80+
}

docs/.header.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ module "captain" {
1919
eks_version = "1.28"
2020
csi_driver_version = "v1.30.0-eksbuild.1"
2121
coredns_version = "v1.10.1-eksbuild.7"
22+
kube_proxy_version = "v1.28.6-eksbuild.2"
2223
vpc_cidr_block = "10.65.0.0/26"
2324
region = "us-west-2"
2425
availability_zones = ["us-west-2a", "us-west-2b"]

tests/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ module "captain" {
44
eks_version = "1.28"
55
csi_driver_version = "v1.30.0-eksbuild.1"
66
coredns_version = "v1.10.1-eksbuild.7"
7+
kube_proxy_version = "v1.28.6-eksbuild.2"
78
vpc_cidr_block = "10.65.0.0/26"
89
region = "us-west-2"
910
availability_zones = ["us-west-2a", "us-west-2b"]

variables.tf

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,22 @@ variable "region" {
55

66
variable "csi_driver_version" {
77
type = string
8-
default = "v1.26.1-eksbuild.1"
8+
default = "v1.29.1-eksbuild.1"
99
description = "You should grab the appropriate version number from: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG.md"
1010
}
1111

1212
variable "coredns_version" {
1313
type = string
14-
default = "v1.10.1-eksbuild.6"
14+
default = "v1.10.1-eksbuild.7"
1515
description = "You should grab the appropriate version number from: https://docs.aws.amazon.com/eks/latest/userguide/managing-coredns.html"
1616
}
1717

18+
variable "kube_proxy_version" {
19+
type = string
20+
default = "v1.27.10-eksbuild.2"
21+
description = "You should grab the appropriate version number from: https://docs.aws.amazon.com/eks/latest/userguide/managing-kube-proxy.html"
22+
}
23+
1824

1925
locals {
2026

@@ -59,7 +65,7 @@ variable "availability_zones" {
5965
variable "eks_version" {
6066
type = string
6167
description = "The version of EKS to deploy"
62-
default = "1.28"
68+
default = "1.27"
6369
}
6470

6571
variable "node_pools" {

0 commit comments

Comments
 (0)