How to check the default CoreDNS configmap of a Rancher Kubernetes Engine (RKE) Kubernetes version
This document (000020036) is provided subject to the disclaimer at the end of this document.
Environment
- Rancher 2.6.x/ 2.7/2.8.x
- CoreDNS default configuration
Situation
Task
You might have modified the default configmap for CoreDNS using Rancher Kubernetes Engine's (RKE) cluster configuration YAML (cluster.yml
). In this case, you may want to know the default configmap before upgrading Kubernetes. This verification step will help you to add all of the default/mandatory parameters to the modified configmap in RKE's cluster.yml
, upon upgrade.
Pre-requisites
- Python installed.
Resolution
Download the kontainer-metadata
according to the Rancher version you are running.
Rancher 2.6.x:
curl -O https://raw.githubusercontent.com/rancher/kontainer-driver-metadata/release-v2.6/data/data.json
Rancher v2.7.x:
curl -O https://raw.githubusercontent.com/rancher/kontainer-driver-metadata/dev-v2.7/data/data.json
Rancher v2.8.x:
curl -O https://raw.githubusercontent.com/rancher/kontainer-driver-metadata/dev-v2.8/data/data.json
Get the available template list:
python -c "import sys, json; d=json.load(sys.stdin)['K8sVersionedTemplates']['coreDNS']; print (json.dumps(d,indent=4))" <data.json
Output:
{ ">=1.16.0-alpha <1.17.0-alpha": "coredns-v1.16", ">=1.17.0-alpha <1.20.15-rancher1-2": "coredns-v1.17", ">=1.20.15-rancher1-2 <1.21.0-rancher1-1": "coredns-v1.8.3-rancher2", ">=1.21.0-rancher1-1 <1.21.9-rancher1-2": "coredns-v1.8.3", ">=1.21.9-rancher1-2": "coredns-v1.8.3-rancher2", ">=1.8.0-rancher0 <1.16.0-alpha": "coredns-v1.8" }
Translation of one of the entries from the list is as follows:
">=1.21.9-rancher1-2": "coredns-v1.8.3-rancher2",
If the Kubernetes version is greater than or equal to 1.21.9-rancher1-2
, then the CoreDNS key we have to use in the next step is coredns-v1.8.3-rancher2.
python -c "import sys, json; print (json.load(sys.stdin)['K8sVersionedTemplates']['templateKeys']['coredns-v1.8.3-rancher2'])" <data.json
The configmap will be printed on the screen along with other YAML template specs associated with CoreDNS.
Sample output:
--- apiVersion: v1 kind: ConfigMap metadata: name: coredns namespace: kube-system data: Corefile: | .:53 { errors health { lameduck 5s } ready kubernetes {{.ClusterDomain}} {{ if .ReverseCIDRs }}{{ .ReverseCIDRs }}{{ else }}{{ "in-addr.arpa ip6.arpa" }}{{ end }} { pods insecure fallthrough in-addr.arpa ip6.arpa } prometheus :9153 {{- if .UpstreamNameservers }} forward . {{range $i, $v := .UpstreamNameservers}}{{if $i}} {{end}}{{.}}{{end}} {{- else }} forward . "/etc/resolv.conf" {{- end }} cache 30 loop reload loadbalance } # STUBDOMAINS - Rancher specific change ---
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
- Document ID:000020036
- Creation Date: 06-May-2021
- Modified Date:25-Jun-2024
-
- SUSE Rancher
For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com