Use sequential forward policy in coredns
If possible, dns should be resolved through dnsmasq, in order to allow proper resolution of platform (e.g. controller) hostnames, which would fail to resolve from external nameservers. This commit handles setting sequential policy over an upgrade. Closes-Bug: 1821026 Change-Id: Ib9b09bcfe2b84226ef25cfaaa2fa9d1f8051409e Signed-off-by: Joseph Richard <joseph.richard@windriver.com>
This commit is contained in:
parent
67e2a78700
commit
7639db0d71
|
@ -0,0 +1,89 @@
|
|||
#!/bin/bash
|
||||
# Copyright (c) 2020 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# This script will update subcloud_status table in dcmanager database
|
||||
# in preparation for upgrade to release 20.06.
|
||||
#
|
||||
# Subcloud load audit, introduced in release 20.06, entails creating
|
||||
# load status record when a subcloud is added to the database and
|
||||
# having the subcloud load status updated by dcmanager audit task.
|
||||
# The script adds a load status record for each of the existing
|
||||
# subclouds to ensure successful startup and operation of dcmanager
|
||||
# when the system controller hosts are upgraded to 20.06.
|
||||
#
|
||||
# This script can be removed in the release that follows 20.06.
|
||||
#
|
||||
|
||||
NAME=$(basename $0)
|
||||
|
||||
# The migration scripts are passed these parameters:
|
||||
FROM_RELEASE=$1
|
||||
TO_RELEASE=$2
|
||||
ACTION=$3
|
||||
|
||||
# This will log to /var/log/platform.log
|
||||
function log {
|
||||
logger -p local1.info $1
|
||||
}
|
||||
|
||||
function create_configmap {
|
||||
cat > /etc/kubernetes/coredns.yaml <<EOF
|
||||
# Based on https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/coredns/coredns.yaml.sed#L54-L82
|
||||
# Hardcode dns_domain to cluster.local.
|
||||
# Change policy from default of random to sequential, in order to attempt to
|
||||
# resolve domain names with dnsmasq first.
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: coredns
|
||||
namespace: kube-system
|
||||
labels:
|
||||
addonmanager.kubernetes.io/mode: EnsureExists
|
||||
data:
|
||||
Corefile: |
|
||||
.:53 {
|
||||
errors
|
||||
health {
|
||||
lameduck 5s
|
||||
}
|
||||
ready
|
||||
kubernetes cluster.local in-addr.arpa ip6.arpa {
|
||||
pods insecure
|
||||
fallthrough in-addr.arpa ip6.arpa
|
||||
ttl 30
|
||||
}
|
||||
prometheus :9153
|
||||
forward . /etc/resolv.conf {
|
||||
policy sequential
|
||||
}
|
||||
cache 30
|
||||
loop
|
||||
reload
|
||||
loadbalance
|
||||
}
|
||||
EOF
|
||||
|
||||
}
|
||||
|
||||
function apply_configmap {
|
||||
kubectl --kubeconfig=/etc/kubernetes/admin.conf apply -f /etc/kubernetes/coredns.yaml
|
||||
ret=$?
|
||||
return $ret
|
||||
}
|
||||
|
||||
|
||||
if [ "$TO_RELEASE" == "20.06" ] && [ "$ACTION" == "activate" ]; then
|
||||
log "$NAME: Migrating FROM release $FROM_RELEASE"
|
||||
create_configmap
|
||||
apply_configmap
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ]; then
|
||||
log "$NAME: Applying CoreDNS ConfigMap failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue