Skip to content

Flaky CI failures due to kube-dns CM conflict #1197

Closed
@bharathkkb

Description

@bharathkkb

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

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions