From f1231bb97d1701da61741d3477f80ee20d61e5e5 Mon Sep 17 00:00:00 2001 From: Pasquale Toscano Date: Tue, 1 Dec 2020 08:34:49 +0100 Subject: [PATCH] Add molecule for Kata Containers with Containerd (#6905) --- .../molecule/default/converge.yml | 10 +++++ .../molecule/default/molecule.yml | 44 +++++++++++++++++++ .../molecule/default/prepare.yml | 6 +++ .../molecule/default/tests/test_default.py | 30 +++++++++++++ 4 files changed, 90 insertions(+) create mode 100644 roles/container-engine/kata-containers/molecule/default/converge.yml create mode 100644 roles/container-engine/kata-containers/molecule/default/molecule.yml create mode 100644 roles/container-engine/kata-containers/molecule/default/prepare.yml create mode 100644 roles/container-engine/kata-containers/molecule/default/tests/test_default.py diff --git a/roles/container-engine/kata-containers/molecule/default/converge.yml b/roles/container-engine/kata-containers/molecule/default/converge.yml new file mode 100644 index 000000000..995705705 --- /dev/null +++ b/roles/container-engine/kata-containers/molecule/default/converge.yml @@ -0,0 +1,10 @@ +--- +- name: Converge + hosts: all + become: true + vars: + kata_containers_enabled: true + roles: + - role: kubespray-defaults + - role: containerd + - role: kata-containers diff --git a/roles/container-engine/kata-containers/molecule/default/molecule.yml b/roles/container-engine/kata-containers/molecule/default/molecule.yml new file mode 100644 index 000000000..8cccf8dfc --- /dev/null +++ b/roles/container-engine/kata-containers/molecule/default/molecule.yml @@ -0,0 +1,44 @@ +--- +driver: + name: vagrant + provider: + name: libvirt + options: + driver: kvm +lint: | + set -e + yamllint -c ../../../.yamllint . +platforms: + - name: ubuntu18 + box: generic/ubuntu1804 + cpus: 1 + memory: 1024 + nested: true + groups: + - kube-master + - name: ubuntu20 + box: generic/ubuntu2004 + cpus: 1 + memory: 1024 + nested: true + groups: + - kube-master +provisioner: + name: ansible + env: + ANSIBLE_ROLES_PATH: ../../../../ + config_options: + defaults: + callback_whitelist: profile_tasks + lint: + name: ansible-lint + options: + c: ../../../.ansible-lint + inventory: + group_vars: + all: + become: true +verifier: + name: testinfra + lint: + name: flake8 diff --git a/roles/container-engine/kata-containers/molecule/default/prepare.yml b/roles/container-engine/kata-containers/molecule/default/prepare.yml new file mode 100644 index 000000000..1afc51a04 --- /dev/null +++ b/roles/container-engine/kata-containers/molecule/default/prepare.yml @@ -0,0 +1,6 @@ +--- +- name: Prepare + hosts: all + gather_facts: False + roles: + - role: bootstrap-os diff --git a/roles/container-engine/kata-containers/molecule/default/tests/test_default.py b/roles/container-engine/kata-containers/molecule/default/tests/test_default.py new file mode 100644 index 000000000..15e80825d --- /dev/null +++ b/roles/container-engine/kata-containers/molecule/default/tests/test_default.py @@ -0,0 +1,30 @@ +import os + +import testinfra.utils.ansible_runner + +testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all') + + +def test_run(host): + kataruntime = "/opt/kata/bin/kata-runtime" + with host.sudo(): + cmd = host.command(kataruntime + " version") + assert cmd.rc == 0 + assert "kata-runtime" in cmd.stdout + + +def test_run_pod(host): + image = "docker.io/library/hello-world:latest" + runtime = "io.containerd.kata-qemu.v2" + + pull_command = "ctr image pull {}".format(image) + with host.sudo(): + cmd = host.command(pull_command) + assert cmd.rc == 0 + + run_command = "ctr run --runtime {} {} kata1".format(runtime, image) + with host.sudo(): + cmd = host.command(run_command) + assert cmd.rc == 0 + assert "Hello from Docker!" in cmd.stdout