--- - name: Kubernetes Apps | Lay Down Netchecker Template template: src: "{{item.file}}" dest: "{{kube_config_dir}}/{{item.file}}" with_items: - {file: netchecker-agent-ds.yml.j2, type: ds, name: netchecker-agent} - {file: netchecker-agent-hostnet-ds.yml.j2, type: ds, name: netchecker-agent-hostnet} - {file: netchecker-server-sa.yml.j2, type: sa, name: netchecker-server} - {file: netchecker-server-clusterrole.yml.j2, type: clusterrole, name: netchecker-server} - {file: netchecker-server-clusterrolebinding.yml.j2, type: clusterrolebinding, name: netchecker-server} - {file: netchecker-server-deployment.yml.j2, type: deployment, name: netchecker-server} - {file: netchecker-server-svc.yml.j2, type: svc, name: netchecker-service} register: manifests when: - inventory_hostname == groups['kube-master'][0] - rbac_enabled or item.type not in rbac_resources - name: Kubernetes Apps | Purge old Netchecker server kube: name: "netchecker-server" namespace: "{{ netcheck_namespace }}" kubectl: "{{bin_dir}}/kubectl" resource: "po" state: absent when: inventory_hostname == groups['kube-master'][0] # FIXME: remove if kubernetes/features#124 is implemented - name: Kubernetes Apps | Purge old Netchecker daemonsets kube: name: "{{item.item.name}}" namespace: "{{netcheck_namespace}}" kubectl: "{{bin_dir}}/kubectl" resource: "{{item.item.type}}" filename: "{{kube_config_dir}}/{{item.item.file}}" state: absent with_items: "{{ manifests.results }}" when: inventory_hostname == groups['kube-master'][0] and item.item.type == "ds" and item.changed - name: Kubernetes Apps | Start Netchecker Resources kube: name: "{{item.item.name}}" namespace: "{{netcheck_namespace}}" kubectl: "{{bin_dir}}/kubectl" resource: "{{item.item.type}}" filename: "{{kube_config_dir}}/{{item.item.file}}" state: "{{item.changed | ternary('latest','present') }}" with_items: "{{ manifests.results }}" failed_when: manifests|failed and "Error from server (AlreadyExists)" not in manifests.msg when: inventory_hostname == groups['kube-master'][0]