mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-05-09 18:37:38 -02:30
Convert containerd molecule to ansible verifier
This commit is contained in:
@@ -37,4 +37,4 @@ provisioner:
|
|||||||
create: ../../../../../tests/cloud_playbooks/create-kubevirt.yml
|
create: ../../../../../tests/cloud_playbooks/create-kubevirt.yml
|
||||||
prepare: ../../../molecule/prepare.yml
|
prepare: ../../../molecule/prepare.yml
|
||||||
verifier:
|
verifier:
|
||||||
name: testinfra
|
name: ansible
|
||||||
|
|||||||
@@ -1,55 +0,0 @@
|
|||||||
import os
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
import testinfra.utils.ansible_runner
|
|
||||||
|
|
||||||
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
|
||||||
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
|
|
||||||
|
|
||||||
|
|
||||||
def test_service(host):
|
|
||||||
svc = host.service("containerd")
|
|
||||||
assert svc.is_running
|
|
||||||
assert svc.is_enabled
|
|
||||||
|
|
||||||
|
|
||||||
def test_version(host):
|
|
||||||
crictl = "/usr/local/bin/crictl"
|
|
||||||
path = "unix:///var/run/containerd/containerd.sock"
|
|
||||||
with host.sudo():
|
|
||||||
cmd = host.command(crictl + " --runtime-endpoint " + path + " version")
|
|
||||||
assert cmd.rc == 0
|
|
||||||
assert "RuntimeName: containerd" in cmd.stdout
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('image, dest', [
|
|
||||||
('quay.io/kubespray/hello-world:latest', '/tmp/hello-world.tar')
|
|
||||||
])
|
|
||||||
def test_image_pull_save_load(host, image, dest):
|
|
||||||
nerdctl = "/usr/local/bin/nerdctl"
|
|
||||||
dest_file = host.file(dest)
|
|
||||||
|
|
||||||
with host.sudo():
|
|
||||||
pull_cmd = host.command(nerdctl + " pull " + image)
|
|
||||||
assert pull_cmd.rc ==0
|
|
||||||
|
|
||||||
with host.sudo():
|
|
||||||
save_cmd = host.command(nerdctl + " save -o " + dest + " " + image)
|
|
||||||
assert save_cmd.rc == 0
|
|
||||||
assert dest_file.exists
|
|
||||||
|
|
||||||
with host.sudo():
|
|
||||||
load_cmd = host.command(nerdctl + " load < " + dest)
|
|
||||||
assert load_cmd.rc == 0
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('image', [
|
|
||||||
('quay.io/kubespray/hello-world:latest')
|
|
||||||
])
|
|
||||||
def test_run(host, image):
|
|
||||||
nerdctl = "/usr/local/bin/nerdctl"
|
|
||||||
|
|
||||||
with host.sudo():
|
|
||||||
cmd = host.command(nerdctl + " -n k8s.io run " + image)
|
|
||||||
assert cmd.rc == 0
|
|
||||||
assert "Hello from Docker" in cmd.stdout
|
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
- name: Test containerd CRI
|
||||||
|
import_playbook: ../../../molecule/test_cri.yml
|
||||||
|
vars:
|
||||||
|
container_manager: containerd
|
||||||
|
cri_socket: unix:///var/run/containerd/containerd.sock
|
||||||
|
cri_name: containerd
|
||||||
|
|
||||||
|
- name: Test nerdctl
|
||||||
|
hosts: all
|
||||||
|
gather_facts: false
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
- name: Get kubespray defaults
|
||||||
|
import_role:
|
||||||
|
name: ../../../../../kubespray_defaults
|
||||||
|
- name: Test nerdctl commands
|
||||||
|
command: "{{ bin_dir }}/nerdctl {{ item | join(' ') }}"
|
||||||
|
vars:
|
||||||
|
image: quay.io/kubespray/hello-world:latest
|
||||||
|
loop:
|
||||||
|
- - pull
|
||||||
|
- "{{ image }}"
|
||||||
|
- - save
|
||||||
|
- -o
|
||||||
|
- /tmp/hello-world.tar
|
||||||
|
- "{{ image }}"
|
||||||
|
- - load
|
||||||
|
- -i
|
||||||
|
- /tmp/hello-world.tar
|
||||||
|
- - -n
|
||||||
|
- k8s.io
|
||||||
|
- run
|
||||||
|
- "{{ image }}"
|
||||||
|
register: nerdctl
|
||||||
|
- name: Check log from running a container
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- ('Hello from Docker' in nerdctl.results[3].stdout)
|
||||||
24
roles/container-engine/molecule/test_cri.yml
Normal file
24
roles/container-engine/molecule/test_cri.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
- name: Test container manager
|
||||||
|
hosts: all
|
||||||
|
gather_facts: false
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
- name: Get kubespray defaults
|
||||||
|
import_role:
|
||||||
|
name: ../../kubespray_defaults
|
||||||
|
- name: Collect services facts
|
||||||
|
ansible.builtin.service_facts:
|
||||||
|
|
||||||
|
- name: Check container manager service is running
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- ansible_facts.services[container_manager + '.service'].state == 'running'
|
||||||
|
- ansible_facts.services[container_manager + '.service'].status == 'enabled'
|
||||||
|
|
||||||
|
- name: Check runtime version
|
||||||
|
command: "{{ bin_dir }}/crictl --runtime-endpoint {{ cri_socket }} version"
|
||||||
|
register: cri_version
|
||||||
|
failed_when: >
|
||||||
|
cri_version is failed or
|
||||||
|
("RuntimeName: " + cri_name) not in cri_version.stdout
|
||||||
Reference in New Issue
Block a user