diff --git a/terraform/modules/k8s-cluster/helm.tf b/terraform/modules/k8s-cluster/helm.tf index fdb2e6a..8daff5d 100644 --- a/terraform/modules/k8s-cluster/helm.tf +++ b/terraform/modules/k8s-cluster/helm.tf @@ -17,6 +17,21 @@ resource "null_resource" "install_setup" { depends_on = [null_resource.join_nodes, hcloud_server.manager] } +resource "inwx_nameserver_record" "argocd_a" { + domain = var.domain + name = format("%s.%s", "argocd", local.kube_api_server_domain) + content = var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv4 : hcloud_primary_ip.ipv4_manager_address[0].ip_address + type = "A" + ttl = 3600 +} +resource "inwx_nameserver_record" "argocd_aaaa" { + domain = var.domain + name = format("%s.%s", "argocd", local.kube_api_server_domain) + content = var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv6 : hcloud_primary_ip.ipv6_manager_address[0].ip_address + type = "AAAA" + ttl = 3600 +} + resource "null_resource" "install_argocd_single" { count = var.number_nodes < 3 ? 1 : 0 diff --git a/terraform/modules/k8s-cluster/inwx.tf b/terraform/modules/k8s-cluster/inwx.tf deleted file mode 100644 index 5e8e3fe..0000000 --- a/terraform/modules/k8s-cluster/inwx.tf +++ /dev/null @@ -1,29 +0,0 @@ -resource "inwx_nameserver_record" "kube_api_server_a" { - domain = var.domain - name = local.kube_api_server_domain - content = var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv4 : hcloud_primary_ip.ipv4_manager_address[0].ip_address - type = "A" - ttl = 3600 -} -resource "inwx_nameserver_record" "kube_api_server_aaaa" { - domain = var.domain - name = local.kube_api_server_domain - content = var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv6 : hcloud_primary_ip.ipv6_manager_address[0].ip_address - type = "AAAA" - ttl = 3600 -} - -resource "inwx_nameserver_record" "argocd_a" { - domain = var.domain - name = format("%s.%s", "argocd", local.kube_api_server_domain) - content = var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv4 : hcloud_primary_ip.ipv4_manager_address[0].ip_address - type = "A" - ttl = 3600 -} -resource "inwx_nameserver_record" "argocd_aaaa" { - domain = var.domain - name = format("%s.%s", "argocd", local.kube_api_server_domain) - content = var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv6 : hcloud_primary_ip.ipv6_manager_address[0].ip_address - type = "AAAA" - ttl = 3600 -} \ No newline at end of file diff --git a/terraform/modules/k8s-cluster/main.tf b/terraform/modules/k8s-cluster/main.tf index 01fb878..4c4962e 100644 --- a/terraform/modules/k8s-cluster/main.tf +++ b/terraform/modules/k8s-cluster/main.tf @@ -35,3 +35,17 @@ resource "hcloud_load_balancer_target" "nodes" { use_private_ip = true } +resource "inwx_nameserver_record" "kube_api_server_a" { + domain = var.domain + name = local.kube_api_server_domain + content = var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv4 : hcloud_primary_ip.ipv4_manager_address[0].ip_address + type = "A" + ttl = 3600 +} +resource "inwx_nameserver_record" "kube_api_server_aaaa" { + domain = var.domain + name = local.kube_api_server_domain + content = var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv6 : hcloud_primary_ip.ipv6_manager_address[0].ip_address + type = "AAAA" + ttl = 3600 +} \ No newline at end of file diff --git a/terraform/modules/k8s-cluster/manager-node.tf b/terraform/modules/k8s-cluster/manager-node.tf index a575321..c54ca60 100644 --- a/terraform/modules/k8s-cluster/manager-node.tf +++ b/terraform/modules/k8s-cluster/manager-node.tf @@ -1,3 +1,13 @@ +resource "inwx_nameserver_record" "manager_aaaa" { + count = var.number_nodes + + domain = var.domain + name = format("%s-%d.%s", "node", count.index, local.kube_api_server_domain) + content = hcloud_primary_ip.ipv6_manager_address[count.index].ip_address + type = "AAAA" + ttl = 3600 +} + resource "hcloud_primary_ip" "ipv4_manager_address" { count = var.create_loadbalancer ? 0 : var.number_nodes @@ -9,7 +19,7 @@ resource "hcloud_primary_ip" "ipv4_manager_address" { } resource "hcloud_primary_ip" "ipv6_manager_address" { - count = var.create_loadbalancer ? 0 : var.number_nodes + count = var.number_nodes name = format("%s_%s_%s_%d", "k8s", var.cluster_role, "ipv6", count.index) datacenter = element(var.locations.*.datacenter_name, count.index) @@ -37,8 +47,8 @@ resource "hcloud_server" "manager" { public_net { ipv4_enabled = var.create_loadbalancer ? false : true ipv4 = var.create_loadbalancer ? null : hcloud_primary_ip.ipv4_manager_address[count.index].id - ipv6_enabled = var.create_loadbalancer ? false : true - ipv6 = var.create_loadbalancer ? null : hcloud_primary_ip.ipv6_manager_address[count.index].id + ipv6_enabled = true + ipv6 = hcloud_primary_ip.ipv6_manager_address[count.index].id } ignore_remote_firewall_ids = false keep_disk = false diff --git a/terraform/modules/k8s-cluster/worker-node.tf b/terraform/modules/k8s-cluster/worker-node.tf index 82272a5..c5f7464 100644 --- a/terraform/modules/k8s-cluster/worker-node.tf +++ b/terraform/modules/k8s-cluster/worker-node.tf @@ -1,3 +1,23 @@ +resource "inwx_nameserver_record" "worker_aaaa" { + count = var.number_worker_nodes + + domain = var.domain + name = format("%s-%d.%s", "node", count.index, local.kube_api_server_domain) + content = hcloud_primary_ip.ipv6_worker_address[count.index].ip_address + type = "AAAA" + ttl = 3600 +} + +resource "hcloud_primary_ip" "ipv6_worker_address" { + count = var.number_worker_nodes + + name = format("%s_%s_%s_%d", "k8s", var.cluster_role, "ipv6", count.index) + datacenter = element(var.locations.*.datacenter_name, count.index) + type = "ipv6" + assignee_type = "server" + auto_delete = false +} + resource "hcloud_server_network" "worker_private" { count = var.number_worker_nodes @@ -16,7 +36,8 @@ resource "hcloud_server" "worker" { location = element(var.locations.*.name, count.index) public_net { ipv4_enabled = false - ipv6_enabled = false + ipv6_enabled = true + ipv6 = hcloud_primary_ip.ipv6_worker_address[count.index].id } ignore_remote_firewall_ids = false keep_disk = false