From 713193510a75a9f29aadd8711853757e33c128f0 Mon Sep 17 00:00:00 2001 From: Felix Matouschek Date: Thu, 15 Aug 2024 13:39:12 +0200 Subject: [PATCH] kubevirt_vm_info: Run integration test in random namespace Run the integration tests for kubevirt_vm_info in a random namespace and cleanup after the tests finish. Signed-off-by: Felix Matouschek --- .gitignore | 1 + .../targets/kubevirt_vm_info/generate.yml | 13 +++++++++++++ .../{playbook.yml => playbook.yml.j2} | 8 ++++---- .../integration/targets/kubevirt_vm_info/runme.sh | 14 +++++++++++++- 4 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 tests/integration/targets/kubevirt_vm_info/generate.yml rename tests/integration/targets/kubevirt_vm_info/{playbook.yml => playbook.yml.j2} (91%) diff --git a/.gitignore b/.gitignore index 74fc211..b52a1a9 100644 --- a/.gitignore +++ b/.gitignore @@ -162,4 +162,5 @@ kubevirt.core /tests/integration/targets/kubevirt_vm/verify.yml /tests/integration/targets/kubevirt_vm/wait_for_vm.yml /tests/integration/targets/kubevirt_vm/files +/tests/integration/targets/kubevirt_vm_info/playbook.yml kubevirt-cache diff --git a/tests/integration/targets/kubevirt_vm_info/generate.yml b/tests/integration/targets/kubevirt_vm_info/generate.yml new file mode 100644 index 0000000..aaad406 --- /dev/null +++ b/tests/integration/targets/kubevirt_vm_info/generate.yml @@ -0,0 +1,13 @@ +--- +- 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: + - playbook diff --git a/tests/integration/targets/kubevirt_vm_info/playbook.yml b/tests/integration/targets/kubevirt_vm_info/playbook.yml.j2 similarity index 91% rename from tests/integration/targets/kubevirt_vm_info/playbook.yml rename to tests/integration/targets/kubevirt_vm_info/playbook.yml.j2 index 7db6b06..1aa1d23 100644 --- a/tests/integration/targets/kubevirt_vm_info/playbook.yml +++ b/tests/integration/targets/kubevirt_vm_info/playbook.yml.j2 @@ -7,7 +7,7 @@ - name: Create a VM kubevirt.core.kubevirt_vm: name: testvm - namespace: default + namespace: {{ NAMESPACE }} instancetype: name: u1.small preference: @@ -30,7 +30,7 @@ - name: Describe a VM kubevirt.core.kubevirt_vm_info: name: testvm - namespace: default + namespace: {{ NAMESPACE }} register: describe - name: Assert module reported no changes ansible.builtin.assert: @@ -46,7 +46,7 @@ - name: Delete a VM kubevirt.core.kubevirt_vm: name: testvm - namespace: default + namespace: {{ NAMESPACE }} state: absent wait: true @@ -58,7 +58,7 @@ - name: Delete a VM kubevirt.core.kubevirt_vm: name: testvm - namespace: default + namespace: {{ NAMESPACE }} state: absent register: delete - name: Assert module reported no changes diff --git a/tests/integration/targets/kubevirt_vm_info/runme.sh b/tests/integration/targets/kubevirt_vm_info/runme.sh index af4a787..d72ad1b 100755 --- a/tests/integration/targets/kubevirt_vm_info/runme.sh +++ b/tests/integration/targets/kubevirt_vm_info/runme.sh @@ -1,7 +1,19 @@ #!/usr/bin/env bash set -eux -set -o pipefail export ANSIBLE_CALLBACKS_ENABLED=ansible.posix.profile_tasks +NAMESPACE="test-kubevirt-vm-info-$(tr -dc '[:lower:]' < /dev/urandom | head -c 5)" + +cleanup() { + ansible localhost -m kubernetes.core.k8s -a "name=${NAMESPACE} api_version=v1 kind=Namespace state=absent" + rm -rf playbook.yml +} +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}" generate.yml + +# Run the tests ansible-playbook playbook.yml "$@"