mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2025-12-14 13:54:37 +03:00
Convert containerd molecule to ansible verifier
This commit is contained in:
@@ -37,4 +37,4 @@ provisioner:
|
||||
create: ../../../../../tests/cloud_playbooks/create-kubevirt.yml
|
||||
prepare: ../../../molecule/prepare.yml
|
||||
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