def fetch_objects(self, connections): if connections: if not isinstance(connections, list): raise K8sInventoryException( "Expecting connections to be a list.") for connection in connections: if not isinstance(connection, dict): raise K8sInventoryException( "Expecting connection to be a dictionary.") client = get_api_client(**connection) name = connection.get( 'name', self.get_default_host_name(client.configuration.host)) if connection.get('namespaces'): namespaces = connection['namespaces'] else: namespaces = self.get_available_namespaces(client) for namespace in namespaces: self.get_pods_for_namespace(client, name, namespace) self.get_services_for_namespace(client, name, namespace) else: client = get_api_client() name = self.get_default_host_name(client.configuration.host) namespaces = self.get_available_namespaces(client) for namespace in namespaces: self.get_pods_for_namespace(client, name, namespace) self.get_services_for_namespace(client, name, namespace)
def main(): module = AnsibleModule(argument_spec=argspec(), supports_check_mode=True) from ansible_collections.community.kubernetes.plugins.module_utils.common import ( K8sAnsibleMixin, get_api_client) k8s_ansible_mixin = K8sAnsibleMixin(module) k8s_ansible_mixin.client = get_api_client(module=module) execute_module(module, k8s_ansible_mixin)
def run(self, terms, variables=None, **kwargs): self.params = kwargs self.client = get_api_client() cluster_info = kwargs.get('cluster_info') if cluster_info == 'version': return [self.client.version] if cluster_info == 'api_groups': if isinstance(self.client.resources.api_groups, KeysView): return [list(self.client.resources.api_groups)] return [self.client.resources.api_groups] self.kind = kwargs.get('kind') self.name = kwargs.get('resource_name') self.namespace = kwargs.get('namespace') self.api_version = kwargs.get('api_version', 'v1') self.label_selector = kwargs.get('label_selector') self.field_selector = kwargs.get('field_selector') self.include_uninitialized = kwargs.get('include_uninitialized', False) resource_definition = kwargs.get('resource_definition') src = kwargs.get('src') if src: resource_definition = self.load_resource_definitions(src)[0] if resource_definition: self.kind = resource_definition.get('kind', self.kind) self.api_version = resource_definition.get('apiVersion', self.api_version) self.name = resource_definition.get('metadata', {}).get('name', self.name) self.namespace = resource_definition.get('metadata', {}).get( 'namespace', self.namespace) if not self.kind: raise AnsibleError( "Error: no Kind specified. Use the 'kind' parameter, or provide an object YAML configuration " "using the 'resource_definition' parameter.") resource = self.find_resource(self.kind, self.api_version, fail=True) try: k8s_obj = resource.get(name=self.name, namespace=self.namespace, label_selector=self.label_selector, field_selector=self.field_selector) except NotFoundError: return [] if self.name: return [k8s_obj.to_dict()] return k8s_obj.to_dict().get('items')
def main(): mutually_exclusive = [ ('resource_definition', 'src'), ('merge_type', 'apply'), ('template', 'resource_definition'), ('template', 'src'), ] module = AnsibleModule(argument_spec=argspec(), mutually_exclusive=mutually_exclusive, supports_check_mode=True) from ansible_collections.community.kubernetes.plugins.module_utils.common import ( K8sAnsibleMixin, get_api_client) k8s_ansible_mixin = K8sAnsibleMixin(module) k8s_ansible_mixin.client = get_api_client(module=module) execute_module(module, k8s_ansible_mixin)
def main(): module = AnsibleModule(argument_spec=argspec(), supports_check_mode=True) from ansible_collections.community.kubernetes.plugins.module_utils.common import get_api_client execute_module(module, client=get_api_client(module=module))