From ed642885ab3c575bd8119dc416271aa932f700d5 Mon Sep 17 00:00:00 2001 From: Felix Matouschek Date: Fri, 1 Mar 2024 15:33:01 +0100 Subject: [PATCH] ci: Cleanup kubevirt_vm integration test - Use uniform way of naming plays, tasks and VMs - Use uniform way of ordering task parameters - Use defaults where possible - Use CentOS 9 Stream instancetype and preference - Generate SSH private key with empty password (-N "") - Disable strict host key checking - Add .gitignore for test files - Fix skipping test key creation if already existent Signed-off-by: Felix Matouschek --- .../targets/kubevirt_vm/.gitignore | 1 + .../targets/kubevirt_vm/playbook.yml | 21 ++++++++-------- .../integration/targets/kubevirt_vm/runme.sh | 7 +++--- .../targets/kubevirt_vm/verify.yml | 25 +++++++++---------- 4 files changed, 26 insertions(+), 28 deletions(-) create mode 100644 tests/integration/targets/kubevirt_vm/.gitignore 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: