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 <fmatouschek@redhat.com>
This commit is contained in:
Felix Matouschek
2024-03-01 15:33:01 +01:00
parent b928cb5b29
commit ed642885ab
4 changed files with 26 additions and 28 deletions

View File

@@ -0,0 +1 @@
files/

View File

@@ -4,21 +4,18 @@
gather_facts: false gather_facts: false
hosts: localhost hosts: localhost
tasks: tasks:
- name: Create a VirtualMachine - name: Create a VM
kubevirt.core.kubevirt_vm: kubevirt.core.kubevirt_vm:
state: present name: testvm
name: testvm3
namespace: default namespace: default
labels: labels:
app: test app: test
wait: true instancetype:
wait_timeout: 600 name: u1.small
preference:
name: centos.stream9
spec: spec:
domain: domain:
cpu:
sockets: 1
memory:
guest: 1536Mi
devices: devices:
interfaces: interfaces:
- name: default - name: default
@@ -39,5 +36,7 @@
userData: |- userData: |-
#cloud-config #cloud-config
ssh_authorized_keys: ssh_authorized_keys:
- {{ lookup('file', 'pub_key') }} - {{ lookup('file', 'testkey.pub') }}
name: cloudinit name: cloudinitdisk
wait: true
wait_timeout: 600

View File

@@ -4,14 +4,13 @@ set -o pipefail
export ANSIBLE_CALLBACKS_ENABLED=ansible.posix.profile_tasks export ANSIBLE_CALLBACKS_ENABLED=ansible.posix.profile_tasks
export ANSIBLE_INVENTORY_ENABLED=kubevirt.core.kubevirt export ANSIBLE_INVENTORY_ENABLED=kubevirt.core.kubevirt
export ANSIBLE_HOST_KEY_CHECKING=False
[ -d files ] || mkdir files [ -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-playbook playbook.yml "$@"
ansible-inventory -i test.kubevirt.yml -y --list "$@" ansible-inventory -i test.kubevirt.yml -y --list "$@"
ansible-playbook verify.yml -i test.kubevirt.yml --private-key=files/priv_key "$@" ansible-playbook verify.yml -i test.kubevirt.yml --private-key=files/testkey "$@"
rm "$HOME/.ssh/known_hosts"

View File

@@ -1,5 +1,5 @@
--- ---
- name: Wait for ssh - name: Wait for SSH
connection: local connection: local
gather_facts: false gather_facts: false
hosts: localhost hosts: localhost
@@ -7,18 +7,18 @@
- name: Wait up to 900 seconds for port 22 to become open - name: Wait up to 900 seconds for port 22 to become open
ansible.builtin.wait_for: ansible.builtin.wait_for:
port: 22 port: 22
host: "{{ hostvars['default-testvm3'].ansible_host }}" host: "{{ hostvars['default-testvm'].ansible_host }}"
delay: 30 delay: 30
timeout: 900 timeout: 900
- name: Connect to VM - name: Connect to VM
gather_facts: true gather_facts: true
hosts: default-testvm3 hosts: default-testvm
remote_user: cloud-user remote_user: cloud-user
vars: vars:
ansible_python_interpreter: /usr/bin/python3 ansible_python_interpreter: /usr/bin/python3
tasks: tasks:
- name: Print out virtual machine facts - name: Print VM facts
ansible.builtin.debug: ansible.builtin.debug:
var: ansible_facts var: ansible_facts
@@ -27,10 +27,9 @@
gather_facts: false gather_facts: false
hosts: localhost hosts: localhost
tasks: tasks:
- name: Create a VirtualMachine - name: Create a VM
kubevirt.core.kubevirt_vm: kubevirt.core.kubevirt_vm:
state: present name: testvm
name: testvm3
namespace: default namespace: default
labels: labels:
app: test app: test
@@ -45,11 +44,11 @@
gather_facts: false gather_facts: false
hosts: localhost hosts: localhost
tasks: tasks:
- name: Delete a VirtualMachine - name: Delete a VM
kubevirt.core.kubevirt_vm: kubevirt.core.kubevirt_vm:
state: absent name: testvm
name: testvm3
namespace: default namespace: default
state: absent
wait: true wait: true
- name: Verify VM deletion - name: Verify VM deletion
@@ -57,11 +56,11 @@
gather_facts: false gather_facts: false
hosts: localhost hosts: localhost
tasks: tasks:
- name: Delete a VirtualMachine - name: Delete a VM
kubevirt.core.kubevirt_vm: kubevirt.core.kubevirt_vm:
state: absent name: testvm
name: testvm3
namespace: default namespace: default
state: absent
register: delete register: delete
- name: Assert module reported no changes - name: Assert module reported no changes
ansible.builtin.assert: ansible.builtin.assert: