--- - name: RBD Provisioner | Remove legacy addon dir and manifests file: path: "{{ kube_config_dir }}/addons/rbd_provisioner" state: absent when: - inventory_hostname == groups['kube_control_plane'][0] tags: - upgrade - name: RBD Provisioner | Remove legacy namespace command: > {{ kubectl }} delete namespace {{ rbd_provisioner_namespace }} ignore_errors: true # noqa ignore-errors when: - inventory_hostname == groups['kube_control_plane'][0] tags: - upgrade - name: RBD Provisioner | Remove legacy storageclass command: > {{ kubectl }} delete storageclass {{ rbd_provisioner_storage_class }} ignore_errors: true # noqa ignore-errors when: - inventory_hostname == groups['kube_control_plane'][0] tags: - upgrade - name: RBD Provisioner | Create addon dir file: path: "{{ kube_config_dir }}/addons/rbd_provisioner" state: directory owner: root group: root mode: 0755 when: - inventory_hostname == groups['kube_control_plane'][0] - name: RBD Provisioner | Templates list set_fact: rbd_provisioner_templates: - { name: 00-namespace, file: 00-namespace.yml, type: ns } - { name: secret-rbd-provisioner, file: secret-rbd-provisioner.yml, type: secret } - { name: sa-rbd-provisioner, file: sa-rbd-provisioner.yml, type: sa } - { name: clusterrole-rbd-provisioner, file: clusterrole-rbd-provisioner.yml, type: clusterrole } - { name: clusterrolebinding-rbd-provisioner, file: clusterrolebinding-rbd-provisioner.yml, type: clusterrolebinding } - { name: role-rbd-provisioner, file: role-rbd-provisioner.yml, type: role } - { name: rolebinding-rbd-provisioner, file: rolebinding-rbd-provisioner.yml, type: rolebinding } - { name: deploy-rbd-provisioner, file: deploy-rbd-provisioner.yml, type: deploy } - { name: sc-rbd-provisioner, file: sc-rbd-provisioner.yml, type: sc } - name: RBD Provisioner | Create manifests template: src: "{{ item.file }}.j2" dest: "{{ kube_config_dir }}/addons/rbd_provisioner/{{ item.file }}" mode: 0644 with_items: "{{ rbd_provisioner_templates }}" register: rbd_provisioner_manifests when: inventory_hostname == groups['kube_control_plane'][0] - name: RBD Provisioner | Apply manifests kube: name: "{{ item.item.name }}" namespace: "{{ rbd_provisioner_namespace }}" kubectl: "{{ bin_dir }}/kubectl" resource: "{{ item.item.type }}" filename: "{{ kube_config_dir }}/addons/rbd_provisioner/{{ item.item.file }}" state: "latest" with_items: "{{ rbd_provisioner_manifests.results }}" when: inventory_hostname == groups['kube_control_plane'][0]