diff --git a/main.tf b/main.tf index 3e71a22..cbab0cf 100644 --- a/main.tf +++ b/main.tf @@ -158,3 +158,30 @@ data "hcloud_load_balancer" "traefik" { depends_on = [null_resource.kustomization] } + + +resource "null_resource" "destroy_traefik_loadbalancer" { + # this only gets triggered before total destruction of the cluster, but when the necessary elements to run the commands are still available + triggers = { + kustomization_id = null_resource.kustomization.id + } + + # Important when issuing terraform destroy, otherwise the LB will not let the network get deleted + provisioner "local-exec" { + when = destroy + command = <<-EOT + kubectl -n kube-system delete service traefik --kubeconfig ${path.module}/kubeconfig.yaml + EOT + on_failure = continue + } + + depends_on = [ + local_file.kubeconfig, + null_resource.control_planes[0], + hcloud_network_subnet.k3s, + hcloud_network.k3s, + hcloud_firewall.k3s, + hcloud_placement_group.k3s, + hcloud_ssh_key.k3s + ] +} diff --git a/modules/host/locals.tf b/modules/host/locals.tf index 5a61b2a..0547e70 100644 --- a/modules/host/locals.tf +++ b/modules/host/locals.tf @@ -65,7 +65,7 @@ locals { rpm --import https://rpm.rancher.io/public.key zypper refresh zypper --gpg-auto-import-keys install -y https://rpm.rancher.io/k3s/stable/common/microos/noarch/k3s-selinux-0.4-1.sle.noarch.rpm -udevadm settle +udevadm settle || true EOF }