Kubernetes (K8s) inventory source
:Removed in collection release after
:Why: As discussed in #31, we decided to
remove the k8s inventory plugin in release 6.0.0.
- Fetch containers and services for one or more clusters.
- Groups by cluster name, namespace, namespace_services, namespace_pods, and labels.
- Uses the kubectl connection plugin to access the Kubernetes cluster.
- Uses k8s.(yml|yaml) YAML configuration file to set parameter values.
The below requirements are needed on the local Ansible controller node that executes this inventory.
- python >= 3.9
- kubernetes >= 24.2.0
- PyYAML >= 3.11
Parameter |
Choices/Defaults |
Configuration |
Comments |
connections
-
|
|
|
Optional list of cluster connection settings. If no connections are provided, the default ~/.kube/config and active context will be used, and objects will be returned for all namespaces the active user is authorized to access.
|
|
api_key
-
|
|
|
Token used to authenticate with the API. Can also be specified via K8S_AUTH_API_KEY environment variable.
|
|
ca_cert
-
|
|
|
Path to a CA certificate used to authenticate with the API. Can also be specified via K8S_AUTH_SSL_CA_CERT environment variable.
aliases: ssl_ca_cert
|
|
client_cert
-
|
|
|
Path to a certificate used to authenticate with the API. Can also be specified via K8S_AUTH_CERT_FILE environment variable.
aliases: cert_file
|
|
client_key
-
|
|
|
Path to a key file used to authenticate with the API. Can also be specified via K8S_AUTH_KEY_FILE environment variable.
aliases: key_file
|
|
context
-
|
|
|
The name of a context found in the config file. Can also be specified via K8S_AUTH_CONTEXT environment variable.
|
|
host
-
|
|
|
Provide a URL for accessing the API. Can also be specified via K8S_AUTH_HOST environment variable.
|
|
kubeconfig
-
|
|
|
Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the Kubernetes client will attempt to load the default configuration file from ~/.kube/config. Can also be specified via K8S_AUTH_KUBECONFIG environment variable.
|
|
name
-
|
|
|
Optional name to assign to the cluster. If not provided, a name is constructed from the server and port.
|
|
namespaces
-
|
|
|
List of namespaces. If not specified, will fetch all containers for all namespaces user is authorized to access.
|
|
password
-
|
|
|
Provide a password for authenticating with the API. Can also be specified via K8S_AUTH_PASSWORD environment variable.
|
|
username
-
|
|
|
Provide a username for authenticating with the API. Can also be specified via K8S_AUTH_USERNAME environment variable.
|
|
validate_certs
boolean
|
|
|
Whether or not to verify the API server's SSL certificates. Can also be specified via K8S_AUTH_VERIFY_SSL environment variable.
aliases: verify_ssl
|
plugin
-
/ required
|
Choices:
- kubernetes.core.k8s
- k8s
- community.kubernetes.k8s
|
|
token that ensures this is a source file for the 'k8s' plugin.
|
# File must be named k8s.yaml or k8s.yml
- name: Authenticate with token, and return all pods and services for all namespaces
plugin: kubernetes.core.k8s
connections:
- host: https://192.168.64.4:8443
api_key: xxxxxxxxxxxxxxxx
validate_certs: false
- name: Use default config (~/.kube/config) file and active context, and return objects for a specific namespace
plugin: kubernetes.core.k8s
connections:
- namespaces:
- testing
- name: Use a custom config file, and a specific context.
plugin: kubernetes.core.k8s
connections:
- kubeconfig: /path/to/config
context: 'awx/192-168-64-4:8443/developer'
- This inventory will be removed in version 6.0.0. [deprecated]
- For more information see DEPRECATED.
- Chris Houseknecht (@chouseknecht)
- Fabian von Feilitzsch (@fabianvf)
Hint
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.