mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-03-27 13:53:03 +00:00
145 lines
3.0 KiB
Python
145 lines
3.0 KiB
Python
from __future__ import (absolute_import, division, print_function)
|
|
|
|
from ansible.module_utils.six import string_types
|
|
|
|
__metaclass__ = type
|
|
|
|
|
|
def list_dict_str(value):
|
|
if isinstance(value, (list, dict, string_types)):
|
|
return value
|
|
raise TypeError
|
|
|
|
|
|
AUTH_PROXY_HEADERS_SPEC = dict(
|
|
proxy_basic_auth=dict(type='str', no_log=True),
|
|
basic_auth=dict(type='str', no_log=True),
|
|
user_agent=dict(type='str')
|
|
)
|
|
|
|
AUTH_ARG_SPEC = {
|
|
'kubeconfig': {
|
|
'type': 'path',
|
|
},
|
|
'context': {},
|
|
'host': {},
|
|
'api_key': {
|
|
'no_log': True,
|
|
},
|
|
'username': {},
|
|
'password': {
|
|
'no_log': True,
|
|
},
|
|
'validate_certs': {
|
|
'type': 'bool',
|
|
'aliases': ['verify_ssl'],
|
|
},
|
|
'ca_cert': {
|
|
'type': 'path',
|
|
'aliases': ['ssl_ca_cert'],
|
|
},
|
|
'client_cert': {
|
|
'type': 'path',
|
|
'aliases': ['cert_file'],
|
|
},
|
|
'client_key': {
|
|
'type': 'path',
|
|
'aliases': ['key_file'],
|
|
},
|
|
'proxy': {
|
|
'type': 'str',
|
|
},
|
|
'proxy_headers': {
|
|
'type': 'dict',
|
|
'options': AUTH_PROXY_HEADERS_SPEC
|
|
},
|
|
'persist_config': {
|
|
'type': 'bool',
|
|
},
|
|
}
|
|
|
|
WAIT_ARG_SPEC = dict(
|
|
wait=dict(type='bool', default=False),
|
|
wait_sleep=dict(type='int', default=5),
|
|
wait_timeout=dict(type='int', default=120),
|
|
wait_condition=dict(
|
|
type='dict',
|
|
default=None,
|
|
options=dict(
|
|
type=dict(),
|
|
status=dict(default=True, choices=[True, False, "Unknown"]),
|
|
reason=dict()
|
|
)
|
|
)
|
|
)
|
|
|
|
# Map kubernetes-client parameters to ansible parameters
|
|
AUTH_ARG_MAP = {
|
|
'kubeconfig': 'kubeconfig',
|
|
'context': 'context',
|
|
'host': 'host',
|
|
'api_key': 'api_key',
|
|
'username': 'username',
|
|
'password': 'password',
|
|
'verify_ssl': 'validate_certs',
|
|
'ssl_ca_cert': 'ca_cert',
|
|
'cert_file': 'client_cert',
|
|
'key_file': 'client_key',
|
|
'proxy': 'proxy',
|
|
'proxy_headers': 'proxy_headers',
|
|
'persist_config': 'persist_config',
|
|
}
|
|
|
|
NAME_ARG_SPEC = {
|
|
'kind': {},
|
|
'name': {},
|
|
'namespace': {},
|
|
'api_version': {
|
|
'default': 'v1',
|
|
'aliases': ['api', 'version'],
|
|
},
|
|
}
|
|
|
|
COMMON_ARG_SPEC = {
|
|
'state': {
|
|
'default': 'present',
|
|
'choices': ['present', 'absent'],
|
|
},
|
|
'force': {
|
|
'type': 'bool',
|
|
'default': False,
|
|
},
|
|
}
|
|
|
|
RESOURCE_ARG_SPEC = {
|
|
'resource_definition': {
|
|
'type': list_dict_str,
|
|
'aliases': ['definition', 'inline']
|
|
},
|
|
'src': {
|
|
'type': 'path',
|
|
},
|
|
}
|
|
|
|
ARG_ATTRIBUTES_BLACKLIST = ('property_path',)
|
|
|
|
DELETE_OPTS_ARG_SPEC = {
|
|
'propagationPolicy': {
|
|
'choices': ['Foreground', 'Background', 'Orphan'],
|
|
},
|
|
'gracePeriodSeconds': {
|
|
'type': 'int',
|
|
},
|
|
'preconditions': {
|
|
'type': 'dict',
|
|
'options': {
|
|
'resourceVersion': {
|
|
'type': 'str',
|
|
},
|
|
'uid': {
|
|
'type': 'str',
|
|
}
|
|
}
|
|
}
|
|
}
|