diff --git a/agents.tf b/agents.tf index 8c3f6c9..da4c4f5 100644 --- a/agents.tf +++ b/agents.tf @@ -12,8 +12,8 @@ module "agents" { placement_group_id = hcloud_placement_group.k3s.id location = var.location server_type = each.value.server_type - subnet_id = hcloud_network_subnet.subnet[each.value.subnet].id - private_ip = cidrhost(var.network_subnets[each.value.subnet], each.value.index + 1) + ipv4_subnet_id = hcloud_network_subnet.subnet[each.value.subnet].id + private_ipv4 = cidrhost(var.network_ipv4_subnets[each.value.subnet], each.value.index + 1) labels = { "provisioner" = "terraform", "engine" = "k3s" @@ -44,7 +44,7 @@ resource "null_resource" "agents" { provisioner "file" { content = yamlencode({ node-name = module.agents[each.key].name - server = "https://${local.first_control_plane_network_ip}:6443" + server = "https://${local.first_control_plane_network_ipv4}:6443" token = random_password.k3s_token.result kubelet-arg = "cloud-provider=external" flannel-iface = "eth1" diff --git a/control_planes.tf b/control_planes.tf index 9f26677..1f7c239 100644 --- a/control_planes.tf +++ b/control_planes.tf @@ -12,8 +12,8 @@ module "control_planes" { placement_group_id = hcloud_placement_group.k3s.id location = var.location server_type = var.control_plane_server_type - subnet_id = hcloud_network_subnet.subnet["control_plane"].id - private_ip = cidrhost(var.network_subnets["control_plane"], count.index + 1) + ipv4_subnet_id = hcloud_network_subnet.subnet["control_plane"].id + private_ipv4 = cidrhost(var.network_ipv4_subnets["control_plane"], count.index + 1) labels = { "provisioner" = "terraform", diff --git a/init.tf b/init.tf index 68bfa1a..7f7e021 100644 --- a/init.tf +++ b/init.tf @@ -96,11 +96,11 @@ resource "null_resource" "kustomization" { content = templatefile( "${path.module}/templates/traefik_config.yaml.tpl", { - load_balancer_disable_ipv6 = var.load_balancer_disable_ipv6 - load_balancer_type = var.load_balancer_type - location = var.location - traefik_acme_tls = var.traefik_acme_tls - traefik_acme_email = var.traefik_acme_email + load_balancer_disable_ipv6 = var.load_balancer_disable_ipv6 + load_balancer_type = var.load_balancer_type + location = var.location + traefik_acme_tls = var.traefik_acme_tls + traefik_acme_email = var.traefik_acme_email }) destination = "/tmp/post_install/traefik.yaml" } diff --git a/locals.tf b/locals.tf index 5141bc0..08d3fd7 100644 --- a/locals.tf +++ b/locals.tf @@ -1,5 +1,5 @@ locals { - first_control_plane_network_ip = module.control_planes[0].private_ipv4_address + first_control_plane_network_ipv4 = module.control_planes[0].private_ipv4_address ssh_public_key = trimspace(file(var.public_key)) # ssh_private_key is either the contents of var.private_key or null to use a ssh agent. diff --git a/main.tf b/main.tf index d135788..190c5ce 100644 --- a/main.tf +++ b/main.tf @@ -10,11 +10,11 @@ resource "hcloud_ssh_key" "k3s" { resource "hcloud_network" "k3s" { name = "k3s" - ip_range = var.network_ip_range + ip_range = var.network_ipv4_range } resource "hcloud_network_subnet" "subnet" { - for_each = var.network_subnets + for_each = var.network_ipv4_subnets network_id = hcloud_network.k3s.id type = "cloud" network_zone = var.network_region @@ -30,7 +30,7 @@ resource "hcloud_firewall" "k3s" { protocol = "tcp" port = "any" source_ips = [ - var.network_ip_range, + var.network_ipv4_range, "127.0.0.1/32", "169.254.169.254/32", "213.239.246.1/32" @@ -41,7 +41,7 @@ resource "hcloud_firewall" "k3s" { protocol = "udp" port = "any" source_ips = [ - var.network_ip_range, + var.network_ipv4_range, "127.0.0.1/32", "169.254.169.254/32", "213.239.246.1/32" @@ -51,7 +51,7 @@ resource "hcloud_firewall" "k3s" { direction = "in" protocol = "icmp" source_ips = [ - var.network_ip_range, + var.network_ipv4_range, "127.0.0.1/32", "169.254.169.254/32", "213.239.246.1/32" diff --git a/modules/host/main.tf b/modules/host/main.tf index fc0ee44..beb8e99 100644 --- a/modules/host/main.tf +++ b/modules/host/main.tf @@ -64,7 +64,7 @@ resource "hcloud_server" "server" { } resource "hcloud_server_network" "server" { - ip = var.private_ip + ip = var.private_ipv4 server_id = hcloud_server.server.id - subnet_id = var.subnet_id + subnet_id = var.ipv4_subnet_id } diff --git a/modules/host/variables.tf b/modules/host/variables.tf index 614317f..01abaa6 100644 --- a/modules/host/variables.tf +++ b/modules/host/variables.tf @@ -54,12 +54,12 @@ variable "location" { type = string } -variable "subnet_id" { +variable "ipv4_subnet_id" { description = "The subnet id" type = string } -variable "private_ip" { +variable "private_ipv4" { description = "Private IP for the server" type = string } diff --git a/output.tf b/output.tf index 6710da1..762290d 100644 --- a/output.tf +++ b/output.tf @@ -1,16 +1,16 @@ -output "controlplanes_public_ip" { +output "control_planes_public_ipv4" { value = module.control_planes.*.ipv4_address - description = "The public IP addresses of the controlplane server." + description = "The public IPv4 addresses of the controlplane server." } -output "agents_public_ip" { +output "agents_public_ipv4" { value = [ for obj in module.agents : obj.ipv4_address ] - description = "The public IP addresses of the agent server." + description = "The public IPv4 addresses of the agent server." } -output "load_balancer_public_ip" { +output "load_balancer_public_ipv4" { description = "The public IPv4 address of the Hetzner load balancer" value = data.hcloud_load_balancer.traefik.ipv4 } diff --git a/terraform.tfvars.example b/terraform.tfvars.example index 0f7aa6c..949ed81 100644 --- a/terraform.tfvars.example +++ b/terraform.tfvars.example @@ -9,8 +9,8 @@ private_key = "/home/username/.ssh/id_ed25519" # For Hetzner server types see https://www.hetzner.com/cloud location = "fsn1" # change to `ash` for us-east Ashburn, Virginia location network_region = "eu-central" # change to `us-east` if location is ash -network_ip_range = "10.0.0.0/8" -network_subnets = { +network_ipv4_range = "10.0.0.0/8" +network_ipv4_subnets = { control_plane = "10.1.0.0/16" subnet1 = "10.2.0.0/16" subnet2 = "10.3.0.0/16" diff --git a/variables.tf b/variables.tf index 627a04e..ab836e0 100644 --- a/variables.tf +++ b/variables.tf @@ -30,12 +30,12 @@ variable "network_region" { type = string } -variable "network_ip_range" { - description = "Default IP range for network" +variable "network_ipv4_range" { + description = "Default IPv4 range for network" type = string } -variable "network_subnets" { +variable "network_ipv4_subnets" { description = "Subnets definition for default network" type = map(string) } @@ -50,7 +50,6 @@ variable "control_plane_count" { type = number } - variable "load_balancer_type" { description = "Default load balancer server type" type = string