create snapshot-controller only if needed

This commit is contained in:
Robin Wallace 2022-06-20 09:34:31 +02:00 committed by Kubernetes Prow Robot
parent c3c9a42502
commit 79f6cd774a
2 changed files with 20 additions and 3 deletions

View file

@ -314,7 +314,7 @@ def main():
wait=dict(default=False, type='bool'), wait=dict(default=False, type='bool'),
all=dict(default=False, type='bool'), all=dict(default=False, type='bool'),
log_level=dict(default=0, type='int'), log_level=dict(default=0, type='int'),
state=dict(default='present', choices=['present', 'absent', 'latest', 'reloaded', 'stopped']), state=dict(default='present', choices=['present', 'absent', 'latest', 'reloaded', 'stopped', 'exists']),
recursive=dict(default=False, type='bool'), recursive=dict(default=False, type='bool'),
), ),
mutually_exclusive=[['filename', 'list']] mutually_exclusive=[['filename', 'list']]
@ -339,6 +339,11 @@ def main():
elif state == 'latest': elif state == 'latest':
result = manager.replace() result = manager.replace()
elif state == 'exists':
result = manager.exists()
module.exit_json(changed=changed,
msg='%s' % result)
else: else:
module.fail_json(msg='Unrecognized state %s.' % state) module.fail_json(msg='Unrecognized state %s.' % state)

View file

@ -1,15 +1,27 @@
--- ---
- name: check if snapshot namespace exists
register: snapshot_namespace_exists
kube:
kubectl: "{{ bin_dir }}/kubectl"
name: "{{ snapshot_controller_namespace }}"
resource: "namespace"
state: "exists"
when: inventory_hostname == groups['kube_control_plane'][0]
tags: snapshot-controller
- name: Snapshot Controller | Generate Manifests - name: Snapshot Controller | Generate Manifests
template: template:
src: "{{ item.file }}.j2" src: "{{ item.file }}.j2"
dest: "{{ kube_config_dir }}/{{ item.file }}" dest: "{{ kube_config_dir }}/{{ item.file }}"
mode: 0644 mode: 0644
with_items: with_items:
- {name: snapshot-ns, file: snapshot-ns.yml} - {name: snapshot-ns, file: snapshot-ns.yml, apply: not snapshot_namespace_exists}
- {name: rbac-snapshot-controller, file: rbac-snapshot-controller.yml} - {name: rbac-snapshot-controller, file: rbac-snapshot-controller.yml}
- {name: snapshot-controller, file: snapshot-controller.yml} - {name: snapshot-controller, file: snapshot-controller.yml}
register: snapshot_controller_manifests register: snapshot_controller_manifests
when: inventory_hostname == groups['kube_control_plane'][0] when:
- inventory_hostname == groups['kube_control_plane'][0]
- item.apply | default(True) | bool
tags: snapshot-controller tags: snapshot-controller
- name: Snapshot Controller | Apply Manifests - name: Snapshot Controller | Apply Manifests