From 2f2d05c826a35dbc89199f49560bb68cd14f49f4 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 --- .../fragments/configure-kubernetes-master.sh | 8 +++----- .../fragments/configure-kubernetes-minion.sh | 11 ++++------- .../kubernetes/fragments/make-cert-client.sh | 1 - .../templates/kubernetes/fragments/make-cert.sh | 1 - .../kubernetes/fragments/upgrade-kubernetes.sh | 9 ++++----- .../kubernetes/fragments/write-heat-params-master.sh | 1 + .../kubernetes/fragments/write-heat-params.sh | 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 + 11 files changed, 17 insertions(+), 25 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 56e6646a44..76ea30954e 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh @@ -188,8 +188,7 @@ sed -i ' sed -i '/^KUBE_SCHEDULER_ARGS=/ s/=.*/="--leader-elect=true"/' /etc/kubernetes/scheduler $ssh_cmd mkdir -p /etc/kubernetes/manifests -HOSTNAME_OVERRIDE=$(cat /etc/hostname | head -1 | 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" @@ -211,7 +210,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=$(cat /etc/hostname | head -1 | sed 's/\.novalocal//') cat << EOF >> ${KUBELET_KUBECONFIG} apiVersion: v1 clusters: @@ -222,13 +220,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 d7ac2f0f88..e75ea9e5f3 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh @@ -64,7 +64,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="$(cat /etc/hostname | head -1 | sed 's/\.novalocal//')" cat << EOF >> ${KUBELET_KUBECONFIG} apiVersion: v1 clusters: @@ -75,13 +74,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 @@ -133,7 +132,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" @@ -201,6 +200,4 @@ EOF cat >> /etc/environment < ${cert_dir}/kubelet.conf < ${cert_dir}/kubelet.conf < ${HEAT_PARAMS} < ${HEAT_PARAMS} < $CONF_FILE < $CONF_FILE <