How can I modify CoreDNS configmap before I bootstrap the cluster using kubeadm?

I need to build my on-prem Kubernetes cluster using kubeadm.

Since my environment has no DNS, I have to modify a configmap of CoreDNS so that it doesn't contain a forwarding section.

After deploying the cluster, I can edit the configmap using kubectl edit cm coredns -n kube-system, but it takes a bit of time for CoreDNS to work properly after the modification that might be a problem for my production environment.

Is it possible to edit this configmap before the execution of kubeadm init?


I don't think that it's possible to find a solution with kubeadm init, there is a similar issue in StackOverFlow for your reference.

However, consider using helm to your on-prem cluster and using Helm Charts Hooks. There are many useful annotations and one of them pre-install could be your solution.

The steps:

  • Install Helm to your on-prem cluster.
  • Write a Hook with pre-install annotation
  • Install CoreDNS using Helm and its Hook

I've given short guide with the useful links to avoid copy pasting.