Skip to content

Commit 9288929

Browse files
committed
[terraform] Add random variables to terrraform resource names
1 parent 5f1950e commit 9288929

File tree

9 files changed

+45
-17
lines changed

9 files changed

+45
-17
lines changed

install/infra/modules/aks/kubernetes.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ resource "azurerm_role_assignment" "k8s_reader" {
1515
}
1616

1717
resource "azurerm_kubernetes_cluster" "k8s" {
18-
name = format(local.name_format, local.location, "primary")
18+
name = format(local.name_format, "cluster")
1919
location = azurerm_resource_group.gitpod.location
2020
resource_group_name = azurerm_resource_group.gitpod.name
2121
dns_prefix = "gitpod"

install/infra/modules/aks/local.tf

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,12 @@ locals {
88
})
99
dns_enabled = var.domain_name != null
1010
name_format = join("-", [
11-
"gitpod-test",
12-
"%s", # region
11+
"test",
1312
"%s", # name
1413
local.workspace_name
1514
])
1615
name_format_global = join("-", [
17-
"gitpod-test",
18-
"%s", # name
16+
"sh-test",
1917
local.workspace_name
2018
])
2119
workspace_name = replace(terraform.workspace, "/[\\W\\-]/", "") # alphanumeric workspace name

install/infra/modules/aks/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ provider "azurerm" {
1414
data "azurerm_client_config" "current" {}
1515

1616
resource "azurerm_resource_group" "gitpod" {
17-
name = format(local.name_format_global, local.location)
17+
name = local.name_format_global
1818
location = var.location
1919
}

install/infra/modules/aks/monitoring.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "azurerm_log_analytics_workspace" "monitoring" {
2-
name = format(local.name_format, var.location, "monitoring")
2+
name = format(local.name_format, "monitoring")
33
location = azurerm_resource_group.gitpod.location
44
resource_group_name = azurerm_resource_group.gitpod.name
55
sku = "PerGB2018"

install/infra/modules/aks/networks.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
resource "azurerm_virtual_network" "network" {
2-
name = format(local.name_format, local.location, "network")
2+
name = format(local.name_format, "network")
33
location = azurerm_resource_group.gitpod.location
44
resource_group_name = azurerm_resource_group.gitpod.name
55
address_space = ["10.2.0.0/16"]
66
}
77

88
resource "azurerm_subnet" "network" {
9-
name = format(local.name_format, local.location, "network")
9+
name = format(local.name_format, "network")
1010
resource_group_name = azurerm_resource_group.gitpod.name
1111
virtual_network_name = azurerm_virtual_network.network.name
1212
address_prefixes = ["10.2.1.0/24"]

install/infra/modules/eks/kubernetes.tf

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,13 @@ resource "aws_security_group" "nodes" {
6464
}
6565
}
6666

67+
resource "random_string" "ng_role_suffix" {
68+
upper = false
69+
lower = true
70+
special = false
71+
length = 4
72+
}
73+
6774
module "eks" {
6875
source = "terraform-aws-modules/eks/aws"
6976
version = "18.8.1"
@@ -91,6 +98,7 @@ module "eks" {
9198
eks_managed_node_group_defaults = {
9299
ami_type = "CUSTOM"
93100
iam_role_attach_cni_policy = true
101+
iam_role_use_name_prefix = false
94102
ami_id = var.image_id
95103
enable_bootstrap_user_data = true
96104
vpc_security_group_ids = [aws_security_group.nodes.id]
@@ -102,6 +110,7 @@ module "eks" {
102110
enable_bootstrap_user_data = true
103111
instance_types = [var.service_machine_type]
104112
name = "service-${var.cluster_name}"
113+
iam_role_name = format("%s-%s", substr("${var.cluster_name}-svc-ng", 0, 58), random_string.ng_role_suffix.result)
105114
subnet_ids = module.vpc.public_subnets
106115
min_size = 1
107116
max_size = 4
@@ -142,6 +151,7 @@ module "eks" {
142151
Workspaces = {
143152
instance_types = [var.workspace_machine_type]
144153
name = "ws-${var.cluster_name}"
154+
iam_role_name = format("%s-%s", substr("${var.cluster_name}-ws-ng", 0, 58), random_string.ng_role_suffix.result)
145155
subnet_ids = module.vpc.public_subnets
146156
min_size = 1
147157
max_size = 50

install/infra/modules/gke/main.tf

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,15 @@ resource "google_container_node_pool" "workspaces" {
152152
}
153153
}
154154

155+
resource "random_string" "random" {
156+
length = 4
157+
upper = false
158+
special = false
159+
}
160+
155161
resource "google_sql_database_instance" "gitpod" {
156162
count = var.enable_external_database ? 1 : 0
157-
name = "sql-${var.cluster_name}"
163+
name = "sql-${var.cluster_name}-${random_string.random.result}" // we cannot reuse the same name for 1 week
158164
database_version = "MYSQL_5_7"
159165
region = var.region
160166
settings {

install/infra/modules/k3s/main.tf

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,14 @@ resource "google_dns_record_set" "gitpod-dns-3" {
172172
rrdatas = [google_compute_instance.k3s_master_instance.network_interface[0].access_config[0].nat_ip]
173173
}
174174

175+
resource "random_string" "random" {
176+
length = 4
177+
upper = false
178+
special = false
179+
}
180+
175181
resource "google_sql_database_instance" "gitpod" {
176-
name = "sql-${var.name}"
182+
name = "sql-${var.name}-${random_string.random.result}"
177183
database_version = "MYSQL_5_7"
178184
region = var.gcp_region
179185
settings {

install/tests/Makefile

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ gcp-kubeconfig:
5353
## azure-kubeconfig: Get the kubeconfig configuration for Azure AKS
5454
azure-kubeconfig:
5555
export KUBECONFIG=${KUBECONFIG} && \
56-
export resource=$$(echo "$$TF_VAR_TEST_ID" | sed "s/[\\W\\-]//") && \
57-
az aks get-credentials --name gitpod-test-nor-primary-$$resource --resource-group gitpod-test-nor-$$resource --file ${KUBECONFIG} || echo "No cluster present"
56+
export resource=$$(echo "$$TF_VAR_TEST_ID" | sed "s/[\\W\\-]//g") && \
57+
az aks get-credentials --name test-cluster-$$resource --resource-group sh-test-$$resource --file ${KUBECONFIG} || echo "No cluster present"
5858

5959
## aws-kubeconfig: Get the kubeconfig configuration for AWS EKS
6060
aws-kubeconfig:
@@ -67,7 +67,9 @@ aws-kubeconfig:
6767
gke-standard-cluster: check-env-cluster-version
6868
terraform init --upgrade && \
6969
terraform workspace new $(TF_VAR_TEST_ID) || $(MAKE) select-workspace && \
70-
terraform apply -target=module.gke -var kubeconfig=${KUBECONFIG} --auto-approve
70+
rm -f ${KUBECONFIG} && \
71+
$(MAKE) get-kubeconfig && \
72+
[[ -f ${KUBECONFIG} ]] || terraform apply -target=module.gke -var kubeconfig=${KUBECONFIG} --auto-approve
7173
@echo "Done creating GKE cluster"
7274

7375
ami_id_121 := "ami-060637af2651bc8bb"
@@ -82,15 +84,19 @@ eks-standard-cluster: ami_id = $(if $(ami_id_${TF_VAR_cluster_version//.}),$(ami
8284
eks-standard-cluster: check-env-cluster-version
8385
terraform init --upgrade && \
8486
terraform workspace new $(TF_VAR_TEST_ID) || $(MAKE) select-workspace && \
85-
terraform apply -target=module.eks -var kubeconfig=${KUBECONFIG} -var eks_node_image_id=${ami_id} --auto-approve
87+
rm -f ${KUBECONFIG} && \
88+
$(MAKE) get-kubeconfig && \
89+
[[ -f ${KUBECONFIG} ]] || terraform apply -target=module.eks -var kubeconfig=${KUBECONFIG} -var eks_node_image_id=${ami_id} --auto-approve
8690
@echo "Done creating EKS cluster"
8791

8892
.PHONY:
8993
## aks-standard-cluster: Creates an AKS cluster
9094
aks-standard-cluster: check-env-cluster-version
9195
terraform init --upgrade && \
9296
terraform workspace new $(TF_VAR_TEST_ID) || $(MAKE) select-workspace && \
93-
terraform apply -target=module.aks -var kubeconfig=${KUBECONFIG} --auto-approve
97+
rm -f ${KUBECONFIG} && \
98+
$(MAKE) get-kubeconfig && \
99+
[[ -f ${KUBECONFIG} ]] || terraform apply -target=module.aks -var kubeconfig=${KUBECONFIG} --auto-approve
94100
@echo "Done creating AKS cluster"
95101

96102
.PHONY:
@@ -122,7 +128,9 @@ k3s-standard-cluster: image_id = $(if $(image_id_$(os_version)),$(image_id_$(os_
122128
k3s-standard-cluster: check-env-cluster-version
123129
terraform init --upgrade && \
124130
terraform workspace new $(TF_VAR_TEST_ID) || $(MAKE) select-workspace && \
125-
terraform apply -target=module.k3s -var kubeconfig=${KUBECONFIG} -var k3s_node_image_id=${image_id} --auto-approve && \
131+
rm -f ${KUBECONFIG} && \
132+
$(MAKE) get-kubeconfig && \
133+
[[ -f ${KUBECONFIG} ]] || terraform apply -target=module.k3s -var kubeconfig=${KUBECONFIG} -var k3s_node_image_id=${image_id} --auto-approve && \
126134
$(MAKE) upload-kubeconfig-to-gcp # we upload the file to GCP since we cannot retrieve the file against without SSHing to the master
127135
@echo "Done creating k3s cluster"
128136

0 commit comments

Comments
 (0)