adamant-kite-43734
10/30/2024, 12:43 PMbumpy-tomato-36167
10/30/2024, 2:19 PMfreezing-ability-583
10/30/2024, 4:38 PMbumpy-tomato-36167
10/30/2024, 4:41 PMresource "kubernetes_namespace" "cattle-system" {
metadata {
name = "cattle-system"
}
lifecycle {
ignore_changes = [
metadata,
]
}
provisioner "local-exec" {
command = <<-EOT
kubectl get namespace "cattle-system" -o json \
| tr -d "\n" \
| sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" \
| kubectl replace --raw /api/v1/namespaces/cattle-system/finalize -f -
EOT
when = destroy
}
provisioner "local-exec" {
command = <<-EOT
sleep 15
EOT
when = destroy
}
}
bumpy-tomato-36167
10/30/2024, 4:42 PMfreezing-ability-583
11/06/2024, 8:36 AMfreezing-ability-583
11/06/2024, 8:38 AMcreate-ns:
desc: Create the k8s namespace if it doesn't exist
deps: [echo-vars]
requires:
vars:
- KUBE_CONTEXT_HARVESTER
- KUBE_CONTEXT_K8S_CLUSTER
- ENV
cmds:
- |
if ! kubectl get namespace {{.KUBE_CONTEXT_K8S_CLUSTER}} --context {{.KUBE_CONTEXT_HARVESTER}}; then
kubectl create namespace {{.KUBE_CONTEXT_K8S_CLUSTER}} --context {{.KUBE_CONTEXT_HARVESTER}}
echo "Namespace '{{.KUBE_CONTEXT_K8S_CLUSTER}}' created."
else
echo "Namespace '{{.KUBE_CONTEXT_K8S_CLUSTER}}' already exists."
fi
destroy-ns:
desc: Delete the k8s namespace if it's empty
deps: [echo-vars]
requires:
vars:
- KUBE_CONTEXT_HARVESTER
- KUBE_CONTEXT_K8S_CLUSTER
- ENV
cmds:
- |
if [[ -z $(kubectl get all --namespace {{.KUBE_CONTEXT_K8S_CLUSTER}} --context {{.KUBE_CONTEXT_HARVESTER}} -o name) ]]; then
kubectl delete namespace {{.KUBE_CONTEXT_K8S_CLUSTER}} --context {{.KUBE_CONTEXT_HARVESTER}}
echo "Namespace '{{.KUBE_CONTEXT_K8S_CLUSTER}}' deleted because it was empty."
else
echo "Namespace '{{.KUBE_CONTEXT_K8S_CLUSTER}}' is not empty; skipping deletion."
fi
then have it as dependencies in the tasks to apply and destroy