Skip to content

Commit f9963a8

Browse files
committed
Migrate cluster modules from map(map(string)) to map(object)
1 parent 409189c commit f9963a8

66 files changed

Lines changed: 1063 additions & 1239 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ jobs:
173173
sed -i 's/region = ""/region = "eu-west-1"/g' eks_zero_providers.tf || true
174174
175175
# EKS: set cluster_availability_zones
176-
sed -i 's/cluster_availability_zones = ""/cluster_availability_zones = "eu-west-1a,eu-west-1b"/g' eks_zero_cluster.tf || true
176+
sed -i 's/cluster_availability_zones = \[\]/cluster_availability_zones = ["eu-west-1a", "eu-west-1b"]/g' eks_zero_cluster.tf || true
177177
178178
# GKE: set project_id
179179
sed -i 's/project_id = ""/project_id = "terraform-kubestack-testing"/g' gke_zero_cluster.tf || true
@@ -182,7 +182,7 @@ jobs:
182182
sed -i 's/region = ""/region = "europe-west1"/g' gke_zero_cluster.tf || true
183183
184184
# GKE: set cluster_node_locations
185-
sed -i 's/cluster_node_locations = ""/cluster_node_locations = "europe-west1-b,europe-west1-c,europe-west1-d"/g' gke_zero_cluster.tf || true
185+
sed -i 's/cluster_node_locations = \[\]/cluster_node_locations = ["europe-west1-b", "europe-west1-c", "europe-west1-d"]/g' gke_zero_cluster.tf || true
186186
187187
- name: "Terraform init"
188188
working-directory: ./kubestack-starter-${{ matrix.starter }}

aws/_modules/eks/ingress.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "aws_route53_zone" "current" {
22
count = var.disable_default_ingress ? 0 : 1
33

4-
name = "${var.metadata_fqdn}."
4+
name = "${var.metadata.fqdn}."
55
}

aws/_modules/eks/main.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
# the eks module.
55
locals {
66
eks_tags = {
7-
"kubernetes.io/cluster/${var.metadata_name}" = "shared"
7+
"kubernetes.io/cluster/${var.metadata.name}" = "shared"
88
}
99

10-
eks_metadata_tags = merge(var.metadata_labels, local.eks_tags)
10+
eks_metadata_tags = merge(var.metadata.labels, local.eks_tags)
1111
}
1212

1313
data "aws_partition" "current" {}

aws/_modules/eks/master.tf

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
resource "aws_eks_cluster" "current" {
2-
name = var.metadata_name
2+
name = var.metadata.name
33
role_arn = aws_iam_role.master.arn
44

55
vpc_config {
66
security_group_ids = [aws_security_group.masters.id]
7-
subnet_ids = aws_subnet.current.*.id
8-
endpoint_private_access = var.cluster_endpoint_private_access
9-
endpoint_public_access = var.cluster_endpoint_public_access
10-
public_access_cidrs = var.cluster_public_access_cidrs
7+
subnet_ids = aws_subnet.current[*].id
8+
endpoint_private_access = var.vpc_config.endpoint_private_access
9+
endpoint_public_access = var.vpc_config.endpoint_public_access
10+
public_access_cidrs = var.vpc_config.public_access_cidrs
1111
}
1212

1313
dynamic "kubernetes_network_config" {
14-
for_each = var.cluster_service_cidr != null ? toset([1]) : toset([])
14+
for_each = var.kubernetes_network_config.service_ipv4_cidr != null ? toset([1]) : toset([])
1515
content {
16-
service_ipv4_cidr = var.cluster_service_cidr
16+
service_ipv4_cidr = var.kubernetes_network_config.service_ipv4_cidr
1717
}
1818
}
1919

2020
dynamic "encryption_config" {
21-
for_each = var.cluster_encryption_key_arn != null ? toset([1]) : toset([])
21+
for_each = var.encryption_config.provider_key_arn != null ? toset([1]) : toset([])
2222
content {
2323
resources = ["secrets"]
2424

2525
provider {
26-
key_arn = var.cluster_encryption_key_arn
26+
key_arn = var.encryption_config.provider_key_arn
2727
}
2828
}
2929
}
@@ -33,7 +33,7 @@ resource "aws_eks_cluster" "current" {
3333
aws_iam_role_policy_attachment.master_service_policy,
3434
]
3535

36-
version = var.cluster_version
36+
version = var.kubernetes_version
3737

3838
enabled_cluster_log_types = var.enabled_cluster_log_types
3939
}

