Closed
Description
TL;DR
For functionality like stubdomains, we delete and recreate the kube-dns
config map. Recently we have been observing flaky errors in CI where Terraform (via kubectl-wrapper) deletes kube-dns
config map but subsequent creation via kubernetes_config_map
fails due to conflict.
module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.module.gcloud_kubectl.null_resource.run_command[0] (local-exec): Deleting default kube-dns configmap found in kube-system namespace
module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.module.gcloud_kubectl.null_resource.run_command[0] (local-exec): configmap "kube-dns" deleted
module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.module.gcloud_kubectl.null_resource.run_command[0] (local-exec): + cleanup
module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.module.gcloud_kubectl.null_resource.run_command[0] (local-exec): + rm -rf /tmp/kubectl_wrapper_13436_30091
module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.module.gcloud_kubectl.null_resource.run_command[0]: Creation complete after 7s [id=3816252981401156512]
module.example.module.gke.kubernetes_config_map.kube-dns[0]: Creating...
Error: configmaps "kube-dns" already exists
The cause seems to be that addon-manager is recreating that config map after delete which leads to the conflict. The CM has the label addonmanager.kubernetes.io/mode: EnsureExists
. Some relevant logs filtered for namespaces/kube-system/configmaps/kube-dns
io.k8s.core.v1.configmaps.delete principal_email: "gke-int-test@ci-gke.iam.gserviceaccount.com"
io.k8s.core.v1.configmaps.create principal_email: "system:addon-manager"
io.k8s.core.v1.configmaps.create principal_email: "gke-int-test@ci-gke.iam.gserviceaccount.com"
Conflict
Expected behavior
No response
Observed behavior
No response
Terraform Configuration
https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/tree/master/examples/stub_domains
Terraform Version
n/a
Additional information
No response