def main(): """ """ argument_spec = { "state": { "default": "present", "choices": ['present', 'absent'], "type": 'str' }, "name": {"required": True, "type": "str"}, "client": {"required": False, "type": "str"}, "type": {"required": True, "type": "str", "choices": ['k3s', 'generic', 'kubeadm', 'okd', 'openshift']}, "parameters": {"required": False, "type": "dict"}, } module = AnsibleModule(argument_spec=argument_spec) client = module.params['client'] overrides = module.params['parameters'] if module.params['parameters'] is not None else {} cluster_type = module.params['type'] config = Kconfig(client=client, quiet=True) cluster = module.params['name'] clusters = config.list_kubes() exists = True if cluster in clusters else False state = module.params['state'] if state == 'present': if exists: changed = False skipped = True meta = {'result': 'skipped'} else: if cluster_type in ['okd', 'openshift']: meta = config.create_kube_openshift(cluster, overrides=overrides) elif cluster_type == 'k3s': meta = config.create_kube_k3s(cluster, overrides=overrides) else: meta = config.create_kube_generic(cluster, overrides=overrides) changed = True skipped = False else: if exists: meta = config.delete_kube(cluster, overrides=overrides) changed = True skipped = False else: changed = False skipped = True meta = {'result': 'skipped'} module.exit_json(changed=changed, skipped=skipped, meta=meta)