From 865702f5b3933b9106035390758ac91afd7ae58a Mon Sep 17 00:00:00 2001 From: Hongbin Lu Date: Wed, 28 Sep 2016 16:57:20 +0530 Subject: [PATCH] Fix failure of systemd service kube-ui The systemd service kube-ui failed because it does not know the HOME environment variable. Also updated script to handle already existing namespace, rc and service. Similar issue from upstream is as follows: https://github.com/kubernetes/kubernetes/pull/23975 Change-Id: I71925a232b57f3c2cdfe82ae97b3fd7395e37343 Co-Authored-By: yatinkarel Closes-Bug: #1584931 --- .../kube-system-namespace-service.sh | 7 ++++++- .../kubernetes/fragments/kube-ui-service.sh | 20 +++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/magnum/drivers/common/templates/kubernetes/fragments/kube-system-namespace-service.sh b/magnum/drivers/common/templates/kubernetes/fragments/kube-system-namespace-service.sh index 64daa20c15..a530c3e3e4 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/kube-system-namespace-service.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/kube-system-namespace-service.sh @@ -32,7 +32,12 @@ do sleep 5 done -/usr/bin/kubectl create -f /srv/kubernetes/kube-system-namespace.json +#check for existence of namespace +/usr/bin/kubectl get namespace kube-system + +if [ "\$?" != "0" ]; then + /usr/bin/kubectl create -f /srv/kubernetes/kube-system-namespace.json +fi EOF } diff --git a/magnum/drivers/common/templates/kubernetes/fragments/kube-ui-service.sh b/magnum/drivers/common/templates/kubernetes/fragments/kube-ui-service.sh index 734fc96e99..0ed2d8ae28 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/kube-ui-service.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/kube-ui-service.sh @@ -86,8 +86,19 @@ do sleep 5 done -/usr/bin/kubectl create -f /srv/kubernetes/manifests/kube-ui-rc.yaml --namespace=kube-system -/usr/bin/kubectl create -f /srv/kubernetes/manifests/kube-ui-svc.yaml --namespace=kube-system +#echo check for existence of kube-ui-v4 replication controller +/usr/bin/kubectl get rc kube-ui-v4 --namespace=kube-system + +if [ "\$?" != "0" ]; then + /usr/bin/kubectl create -f /srv/kubernetes/manifests/kube-ui-rc.yaml --namespace=kube-system +fi + +#echo check for existence of kube-ui service +/usr/bin/kubectl get service kube-ui --namespace=kube-system + +if [ "\$?" != "0" ]; then + /usr/bin/kubectl create -f /srv/kubernetes/manifests/kube-ui-svc.yaml --namespace=kube-system +fi EOF } @@ -97,12 +108,13 @@ KUBE_UI_SERVICE=/etc/systemd/system/kube-ui.service mkdir -p $(dirname ${KUBE_UI_SERVICE}) cat << EOF > ${KUBE_UI_SERVICE} [Unit] -After=kube-system-namespace +After=kube-system-namespace.service Requires=kubelet.service -Requires=kube-system-namespace.service +Wants=kube-system-namespace.service [Service] Type=oneshot +Environment=HOME=/root EnvironmentFile=-/etc/kubernetes/config ExecStart=${KUBE_UI_BIN}