From e6b8249846ce2a9f0b41ad5ecb16d16691909f03 Mon Sep 17 00:00:00 2001 From: Karim Naufal Date: Sat, 5 Mar 2022 05:33:29 +0100 Subject: [PATCH] made cluster name prefix configurable and tweaked ways the agents random pets are created small tweaks small tweaks --- .gitignore | 2 +- agents.tf | 6 +++--- control_planes.tf | 2 +- init.tf | 2 +- main.tf | 11 ++++++----- terraform.tfvars.example | 3 +++ variables.tf | 6 ++++++ 7 files changed, 21 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 5f02e99..6c2542f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ kubeconfig.yaml-e terraform.tfvars plans-custom.yaml traefik-custom.yaml -kured-custom.yaml \ No newline at end of file +kured-custom.yaml diff --git a/agents.tf b/agents.tf index 54e6941..4232b41 100644 --- a/agents.tf +++ b/agents.tf @@ -1,6 +1,6 @@ resource "random_pet" "agents" { - for_each = local.agent_nodepools - length = 1 + count = length(local.agent_nodepools) + length = 1 } module "agents" { @@ -8,7 +8,7 @@ module "agents" { for_each = local.agent_nodepools - name = var.use_cluster_name_in_node_name ? "k3s-${random_pet.cluster.id}-${each.value.nodepool_name}-${random_pet.agents[each.key].id}" : "${each.value.nodepool_name}-${random_pet.agents[each.key].id}" + name = var.use_cluster_name_in_node_name ? "${random_pet.cluster.id}-${each.value.nodepool_name}-${random_pet.agents[each.value.index].id}" : "${each.value.nodepool_name}-${random_pet.agents[each.value.index].id}" ssh_keys = [hcloud_ssh_key.k3s.id] public_key = var.public_key private_key = var.private_key diff --git a/control_planes.tf b/control_planes.tf index 8c5b633..ab68b8d 100644 --- a/control_planes.tf +++ b/control_planes.tf @@ -7,7 +7,7 @@ module "control_planes" { source = "./modules/host" count = var.control_plane_count - name = var.use_cluster_name_in_node_name ? "k3s-${random_pet.cluster.id}-control-plane-${random_pet.control_planes[count.index].id}" : "control-plane-${random_pet.control_planes[count.index].id}" + name = var.use_cluster_name_in_node_name ? "${random_pet.cluster.id}-control-plane-${random_pet.control_planes[count.index].id}" : "control-plane-${random_pet.control_planes[count.index].id}" ssh_keys = [hcloud_ssh_key.k3s.id] public_key = var.public_key private_key = var.private_key diff --git a/init.tf b/init.tf index c09b428..8d42dbc 100644 --- a/init.tf +++ b/init.tf @@ -94,7 +94,7 @@ resource "null_resource" "kustomization" { content = local.is_single_node_cluster ? "" : templatefile( "${path.module}/templates/traefik_config.yaml.tpl", { - name = "k3s-${random_pet.cluster.id}-traefik" + name = "${random_pet.cluster.id}-traefik" load_balancer_disable_ipv6 = var.load_balancer_disable_ipv6 load_balancer_type = var.load_balancer_type location = var.location diff --git a/main.tf b/main.tf index 2c14ef7..8254f1c 100644 --- a/main.tf +++ b/main.tf @@ -1,5 +1,6 @@ resource "random_pet" "cluster" { length = 1 + prefix = var.cluster_prefix } resource "random_password" "k3s_token" { @@ -8,12 +9,12 @@ resource "random_password" "k3s_token" { } resource "hcloud_ssh_key" "k3s" { - name = "k3s-${random_pet.cluster.id}" + name = random_pet.cluster.id public_key = local.ssh_public_key } resource "hcloud_network" "k3s" { - name = "k3s-${random_pet.cluster.id}" + name = random_pet.cluster.id ip_range = var.network_ipv4_range } @@ -26,7 +27,7 @@ resource "hcloud_network_subnet" "subnet" { } resource "hcloud_firewall" "k3s" { - name = "k3s-${random_pet.cluster.id}" + name = random_pet.cluster.id dynamic "rule" { for_each = concat(local.base_firewall_rules, var.extra_firewall_rules) @@ -41,7 +42,7 @@ resource "hcloud_firewall" "k3s" { } resource "hcloud_placement_group" "k3s" { - name = "k3s-${random_pet.cluster.id}" + name = random_pet.cluster.id type = "spread" labels = { "provisioner" = "terraform", @@ -51,7 +52,7 @@ resource "hcloud_placement_group" "k3s" { data "hcloud_load_balancer" "traefik" { count = local.is_single_node_cluster ? 0 : 1 - name = "k3s-${random_pet.cluster.id}-traefik" + name = "${random_pet.cluster.id}-traefik" depends_on = [null_resource.kustomization] } diff --git a/terraform.tfvars.example b/terraform.tfvars.example index b732636..8959aab 100644 --- a/terraform.tfvars.example +++ b/terraform.tfvars.example @@ -80,6 +80,9 @@ load_balancer_type = "lb11" # Whether to use the cluster name in the node name, i.e. add the prefix k3s-(cluster_name)- to the nodes? The default is "true". # use_cluster_name_in_node_name = false +# Prefix for the cluster name, by default "k3s" +# cluster_prefix = "" + # Adding extra firewall rules, like opening a port # In this example with allow port TCP 5432 for a Postgres service we will open via a nodeport # More info on the format here https://registry.terraform.io/providers/hetznercloud/hcloud/latest/docs/resources/firewall diff --git a/variables.tf b/variables.tf index 029ca59..a9dee31 100644 --- a/variables.tf +++ b/variables.tf @@ -126,3 +126,9 @@ variable "use_cluster_name_in_node_name" { default = true description = "Whether to use the cluster name in the node name" } + +variable "cluster_prefix" { + type = string + default = "k3s" + description = "Prefix for the cluster name" +}