Provide dns record for each node and install argocd in high availability from 3 nodes onwards

This commit is contained in:
2023-11-03 10:32:45 +01:00
parent 766de7e9a8
commit 0916e6f53c
5 changed files with 64 additions and 33 deletions
+15
View File
@@ -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
-29
View File
@@ -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
}
+14
View File
@@ -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
}
+13 -3
View File
@@ -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
+22 -1
View File
@@ -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