aws/_modules/eks/node_pool.tf

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
module "node_pool" {
22
source = "./node_pool"
33

4-
metadata_labels = var.metadata_labels
4+
metadata_labels = var.metadata.labels
55
eks_metadata_tags = local.eks_metadata_tags
66

77
cluster_name = aws_eks_cluster.current.name
88
node_group_name = "default"
99

1010
role_arn = aws_iam_role.node.arn
1111

12-
subnet_ids = var.vpc_legacy_node_subnets ? aws_subnet.current.*.id : aws_subnet.node_pool.*.id
12+
subnet_ids = var.vpc_config.legacy_node_subnets ? aws_subnet.current[*].id : aws_subnet.node_pool[*].id
1313

14-
instance_types = var.instance_types
15-
desired_size = var.desired_capacity
16-
max_size = var.max_size
17-
min_size = var.min_size
14+
instance_types = var.default_node_pool != null && var.default_node_pool.instance_types != null ? toset(var.default_node_pool.instance_types) : null
15+
desired_size = var.default_node_pool != null && var.default_node_pool.desired_capacity != null ? var.default_node_pool.desired_capacity : 1
16+
max_size = var.default_node_pool != null && var.default_node_pool.max_size != null ? var.default_node_pool.max_size : 1
17+
min_size = var.default_node_pool != null && var.default_node_pool.min_size != null ? var.default_node_pool.min_size : 1
1818

19-
disk_size = var.root_device_volume_size
19+
disk_size = var.default_node_pool != null && var.default_node_pool.root_device_volume_size != null ? var.default_node_pool.root_device_volume_size : 20
2020

21-
metadata_options = var.metadata_options
21+
metadata_options = var.default_node_pool != null && var.default_node_pool.launch_template != null ? var.default_node_pool.launch_template.metadata_options : null
2222

2323
taints = var.taints
2424

25-
ami_type = var.worker_ami_type
26-
ami_release_version = var.worker_ami_release_version
25+
ami_type = var.default_node_pool != null ? var.default_node_pool.ami_type : null
26+
ami_release_version = var.default_node_pool != null ? var.default_node_pool.ami_release_version : null
2727

28-
tags = var.additional_node_tags
28+
tags = var.default_node_pool != null && var.default_node_pool.additional_node_tags != null ? var.default_node_pool.additional_node_tags : {}
2929

3030
kubernetes_version = aws_eks_cluster.current.version
3131

aws/_modules/eks/node_pool/variables.tf

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,29 +29,30 @@ variable "instance_types" {
2929
}
3030

3131
variable "desired_size" {
32-
type = string
32+
type = number
3333
description = "Desired number of worker nodes."
3434
}
3535

3636
variable "max_size" {
37-
type = string
37+
type = number
3838
description = "Maximum number of worker nodes."
3939
}
4040

4141
variable "min_size" {
42-
type = string
42+
type = number
4343
description = "Minimum number of worker nodes."
4444
}
4545

4646
variable "disk_size" {
47-
type = string
48-
default = "20"
49-
description = "Will set the volume size of the root device"
47+
type = number
48+
default = 20
49+
description = "Size in GB of node root volumes."
50+
nullable = false
5051
}
5152

5253
variable "subnet_ids" {
53-
type = list(string)
54-
description = "List of VPC subnet IDs to use for nodes."
54+
type = set(string)
55+
description = "Set of VPC subnet IDs to use for nodes."
5556
}
5657

5758
variable "depends-on-aws-auth" {
@@ -72,12 +73,14 @@ variable "tags" {
7273
type = map(string)
7374
description = "AWS tags to set on the node pool. Merged with Kubestack default tags."
7475
default = {}
76+
nullable = false
7577
}
7678

7779
variable "labels" {
7880
type = map(string)
7981
description = "Kubernetes labels to set on the nodes created by the node pool. Merged with Kubestack default labels."
8082
default = {}
83+
nullable = false
8184
}
8285

8386
variable "ami_type" {
@@ -88,7 +91,6 @@ variable "ami_type" {
8891
variable "ami_release_version" {
8992
type = string
9093
description = "AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version"
91-
default = null
9294
}
9395

9496
variable "kubernetes_version" {

aws/_modules/eks/roles_master.tf

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "aws_iam_role" "master" {
2-
name = "${var.metadata_name}-master"
2+
name = "${var.metadata.name}-master"
33

44
assume_role_policy = <<POLICY
55
{
@@ -27,4 +27,3 @@ resource "aws_iam_role_policy_attachment" "master_service_policy" {
2727
policy_arn = "arn:${data.aws_partition.current.partition}:iam::aws:policy/AmazonEKSServicePolicy"
2828
role = aws_iam_role.master.name
2929
}
30-

aws/_modules/eks/roles_worker.tf

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "aws_iam_role" "node" {
2-
name = "${var.metadata_name}-node"
2+
name = "${var.metadata.name}-node"
33

44
assume_role_policy = <<POLICY
55
{
@@ -34,7 +34,6 @@ resource "aws_iam_role_policy_attachment" "node_container_registry_ro" {
3434
}
3535

3636
resource "aws_iam_instance_profile" "nodes" {
37-
name = var.metadata_name
37+
name = var.metadata.name
3838
role = aws_iam_role.node.name
3939
}
40-

aws/_modules/eks/sg_masters.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "aws_security_group" "masters" {
2-
name = var.metadata_name
2+
name = var.metadata.name
33
description = "Cluster communication with worker nodes."
44
vpc_id = aws_vpc.current.id
55

0 commit comments

Comments
 (0)