--- - name: Canal | Write Canal cni config template: src: "cni-canal.conf.j2" dest: "/etc/cni/net.d/10-canal.conf" owner: kube - name: Canal | Create canal certs directory file: dest: "{{ canal_cert_dir }}" state: directory mode: 0750 owner: root group: root - name: Canal | Link etcd certificates for canal-node file: src: "{{ network_plugin_etcd_cert_dir_real }}/{{ item.s }}" dest: "{{ canal_cert_dir }}/{{ item.d }}" state: hard force: yes with_items: - {s: "ca.pem", d: "ca_cert.crt"} - {s: "node.pem", d: "cert.crt"} - {s: "node-key.pem", d: "key.pem"} - name: Canal | Set Flannel etcd configuration command: |- {{ bin_dir }}/etcdctl --peers={{ network_plugin_etcd_access_endpoint }} \ set /{{ cluster_name }}/network/config \ '{ "Network": "{{ kube_pods_subnet }}", "SubnetLen": {{ kube_network_node_prefix }}, "Backend": { "Type": "{{ flannel_backend_type }}" } }' delegate_to: "{{network_plugin_etcd_access_delagate}}" run_once: true - name: Canal | Write canal configmap template: src: canal-config.yml.j2 dest: "{{kube_config_dir}}/canal-config.yaml" - name: Canal | Write canal node configuration template: src: canal-node.yml.j2 dest: "{{kube_config_dir}}/canal-node.yaml" - name: Canal | Copy cni plugins from hyperkube command: "/usr/bin/docker run --rm -v /opt/cni/bin:/cnibindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /usr/bin/rsync -a /opt/cni/bin/ /cnibindir/" register: cni_task_result until: cni_task_result.rc == 0 retries: 4 delay: "{{ retry_stagger | random + 3 }}" changed_when: false tags: [hyperkube, upgrade] - name: Canal | Copy cni plugins from calico/cni command: "/usr/bin/docker run --rm -v /opt/cni/bin:/cnibindir {{ calico_cni_image_repo }}:{{ calico_cni_image_tag }} sh -c 'cp -a /opt/cni/bin/* /cnibindir/'" register: cni_task_result until: cni_task_result.rc == 0 retries: 4 delay: "{{ retry_stagger | random + 3 }}" changed_when: false tags: [hyperkube, upgrade]