diff --git a/tests/integration/targets/inventory_kubevirt/.gitignore b/tests/integration/targets/inventory_kubevirt/.gitignore new file mode 100644 index 0000000..ab2c614 --- /dev/null +++ b/tests/integration/targets/inventory_kubevirt/.gitignore @@ -0,0 +1,4 @@ +all.yml +empty.yml +label.yml +net.yml diff --git a/tests/integration/targets/inventory_kubevirt/playbook.yml b/tests/integration/targets/inventory_kubevirt/playbook.yml index 49e6ad1..cc0ef77 100644 --- a/tests/integration/targets/inventory_kubevirt/playbook.yml +++ b/tests/integration/targets/inventory_kubevirt/playbook.yml @@ -1,22 +1,18 @@ --- -- name: Create VM +- name: Create VMs connection: local gather_facts: false hosts: localhost tasks: - - name: Create a VirtualMachine + - name: Create a VM kubevirt.core.kubevirt_vm: state: present - name: testvm + name: testvm1 namespace: default labels: app: test - wait: true - wait_timeout: 600 spec: domain: - cpu: - sockets: 1 memory: guest: 256Mi devices: @@ -33,31 +29,26 @@ networkName: kindexgw volumes: - containerDisk: - image: quay.io/containerdisks/fedora:latest + image: quay.io/containerdisks/centos-stream:9 name: containerdisk - - name: Create a 2nd VirtualMachine + wait: true + wait_timeout: 600 + + - name: Create another VM kubevirt.core.kubevirt_vm: state: present name: testvm2 namespace: default labels: foo: bar - wait: true - wait_timeout: 600 spec: domain: - cpu: - sockets: 1 memory: guest: 256Mi - devices: - interfaces: - - name: default - masquerade: {} - networks: - - name: default - pod: {} + devices: {} volumes: - containerDisk: - image: quay.io/containerdisks/fedora:latest + image: quay.io/containerdisks/centos-stream:9 name: containerdisk + wait: true + wait_timeout: 600 diff --git a/tests/integration/targets/inventory_kubevirt/runme.sh b/tests/integration/targets/inventory_kubevirt/runme.sh index d4cb253..0fbc289 100755 --- a/tests/integration/targets/inventory_kubevirt/runme.sh +++ b/tests/integration/targets/inventory_kubevirt/runme.sh @@ -2,14 +2,8 @@ set -eux set -o pipefail -export ANSIBLE_ROLES_PATH="../" - -USER_CREDENTIALS_DIR=$(pwd) -export USER_CREDENTIALS_DIR - -export ANSIBLE_CALLBACKS_ENABLED=profile_tasks -export ANSIBLE_INVENTORY_ENABLED=kubevirt.core.kubevirt,yaml -export ANSIBLE_PYTHON_INTERPRETER=auto_silent +export ANSIBLE_CALLBACKS_ENABLED=ansible.posix.profile_tasks +export ANSIBLE_INVENTORY_ENABLED=kubevirt.core.kubevirt ansible-inventory -i test.kubevirt.yml -y --list --output empty.yml "$@" diff --git a/tests/integration/targets/inventory_kubevirt/test.kubevirt.yml b/tests/integration/targets/inventory_kubevirt/test.kubevirt.yml index 94d8014..717c255 100644 --- a/tests/integration/targets/inventory_kubevirt/test.kubevirt.yml +++ b/tests/integration/targets/inventory_kubevirt/test.kubevirt.yml @@ -1,6 +1,7 @@ --- plugin: kubevirt.core.kubevirt connections: - - namespaces: + - name: test + namespaces: - default create_groups: true diff --git a/tests/integration/targets/inventory_kubevirt/verify.yml b/tests/integration/targets/inventory_kubevirt/verify.yml index 022d2d8..dc8d64a 100644 --- a/tests/integration/targets/inventory_kubevirt/verify.yml +++ b/tests/integration/targets/inventory_kubevirt/verify.yml @@ -8,7 +8,11 @@ ansible.builtin.include_vars: file: empty.yml name: inv_empty - - name: Read inventory after vm creation + - name: Assert empty inventory + ansible.builtin.assert: + that: + - inv_empty['all'] is not defined or inv_empty['all']['children']['test']['children']['namespace_default']['hosts'] is not defined + - name: Read inventory after VM creation ansible.builtin.include_vars: file: all.yml name: inv_all diff --git a/tests/integration/targets/kubevirt_vm/.gitignore b/tests/integration/targets/kubevirt_vm/.gitignore new file mode 100644 index 0000000..a37273b --- /dev/null +++ b/tests/integration/targets/kubevirt_vm/.gitignore @@ -0,0 +1 @@ +files/ diff --git a/tests/integration/targets/kubevirt_vm/playbook.yml b/tests/integration/targets/kubevirt_vm/playbook.yml index 950c490..2966c56 100644 --- a/tests/integration/targets/kubevirt_vm/playbook.yml +++ b/tests/integration/targets/kubevirt_vm/playbook.yml @@ -4,21 +4,18 @@ gather_facts: false hosts: localhost tasks: - - name: Create a VirtualMachine + - name: Create a VM kubevirt.core.kubevirt_vm: - state: present - name: testvm3 + name: testvm namespace: default labels: app: test - wait: true - wait_timeout: 600 + instancetype: + name: u1.small + preference: + name: centos.stream9 spec: domain: - cpu: - sockets: 1 - memory: - guest: 1536Mi devices: interfaces: - name: default @@ -39,5 +36,7 @@ userData: |- #cloud-config ssh_authorized_keys: - - {{ lookup('file', 'pub_key') }} - name: cloudinit + - {{ lookup('file', 'testkey.pub') }} + name: cloudinitdisk + wait: true + wait_timeout: 600 diff --git a/tests/integration/targets/kubevirt_vm/runme.sh b/tests/integration/targets/kubevirt_vm/runme.sh index 0551a5a..916aca7 100755 --- a/tests/integration/targets/kubevirt_vm/runme.sh +++ b/tests/integration/targets/kubevirt_vm/runme.sh @@ -4,14 +4,13 @@ set -o pipefail export ANSIBLE_CALLBACKS_ENABLED=ansible.posix.profile_tasks export ANSIBLE_INVENTORY_ENABLED=kubevirt.core.kubevirt +export ANSIBLE_HOST_KEY_CHECKING=False [ -d files ] || mkdir files -[ -f files/priv_key ] || (ssh-keygen -t ed25519 -C test@test -f files/priv_key ; ssh-keygen -y -f files/priv_key > files/pub_key) +[ -f files/testkey ] || (ssh-keygen -t ed25519 -C test@test -f files/testkey -N "") ansible-playbook playbook.yml "$@" ansible-inventory -i test.kubevirt.yml -y --list "$@" -ansible-playbook verify.yml -i test.kubevirt.yml --private-key=files/priv_key "$@" - -rm "$HOME/.ssh/known_hosts" +ansible-playbook verify.yml -i test.kubevirt.yml --private-key=files/testkey "$@" diff --git a/tests/integration/targets/kubevirt_vm/verify.yml b/tests/integration/targets/kubevirt_vm/verify.yml index efe821a..61f374d 100644 --- a/tests/integration/targets/kubevirt_vm/verify.yml +++ b/tests/integration/targets/kubevirt_vm/verify.yml @@ -1,5 +1,5 @@ --- -- name: Wait for ssh +- name: Wait for SSH connection: local gather_facts: false hosts: localhost @@ -7,18 +7,18 @@ - name: Wait up to 900 seconds for port 22 to become open ansible.builtin.wait_for: port: 22 - host: "{{ hostvars['default-testvm3'].ansible_host }}" + host: "{{ hostvars['default-testvm'].ansible_host }}" delay: 30 timeout: 900 - name: Connect to VM gather_facts: true - hosts: default-testvm3 + hosts: default-testvm remote_user: cloud-user vars: ansible_python_interpreter: /usr/bin/python3 tasks: - - name: Print out virtual machine facts + - name: Print VM facts ansible.builtin.debug: var: ansible_facts @@ -27,10 +27,9 @@ gather_facts: false hosts: localhost tasks: - - name: Create a VirtualMachine + - name: Create a VM kubevirt.core.kubevirt_vm: - state: present - name: testvm3 + name: testvm namespace: default labels: app: test @@ -45,11 +44,11 @@ gather_facts: false hosts: localhost tasks: - - name: Delete a VirtualMachine + - name: Delete a VM kubevirt.core.kubevirt_vm: - state: absent - name: testvm3 + name: testvm namespace: default + state: absent wait: true - name: Verify VM deletion @@ -57,11 +56,11 @@ gather_facts: false hosts: localhost tasks: - - name: Delete a VirtualMachine + - name: Delete a VM kubevirt.core.kubevirt_vm: - state: absent - name: testvm3 + name: testvm namespace: default + state: absent register: delete - name: Assert module reported no changes ansible.builtin.assert: diff --git a/tests/integration/targets/kubevirt_vm_info/playbook.yml b/tests/integration/targets/kubevirt_vm_info/playbook.yml index 5fba036..7db6b06 100644 --- a/tests/integration/targets/kubevirt_vm_info/playbook.yml +++ b/tests/integration/targets/kubevirt_vm_info/playbook.yml @@ -4,7 +4,7 @@ gather_facts: false hosts: localhost tasks: - - name: Create a VirtualMachine + - name: Create a VM kubevirt.core.kubevirt_vm: name: testvm namespace: default @@ -19,7 +19,6 @@ - containerDisk: image: quay.io/containerdisks/centos-stream:9 name: containerdisk - state: present wait: true wait_timeout: 600 @@ -28,7 +27,7 @@ gather_facts: false hosts: localhost tasks: - - name: Describe a VirtualMachine + - name: Describe a VM kubevirt.core.kubevirt_vm_info: name: testvm namespace: default @@ -44,7 +43,7 @@ gather_facts: false hosts: localhost tasks: - - name: Delete a VirtualMachine + - name: Delete a VM kubevirt.core.kubevirt_vm: name: testvm namespace: default @@ -56,7 +55,7 @@ gather_facts: false hosts: localhost tasks: - - name: Delete a VirtualMachine + - name: Delete a VM kubevirt.core.kubevirt_vm: name: testvm namespace: default