Пример #1
0
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)