mirror of
https://github.com/kubevirt/kubevirt.core.git
synced 2026-05-13 04:52:24 +00:00
ci: integration tests
Signed-off-by: Guido Grazioli <ggraziol@redhat.com>
This commit is contained in:
43
tests/integration/targets/kubevirt_vm/playbook.yml
Normal file
43
tests/integration/targets/kubevirt_vm/playbook.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
- name: Create VM
|
||||
connection: local
|
||||
gather_facts: false
|
||||
hosts: localhost
|
||||
tasks:
|
||||
- name: Create a VirtualMachine
|
||||
kubevirt.core.kubevirt_vm:
|
||||
state: present
|
||||
name: testvm3
|
||||
namespace: default
|
||||
labels:
|
||||
app: test
|
||||
wait: true
|
||||
wait_timeout: 600
|
||||
spec:
|
||||
domain:
|
||||
cpu:
|
||||
sockets: 1
|
||||
memory:
|
||||
guest: 1536Mi
|
||||
devices:
|
||||
interfaces:
|
||||
- name: default
|
||||
masquerade: {}
|
||||
- name: bridge-network
|
||||
bridge: {}
|
||||
networks:
|
||||
- name: default
|
||||
pod: {}
|
||||
- name: bridge-network
|
||||
multus:
|
||||
networkName: kindexgw
|
||||
volumes:
|
||||
- containerDisk:
|
||||
image: quay.io/containerdisks/centos-stream:9
|
||||
name: containerdisk
|
||||
- cloudInitNoCloud:
|
||||
userData: |-
|
||||
#cloud-config
|
||||
ssh_authorized_keys:
|
||||
- {{ lookup('file', 'pub_key') }}
|
||||
name: cloudinit
|
||||
21
tests/integration/targets/kubevirt_vm/runme.sh
Executable file
21
tests/integration/targets/kubevirt_vm/runme.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
{
|
||||
export ANSIBLE_CALLBACKS_ENABLED=profile_tasks
|
||||
export ANSIBLE_INVENTORY_ENABLED=kubevirt.core.kubevirt,yaml
|
||||
|
||||
[ -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)
|
||||
|
||||
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"
|
||||
} || {
|
||||
exit 1
|
||||
}
|
||||
5
tests/integration/targets/kubevirt_vm/test.kubevirt.yml
Normal file
5
tests/integration/targets/kubevirt_vm/test.kubevirt.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
plugin: kubevirt.core.kubevirt
|
||||
connections:
|
||||
- namespaces:
|
||||
- default
|
||||
network_name: bridge-network
|
||||
69
tests/integration/targets/kubevirt_vm/verify.yml
Normal file
69
tests/integration/targets/kubevirt_vm/verify.yml
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
- 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-testvm3'].ansible_host }}"
|
||||
delay: 30
|
||||
timeout: 900
|
||||
|
||||
- name: Connect to VM
|
||||
gather_facts: true
|
||||
hosts: default-testvm3
|
||||
remote_user: centos
|
||||
vars:
|
||||
ansible_python_interpreter: /usr/bin/python3
|
||||
tasks:
|
||||
- name: Print out virtual machine facts
|
||||
ansible.builtin.debug:
|
||||
var: ansible_facts
|
||||
|
||||
- name: Verify creation with existing VM
|
||||
connection: local
|
||||
gather_facts: false
|
||||
hosts: localhost
|
||||
tasks:
|
||||
- name: Create a VirtualMachine
|
||||
kubevirt.core.kubevirt_vm:
|
||||
state: present
|
||||
name: testvm3
|
||||
namespace: default
|
||||
labels:
|
||||
app: test
|
||||
register: recreate
|
||||
- name: Assert module reported no changes
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- not recreate.changed
|
||||
|
||||
- name: Delete VM
|
||||
connection: local
|
||||
gather_facts: false
|
||||
hosts: localhost
|
||||
tasks:
|
||||
- name: Delete a VirtualMachine
|
||||
kubevirt.core.kubevirt_vm:
|
||||
state: absent
|
||||
name: testvm3
|
||||
namespace: default
|
||||
wait: true
|
||||
|
||||
- name: Verify VM deletion
|
||||
connection: local
|
||||
gather_facts: false
|
||||
hosts: localhost
|
||||
tasks:
|
||||
- name: Delete a VirtualMachine
|
||||
kubevirt.core.kubevirt_vm:
|
||||
state: absent
|
||||
name: testvm3
|
||||
namespace: default
|
||||
register: delete
|
||||
- name: Assert module reported no changes
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- not delete.changed
|
||||
Reference in New Issue
Block a user