Merge pull request #103 from 0xFelix/ci-fixes

Make kubevirt_vm tests more robust
This commit is contained in:
kubevirt-bot
2024-06-04 10:37:37 +02:00
committed by GitHub
3 changed files with 46 additions and 26 deletions

View File

@@ -13,4 +13,18 @@ ansible-playbook playbook.yml "$@"
ansible-inventory -i test.kubevirt.yml -y --list "$@"
ansible-playbook verify.yml -i test.kubevirt.yml --private-key=files/testkey "$@"
# Retry connection to VM until a login is possible
# This is necessary since wait_for is not enough to wait for logins to be possible.
# wait_for is only able to wait until sshd accepts connections.
retries=0
while ! ansible-playbook wait_for_vm.yml -i test.kubevirt.yml --private-key=files/testkey "$@"; do
if [ "$retries" -ge "10" ]; then
echo "Maximum retries reached, giving up"
exit 1
fi
echo "Failed to wait for VM, retrying..."
sleep 10
((retries+=1))
done
ansible-playbook verify.yml --diff -i test.kubevirt.yml --private-key=files/testkey "$@"

View File

@@ -1,27 +1,4 @@
---
- name: Wait for SSH
connection: local
gather_facts: false
hosts: localhost
tasks:
- name: Wait up to 900 seconds for port 22 to become open
ansible.builtin.wait_for:
port: 22
host: "{{ hostvars['default-testvm'].ansible_host }}"
delay: 30
timeout: 900
- name: Connect to VM
gather_facts: true
hosts: default-testvm
remote_user: cloud-user
vars:
ansible_python_interpreter: /usr/bin/python3
tasks:
- name: Print VM facts
ansible.builtin.debug:
var: ansible_facts
- name: Verify creation with existing VM
connection: local
gather_facts: false
@@ -34,10 +11,15 @@
labels:
app: test
register: recreate
- name: Assert module reported no changes
- name: Assert module reported no or expected changes
ansible.builtin.assert:
that:
- not recreate.changed
- >-
not recreate.changed or
recreated.changed and
recreated.method == "update" and
recreated.diff.before.metadata.annotations.get('kubemacpool.io/transaction-timestamp') and
not recreated.diff.after.metadata.annotations
- name: Delete VM
connection: local

View File

@@ -0,0 +1,24 @@
---
- name: Wait for SSH
connection: local
gather_facts: false
hosts: localhost
tasks:
- name: Wait up to 900 seconds for port 22 to become open
ansible.builtin.wait_for:
port: 22
host: "{{ hostvars['default-testvm'].ansible_host }}"
search_regex: OpenSSH
delay: 10
timeout: 900
- name: Connect to VM
gather_facts: true
hosts: default-testvm
remote_user: cloud-user
vars:
ansible_python_interpreter: /usr/bin/python3
tasks:
- name: Print VM facts
ansible.builtin.debug:
var: ansible_facts