From cce66c6b16af6787bf87a9fa95e26bb98a3be332 Mon Sep 17 00:00:00 2001 From: Mark Burnett Date: Mon, 3 Jul 2017 11:36:15 -0500 Subject: [PATCH] Use 3 stages for `kubectl apply` (#27) * use config environment variable instead of flag * break asset application into 3 stages --- .../asset-loader/{assets => cni}/calico.yaml | 0 .../{assets => dns}/kube-dns.yaml | 0 .../kubelet/manifests/asset-loader.yaml | 29 ++++++++++++++----- 3 files changed, 22 insertions(+), 7 deletions(-) rename promenade/templates/genesis/etc/kubernetes/asset-loader/{assets => cni}/calico.yaml (100%) rename promenade/templates/genesis/etc/kubernetes/asset-loader/{assets => dns}/kube-dns.yaml (100%) diff --git a/promenade/templates/genesis/etc/kubernetes/asset-loader/assets/calico.yaml b/promenade/templates/genesis/etc/kubernetes/asset-loader/cni/calico.yaml similarity index 100% rename from promenade/templates/genesis/etc/kubernetes/asset-loader/assets/calico.yaml rename to promenade/templates/genesis/etc/kubernetes/asset-loader/cni/calico.yaml diff --git a/promenade/templates/genesis/etc/kubernetes/asset-loader/assets/kube-dns.yaml b/promenade/templates/genesis/etc/kubernetes/asset-loader/dns/kube-dns.yaml similarity index 100% rename from promenade/templates/genesis/etc/kubernetes/asset-loader/assets/kube-dns.yaml rename to promenade/templates/genesis/etc/kubernetes/asset-loader/dns/kube-dns.yaml diff --git a/promenade/templates/genesis/etc/kubernetes/kubelet/manifests/asset-loader.yaml b/promenade/templates/genesis/etc/kubernetes/kubelet/manifests/asset-loader.yaml index 227267c0..533d94d1 100644 --- a/promenade/templates/genesis/etc/kubernetes/kubelet/manifests/asset-loader.yaml +++ b/promenade/templates/genesis/etc/kubernetes/kubelet/manifests/asset-loader.yaml @@ -18,13 +18,28 @@ spec: - -c - |- set -x - while true; do - sleep 10 - if /kubectl \ - --kubeconfig /etc/kubernetes/asset-loader/kubeconfig.yaml \ - apply -f /etc/kubernetes/asset-loader/assets; then - break - fi + + export KUBECONFIG=/etc/kubernetes/asset-loader/kubeconfig.yaml + DELAY=20 + + while ! /kubectl apply -f /etc/kubernetes/asset-loader/cni; do + sleep $DELAY + done + + while ! /kubectl get nodes | tail -n +2 | grep Ready; do + sleep $DELAY + done + + while ! /kubectl apply -f /etc/kubernetes/asset-loader/dns; do + sleep $DELAY + done + + while ! /kubectl -n kube-system get pods | grep dns | grep Running; do + sleep $DELAY + done + + while ! /kubectl apply -f /etc/kubernetes/asset-loader/assets; do + sleep $DELAY done rm -rf /etc/kubernetes/kubelet/manifests/asset-loader.yaml