mirror of
https://github.com/kubevirt/kubevirt.core.git
synced 2026-03-26 19:03:16 +00:00
inventory_kubevirt: Run integration test in random namespace
Run the integration tests for inventory_kubevirt in a random namespace and cleanup after the tests finish. Signed-off-by: Felix Matouschek <fmatouschek@redhat.com>
This commit is contained in:
@@ -8,19 +8,19 @@
|
||||
kubevirt.core.kubevirt_vm:
|
||||
state: absent
|
||||
name: testvm1
|
||||
namespace: default
|
||||
namespace: {{ NAMESPACE }}
|
||||
wait: true
|
||||
|
||||
- name: Delete another VM
|
||||
kubevirt.core.kubevirt_vm:
|
||||
state: absent
|
||||
name: testvm2
|
||||
namespace: default
|
||||
namespace: {{ NAMESPACE }}
|
||||
wait: true
|
||||
|
||||
- name: Delete the stopped VM
|
||||
kubevirt.core.kubevirt_vm:
|
||||
state: absent
|
||||
name: testvm-stopped
|
||||
namespace: default
|
||||
namespace: {{ NAMESPACE }}
|
||||
wait: true
|
||||
19
tests/integration/targets/inventory_kubevirt/generate.yml
Normal file
19
tests/integration/targets/inventory_kubevirt/generate.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
- name: Generate test files
|
||||
connection: local
|
||||
gather_facts: false
|
||||
hosts: localhost
|
||||
tasks:
|
||||
- name: Generate test files
|
||||
ansible.builtin.template:
|
||||
src: "{{ item }}.yml.j2"
|
||||
dest: "{{ item }}.yml"
|
||||
mode: "0644"
|
||||
with_items:
|
||||
- cleanup
|
||||
- playbook
|
||||
- test.cache.kubevirt
|
||||
- test.kubevirt
|
||||
- test.label.kubevirt
|
||||
- test.net.kubevirt
|
||||
- verify
|
||||
@@ -8,7 +8,7 @@
|
||||
kubevirt.core.kubevirt_vm:
|
||||
state: present
|
||||
name: testvm1
|
||||
namespace: default
|
||||
namespace: {{ NAMESPACE }}
|
||||
labels:
|
||||
app: test
|
||||
spec:
|
||||
@@ -26,7 +26,7 @@
|
||||
pod: {}
|
||||
- name: bridge-network
|
||||
multus:
|
||||
networkName: kindexgw
|
||||
networkName: {{ SECONDARY_NETWORK }}
|
||||
volumes:
|
||||
- containerDisk:
|
||||
image: quay.io/containerdisks/centos-stream:9
|
||||
@@ -38,7 +38,7 @@
|
||||
kubevirt.core.kubevirt_vm:
|
||||
state: present
|
||||
name: testvm2
|
||||
namespace: default
|
||||
namespace: {{ NAMESPACE }}
|
||||
labels:
|
||||
foo: bar
|
||||
spec:
|
||||
@@ -57,7 +57,7 @@
|
||||
kubevirt.core.kubevirt_vm:
|
||||
state: present
|
||||
name: testvm-stopped
|
||||
namespace: default
|
||||
namespace: {{ NAMESPACE }}
|
||||
running: false
|
||||
spec:
|
||||
domain:
|
||||
@@ -1,10 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
export ANSIBLE_CALLBACKS_ENABLED=ansible.posix.profile_tasks
|
||||
export ANSIBLE_INVENTORY_ENABLED=kubevirt.core.kubevirt
|
||||
|
||||
NAMESPACE="test-inventory-kubevirt-$(tr -dc '[:lower:]' < /dev/urandom | head -c 5)"
|
||||
SECONDARY_NETWORK=${SECONDARY_NETWORK:-default/kindexgw}
|
||||
|
||||
cleanup() {
|
||||
ansible localhost -m kubernetes.core.k8s -a "name=${NAMESPACE} api_version=v1 kind=Namespace state=absent"
|
||||
rm -rf all.yml cache_after.yml cache_before.yml cleanup.yml empty.yml label.yml net.yml playbook.yml \
|
||||
test.cache.kubevirt.yml test.kubevirt.yml test.label.kubevirt.yml test.net.kubevirt.yml verify.yml \
|
||||
kubevirt-cache
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
# Prepare the test environment
|
||||
ansible localhost -m kubernetes.core.k8s -a "name=${NAMESPACE} api_version=v1 kind=Namespace state=present"
|
||||
ansible-playbook \
|
||||
-e "NAMESPACE=${NAMESPACE}" \
|
||||
-e "SECONDARY_NETWORK=${SECONDARY_NETWORK}" \
|
||||
generate.yml
|
||||
|
||||
# Run the tests
|
||||
ansible-inventory -i test.kubevirt.yml -y --list --output empty.yml "$@"
|
||||
|
||||
ansible-playbook playbook.yml "$@"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
plugin: kubevirt.core.kubevirt
|
||||
name: test
|
||||
namespaces:
|
||||
- default
|
||||
- {{ NAMESPACE }}
|
||||
create_groups: true
|
||||
cache: true
|
||||
cache_plugin: ansible.builtin.jsonfile
|
||||
@@ -2,5 +2,5 @@
|
||||
plugin: kubevirt.core.kubevirt
|
||||
name: test
|
||||
namespaces:
|
||||
- default
|
||||
- {{ NAMESPACE }}
|
||||
create_groups: true
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
plugin: kubevirt.core.kubevirt
|
||||
namespaces:
|
||||
- default
|
||||
- {{ NAMESPACE }}
|
||||
create_groups: true
|
||||
label_selector: app=test
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
plugin: kubevirt.core.kubevirt
|
||||
namespaces:
|
||||
- default
|
||||
- {{ NAMESPACE }}
|
||||
create_groups: true
|
||||
network_name: bridge-network
|
||||
@@ -11,7 +11,7 @@
|
||||
- name: Assert empty inventory
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- inv_empty['all'] is not defined or inv_empty['all']['children']['test']['children']['namespace_default']['hosts'] is not defined
|
||||
- inv_empty['all'] is not defined or inv_empty['all']['children']['test']['children']['namespace_{{ NAMESPACE | replace("-", "_") }}']['hosts'] is not defined
|
||||
- name: Read inventory after VM creation
|
||||
ansible.builtin.include_vars:
|
||||
file: all.yml
|
||||
@@ -21,7 +21,7 @@
|
||||
that:
|
||||
- inv_all['all']['children']['label_app_test']['hosts'] | length == 1
|
||||
- inv_all['all']['children']['label_foo_bar']['hosts'] | length == 1
|
||||
- "'default-testvm-stopped' in inv_all['all']['children']['test']['children']['namespace_default']['hosts']"
|
||||
- "'{{ NAMESPACE }}-testvm-stopped' in inv_all['all']['children']['test']['children']['namespace_{{ NAMESPACE | replace("-", "_") }}']['hosts']"
|
||||
- name: Read filtered inventory
|
||||
ansible.builtin.include_vars:
|
||||
file: label.yml
|
||||
Reference in New Issue
Block a user