diff --git a/roles/etcd/tasks/install.yml b/roles/etcd/tasks/install.yml index 26271943a3730b070752a4a8fbdd39023f3927c2..959133c29fd61f2d38da28f9bec45261a0c6b499 100644 --- a/roles/etcd/tasks/install.yml +++ b/roles/etcd/tasks/install.yml @@ -17,6 +17,10 @@ /usr/bin/docker cp etcdctl-binarycopy:{{ etcd_container_bin_dir }}etcdctl {{ bin_dir }}/etcdctl && /usr/bin/docker rm -f etcdctl-binarycopy" when: etcd_deployment_type == "docker" + register: etcd_task_result + until: etcd_task_result.rc == 0 + retries: 4 + delay: "{{ 20 | random + 3 }}" changed_when: false #Plan B: looks nicer, but requires docker-py on all hosts: diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml index 4d093355073c0829ff8d36fca5c8a544c73460d1..e8dfe08fcd12b4992c8ad1cc7cf3bc9b6beb55e5 100644 --- a/roles/kubernetes/master/tasks/main.yml +++ b/roles/kubernetes/master/tasks/main.yml @@ -9,8 +9,11 @@ - name: Copy kubectl from hyperkube container command: "/usr/bin/docker run --rm -v {{ bin_dir }}:/systembindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /bin/cp /hyperkube /systembindir/kubectl" + register: kube_task_result + until: kube_task_result.rc == 0 + retries: 4 + delay: "{{ 20 | random + 3 }}" changed_when: false - register: kubectl_launcher - name: Write kube-apiserver manifest template: diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index abe0f690d583e88549dffb1f720bc33f38bfa6e1..09c3b47d5eaaf19191e4efdf9af500a4b651d3d4 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -34,6 +34,10 @@ - name: Calico | Copy cni plugins from hyperkube command: "/usr/bin/docker run --rm -v /opt/cni/bin:/cnibindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /bin/cp -r /opt/cni/bin/. /cnibindir/" + register: cni_task_result + until: cni_task_result.rc == 0 + retries: 4 + delay: "{{ 20 | random + 3 }}" changed_when: false when: use_hyperkube_cni