1
0
Fork 0
mirror of https://github.com/containers/ansible-podman-collections.git synced 2026-02-04 07:11:49 +00:00

Add skip option for podman secret (#324)

This commit is contained in:
Sergey 2021-10-12 13:56:04 +03:00 committed by GitHub
parent 717963d66d
commit 4982579c79
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 2 deletions

View file

@ -33,6 +33,12 @@ options:
- Use it when C(state) is C(present) to remove and recreate an existing secret. - Use it when C(state) is C(present) to remove and recreate an existing secret.
type: bool type: bool
default: false default: false
skip_existing:
description:
- Use it when C(state) is C(present) and secret with the same name already exists.
If set to C(true), the secret will NOT be recreated and remains as is.
type: bool
default: false
name: name:
description: description:
- The name of the secret. - The name of the secret.
@ -78,9 +84,16 @@ EXAMPLES = r"""
from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.basic import AnsibleModule
def podman_secret_create(module, executable, name, data, force): def podman_secret_create(module, executable, name, data, force, skip):
if force: if force:
module.run_command([executable, 'secret', 'rm', name]) module.run_command([executable, 'secret', 'rm', name])
if skip:
rc, out, err = module.run_command(
[executable, 'secret', 'ls', "--format", "{{.Name}}"])
if name in [i.strip() for i in out.splitlines()]:
return {
"changed": False,
}
rc, out, err = module.run_command( rc, out, err = module.run_command(
[executable, 'secret', 'create', name, '-'], data=data) [executable, 'secret', 'create', name, '-'], data=data)
@ -116,6 +129,7 @@ def main():
name=dict(type='str', required=True), name=dict(type='str', required=True),
data=dict(type='str', no_log=True), data=dict(type='str', no_log=True),
force=dict(type='bool', default=False), force=dict(type='bool', default=False),
skip_existing=dict(type='bool', default=False),
), ),
) )
@ -128,7 +142,8 @@ def main():
if data is None: if data is None:
raise Exception("'data' is required when 'state' is 'present'") raise Exception("'data' is required when 'state' is 'present'")
force = module.params['force'] force = module.params['force']
results = podman_secret_create(module, executable, name, data, force) skip = module.params['skip_existing']
results = podman_secret_create(module, executable, name, data, force, skip)
else: else:
results = podman_secret_remove(module, executable, name) results = podman_secret_remove(module, executable, name)

View file

@ -16,6 +16,20 @@
name: mysecret name: mysecret
data: super secret content data: super secret content
force: true force: true
register: forced
- name: Skip secret
containers.podman.podman_secret:
name: mysecret
data: super secret content
skip_existing: true
register: skipped
- name: Check assertions
assert:
that:
- forced is changed
- skipped is not changed
- name: Create container that uses secret - name: Create container that uses secret
containers.podman.podman_container: containers.podman.podman_container: