diff --git a/cluster/saltbase/salt/kube-master-addons/init.sls b/cluster/saltbase/salt/kube-master-addons/init.sls index 0f5cb4c2a65..0b3bfcf35c2 100644 --- a/cluster/saltbase/salt/kube-master-addons/init.sls +++ b/cluster/saltbase/salt/kube-master-addons/init.sls @@ -35,3 +35,4 @@ kube-master-addons: - restart: True - watch: - file: master-docker-image-tags + - file: /etc/kubernetes/kube-master-addons.sh diff --git a/cluster/saltbase/salt/kube-master-addons/kube-master-addons.sh b/cluster/saltbase/salt/kube-master-addons/kube-master-addons.sh index 3ef49cb48fc..f2cbafc12f1 100644 --- a/cluster/saltbase/salt/kube-master-addons/kube-master-addons.sh +++ b/cluster/saltbase/salt/kube-master-addons/kube-master-addons.sh @@ -14,11 +14,23 @@ # See the License for the specific language governing permissions and # limitations under the License. - while true; do - if which docker 1>/dev/null 2>&1; then - if docker load -i /srv/salt/kube-bins/kube-apiserver.tar 1>/dev/null 2>&1; then - break; - fi; - fi; - done; +# loadedImageFlags is a bit-flag to track which docker images loaded successfully. +let loadedImageFlags=0; + +while true; do + + if [ $loadedImageFlags == 3 ]; then break; fi; + + if which docker 1>/dev/null 2>&1; then + if docker load -i /srv/salt/kube-bins/kube-apiserver.tar 1>/dev/null 2>&1; then + let loadedImageFlags="$loadedImageFlags|1"; + fi; + if docker load -i /srv/salt/kube-bins/kube-scheduler.tar 1>/dev/null 2>&1; then + let loadedImageFlags="$loadedImageFlags|2"; + fi; + + fi; + + +done;