kubevirt – KubeVirt inventory source
kubevirt – KubeVirt inventory source
New in version 2.8.
Synopsis
- Fetch running VirtualMachines for one or more namespaces.
- Groups by namespace, namespace_vms and labels.
- Uses kubevirt.(yml|yaml) YAML configuration file to set parameter values.
Requirements
The below requirements are needed on the local master node that executes this inventory.
- openshift >= 0.6
- PyYAML >= 3.11
Parameters
Parameter | Choices/Defaults | Configuration | Comments | |
---|---|---|---|---|
cache boolean |
|
ini entries: [inventory]cache = no
env:ANSIBLE_INVENTORY_CACHE |
Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work. | |
cache_connection string |
ini entries: [defaults]fact_caching_connection = VALUE [inventory]cache_connection = VALUE
env:ANSIBLE_CACHE_PLUGIN_CONNECTION env:ANSIBLE_INVENTORY_CACHE_CONNECTION |
Cache connection data or path, read cache plugin documentation for specifics. | ||
cache_plugin string |
Default: "memory" |
ini entries: [defaults]fact_caching = memory [inventory]cache_plugin = memory
env:ANSIBLE_CACHE_PLUGIN env:ANSIBLE_INVENTORY_CACHE_PLUGIN |
Cache plugin to use for the inventory's source data. | |
cache_prefix - |
Default: "ansible_inventory_" |
ini entries: [default]fact_caching_prefix = ansible_inventory_ [inventory]cache_prefix = ansible_inventory_
env:ANSIBLE_CACHE_PLUGIN_PREFIX env:ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX |
Prefix to use for cache plugin files/tables | |
cache_timeout integer |
Default: 3600 |
ini entries: [defaults]fact_caching_timeout = 3600 [inventory]cache_timeout = 3600
env:ANSIBLE_CACHE_PLUGIN_TIMEOUT env:ANSIBLE_INVENTORY_CACHE_TIMEOUT |
Cache duration in seconds | |
compose dictionary |
Default: {} |
Create vars from jinja2 expressions. | ||
connections list |
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. | |||
annotation_variable string |
Default: "ansible" |
Specify the name of the annotation which provides data, which should be used as inventory host variables. Note, that the value in ansible annotations should be json. | ||
api_key string |
Token used to authenticate with the API. Can also be specified via K8S_AUTH_API_KEY environment variable. | |||
api_version string |
Specify the KubeVirt API version. | |||
cert_file string |
Path to a certificate used to authenticate with the API. Can also be specified via K8S_AUTH_CERT_FILE environment variable. | |||
context string |
The name of a context found in the config file. Can also be specified via K8S_AUTH_CONTEXT environment variable. | |||
host string |
Provide a URL for accessing the API. Can also be specified via K8S_AUTH_HOST environment variable. | |||
key_file string |
Path to a key file used to authenticate with the API. Can also be specified via K8S_AUTH_HOST environment variable. | |||
kubeconfig string |
Path to an existing Kubernetes config file. If not provided, and no other connection options are provided, the OpenShift client will attempt to load the default configuration file from ~/.kube/config.json. Can also be specified via K8S_AUTH_KUBECONFIG environment variable. | |||
name string |
Optional name to assign to the cluster. If not provided, a name is constructed from the server and port. | |||
namespaces list |
List of namespaces. If not specified, will fetch all virtual machines for all namespaces user is authorized to access. | |||
network_name string |
In case of multiple network attached to virtual machine, define which interface should be returned as primary IP address. | |||
password string |
Provide a password for authenticating with the API. Can also be specified via K8S_AUTH_PASSWORD environment variable. | |||
ssl_ca_cert string |
Path to a CA certificate used to authenticate with the API. Can also be specified via K8S_AUTH_SSL_CA_CERT environment variable. | |||
username string |
Provide a username for authenticating with the API. Can also be specified via K8S_AUTH_USERNAME environment variable. | |||
verify_ssl boolean |
|
Whether or not to verify the API server's SSL certificates. Can also be specified via K8S_AUTH_VERIFY_SSL environment variable. | ||
groups dictionary |
Default: {} |
Add hosts to group based on Jinja2 conditionals. | ||
host_format - |
Default: "{namespace}-{name}-{uid}" |
Specify the format of the host in the inventory group. | ||
keyed_groups list |
Default: [] |
Add hosts to group based on the values of a variable. | ||
plugin string / required |
|
token that ensures this is a source file for the 'kubevirt' plugin. | ||
strict boolean |
|
If Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default. |
Examples
# File must be named kubevirt.yaml or kubevirt.yml
# Authenticate with token, and return all virtual machines for all namespaces
plugin: kubevirt
connections:
- host: https://kubevirt.io
token: xxxxxxxxxxxxxxxx
ssl_verify: false
# Use default config (~/.kube/config) file and active context, and return vms with interfaces
# connected to network myovsnetwork and from namespace vms
plugin: kubevirt
connections:
- namespaces:
- vms
network_name: myovsnetwork
Status
- This inventory is not guaranteed to have a backwards compatible interface. [preview]
- This inventory is maintained by the Ansible Community. [community]
Authors
- KubeVirt Team (@kubevirt)
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.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/plugins/inventory/kubevirt.html