diff --git a/init.sls b/init.sls index 2344f37952..5d744fb386 100644 --- a/init.sls +++ b/init.sls @@ -104,6 +104,25 @@ addon-dir-create: - makedirs: True {% endif %} +{% if pillar.get('enable_cluster_registry', '').lower() == 'true' %} +/etc/kubernetes/addons/registry/registry-svc.yaml: + file.managed: + - source: salt://kube-addons/registry/registry-svc.yaml + - user: root + - group: root + - file_mode: 644 + - makedirs: True + +/etc/kubernetes/addons/registry/registry-rc.yaml: + file.managed: + - source: salt://kube-addons/registry/registry-rc.yaml.in + - template: jinja + - user: root + - group: root + - file_mode: 644 + - makedirs: True +{% endif %} + {% if pillar.get('enable_node_logging', '').lower() == 'true' and pillar.get('logging_destination').lower() == 'elasticsearch' and pillar.get('enable_cluster_logging', '').lower() == 'true' %} diff --git a/kube-addons.sh b/kube-addons.sh index 0bd24401fa..0655237362 100644 --- a/kube-addons.sh +++ b/kube-addons.sh @@ -125,6 +125,28 @@ function create-resource-from-string() { return 1; } +# $1 is the directory containing all of the docker images +function load-docker-images() { + local success + local restart_docker + while true; do + success=true + restart_docker=false + for image in "$1/"*; do + timeout 30 docker load -i "${image}" &>/dev/null + rc=$? + if [[ $rc == 124 ]]; then + restart_docker=true + elif [[ $rc != 0 ]]; then + success=false + fi + done + if [[ $success == true ]]; then break; fi + if [[ $restart_docker == true ]]; then service docker restart; fi + sleep 15 + done +} + # The business logic for whether a given object should be created # was already enforced by salt, and /etc/kubernetes/addons is the # managed result is of that. Start everything below that directory. @@ -142,6 +164,9 @@ for k,v in yaml.load(sys.stdin).iteritems(): ''' < "${kube_env_yaml}") fi +# Load any images that we may need +load-docker-images /srv/salt/kube-addons-images + # Create the namespace that will be used to host the cluster-level add-ons. start_addon /etc/kubernetes/addons/namespace.yaml 100 10 "" &