# kubevirt – KubeVirt inventory source

New in version 2.8.

- Synopsis

- Requirements

- Parameters

- Examples

- Status

## 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

Choices:
- no ←
- yes

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

Choices:
- no
- yes

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

Choices:
- kubevirt

token that ensures this is a source file for the 'kubevirt' plugin.

strict
boolean

Choices:
- no ←
- yes

If `yes` make invalid entries a fatal error, otherwise skip and continue.
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

If you notice any issues in this documentation, you can edit this document to improve it.

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.