community.kubevirt.kubevirt – KubeVirt inventory source
Note
This plugin is part of the community.kubevirt collection (version 1.0.0).
To install it use: ansible-galaxy collection install community.kubevirt.
To use it in a playbook, specify: community.kubevirt.kubevirt.
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 controller node that executes this inventory.
- openshift >= 0.6
 - PyYAML >= 3.11
 
Parameters
| Parameter | Choices/Defaults | Configuration | Comments | |
|---|---|---|---|---|
|   cache    boolean    |   
  |     ini entries:    [inventory]  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]  [inventory]  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]  [inventory]  env:ANSIBLE_CACHE_PLUGIN    env:ANSIBLE_INVENTORY_CACHE_PLUGIN    |    Cache plugin to use for the inventory's source data.   |  |
|   cache_prefix    string    |   Default: "ansible_inventory_"   |     ini entries:    [default]  [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]  [inventory]  env:ANSIBLE_CACHE_PLUGIN_TIMEOUT    env:ANSIBLE_INVENTORY_CACHE_TIMEOUT    |    Cache duration in seconds   |  |
|   compose    dictionary    |   Default: {}   |    Create vars from jinja2 expressions.   |  ||
|   connections    list / elements=string    |    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 / elements=string    |    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.  aliases: interface_name  |  |||
|   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    string    |   Default: "{namespace}-{name}-{uid}"   |    Specify the format of the host in the inventory group.   |  ||
|   keyed_groups    list / elements=string    |   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   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: community.kubevirt.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: community.kubevirt.kubevirt
connections:
  - namespaces:
      - vms
    network_name: myovsnetwork
  Authors
- KubeVirt Team (@kubevirt)
 
    © 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.10/collections/community/kubevirt/kubevirt_inventory.html