Lean Ansible bindings for KubeVirt
-
-
-
-This repo hosts the kubevirt.core Ansible Collection.
-The collection includes an inventory plugin for Ansible to automate the management of VMs running on KubeVirt.
+
+
+
+NOTE: If you are Red Hat customer, install redhat.ocpv from Automation Hub as the certified version of this collection.
+
+
+This repository hosts the kubevirt.core Ansible Collection, which provides virtual machine operations and inventory source for use with Ansible.
+
+
+Ansible version compatibility
+This collection has been tested against following Ansible versions: >=2.9.10.
+
+
+
+
+Using this collection
+
+
+Installing the Collection from Ansible Galaxy
+Before using this collection, you need to install it with the Ansible Galaxy command-line tool:
+ansible-galaxy collection install kubevirt.core
+
+
+
+
+
+Build and install locally
+Clone the repository, checkout the tag you want to build, or pick the main branch for the development version; then:
+ansible-galaxy collection build .
+ansible-galaxy collection install kubevirt-kubevirt.core-*.tar.gz
+
+
+
+
+Dependencies
+
+Ansible collections
+
+You can also include it in a requirements.yml file and install it with ansible-galaxy collection install -r requirements.yml, using the format:
+---
+collections:
+ - name: kubevirt.core
+
+
+
+
+Python libraries
+
+kubernetes
+PyYaml
+jsonpatch
+jinja2
+
+To install all the dependencies:
+pip install -r requirements.txt
+
+
+See Ansible Using collections for more details.
+
+
+
+
Code of Conduct
-We follow the Ansible Code of Conduct in all our interactions within this project.
-If you encounter abusive behavior, please refer to the policy violations section of the Code for information on how to raise a complaint.
-
-
Contributing to this collection
-
The content of this collection is made by people like you, a community of individuals collaborating on making the world better through developing automation software.
We are actively accepting new contributors.
Any kind of contribution is very welcome.
@@ -143,91 +202,19 @@
Collection maintenance
-The current maintainers are listed in the MAINTAINERS file. If you have questions or need help, feel free to mention them in the proposals.
-To learn how to maintain / become a maintainer of this collection, refer to the Maintainer guidelines.
+The current maintainers are listed in the OWNERS file. If you have questions or need help, feel free to mention them in the proposals.
+To learn how to maintain / become a maintainer of this collection, refer to the Maintainer guidelines.
Governance
-
The process of decision making in this collection is based on discussing and finding consensus among participants.
Every voice is important. If you have something on your mind, create an issue or dedicated discussion and let’s discuss it!
-
-
-
-External requirements
-
-
-Python libraries:
-
-kubernetes
-PyYaml
-jsonpatch
-jinja2
-
-
-Supported connections
-
-
-
-
-
-Using this collection
-
-
-Installing the Collection from Ansible Galaxy
-Before using this collection, you need to install it with the Ansible Galaxy command-line tool:
-ansible-galaxy collection install kubevirt.core
-
-
-You can also include it in a requirements.yml file and install it with ansible-galaxy collection install -r requirements.yml, using the format:
----
-collections:
- - name: kubevirt.core
-
-
-Note that if you install the collection from Ansible Galaxy, it will not be upgraded automatically when you upgrade the ansible package. To upgrade the collection to the latest available version, run the following command:
-ansible-galaxy collection install kubevirt.core --upgrade
-
-
-You can also install a specific version of the collection, for example, if you need to downgrade when something is broken in the latest version (please report an issue in this repository). Use the following syntax to install version 0.1.0:
-ansible-galaxy collection install kubevirt.core:==0.1.0
-
-
-See Ansible Using collections for more details.
-
-
-
-
-
Licensing
-
GNU General Public License v3.0 or later.
See LICENSE to see the full text.
diff --git a/main/_sources/README.md.txt b/main/_sources/README.md.txt
index c27b264..c5a07dd 100644
--- a/main/_sources/README.md.txt
+++ b/main/_sources/README.md.txt
@@ -1,34 +1,78 @@
# Lean Ansible bindings for KubeVirt
-
-[](https://github.com/kubevirt/kubevirt.core/actions)
+
+[](https://github.com/kubevirt/kubevirt.core/actions)
-
-This repo hosts the kubevirt.core Ansible Collection.
+> **_NOTE:_ If you are Red Hat customer, install `redhat.ocpv` from [Automation Hub](https://console.redhat.com/ansible/ansible-dashboard) as the certified version of this collection.**
+
-The collection includes an inventory plugin for Ansible to automate the management of VMs running on KubeVirt.
+This repository hosts the `kubevirt.core` Ansible Collection, which provides virtual machine operations and inventory source for use with Ansible.
+
+## Ansible version compatibility
+
+This collection has been tested against following Ansible versions: **>=2.9.10**.
+
+
+## Included content
+
+### Plugins
+
+* `kubevirt`: inventory source for kubevirt virtual machines
+* `kubevirt_vm`: create or delete kubevirt virtual machines
+
+## Using this collection
+
+
+### Installing the Collection from Ansible Galaxy
+
+Before using this collection, you need to install it with the Ansible Galaxy command-line tool:
+```bash
+ansible-galaxy collection install kubevirt.core
+```
+
+
+### Build and install locally
+
+Clone the repository, checkout the tag you want to build, or pick the main branch for the development version; then:
+```bash
+ansible-galaxy collection build .
+ansible-galaxy collection install kubevirt-kubevirt.core-*.tar.gz
+```
+
+### Dependencies
+
+#### Ansible collections
+
+* [kubernetes.core](https://docs.ansible.com/ansible/latest/collections/kubernetes/core/index.html)
+
+You can also include it in a `requirements.yml` file and install it with `ansible-galaxy collection install -r requirements.yml`, using the format:
+```yaml
+---
+collections:
+ - name: kubevirt.core
+```
+
+#### Python libraries
+
+- kubernetes
+- PyYaml
+- jsonpatch
+- jinja2
+
+To install all the dependencies:
+```bash
+pip install -r requirements.txt
+```
+
+See [Ansible Using collections](https://docs.ansible.com/ansible/devel/user_guide/collections_using.html) for more details.
+
+
## Code of Conduct
-We follow the [Ansible Code of Conduct](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html) in all our interactions within this project.
-
-If you encounter abusive behavior, please refer to the [policy violations](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html#policy-violations) section of the Code for information on how to raise a complaint.
-
-## Communication
-
-
-
-We announce releases and important changes through Ansible's [The Bullhorn newsletter](https://github.com/ansible/community/wiki/News#the-bullhorn). Be sure you are [subscribed](https://eepurl.com/gZmiEP).
-
-Join us in the `#ansible` (general use questions and support), `#ansible-community` (community and collection development questions), and other [IRC channels](https://docs.ansible.com/ansible/devel/community/communication.html#irc-channels).
-
-We take part in the global quarterly [Ansible Contributor Summit](https://github.com/ansible/community/wiki/Contributor-Summit) virtually or in-person. Track [The Bullhorn newsletter](https://eepurl.com/gZmiEP) and join us.
-
-For more information about communication, refer to the [Ansible Communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).
+We follow the [KubeVirt Code of Conduct](https://github.com/kubevirt/kubevirt/blob/main/CODE_OF_CONDUCT.md).
## Contributing to this collection
-
-
The content of this collection is made by people like you, a community of individuals collaborating on making the world better through developing automation software.
We are actively accepting new contributors.
@@ -47,95 +91,22 @@ We use the following guidelines:
## Collection maintenance
-The current maintainers are listed in the [MAINTAINERS](MAINTAINERS) file. If you have questions or need help, feel free to mention them in the proposals.
+The current maintainers are listed in the [OWNERS](OWNERS) file. If you have questions or need help, feel free to mention them in the proposals.
-To learn how to maintain / become a maintainer of this collection, refer to the [Maintainer guidelines](MAINTAINING.md).
+To learn how to maintain / become a maintainer of this collection, refer to the [Maintainer guidelines](https://docs.ansible.com/ansible/devel/community/maintainers.html).
## Governance
-
-
The process of decision making in this collection is based on discussing and finding consensus among participants.
Every voice is important. If you have something on your mind, create an issue or dedicated discussion and let's discuss it!
+
-## Tested with Ansible
-
-
-
-## External requirements
-
-
-- python >= 3.6
-
-Python libraries:
-- kubernetes
-- PyYaml
-- jsonpatch
-- jinja2
-
-### Supported connections
-
-
-## Included content
-
-
-
-## Using this collection
-
-
-
-### Installing the Collection from Ansible Galaxy
-
-Before using this collection, you need to install it with the Ansible Galaxy command-line tool:
-```bash
-ansible-galaxy collection install kubevirt.core
-```
-
-You can also include it in a `requirements.yml` file and install it with `ansible-galaxy collection install -r requirements.yml`, using the format:
-```yaml
----
-collections:
- - name: kubevirt.core
-```
-
-Note that if you install the collection from Ansible Galaxy, it will not be upgraded automatically when you upgrade the `ansible` package. To upgrade the collection to the latest available version, run the following command:
-```bash
-ansible-galaxy collection install kubevirt.core --upgrade
-```
-
-You can also install a specific version of the collection, for example, if you need to downgrade when something is broken in the latest version (please report an issue in this repository). Use the following syntax to install version `0.1.0`:
-
-```bash
-ansible-galaxy collection install kubevirt.core:==0.1.0
-```
-
-See [Ansible Using collections](https://docs.ansible.com/ansible/devel/user_guide/collections_using.html) for more details.
-
-## Release notes
-
-See the [changelog](https://github.com/ansible-collections/REPONAMEHERE/tree/main/CHANGELOG.rst).
-
-## Roadmap
-
-
-
-## More information
-
-
-
-- [Ansible Collection overview](https://github.com/ansible-collections/overview)
-- [Ansible User guide](https://docs.ansible.com/ansible/devel/user_guide/index.html)
-- [Ansible Developer guide](https://docs.ansible.com/ansible/devel/dev_guide/index.html)
-- [Ansible Collections Checklist](https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst)
-- [Ansible Community code of conduct](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html)
-- [The Bullhorn (the Ansible Contributor newsletter)](https://us19.campaign-archive.com/home/?u=56d874e027110e35dea0e03c1&id=d6635f5420)
-- [News for Maintainers](https://github.com/ansible-collections/news-for-maintainers)
+
+
## Licensing
-
-
GNU General Public License v3.0 or later.
See [LICENSE](./LICENSE) to see the full text.
diff --git a/main/_sources/testing.md.txt b/main/_sources/testing.md.txt
index f9343f2..6ed0b3d 100644
--- a/main/_sources/testing.md.txt
+++ b/main/_sources/testing.md.txt
@@ -2,34 +2,32 @@
## Continuous integration
-The collection is tested with a [molecule](https://github.com/ansible-community/molecule) setup covering the included roles and verifying correct installation and idempotency.
-In order to run the molecule tests locally with python 3.9 available, after cloning the repository:
+The `hack/e2e-setup.sh` script contains the steps necessary to reproduce the CI test environment, which relies on `kubectl` and `kind`.
-```
-pip install yamllint 'molecule[docker]~=3.5.2' ansible-core flake8 ansible-lint voluptuous
-molecule test --all
-```
-## Test playbooks
+## Example config and playbooks
-Sample playbooks are provided in the `playbooks/` directory; to run the playbooks locally (requires a rhel system with python 3.9+, ansible, and systemd) the steps are as follows:
+Sample playbooks and inventory configurations are provided in the `examples/` directory; to run the playbooks locally, build the testing environment with the script above, then the steps are as follows:
-```
+```bash
# setup environment
pip install ansible-core
# clone the repository
-git clone https://github.com/ansible-middleware/amq
-cd amq
+git clone https://github.com/kubevirt/kubevirt.core
+cd kubevirt.core
# install collection dependencies
ansible-galaxy collection install -r requirements.yml
# install collection python deps
pip install -r requirements.txt
-# create inventory for localhost
-cat << EOF > inventory
-[amq]
-localhost ansible_connection=local
-EOF
-# run the playbook
-ansible-playbook -i inventory playbooks/activemq.yml
+# setup environment
+hack/e2e-setup.sh
+# run inventory source
+ansible-inventory -i examples/inventory.kubevirt.yml
+# create a virtual machine
+ansible-playbook -i examples/inventory.kubevirt.yml examples/play-create-min.yml
+# terminate a virtual machine
+ansible-playbook -i examples/inventory.kubevirt.yml examples/play-delete.yml
+# terminate the environment
+hack/e2e-setup.sh --cleanup
```
diff --git a/main/_static/pygments.css b/main/_static/pygments.css
index 691aeb8..0d49244 100644
--- a/main/_static/pygments.css
+++ b/main/_static/pygments.css
@@ -17,6 +17,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left:
.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
diff --git a/main/index.html b/main/index.html
index c6b4a2a..b1cb711 100644
--- a/main/index.html
+++ b/main/index.html
@@ -89,18 +89,13 @@
User documentation
- Lean Ansible bindings for KubeVirt
@@ -119,7 +114,7 @@
- Testing
- Contributor’s Guidelines
diff --git a/main/searchindex.js b/main/searchindex.js
index c9f450a..aa34d2c 100644
--- a/main/searchindex.js
+++ b/main/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["CHANGELOG", "CONTRIBUTING", "README", "developing", "index", "plugins/index", "plugins/kubevirt", "plugins/kubevirt_vm", "releasing", "roles/index", "testing"], "filenames": ["CHANGELOG.rst", "CONTRIBUTING.md", "README.md", "developing.md", "index.rst", "plugins/index.rst", "plugins/kubevirt.rst", "plugins/kubevirt_vm.rst", "releasing.md", "roles/index.rst", "testing.md"], "titles": ["KubeVirt Collection for Ansible Release Notes", "Contributing", "Lean Ansible bindings for KubeVirt", "Contributor\u2019s Guidelines", "Welcome to kubevirt.core Collection documentation", "Plugin Index", "kubevirt \u2013 KubeVirt inventory source", "kubevirt_vm \u2013 Create or delete KubeVirt VirtualMachines on Kubernetes", "Collection Versioning Strategy", "Role Index", "Testing"], "terms": {"refer": [1, 2, 7], "kubevirt": [1, 5], "guidelin": [1, 2, 4], "repo": 2, "host": [2, 6, 7], "core": [2, 6, 7, 10], "The": [2, 6, 7, 8, 10], "an": [2, 4, 6, 7], "inventori": [2, 4, 8, 10], "plugin": [2, 4, 6], "autom": [2, 3, 4], "manag": 2, "vm": 2, "run": [2, 6, 7, 10], "we": [2, 6, 8], "follow": [2, 3, 7, 8, 10], "all": [2, 3, 6, 8, 10], "our": 2, "interact": 2, "within": [2, 4], "project": [2, 6, 7], "If": [2, 6, 7], "you": [2, 6, 7], "encount": 2, "abus": 2, "behavior": [2, 7], "pleas": [2, 7, 8], "polici": [2, 7], "violat": 2, "section": [2, 6, 8], "how": [2, 7, 8], "rais": 2, "complaint": 2, "announc": 2, "import": 2, "chang": [2, 3, 4, 7], "through": [2, 7], "": [2, 4, 6, 7], "bullhorn": 2, "newslett": 2, "Be": 2, "sure": 2, "ar": [2, 3, 6, 7, 8, 10], "subscrib": 2, "join": 2, "u": 2, "gener": [2, 6, 7, 8], "question": 2, "develop": [2, 6, 8], "other": [2, 3, 6, 7], "irc": 2, "channel": 2, "take": 2, "part": [2, 6, 7], "global": 2, "quarterli": 2, "contributor": [2, 4], "summit": 2, "virtual": 2, "person": 2, "track": 2, "For": [2, 6], "about": 2, "guid": 2, "i": [2, 4, 6, 7, 10], "made": [2, 8], "peopl": 2, "like": [2, 3, 7], "individu": 2, "collabor": 2, "make": [2, 6, 8], "world": 2, "better": 2, "softwar": 2, "activ": [2, 6], "accept": 2, "new": [2, 4, 7], "ani": [2, 4, 7], "kind": 2, "veri": 2, "welcom": 2, "don": [2, 3], "t": [2, 3, 7], "know": 2, "start": [2, 3, 6], "md": 2, "review_checklist": 2, "current": [2, 7, 8], "maintain": [2, 8], "list": [2, 3, 6, 7], "file": [2, 3, 6, 7], "have": [2, 3, 6], "need": [2, 3, 6, 7, 8], "help": 2, "feel": 2, "free": 2, "mention": 2, "them": 2, "propos": 2, "To": [2, 6, 7], "learn": 2, "becom": 2, "process": 2, "decis": 2, "base": [2, 6, 7], "discuss": [2, 7], "find": 2, "consensu": 2, "among": 2, "particip": 2, "everi": 2, "voic": 2, "someth": 2, "your": [2, 7], "mind": 2, "creat": [2, 4, 5, 6, 8, 10], "issu": 2, "dedic": [2, 8], "let": 2, "python": [2, 6, 7, 10], "3": [2, 6, 7, 10], "6": [2, 6, 7], "librari": [2, 7], "kubernet": [2, 4, 5, 6], "pyyaml": [2, 6, 7], "jsonpatch": [2, 7], "jinja2": [2, 6, 7], "befor": [2, 7], "command": 2, "line": 2, "tool": 2, "can": [2, 6, 7], "also": [2, 6, 7], "yml": [2, 3, 6, 10], "r": [2, 10], "format": [2, 6, 8], "name": [2, 3, 6, 7, 8], "upgrad": 2, "automat": [2, 7], "when": [2, 3, 6, 7, 8], "packag": 2, "latest": [2, 7], "avail": [2, 6, 8, 10], "version": [2, 4, 6, 7], "specif": [2, 3, 6], "exampl": [2, 5, 8], "downgrad": 2, "broken": 2, "report": 2, "repositori": [2, 10], "syntax": 2, "0": [2, 4, 6, 7, 8], "1": [2, 4, 7, 8], "see": [2, 6, 7, 8], "detail": [2, 6, 7], "changelog": [2, 4], "overview": 2, "user": [2, 3, 6, 7, 8], "checklist": 2, "gnu": 2, "public": 2, "v3": 2, "later": 2, "full": [2, 7], "text": 2, "yaml": [3, 6], "extens": [3, 8], "us": [3, 4, 6, 7], "space": 3, "around": 3, "jinja": 3, "variabl": [3, 6, 7], "var": [3, 6], "over": 3, "intern": 3, "role": [3, 4, 10], "should": [3, 6, 7, 8], "lowercas": 3, "keep": 3, "self": 3, "contain": [3, 8], "avoid": [3, 7], "includ": [3, 4, 8, 10], "task": [3, 7], "from": [3, 4, 6, 7], "possibl": [3, 6], "plai": 3, "do": [3, 7], "noth": 3, "more": [3, 4, 6], "than": [3, 7], "except": 3, "where": 3, "pre_task": 3, "post_task": 3, "requir": [3, 4, 5, 8, 10], "separ": [3, 6, 7], "valid": [3, 7], "ie": 3, "underscor": [3, 6], "e": [3, 7], "g": [3, 7], "my_rol": 3, "my_playbook": 3, "dash": 3, "my": 3, "path": [3, 6, 7], "defin": [3, 6], "trail": 3, "slash": 3, "my_path": 3, "foo": [3, 7], "concaten": [3, 6], "same": 3, "convent": 3, "bar": 3, "indent": 3, "2": [3, 6, 7, 8, 10], "each": [3, 6, 8], "v": 3, "default": [3, 6, 7, 8], "interpol": 3, "overridden": 3, "go": [3, 7], "those": [3, 6, 7], "would": [3, 8], "overrid": [3, 6], "under": 3, "directori": [3, 10], "argument": [3, 7], "meta": 3, "argument_spec": 3, "playbook": [3, 4, 6, 7, 8], "focus": 3, "compat": [3, 4], "ansibl": [3, 4, 6, 7, 8, 10], "platform": [3, 7], "lean": 4, "bind": 4, "code": 4, "conduct": 4, "commun": [4, 7], "contribut": 4, "thi": [4, 6, 7, 8], "mainten": 4, "govern": 4, "test": [4, 6, 7, 8], "extern": 4, "content": 4, "releas": 4, "note": [4, 5, 8], "roadmap": 4, "inform": 4, "licens": 4, "index": 4, "sourc": [4, 5, 7], "kubevirt_vm": [4, 5], "delet": [4, 5, 8], "virtualmachin": [4, 5, 6], "continu": [4, 6], "integr": 4, "strategi": 4, "ad": [4, 6, 7], "exist": [4, 6, 7], "featur": [4, 7], "backward": 4, "bug": 4, "fix": [4, 6, 7], "secur": 4, "break": 4, "remov": [4, 6], "A": [4, 6], "typograph": 4, "error": [4, 6, 7], "wa": [4, 7], "modifi": 4, "v0": 4, "devel": 4, "synopsi": 5, "paramet": [5, 8], "author": 5, "return": [5, 6, 8], "valu": [5, 6], "collect": [6, 7, 10], "instal": [6, 7, 10], "galaxi": [6, 7, 8, 10], "further": [6, 7], "abl": [6, 7], "specifi": [6, 7], "fetch": 6, "virtualmachineinst": 6, "one": 6, "namespac": [6, 7], "option": [6, 7], "label": [6, 7, 8], "selector": 6, "group": [6, 7], "namespace_vmi": 6, "kubectl": 6, "connect": [6, 7, 8], "access": [6, 7], "cluster": [6, 7], "configur": [6, 7], "set": [6, 7], "below": [6, 7, 8], "local": [6, 7, 10], "control": [6, 7], "node": 6, "execut": [6, 7], "12": [6, 7], "11": [6, 7], "comment": [6, 7], "cach": 6, "boolean": [6, 7], "toggl": 6, "enabl": 6, "disabl": 6, "data": 6, "setup": [6, 10], "work": [6, 7], "choic": [6, 7], "entri": [6, 7, 8], "fals": [6, 7], "true": [6, 7], "ini": 6, "environ": [6, 7, 10], "ansible_inventory_cach": 6, "cache_connect": 6, "string": [6, 7], "read": [6, 7], "document": [6, 7], "fact_caching_connect": 6, "ansible_cache_plugin_connect": 6, "ansible_inventory_cache_connect": 6, "cache_plugin": 6, "memori": 6, "fact_cach": 6, "ansible_cache_plugin": 6, "ansible_inventory_cache_plugin": 6, "cache_prefix": 6, "prefix": 6, "tabl": 6, "_inventori": 6, "_": 6, "fact_caching_prefix": 6, "ansible_inventory_": 6, "16": [6, 7], "builtin": 6, "why": 6, "type": [6, 7], "altern": 6, "instead": 6, "ansible_cache_plugin_prefix": 6, "ansible_inventory_cache_plugin_prefix": 6, "cache_timeout": 6, "integ": [6, 7], "durat": [6, 7], "second": [6, 7], "3600": 6, "fact_caching_timeout": 6, "ansible_cache_plugin_timeout": 6, "ansible_inventory_cache_timeout": 6, "compos": 6, "dictionari": [6, 7], "express": 6, "provid": [6, 7, 10], "kube": [6, 7], "config": [6, 7], "context": [6, 7], "object": [6, 7], "api_kei": [6, 7], "token": [6, 7], "authent": [6, 7], "api": [6, 7, 8], "via": [6, 7], "k8s_auth_api_kei": [6, 7], "api_vers": [6, 7], "io": [6, 7], "v1": [6, 7], "ca_cert": [6, 7], "alias": [6, 7], "ssl_ca_cert": [6, 7], "ca": [6, 7], "certif": [6, 7], "k8s_auth_ssl_ca_cert": [6, 7], "client_cert": [6, 7], "cert_fil": [6, 7], "k8s_auth_cert_fil": [6, 7], "client_kei": [6, 7], "key_fil": [6, 7], "kei": [6, 7], "k8s_auth_key_fil": [6, 7], "found": [6, 7], "k8s_auth_context": [6, 7], "url": [6, 7], "k8s_auth_host": [6, 7], "kube_secondary_dn": 6, "kubesecondarydn": 6, "deriv": 6, "secondari": 6, "network": [6, 7], "interfac": [6, 7], "kubeconfig": [6, 7], "client": [6, 7], "attempt": [6, 7], "load": [6, 7], "k8s_auth_kubeconfig": [6, 7], "label_selector": 6, "select": 6, "subset": 6, "assign": 6, "construct": 6, "server": [6, 7], "port": 6, "network_nam": 6, "interface_nam": 6, "In": [6, 10], "case": [6, 7], "multipl": [6, 7], "attach": 6, "which": 6, "primari": 6, "ip": [6, 7], "address": 6, "password": [6, 7], "k8s_auth_password": [6, 7], "use_servic": 6, "servic": 6, "establish": 6, "ssh": [6, 7], "usernam": [6, 7], "k8s_auth_usernam": [6, 7], "validate_cert": [6, 7], "verify_ssl": [6, 7], "whether": [6, 7], "verifi": [6, 7, 10], "ssl": [6, 7], "k8s_auth_verify_ssl": [6, 7], "add": 6, "condit": [6, 7], "host_format": 6, "uid": [6, 7], "keyed_group": 6, "element": [6, 7], "default_valu": 6, "empti": [6, 7], "mutual": [6, 7], "exclus": [6, 7], "trailing_separ": 6, "input": 6, "parent_group": 6, "parent": 6, "build": [6, 8], "omit": 6, "after": [6, 8, 10], "leading_separ": 6, "conjunct": 6, "By": [6, 8], "doe": [6, 7, 8], "becaus": 6, "lead": 6, "given": [6, 8], "map": 6, "still": 6, "item": 6, "ensur": 6, "strict": [6, 8], "ye": [6, 7], "invalid": 6, "fatal": 6, "otherwis": 6, "skip": 6, "sinc": 6, "fact": 6, "thei": 6, "might": [6, 7], "alwai": 6, "ignor": [6, 7], "use_extra_var": 6, "merg": 6, "extra": 6, "composit": 6, "highest": 6, "preced": 6, "inventory_plugin": 6, "ansible_inventory_use_extra_var": 6, "filenam": 6, "must": [6, 7], "end": [6, 7], "http": [6, 7, 8, 10], "192": [6, 7], "168": [6, 7], "64": 6, "4": 6, "8443": 6, "xxxxxxxxxxxxxxxx": 6, "bridg": [6, 7], "app": [6, 7], "custom": 6, "awx": 6, "low": 6, "high": 6, "prioriti": 6, "order": [6, 10], "lower": 6, "higher": 6, "up": [6, 7], "modul": [7, 8], "perform": 7, "oper": 7, "pass": 7, "either": [7, 8], "support": [7, 8], "check": 7, "mode": 7, "annot": [7, 8], "onli": [7, 8], "state": [7, 8], "present": 7, "chain": 7, "data_volume_templ": 7, "datavolum": 7, "templat": 7, "definit": 7, "html": 7, "_v1_datavolumetemplatespec": 7, "delete_opt": 7, "absent": 7, "graceperiodsecond": 7, "mani": 7, "wait": 7, "forcefulli": 7, "termin": 7, "implement": 7, "pod": 7, "resourc": 7, "grace": 7, "period": 7, "precondit": 7, "met": 7, "proce": 7, "resourcevers": 7, "target": 7, "propagationpolici": 7, "depend": [7, 10], "mai": [7, 8], "vari": 7, "across": 7, "foreground": 7, "background": 7, "orphan": 7, "forc": 7, "replac": 7, "generate_nam": 7, "basi": 7, "random": 7, "charact": 7, "uniqu": 7, "impersonate_group": 7, "imperson": 7, "k8s_auth_impersonate_group": 7, "group1": 7, "group2": 7, "impersonate_us": 7, "k8s_auth_impersonate_us": 7, "instancetyp": 7, "matcher": 7, "window": 7, "17": 7, "no_proxi": 7, "comma": 7, "domain": 7, "cidr": 7, "shouldn": 7, "proxi": 7, "k8s_auth_no_proxi": 7, "pick": 7, "typic": 7, "19": 7, "15": 7, "less": 7, "fail": 7, "even": 7, "correct": [7, 8, 10], "localhost": [7, 10], "com": [7, 10], "127": 7, "8": 7, "10": 7, "172": 7, "descript": 7, "applic": 7, "persist_config": 7, "save": 7, "refresh": 7, "k8s_auth_persist_config": 7, "k8": 7, "credenti": 7, "oidc": 7, "gke": 7, "gcloud": 7, "auth": 7, "so": 7, "old": 7, "expir": 7, "next": [7, 8], "flag": 7, "tell": 7, "yet": 7, "here": 7, "github": [7, 8, 10], "pull": 7, "169": 7, "prefer": 7, "k8s_auth_proxi": 7, "http_proxi": 7, "proxy_head": 7, "header": 7, "urllib3": 7, "readthedoc": 7, "en": 7, "util": 7, "highlight": 7, "make_head": 7, "basic_auth": 7, "colon": 7, "basic": 7, "k8s_auth_proxy_headers_basic_auth": 7, "proxy_basic_auth": 7, "k8s_auth_proxy_headers_proxy_basic_auth": 7, "user_ag": 7, "repres": 7, "agent": 7, "want": 7, "k8s_auth_proxy_headers_user_ag": 7, "spec": 7, "_v1_virtualmachineinstancespec": 7, "determin": 7, "patch": [7, 8], "alreadi": 7, "its": 7, "attribut": 7, "differ": 7, "resource_definit": 7, "src": 7, "ha": 7, "form": 7, "oauth2": 7, "openshift": 7, "expect": 7, "look": 7, "okd": 7, "k8s_auth": 7, "what": 7, "readi": [7, 8], "wait_sleep": 7, "number": [7, 8], "sleep": 7, "between": 7, "5": [7, 10], "wait_timeout": 7, "long": 7, "desir": 7, "120": 7, "testvm": 7, "u1": 7, "medium": 7, "fedora": 7, "devic": 7, "masquerad": 7, "multu": 7, "networknam": 7, "kindexgw": 7, "volum": 7, "containerdisk": 7, "imag": 7, "quai": 7, "cloudinitnocloud": 7, "userdata": 7, "cloud": 7, "ssh_authorized_kei": 7, "ed25519": 7, "aaaa": 7, "cloudinit": 7, "dv": 7, "metadata": [7, 8], "testdv": 7, "registri": 7, "docker": [7, 10], "storag": 7, "accessmod": 7, "readwriteonc": 7, "request": 7, "5gi": 7, "common": 7, "field": 7, "result": 7, "complex": 7, "Will": 7, "success": 7, "sampl": [7, 10], "rv": 7, "elaps": 7, "time": [7, 8], "48": 7, "method": 7, "semant": 8, "semver": 8, "org": 8, "major": 8, "minor": 8, "increment": 8, "incompat": 8, "scenario": 8, "function": 8, "manner": 8, "updat": 8, "matrix": 8, "deprec": 8, "addit": 8, "pre": 8, "first": 8, "hub": 8, "shall": 8, "newli": 8, "begin": 8, "smaller": 8, "therefor": 8, "explicitli": 8, "assum": 8, "indic": 8, "while": 8, "prior": 8, "nor": 8, "allow": 8, "elimin": 8, "introduc": 8, "limit": 8, "argspec": 8, "structur": 8, "shape": 8, "inbound": 8, "payload": 8, "filter": 8, "cfg": 8, "outcom": 8, "previou": 8, "readm": 8, "consid": 8, "abov": 8, "increas": 8, "revis": 8, "trigger": 8, "git": [8, 10], "tag": 8, "publish": 8, "built": 8, "artifact": 8, "page": 8, "molecul": 10, "cover": 10, "idempot": 10, "9": 10, "clone": 10, "pip": 10, "yamllint": 10, "flake8": 10, "lint": 10, "voluptu": 10, "rhel": 10, "system": 10, "systemd": 10, "step": 10, "middlewar": 10, "amq": 10, "cd": 10, "dep": 10, "txt": 10, "cat": 10, "eof": 10, "ansible_connect": 10, "activemq": 10}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"kubevirt": [0, 2, 4, 6, 7], "collect": [0, 2, 4, 8], "ansibl": [0, 2], "releas": [0, 2, 8], "note": [0, 2, 7], "topic": 0, "v0": 0, "1": 0, "devel": 0, "0": 0, "contribut": [1, 2], "lean": 2, "bind": 2, "code": 2, "conduct": 2, "commun": 2, "thi": 2, "mainten": 2, "govern": 2, "test": [2, 10], "extern": 2, "requir": [2, 6, 7], "support": 2, "connect": 2, "includ": 2, "content": [2, 8], "us": 2, "instal": 2, "from": [2, 8], "galaxi": 2, "roadmap": 2, "more": 2, "inform": 2, "licens": 2, "contributor": 3, "": 3, "guidelin": 3, "welcom": 4, "core": 4, "document": [4, 8], "user": 4, "develop": 4, "gener": 4, "plugin": [5, 8], "index": [5, 9], "inventori": [5, 6], "modul": 5, "sourc": 6, "synopsi": [6, 7], "paramet": [6, 7], "exampl": [6, 7], "author": [6, 7], "kubevirt_vm": 7, "creat": 7, "delet": 7, "virtualmachin": 7, "kubernet": 7, "return": 7, "valu": 7, "version": 8, "strategi": 8, "new": 8, "i": 8, "ad": 8, "an": 8, "exist": 8, "featur": 8, "role": [8, 9], "within": 8, "backward": 8, "compat": 8, "bug": 8, "fix": 8, "secur": 8, "break": 8, "chang": 8, "ani": 8, "remov": 8, "A": 8, "typograph": 8, "error": 8, "wa": 8, "modifi": 8, "autom": 8, "continu": 10, "integr": 10, "playbook": 10}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 57}, "alltitles": {"KubeVirt Collection for Ansible Release Notes": [[0, "kubevirt-collection-for-ansible-release-notes"]], "Topics": [[0, "topics"]], "v0.1.1-devel": [[0, "v0-1-1-devel"]], "v0.1.0": [[0, "v0-1-0"]], "Contributing": [[1, "contributing"]], "Lean Ansible bindings for KubeVirt": [[2, "lean-ansible-bindings-for-kubevirt"]], "Code of Conduct": [[2, "code-of-conduct"]], "Communication": [[2, "communication"]], "Contributing to this collection": [[2, "contributing-to-this-collection"]], "Collection maintenance": [[2, "collection-maintenance"]], "Governance": [[2, "governance"]], "Tested with Ansible": [[2, "tested-with-ansible"]], "External requirements": [[2, "external-requirements"]], "Supported connections": [[2, "supported-connections"]], "Included content": [[2, "included-content"]], "Using this collection": [[2, "using-this-collection"]], "Installing the Collection from Ansible Galaxy": [[2, "installing-the-collection-from-ansible-galaxy"]], "Release notes": [[2, "release-notes"]], "Roadmap": [[2, "roadmap"]], "More information": [[2, "more-information"]], "Licensing": [[2, "licensing"]], "Contributor\u2019s Guidelines": [[3, "contributor-s-guidelines"]], "Welcome to kubevirt.core Collection documentation": [[4, "welcome-to-kubevirt-core-collection-documentation"]], "User documentation": [[4, null]], "Developer documentation": [[4, null]], "General": [[4, null]], "Plugin Index": [[5, "plugin-index"]], "inventory plugins": [[5, null]], "modules plugins": [[5, null]], "kubevirt \u2013 KubeVirt inventory source": [[6, "kubevirt-kubevirt-inventory-source"]], "Synopsis": [[6, "synopsis"], [7, "synopsis"]], "Requirements": [[6, "requirements"], [7, "requirements"]], "Parameters": [[6, "parameters"], [7, "parameters"]], "Examples": [[6, "examples"], [7, "examples"]], "Authors": [[6, "authors"], [7, "authors"]], "kubevirt_vm \u2013 Create or delete KubeVirt VirtualMachines on Kubernetes": [[7, "kubevirt-vm-create-or-delete-kubevirt-virtualmachines-on-kubernetes"]], "Notes": [[7, "notes"]], "Return Values": [[7, "return-values"]], "Collection Versioning Strategy": [[8, "collection-versioning-strategy"]], "New content is added to an existing collection": [[8, "new-content-is-added-to-an-existing-collection"]], "New feature to existing plugin or role within a collection (backwards compatible)": [[8, "new-feature-to-existing-plugin-or-role-within-a-collection-backwards-compatible"]], "Bug fix or security fix to existing content within a collection": [[8, "bug-fix-or-security-fix-to-existing-content-within-a-collection"]], "Breaking change to any content within a collection": [[8, "breaking-change-to-any-content-within-a-collection"]], "Content removed from a collection": [[8, "content-removed-from-a-collection"]], "A typographical error was fixed in the documentation for a collection": [[8, "a-typographical-error-was-fixed-in-the-documentation-for-a-collection"]], "Documentation added/removed/modified within a collection": [[8, "documentation-added-removed-modified-within-a-collection"]], "Release automation": [[8, "release-automation"]], "Role Index": [[9, "role-index"]], "Testing": [[10, "testing"]], "Continuous integration": [[10, "continuous-integration"]], "Test playbooks": [[10, "test-playbooks"]]}, "indexentries": {"ansible_cache_plugin": [[6, "index-3"]], "ansible_cache_plugin_connection": [[6, "index-1"]], "ansible_cache_plugin_prefix": [[6, "index-5"]], "ansible_cache_plugin_timeout": [[6, "index-7"]], "ansible_inventory_cache": [[6, "index-0"]], "ansible_inventory_cache_connection": [[6, "index-2"]], "ansible_inventory_cache_plugin": [[6, "index-4"]], "ansible_inventory_cache_plugin_prefix": [[6, "index-6"]], "ansible_inventory_cache_timeout": [[6, "index-8"]], "ansible_inventory_use_extra_vars": [[6, "index-9"]], "environment variable": [[6, "index-0"], [6, "index-1"], [6, "index-2"], [6, "index-3"], [6, "index-4"], [6, "index-5"], [6, "index-6"], [6, "index-7"], [6, "index-8"], [6, "index-9"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["CHANGELOG", "CONTRIBUTING", "README", "developing", "index", "plugins/index", "plugins/kubevirt", "plugins/kubevirt_vm", "releasing", "roles/index", "testing"], "filenames": ["CHANGELOG.rst", "CONTRIBUTING.md", "README.md", "developing.md", "index.rst", "plugins/index.rst", "plugins/kubevirt.rst", "plugins/kubevirt_vm.rst", "releasing.md", "roles/index.rst", "testing.md"], "titles": ["KubeVirt Collection for Ansible Release Notes", "Contributing", "Lean Ansible bindings for KubeVirt", "Contributor\u2019s Guidelines", "Welcome to kubevirt.core Collection documentation", "Plugin Index", "kubevirt \u2013 KubeVirt inventory source", "kubevirt_vm \u2013 Create or delete KubeVirt VirtualMachines on Kubernetes", "Collection Versioning Strategy", "Role Index", "Testing"], "terms": {"refer": [1, 2, 7], "kubevirt": [1, 5, 10], "guidelin": [1, 2, 4], "note": [2, 5, 8], "If": [2, 6, 7], "you": [2, 6, 7], "ar": [2, 3, 6, 7, 8, 10], "red": 2, "hat": 2, "custom": [2, 6], "redhat": 2, "ocpv": 2, "autom": [2, 3, 4], "hub": [2, 8], "certifi": 2, "repositori": [2, 10], "host": [2, 6, 7], "core": [2, 6, 7, 10], "which": [2, 6, 10], "provid": [2, 6, 7, 10], "virtual": [2, 10], "machin": [2, 10], "oper": [2, 7], "inventori": [2, 4, 8, 10], "sourc": [2, 4, 5, 7, 10], "ha": [2, 7], "been": 2, "test": [2, 4, 6, 7, 8], "against": 2, "follow": [2, 3, 7, 8, 10], "2": [2, 3, 6, 7, 8], "9": 2, "10": [2, 7], "kubevirt_vm": [2, 4, 5], "creat": [2, 4, 5, 6, 8, 10], "delet": [2, 4, 5, 8, 10], "befor": [2, 7], "need": [2, 3, 6, 7, 8], "command": 2, "line": 2, "tool": 2, "clone": [2, 10], "checkout": 2, "tag": [2, 8], "want": [2, 7], "pick": [2, 7], "main": 2, "branch": 2, "develop": [2, 6, 8], "tar": 2, "gz": 2, "kubernet": [2, 4, 5, 6], "can": [2, 6, 7], "also": [2, 6, 7], "requir": [2, 3, 5, 8, 10], "yml": [2, 3, 6, 10], "file": [2, 3, 6, 7], "r": [2, 10], "format": [2, 6, 8], "name": [2, 3, 6, 7, 8], "pyyaml": [2, 6, 7], "jsonpatch": [2, 7], "jinja2": [2, 6, 7], "To": [2, 6, 7], "all": [2, 3, 6, 8], "pip": [2, 10], "txt": [2, 10], "see": [2, 6, 7, 8], "more": [2, 3, 6], "detail": [2, 6, 7], "we": [2, 6, 8], "The": [2, 6, 7, 8, 10], "i": [2, 4, 6, 7, 10], "made": [2, 8], "peopl": 2, "like": [2, 3, 7], "commun": [2, 7], "individu": 2, "collabor": 2, "make": [2, 6, 8], "world": 2, "better": 2, "through": [2, 7], "softwar": 2, "activ": [2, 6], "accept": 2, "new": [2, 4, 7], "contributor": [2, 4], "ani": [2, 4, 7], "kind": [2, 10], "veri": 2, "welcom": 2, "don": [2, 3], "t": [2, 3, 7], "know": 2, "how": [2, 7, 8], "start": [2, 3, 6], "our": 2, "guid": 2, "md": 2, "review_checklist": 2, "current": [2, 7, 8], "maintain": [2, 8], "list": [2, 3, 6, 7], "owner": 2, "have": [2, 3, 6], "question": 2, "help": 2, "feel": 2, "free": 2, "mention": 2, "them": 2, "propos": 2, "learn": 2, "becom": 2, "process": 2, "decis": 2, "base": [2, 6, 7], "discuss": [2, 7], "find": 2, "consensu": 2, "among": 2, "particip": 2, "everi": 2, "voic": 2, "import": 2, "someth": 2, "your": [2, 7], "mind": 2, "an": [2, 4, 6, 7], "issu": 2, "dedic": [2, 8], "let": 2, "": [2, 4, 6, 7], "gnu": 2, "gener": [2, 6, 7, 8], "public": 2, "v3": 2, "0": [2, 4, 6, 7, 8], "later": 2, "full": [2, 7], "text": 2, "yaml": [3, 6], "extens": [3, 8], "us": [3, 4, 6, 7], "space": 3, "around": 3, "jinja": 3, "variabl": [3, 6, 7], "var": [3, 6], "over": 3, "intern": 3, "role": [3, 4], "should": [3, 6, 7, 8], "lowercas": 3, "keep": 3, "self": 3, "contain": [3, 8, 10], "avoid": [3, 7], "includ": [3, 4, 8], "task": [3, 7], "from": [3, 4, 6, 7], "other": [3, 6, 7], "when": [3, 6, 7, 8], "possibl": [3, 6], "plai": [3, 10], "do": [3, 7], "noth": 3, "than": [3, 7], "except": 3, "where": 3, "pre_task": 3, "post_task": 3, "separ": [3, 6, 7], "valid": [3, 7], "ie": 3, "underscor": [3, 6], "e": [3, 7], "g": [3, 7], "my_rol": 3, "my_playbook": 3, "dash": 3, "my": 3, "path": [3, 6, 7], "defin": [3, 6], "trail": 3, "slash": 3, "my_path": 3, "foo": [3, 7], "concaten": [3, 6], "same": 3, "convent": 3, "bar": 3, "indent": 3, "each": [3, 6, 8], "v": 3, "default": [3, 6, 7, 8], "interpol": 3, "chang": [3, 4, 7], "overridden": 3, "user": [3, 6, 7, 8], "go": [3, 7], "those": [3, 6, 7], "would": [3, 8], "overrid": [3, 6], "under": 3, "directori": [3, 10], "argument": [3, 7], "specif": [3, 6], "meta": 3, "argument_spec": 3, "playbook": [3, 4, 6, 7, 8], "focus": 3, "compat": [3, 4], "ansibl": [3, 4, 6, 7, 8, 10], "platform": [3, 7], "lean": 4, "bind": 4, "version": [4, 6, 7], "content": 4, "thi": [4, 6, 7, 8], "code": 4, "conduct": 4, "contribut": 4, "mainten": 4, "govern": 4, "licens": 4, "plugin": [4, 6], "index": 4, "virtualmachin": [4, 5, 6], "continu": [4, 6], "integr": 4, "exampl": [4, 5, 8], "config": [4, 6, 7], "strategi": 4, "ad": [4, 6, 7], "exist": [4, 6, 7], "featur": [4, 7], "within": 4, "backward": 4, "bug": 4, "fix": [4, 6, 7], "secur": 4, "break": 4, "remov": [4, 6], "A": [4, 6], "typograph": 4, "error": [4, 6, 7], "wa": [4, 7], "modifi": 4, "releas": 4, "changelog": 4, "v0": 4, "1": [4, 7, 8], "devel": 4, "synopsi": 5, "paramet": [5, 8], "author": 5, "return": [5, 6, 8], "valu": [5, 6], "part": [6, 7], "collect": [6, 7, 10], "instal": [6, 7, 10], "galaxi": [6, 7, 8, 10], "further": [6, 7], "abl": [6, 7], "specifi": [6, 7], "fetch": 6, "run": [6, 7, 10], "virtualmachineinst": 6, "one": 6, "namespac": [6, 7], "option": [6, 7], "label": [6, 7, 8], "selector": 6, "group": [6, 7], "namespace_vmi": 6, "kubectl": [6, 10], "connect": [6, 7, 8], "access": [6, 7], "cluster": [6, 7], "configur": [6, 7, 10], "set": [6, 7], "below": [6, 7, 8], "local": [6, 7, 10], "control": [6, 7], "node": 6, "execut": [6, 7], "python": [6, 7, 10], "3": [6, 7], "6": [6, 7], "12": [6, 7], "11": [6, 7], "comment": [6, 7], "cach": 6, "boolean": [6, 7], "toggl": 6, "enabl": 6, "disabl": 6, "data": 6, "setup": [6, 10], "work": [6, 7], "choic": [6, 7], "entri": [6, 7, 8], "fals": [6, 7], "true": [6, 7], "ini": 6, "environ": [6, 7, 10], "ansible_inventory_cach": 6, "cache_connect": 6, "string": [6, 7], "read": [6, 7], "document": [6, 7], "fact_caching_connect": 6, "ansible_cache_plugin_connect": 6, "ansible_inventory_cache_connect": 6, "cache_plugin": 6, "memori": 6, "fact_cach": 6, "ansible_cache_plugin": 6, "ansible_inventory_cache_plugin": 6, "cache_prefix": 6, "prefix": 6, "tabl": 6, "_inventori": 6, "_": 6, "fact_caching_prefix": 6, "ansible_inventory_": 6, "16": [6, 7], "builtin": 6, "why": 6, "type": [6, 7], "section": [6, 8], "altern": 6, "instead": 6, "ansible_cache_plugin_prefix": 6, "ansible_inventory_cache_plugin_prefix": 6, "cache_timeout": 6, "integ": [6, 7], "durat": [6, 7], "second": [6, 7], "3600": 6, "fact_caching_timeout": 6, "ansible_cache_plugin_timeout": 6, "ansible_inventory_cache_timeout": 6, "compos": 6, "dictionari": [6, 7], "express": 6, "kube": [6, 7], "context": [6, 7], "object": [6, 7], "api_kei": [6, 7], "token": [6, 7], "authent": [6, 7], "api": [6, 7, 8], "via": [6, 7], "k8s_auth_api_kei": [6, 7], "api_vers": [6, 7], "io": [6, 7], "v1": [6, 7], "ca_cert": [6, 7], "alias": [6, 7], "ssl_ca_cert": [6, 7], "ca": [6, 7], "certif": [6, 7], "k8s_auth_ssl_ca_cert": [6, 7], "client_cert": [6, 7], "cert_fil": [6, 7], "k8s_auth_cert_fil": [6, 7], "client_kei": [6, 7], "key_fil": [6, 7], "kei": [6, 7], "k8s_auth_key_fil": [6, 7], "found": [6, 7], "k8s_auth_context": [6, 7], "url": [6, 7], "k8s_auth_host": [6, 7], "kube_secondary_dn": 6, "kubesecondarydn": 6, "deriv": 6, "secondari": 6, "network": [6, 7], "interfac": [6, 7], "kubeconfig": [6, 7], "client": [6, 7], "attempt": [6, 7], "load": [6, 7], "k8s_auth_kubeconfig": [6, 7], "label_selector": 6, "select": 6, "subset": 6, "assign": 6, "construct": 6, "server": [6, 7], "port": 6, "network_nam": 6, "interface_nam": 6, "In": 6, "case": [6, 7], "multipl": [6, 7], "attach": 6, "primari": 6, "ip": [6, 7], "address": 6, "password": [6, 7], "k8s_auth_password": [6, 7], "use_servic": 6, "servic": 6, "establish": 6, "ssh": [6, 7], "usernam": [6, 7], "k8s_auth_usernam": [6, 7], "validate_cert": [6, 7], "verify_ssl": [6, 7], "whether": [6, 7], "verifi": [6, 7], "ssl": [6, 7], "k8s_auth_verify_ssl": [6, 7], "add": 6, "condit": [6, 7], "host_format": 6, "avail": [6, 8], "uid": [6, 7], "keyed_group": 6, "element": [6, 7], "default_valu": 6, "empti": [6, 7], "mutual": [6, 7], "exclus": [6, 7], "trailing_separ": 6, "input": 6, "parent_group": 6, "parent": 6, "build": [6, 8, 10], "omit": 6, "after": [6, 8], "leading_separ": 6, "conjunct": 6, "By": [6, 8], "doe": [6, 7, 8], "becaus": 6, "lead": 6, "given": [6, 8], "map": 6, "still": 6, "item": 6, "ensur": 6, "strict": [6, 8], "ye": [6, 7], "invalid": 6, "fatal": 6, "otherwis": 6, "skip": 6, "sinc": 6, "fact": 6, "thei": 6, "might": [6, 7], "alwai": 6, "ignor": [6, 7], "use_extra_var": 6, "merg": 6, "extra": 6, "composit": 6, "highest": 6, "preced": 6, "inventory_plugin": 6, "ansible_inventory_use_extra_var": 6, "filenam": 6, "must": [6, 7], "end": [6, 7], "http": [6, 7, 8, 10], "192": [6, 7], "168": [6, 7], "64": 6, "4": 6, "8443": 6, "xxxxxxxxxxxxxxxx": 6, "bridg": [6, 7], "app": [6, 7], "awx": 6, "project": [6, 7], "low": 6, "high": 6, "prioriti": 6, "order": 6, "For": 6, "lower": 6, "higher": 6, "up": [6, 7], "modul": [7, 8], "perform": 7, "pass": 7, "either": [7, 8], "support": [7, 8], "check": 7, "mode": 7, "annot": [7, 8], "onli": [7, 8], "state": [7, 8], "present": 7, "chain": 7, "data_volume_templ": 7, "datavolum": 7, "templat": 7, "definit": 7, "html": 7, "_v1_datavolumetemplatespec": 7, "delete_opt": 7, "behavior": 7, "absent": 7, "graceperiodsecond": 7, "mani": 7, "wait": 7, "forcefulli": 7, "termin": [7, 10], "implement": 7, "pod": 7, "resourc": 7, "grace": 7, "period": 7, "precondit": 7, "met": 7, "proce": 7, "resourcevers": 7, "target": 7, "propagationpolici": 7, "depend": [7, 10], "polici": 7, "mai": [7, 8], "vari": 7, "across": 7, "foreground": 7, "background": 7, "orphan": 7, "forc": 7, "replac": 7, "generate_nam": 7, "basi": 7, "random": 7, "charact": 7, "automat": 7, "uniqu": 7, "impersonate_group": 7, "imperson": 7, "k8s_auth_impersonate_group": 7, "group1": 7, "group2": 7, "impersonate_us": 7, "k8s_auth_impersonate_us": 7, "instancetyp": 7, "matcher": 7, "window": 7, "17": 7, "no_proxi": 7, "comma": 7, "domain": 7, "cidr": 7, "shouldn": 7, "proxi": 7, "k8s_auth_no_proxi": 7, "pleas": [7, 8], "typic": 7, "19": 7, "15": 7, "librari": 7, "less": 7, "fail": 7, "even": 7, "correct": [7, 8], "localhost": 7, "com": [7, 10], "127": 7, "8": 7, "172": 7, "descript": 7, "applic": 7, "persist_config": 7, "save": 7, "refresh": 7, "k8s_auth_persist_config": 7, "k8": 7, "credenti": 7, "oidc": 7, "gke": 7, "gcloud": 7, "auth": 7, "so": 7, "old": 7, "expir": 7, "next": [7, 8], "flag": 7, "tell": 7, "yet": 7, "here": 7, "github": [7, 8, 10], "pull": 7, "169": 7, "prefer": 7, "k8s_auth_proxi": 7, "http_proxi": 7, "proxy_head": 7, "header": 7, "urllib3": 7, "readthedoc": 7, "en": 7, "latest": 7, "util": 7, "highlight": 7, "make_head": 7, "basic_auth": 7, "colon": 7, "basic": 7, "k8s_auth_proxy_headers_basic_auth": 7, "proxy_basic_auth": 7, "k8s_auth_proxy_headers_proxy_basic_auth": 7, "user_ag": 7, "repres": 7, "agent": 7, "k8s_auth_proxy_headers_user_ag": 7, "spec": 7, "_v1_virtualmachineinstancespec": 7, "determin": 7, "patch": [7, 8], "alreadi": 7, "its": 7, "attribut": 7, "differ": 7, "resource_definit": 7, "src": 7, "form": 7, "oauth2": 7, "openshift": 7, "expect": 7, "look": 7, "okd": 7, "k8s_auth": 7, "what": 7, "readi": [7, 8], "wait_sleep": 7, "number": [7, 8], "sleep": 7, "between": 7, "5": 7, "wait_timeout": 7, "long": 7, "desir": 7, "120": 7, "testvm": 7, "u1": 7, "medium": 7, "fedora": 7, "devic": 7, "masquerad": 7, "multu": 7, "networknam": 7, "kindexgw": 7, "volum": 7, "containerdisk": 7, "imag": 7, "quai": 7, "cloudinitnocloud": 7, "userdata": 7, "cloud": 7, "ssh_authorized_kei": 7, "ed25519": 7, "aaaa": 7, "cloudinit": 7, "dv": 7, "metadata": [7, 8], "testdv": 7, "registri": 7, "docker": 7, "storag": 7, "accessmod": 7, "readwriteonc": 7, "request": 7, "5gi": 7, "common": 7, "field": 7, "result": 7, "complex": 7, "Will": 7, "success": 7, "sampl": [7, 10], "rv": 7, "elaps": 7, "time": [7, 8], "48": 7, "method": 7, "semant": 8, "semver": 8, "org": 8, "major": 8, "minor": 8, "increment": 8, "incompat": 8, "scenario": 8, "function": 8, "manner": 8, "updat": 8, "matrix": 8, "deprec": 8, "addit": 8, "pre": 8, "first": 8, "shall": 8, "newli": 8, "begin": 8, "smaller": 8, "therefor": 8, "explicitli": 8, "assum": 8, "indic": 8, "while": 8, "prior": 8, "nor": 8, "allow": 8, "elimin": 8, "introduc": 8, "limit": 8, "argspec": 8, "structur": 8, "shape": 8, "inbound": 8, "payload": 8, "filter": 8, "cfg": 8, "outcom": 8, "previou": 8, "readm": 8, "consid": 8, "abov": [8, 10], "increas": 8, "revis": 8, "trigger": 8, "git": [8, 10], "publish": 8, "built": 8, "artifact": 8, "page": 8, "hack": 10, "e2": 10, "sh": 10, "script": 10, "step": 10, "necessari": 10, "reproduc": 10, "ci": 10, "reli": 10, "cd": 10, "dep": 10, "min": 10, "cleanup": 10}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"kubevirt": [0, 2, 4, 6, 7], "collect": [0, 2, 4, 8], "ansibl": [0, 2], "releas": [0, 8], "note": [0, 7], "topic": 0, "v0": 0, "1": 0, "devel": 0, "0": 0, "contribut": [1, 2], "lean": 2, "bind": 2, "version": [2, 8], "compat": [2, 8], "includ": 2, "content": [2, 8], "plugin": [2, 5, 8], "us": 2, "thi": 2, "instal": 2, "from": [2, 8], "galaxi": 2, "build": 2, "local": 2, "depend": 2, "python": 2, "librari": 2, "code": 2, "conduct": 2, "mainten": 2, "govern": 2, "licens": 2, "contributor": 3, "": 3, "guidelin": 3, "welcom": 4, "core": 4, "document": [4, 8], "user": 4, "develop": 4, "gener": 4, "index": [5, 9], "inventori": [5, 6], "modul": 5, "sourc": 6, "synopsi": [6, 7], "requir": [6, 7], "paramet": [6, 7], "exampl": [6, 7, 10], "author": [6, 7], "kubevirt_vm": 7, "creat": 7, "delet": 7, "virtualmachin": 7, "kubernet": 7, "return": 7, "valu": 7, "strategi": 8, "new": 8, "i": 8, "ad": 8, "an": 8, "exist": 8, "featur": 8, "role": [8, 9], "within": 8, "backward": 8, "bug": 8, "fix": 8, "secur": 8, "break": 8, "chang": 8, "ani": 8, "remov": 8, "A": 8, "typograph": 8, "error": 8, "wa": 8, "modifi": 8, "autom": 8, "test": 10, "continu": 10, "integr": 10, "config": 10, "playbook": 10}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 57}, "alltitles": {"KubeVirt Collection for Ansible Release Notes": [[0, "kubevirt-collection-for-ansible-release-notes"]], "Topics": [[0, "topics"]], "v0.1.1-devel": [[0, "v0-1-1-devel"]], "v0.1.0": [[0, "v0-1-0"]], "Contributing": [[1, "contributing"]], "Lean Ansible bindings for KubeVirt": [[2, "lean-ansible-bindings-for-kubevirt"]], "Ansible version compatibility": [[2, "ansible-version-compatibility"]], "Included content": [[2, "included-content"]], "Plugins": [[2, "plugins"]], "Using this collection": [[2, "using-this-collection"]], "Installing the Collection from Ansible Galaxy": [[2, "installing-the-collection-from-ansible-galaxy"]], "Build and install locally": [[2, "build-and-install-locally"]], "Dependencies": [[2, "dependencies"]], "Ansible collections": [[2, "ansible-collections"]], "Python libraries": [[2, "python-libraries"]], "Code of Conduct": [[2, "code-of-conduct"]], "Contributing to this collection": [[2, "contributing-to-this-collection"]], "Collection maintenance": [[2, "collection-maintenance"]], "Governance": [[2, "governance"]], "Licensing": [[2, "licensing"]], "Contributor\u2019s Guidelines": [[3, "contributor-s-guidelines"]], "Welcome to kubevirt.core Collection documentation": [[4, "welcome-to-kubevirt-core-collection-documentation"]], "User documentation": [[4, null]], "Developer documentation": [[4, null]], "General": [[4, null]], "Plugin Index": [[5, "plugin-index"]], "inventory plugins": [[5, null]], "modules plugins": [[5, null]], "kubevirt \u2013 KubeVirt inventory source": [[6, "kubevirt-kubevirt-inventory-source"]], "Synopsis": [[6, "synopsis"], [7, "synopsis"]], "Requirements": [[6, "requirements"], [7, "requirements"]], "Parameters": [[6, "parameters"], [7, "parameters"]], "Examples": [[6, "examples"], [7, "examples"]], "Authors": [[6, "authors"], [7, "authors"]], "kubevirt_vm \u2013 Create or delete KubeVirt VirtualMachines on Kubernetes": [[7, "kubevirt-vm-create-or-delete-kubevirt-virtualmachines-on-kubernetes"]], "Notes": [[7, "notes"]], "Return Values": [[7, "return-values"]], "Collection Versioning Strategy": [[8, "collection-versioning-strategy"]], "New content is added to an existing collection": [[8, "new-content-is-added-to-an-existing-collection"]], "New feature to existing plugin or role within a collection (backwards compatible)": [[8, "new-feature-to-existing-plugin-or-role-within-a-collection-backwards-compatible"]], "Bug fix or security fix to existing content within a collection": [[8, "bug-fix-or-security-fix-to-existing-content-within-a-collection"]], "Breaking change to any content within a collection": [[8, "breaking-change-to-any-content-within-a-collection"]], "Content removed from a collection": [[8, "content-removed-from-a-collection"]], "A typographical error was fixed in the documentation for a collection": [[8, "a-typographical-error-was-fixed-in-the-documentation-for-a-collection"]], "Documentation added/removed/modified within a collection": [[8, "documentation-added-removed-modified-within-a-collection"]], "Release automation": [[8, "release-automation"]], "Role Index": [[9, "role-index"]], "Testing": [[10, "testing"]], "Continuous integration": [[10, "continuous-integration"]], "Example config and playbooks": [[10, "example-config-and-playbooks"]]}, "indexentries": {"ansible_cache_plugin": [[6, "index-3"]], "ansible_cache_plugin_connection": [[6, "index-1"]], "ansible_cache_plugin_prefix": [[6, "index-5"]], "ansible_cache_plugin_timeout": [[6, "index-7"]], "ansible_inventory_cache": [[6, "index-0"]], "ansible_inventory_cache_connection": [[6, "index-2"]], "ansible_inventory_cache_plugin": [[6, "index-4"]], "ansible_inventory_cache_plugin_prefix": [[6, "index-6"]], "ansible_inventory_cache_timeout": [[6, "index-8"]], "ansible_inventory_use_extra_vars": [[6, "index-9"]], "environment variable": [[6, "index-0"], [6, "index-1"], [6, "index-2"], [6, "index-3"], [6, "index-4"], [6, "index-5"], [6, "index-6"], [6, "index-7"], [6, "index-8"], [6, "index-9"]]}})
\ No newline at end of file
diff --git a/main/testing.html b/main/testing.html
index 3994d1b..5c9aa1c 100644
--- a/main/testing.html
+++ b/main/testing.html
@@ -53,7 +53,7 @@
- Testing
- Contributor’s Guidelines
@@ -92,32 +92,30 @@
Testing
Continuous integration
-The collection is tested with a molecule setup covering the included roles and verifying correct installation and idempotency.
-In order to run the molecule tests locally with python 3.9 available, after cloning the repository:
-pip install yamllint 'molecule[docker]~=3.5.2' ansible-core flake8 ansible-lint voluptuous
-molecule test --all
-
-
+The hack/e2e-setup.sh script contains the steps necessary to reproduce the CI test environment, which relies on kubectl and kind.
-
-Test playbooks
-Sample playbooks are provided in the playbooks/ directory; to run the playbooks locally (requires a rhel system with python 3.9+, ansible, and systemd) the steps are as follows:
-# setup environment
-pip install ansible-core
-# clone the repository
-git clone https://github.com/ansible-middleware/amq
-cd amq
-# install collection dependencies
-ansible-galaxy collection install -r requirements.yml
-# install collection python deps
-pip install -r requirements.txt
-# create inventory for localhost
-cat << EOF > inventory
-[amq]
-localhost ansible_connection=local
-EOF
-# run the playbook
-ansible-playbook -i inventory playbooks/activemq.yml
+
+Example config and playbooks
+Sample playbooks and inventory configurations are provided in the examples/ directory; to run the playbooks locally, build the testing environment with the script above, then the steps are as follows:
+# setup environment
+pip install ansible-core
+# clone the repository
+git clone https://github.com/kubevirt/kubevirt.core
+cd kubevirt.core
+# install collection dependencies
+ansible-galaxy collection install -r requirements.yml
+# install collection python deps
+pip install -r requirements.txt
+# setup environment
+hack/e2e-setup.sh
+# run inventory source
+ansible-inventory -i examples/inventory.kubevirt.yml
+# create a virtual machine
+ansible-playbook -i examples/inventory.kubevirt.yml examples/play-create-min.yml
+# terminate a virtual machine
+ansible-playbook -i examples/inventory.kubevirt.yml examples/play-delete.yml
+# terminate the environment
+hack/e2e-setup.sh --cleanup