From ca7eed7ac09fc02d2feca32acf951ca9c59f56f0 Mon Sep 17 00:00:00 2001 From: Mohammed Naser Date: Thu, 27 Jun 2019 17:35:50 -0400 Subject: [PATCH] k8s: stop introspecting instance name We kept introspecting the name of the instance with the assumption that the network always existed under .novalocal This is not always the case, with certain variables changed inside Neutron it is possible to control this, therefore, leading in failing deploys. With this change, we pass the instance name directly to the cluster and therefore we always have the accurate name. Task: 36160 Story: 2006371 Change-Id: I2ba32844b822ffc14da043e6ef7d071bb62a22ee (cherry picked from commit 2f2d05c826a35dbc89199f49560bb68cd14f49f4) --- .../kubernetes/fragments/configure-kubernetes-master.sh | 8 +++----- .../kubernetes/fragments/configure-kubernetes-minion.sh | 9 +++------ .../templates/kubernetes/fragments/make-cert-client.sh | 3 +-- .../common/templates/kubernetes/fragments/make-cert.sh | 1 - .../kubernetes/fragments/write-heat-params-master.yaml | 1 + .../kubernetes/fragments/write-heat-params.yaml | 1 + .../templates/fragments/enable-kubelet-master.yaml | 4 +--- .../templates/fragments/enable-kubelet-minion.yaml | 4 +--- .../k8s_fedora_atomic_v1/templates/kubemaster.yaml | 1 + .../k8s_fedora_atomic_v1/templates/kubeminion.yaml | 1 + 10 files changed, 13 insertions(+), 20 deletions(-) diff --git a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh index 48017e5206..ff9d183256 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh @@ -157,8 +157,7 @@ sed -i ' sed -i '/^KUBE_SCHEDULER_ARGS=/ s/=.*/="--leader-elect=true"/' /etc/kubernetes/scheduler mkdir -p /etc/kubernetes/manifests -HOSTNAME_OVERRIDE=$(hostname --short | sed 's/\.novalocal//') -KUBELET_ARGS="--register-node=true --pod-manifest-path=/etc/kubernetes/manifests --cadvisor-port=0 --hostname-override=${HOSTNAME_OVERRIDE}" +KUBELET_ARGS="--register-node=true --pod-manifest-path=/etc/kubernetes/manifests --cadvisor-port=0 --hostname-override=${INSTANCE_NAME}" KUBELET_ARGS="${KUBELET_ARGS} --pod-infra-container-image=${CONTAINER_INFRA_PREFIX:-gcr.io/google_containers/}pause:3.0" KUBELET_ARGS="${KUBELET_ARGS} --cluster_dns=${DNS_SERVICE_IP} --cluster_domain=${DNS_CLUSTER_DOMAIN}" KUBELET_ARGS="${KUBELET_ARGS} --volume-plugin-dir=/var/lib/kubelet/volumeplugins" @@ -182,7 +181,6 @@ KUBELET_ARGS="${KUBELET_ARGS} --register-with-taints=CriticalAddonsOnly=True:NoS KUBELET_ARGS="${KUBELET_ARGS} --node-labels=node-role.kubernetes.io/master=\"\"" KUBELET_KUBECONFIG=/etc/kubernetes/kubelet-config.yaml -HOSTNAME_OVERRIDE=$(hostname --short | sed 's/\.novalocal//') cat << EOF >> ${KUBELET_KUBECONFIG} apiVersion: v1 clusters: @@ -193,13 +191,13 @@ clusters: contexts: - context: cluster: kubernetes - user: system:node:${HOSTNAME_OVERRIDE} + user: system:node:${INSTANCE_NAME} name: default current-context: default kind: Config preferences: {} users: -- name: system:node:${HOSTNAME_OVERRIDE} +- name: system:node:${INSTANCE_NAME} user: as-user-extra: {} client-certificate: ${CERT_DIR}/server.crt diff --git a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh index 3754a79f94..baff27f87d 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh @@ -57,7 +57,6 @@ KUBE_MASTER_URI="$KUBE_PROTOCOL://$KUBE_MASTER_IP:$KUBE_API_PORT" if [ -z "${KUBE_NODE_IP}" ]; then KUBE_NODE_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4) fi -HOSTNAME_OVERRIDE=$(hostname --short | sed 's/\.novalocal//') cat << EOF >> ${KUBELET_KUBECONFIG} apiVersion: v1 clusters: @@ -68,13 +67,13 @@ clusters: contexts: - context: cluster: kubernetes - user: system:node:${HOSTNAME_OVERRIDE} + user: system:node:${INSTANCE_NAME} name: default current-context: default kind: Config preferences: {} users: -- name: system:node:${HOSTNAME_OVERRIDE} +- name: system:node:${INSTANCE_NAME} user: as-user-extra: {} client-certificate: ${CERT_DIR}/kubelet.crt @@ -126,7 +125,7 @@ sed -i ' # the option --hostname-override for kubelet uses the hostname to register the node. # Using any other name will break the load balancer and cinder volume features. mkdir -p /etc/kubernetes/manifests -KUBELET_ARGS="--pod-manifest-path=/etc/kubernetes/manifests --cadvisor-port=0 --kubeconfig ${KUBELET_KUBECONFIG} --hostname-override=${HOSTNAME_OVERRIDE}" +KUBELET_ARGS="--pod-manifest-path=/etc/kubernetes/manifests --cadvisor-port=0 --kubeconfig ${KUBELET_KUBECONFIG} --hostname-override=${INSTANCE_NAME}" KUBELET_ARGS="${KUBELET_ARGS} --address=${KUBE_NODE_IP} --port=10250 --read-only-port=0 --anonymous-auth=false --authorization-mode=Webhook --authentication-token-webhook=true" KUBELET_ARGS="${KUBELET_ARGS} --cluster_dns=${DNS_SERVICE_IP} --cluster_domain=${DNS_CLUSTER_DOMAIN}" KUBELET_ARGS="${KUBELET_ARGS} --volume-plugin-dir=/var/lib/kubelet/volumeplugins" @@ -234,5 +233,3 @@ fi cat >> /etc/environment < ${cert_dir}/kubelet.conf < ${cert_dir}/kubelet.conf < $CONF_FILE < $CONF_FILE <