diff --git a/.ansible-lint b/.ansible-lint index 56a712b..ad5d6f4 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,37 +1,11 @@ # .ansible-lint exclude_paths: - - .cache/ - .github/ - - molecule/ - - .ansible-lint - - .yamllint - - meta/ - - playbooks/roles/ - - changelogs/changelog.yaml enable_list: - fqcn-builtins # opt-in - no-log-password # opt-in + - yaml -warn_list: - - experimental - - ignore-errors - - no-handler - - fqcn-builtins - - no-log-password - - no-empty-data-files - - name[template] - - fqcn[keyword] - - schema[meta] - - no-free-form - - run-once[task] - - var-naming[no-role-prefix] - - galaxy[version-incorrect] - - yaml[key-duplicates] - -skip_list: - - jinja[spacing] - - yaml[truthy] - -use_default_rules: true +profile: production parseable: true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 588e3e6..34a3316 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,8 +21,19 @@ jobs: fetch-depth: 0 - run: | mkdir -p /home/runner/.kube/ - cp -rp ${GITHUB_WORKSPACE}/ansible_collections/kubevirt/core/tests/.kubeconfig /home/runner/.kube/config - cat /home/runner/.kube/config + cat <<- EOF > /home/runner/.kube/config + apiVersion: v1 + kind: Config + clusters: + - cluster: + server: http://localhost:12345 + name: default + contexts: + - context: + cluster: default + name: default + current-context: default + EOF - name: Set up Python uses: actions/setup-python@v4 with: diff --git a/README.md b/README.md index cb90fc6..68295ee 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ This repository hosts the `kubevirt.core` Ansible Collection, which provides virtual machine operations and inventory source for use with Ansible. -## Ansible version compatibility +## Ansible and Python version compatibility -This collection has been tested against following Ansible versions: **>=2.14.0**. +This collection has been tested against following Ansible versions **>=2.14.0** and the following Python versions **>=3.11.0,<3.12.0**. ## Included content diff --git a/examples/kubesecondarydns.kubevirt.yml b/examples/kubesecondarydns.kubevirt.yml index 24b3c65..2bd4211 100644 --- a/examples/kubesecondarydns.kubevirt.yml +++ b/examples/kubesecondarydns.kubevirt.yml @@ -3,4 +3,4 @@ connections: - namespaces: - default network_name: bridge-network - kube_secondary_dns: yes + kube_secondary_dns: true diff --git a/examples/play-create-dv.yml b/examples/play-create-dv.yml index ca779ba..9b1bb22 100644 --- a/examples/play-create-dv.yml +++ b/examples/play-create-dv.yml @@ -39,4 +39,4 @@ ssh_authorized_keys: - ssh-ed25519 AAAA... name: cloudinit - wait: yes + wait: true diff --git a/examples/play-create-min.yml b/examples/play-create-min.yml index 076353a..8ab42e7 100644 --- a/examples/play-create-min.yml +++ b/examples/play-create-min.yml @@ -6,4 +6,4 @@ state: present name: testvm namespace: default - running: no + running: false diff --git a/examples/play-create.yml b/examples/play-create.yml index 9d09785..de11dbb 100644 --- a/examples/play-create.yml +++ b/examples/play-create.yml @@ -37,4 +37,4 @@ ssh_authorized_keys: - ssh-ed25519 AAAA... name: cloudinit - wait: yes + wait: true diff --git a/examples/play-delete-dv.yml b/examples/play-delete-dv.yml index 8f045e3..206d590 100644 --- a/examples/play-delete-dv.yml +++ b/examples/play-delete-dv.yml @@ -6,4 +6,4 @@ name: testvm-with-dv namespace: default state: absent - wait: yes + wait: true diff --git a/examples/play-delete.yml b/examples/play-delete.yml index e4b6059..6488c7e 100644 --- a/examples/play-delete.yml +++ b/examples/play-delete.yml @@ -6,4 +6,4 @@ name: testvm namespace: default state: absent - wait: yes + wait: true diff --git a/examples/services.kubevirt.yml b/examples/services.kubevirt.yml index 10ad9e0..23dde81 100644 --- a/examples/services.kubevirt.yml +++ b/examples/services.kubevirt.yml @@ -2,4 +2,4 @@ plugin: kubevirt.core.kubevirt connections: - namespaces: - default - use_service: yes + use_service: true diff --git a/plugins/inventory/kubevirt.py b/plugins/inventory/kubevirt.py index 6b4f4ea..2942c73 100644 --- a/plugins/inventory/kubevirt.py +++ b/plugins/inventory/kubevirt.py @@ -131,34 +131,32 @@ requirements: EXAMPLES = """ # Filename must end with kubevirt.[yml|yaml] -# Authenticate with token, and return all VirtualMachineInstances for all accessible namespaces -plugin: kubevirt.core.kubevirt -connections: - - host: https://192.168.64.4:8443 - api_key: xxxxxxxxxxxxxxxx - validate_certs: false +- name: Authenticate with token and return all VirtualMachineInstances for all accessible namespaces + plugin: kubevirt.core.kubevirt + connections: + - host: https://192.168.64.4:8443 + api_key: xxxxxxxxxxxxxxxx + validate_certs: false -# Use default config (~/.kube/config) file and active context, and return VirtualMachineInstances -# from namespace testing with interfaces connected to network bridge-network -plugin: kubevirt.core.kubevirt -connections: - - namespaces: - - testing - network_name: bridge-network +- name: Use default ~/.kube/config and return VirtualMachineInstances from namespace testing with interfaces connected to network bridge-network + plugin: kubevirt.core.kubevirt + connections: + - namespaces: + - testing + network_name: bridge-network -# Use default config (~/.kube/config) file and active context, and return VirtualMachineInstances -# from namespace testing with label app=test -plugin: kubevirt.core.kubevirt -connections: - - namespaces: - - testing - label_selector: app=test +- name: Use default ~/.kube/config and return VirtualMachineInstances from namespace testing with label app=test + plugin: kubevirt.core.kubevirt + connections: + - namespaces: + - testing + label_selector: app=test -# Use a custom config file, and a specific context. -plugin: kubevirt.core.kubevirt -connections: - - kubeconfig: /path/to/config - context: 'awx/192-168-64-4:8443/developer' +- name: Use a custom config file and a specific context + plugin: kubevirt.core.kubevirt + connections: + - kubeconfig: /path/to/config + context: 'awx/192-168-64-4:8443/developer' """ from dataclasses import dataclass diff --git a/plugins/modules/kubevirt_vm.py b/plugins/modules/kubevirt_vm.py index e2ccf4d..7806ca0 100644 --- a/plugins/modules/kubevirt_vm.py +++ b/plugins/modules/kubevirt_vm.py @@ -188,7 +188,7 @@ EXAMPLES = """ ssh_authorized_keys: - ssh-ed25519 AAAA... name: cloudinit - wait: yes + wait: true - name: Delete a VirtualMachine kubevirt.core.kubevirt_vm: diff --git a/plugins/modules/kubevirt_vm_info.py b/plugins/modules/kubevirt_vm_info.py index 3495983..77309fd 100644 --- a/plugins/modules/kubevirt_vm_info.py +++ b/plugins/modules/kubevirt_vm_info.py @@ -97,7 +97,7 @@ EXAMPLES = """ kubevirt.core.kubevirt_vm_info: name: testvm namespace: default - wait: yes + wait: true """ RETURN = """ diff --git a/tests/.kubeconfig b/tests/.kubeconfig deleted file mode 100644 index 7cfa77b..0000000 --- a/tests/.kubeconfig +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: v1 -clusters: -- cluster: - insecure-skip-tls-verify: true - server: http://localhost:12345 - name: development -contexts: -- context: - cluster: development - user: developer - name: dev-frontend -current-context: dev-frontend -kind: Config -preferences: {} -users: -- name: developer - user: - token: ZDNffLzSlp8aSS0fht_tRnPMTOjxqgJGCyi_iy0ecUw diff --git a/tests/config.yaml b/tests/config.yaml new file mode 100644 index 0000000..d44d25d --- /dev/null +++ b/tests/config.yaml @@ -0,0 +1,2 @@ +modules: + python_requires: ">=3.11.0,<3.12.0" diff --git a/tests/integration/targets/inventory_kubevirt/playbook.yml b/tests/integration/targets/inventory_kubevirt/playbook.yml index 3835e69..0f5b97a 100644 --- a/tests/integration/targets/inventory_kubevirt/playbook.yml +++ b/tests/integration/targets/inventory_kubevirt/playbook.yml @@ -10,7 +10,7 @@ namespace: default labels: app: test - wait: yes + wait: true wait_timeout: 600 spec: domain: @@ -41,7 +41,7 @@ namespace: default labels: foo: bar - wait: yes + wait: true wait_timeout: 600 spec: domain: diff --git a/tests/integration/targets/inventory_kubevirt/test.kubevirt.yml b/tests/integration/targets/inventory_kubevirt/test.kubevirt.yml index 90a79f2..57848ab 100644 --- a/tests/integration/targets/inventory_kubevirt/test.kubevirt.yml +++ b/tests/integration/targets/inventory_kubevirt/test.kubevirt.yml @@ -2,4 +2,4 @@ plugin: kubevirt.core.kubevirt connections: - namespaces: - default - create_groups: yes + create_groups: true diff --git a/tests/integration/targets/inventory_kubevirt/test.label.kubevirt.yml b/tests/integration/targets/inventory_kubevirt/test.label.kubevirt.yml index 8d895a3..14419cc 100644 --- a/tests/integration/targets/inventory_kubevirt/test.label.kubevirt.yml +++ b/tests/integration/targets/inventory_kubevirt/test.label.kubevirt.yml @@ -2,5 +2,5 @@ plugin: kubevirt.core.kubevirt connections: - namespaces: - default - create_groups: yes + create_groups: true label_selector: app=test diff --git a/tests/integration/targets/inventory_kubevirt/test.net.kubevirt.yml b/tests/integration/targets/inventory_kubevirt/test.net.kubevirt.yml index 5307a3d..9eee3ab 100644 --- a/tests/integration/targets/inventory_kubevirt/test.net.kubevirt.yml +++ b/tests/integration/targets/inventory_kubevirt/test.net.kubevirt.yml @@ -2,5 +2,5 @@ plugin: kubevirt.core.kubevirt connections: - namespaces: - default - create_groups: yes + create_groups: true network_name: bridge-network