mirror of
https://github.com/2martens/terraform.git
synced 2026-10-17 19:26:51 +02:00
Provide dns record for each node and install argocd in high availability from 3 nodes onwards
This commit is contained in:
@@ -17,6 +17,21 @@ resource "null_resource" "install_setup" {
|
|||||||
depends_on = [null_resource.join_nodes, hcloud_server.manager]
|
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" {
|
resource "null_resource" "install_argocd_single" {
|
||||||
count = var.number_nodes < 3 ? 1 : 0
|
count = var.number_nodes < 3 ? 1 : 0
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
|
||||||
@@ -35,3 +35,17 @@ resource "hcloud_load_balancer_target" "nodes" {
|
|||||||
use_private_ip = true
|
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
|
||||||
|
}
|
||||||
@@ -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" {
|
resource "hcloud_primary_ip" "ipv4_manager_address" {
|
||||||
count = var.create_loadbalancer ? 0 : var.number_nodes
|
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" {
|
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)
|
name = format("%s_%s_%s_%d", "k8s", var.cluster_role, "ipv6", count.index)
|
||||||
datacenter = element(var.locations.*.datacenter_name, count.index)
|
datacenter = element(var.locations.*.datacenter_name, count.index)
|
||||||
@@ -37,8 +47,8 @@ resource "hcloud_server" "manager" {
|
|||||||
public_net {
|
public_net {
|
||||||
ipv4_enabled = var.create_loadbalancer ? false : true
|
ipv4_enabled = var.create_loadbalancer ? false : true
|
||||||
ipv4 = var.create_loadbalancer ? null : hcloud_primary_ip.ipv4_manager_address[count.index].id
|
ipv4 = var.create_loadbalancer ? null : hcloud_primary_ip.ipv4_manager_address[count.index].id
|
||||||
ipv6_enabled = var.create_loadbalancer ? false : true
|
ipv6_enabled = true
|
||||||
ipv6 = var.create_loadbalancer ? null : hcloud_primary_ip.ipv6_manager_address[count.index].id
|
ipv6 = hcloud_primary_ip.ipv6_manager_address[count.index].id
|
||||||
}
|
}
|
||||||
ignore_remote_firewall_ids = false
|
ignore_remote_firewall_ids = false
|
||||||
keep_disk = false
|
keep_disk = false
|
||||||
|
|||||||
@@ -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" {
|
resource "hcloud_server_network" "worker_private" {
|
||||||
count = var.number_worker_nodes
|
count = var.number_worker_nodes
|
||||||
|
|
||||||
@@ -16,7 +36,8 @@ resource "hcloud_server" "worker" {
|
|||||||
location = element(var.locations.*.name, count.index)
|
location = element(var.locations.*.name, count.index)
|
||||||
public_net {
|
public_net {
|
||||||
ipv4_enabled = false
|
ipv4_enabled = false
|
||||||
ipv6_enabled = false
|
ipv6_enabled = true
|
||||||
|
ipv6 = hcloud_primary_ip.ipv6_worker_address[count.index].id
|
||||||
}
|
}
|
||||||
ignore_remote_firewall_ids = false
|
ignore_remote_firewall_ids = false
|
||||||
keep_disk = false
|
keep_disk = false
|
||||||
|
|||||||
Reference in New Issue
Block a user