mirror of
https://github.com/kubevirt/kubevirt.core.git
synced 2026-07-29 02:44:35 +00:00
Merge pull request #103 from 0xFelix/ci-fixes
Make kubevirt_vm tests more robust
This commit is contained in:
@@ -13,4 +13,18 @@ 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/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 "$@"
|
||||||
|
|||||||
@@ -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
|
- name: Verify creation with existing VM
|
||||||
connection: local
|
connection: local
|
||||||
gather_facts: false
|
gather_facts: false
|
||||||
@@ -34,10 +11,15 @@
|
|||||||
labels:
|
labels:
|
||||||
app: test
|
app: test
|
||||||
register: recreate
|
register: recreate
|
||||||
- name: Assert module reported no changes
|
- name: Assert module reported no or expected changes
|
||||||
ansible.builtin.assert:
|
ansible.builtin.assert:
|
||||||
that:
|
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
|
- name: Delete VM
|
||||||
connection: local
|
connection: local
|
||||||
|
|||||||
24
tests/integration/targets/kubevirt_vm/wait_for_vm.yml
Normal file
24
tests/integration/targets/kubevirt_vm/wait_for_vm.yml
Normal 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
|
||||||
Reference in New Issue
Block a user