Add CRI-O CI (#5460)

This commit is contained in:
Maxime Guyot 2020-04-22 15:09:52 +02:00 committed by GitHub
parent 1c187e9729
commit 09bccc97ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 109 additions and 10 deletions

View file

@ -27,6 +27,11 @@ packet_centos7-flannel-containerd-addons-ha:
stage: deploy-part2 stage: deploy-part2
when: on_success when: on_success
packet_ubuntu18-crio:
extends: .packet
stage: deploy-part2
when: on_success
# ### MANUAL JOBS # ### MANUAL JOBS
packet_centos7-weave-upgrade-ha: packet_centos7-weave-upgrade-ha:

View file

@ -13,3 +13,4 @@
service: service:
name: crio name: crio
state: restarted state: restarted
enabled: yes

View file

@ -0,0 +1,31 @@
---
driver:
name: vagrant
provider:
name: libvirt
lint:
name: yamllint
options:
config-file: ../../../.yamllint
platforms:
- name: kubespray-crio
box: generic/ubuntu1804
cpus: 2
memory: 1024
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
verifier:
name: testinfra
lint:
name: flake8

View file

@ -0,0 +1,7 @@
---
- name: Converge
hosts: all
become: true
roles:
- role: kubespray-defaults
- role: cri-o

View file

@ -0,0 +1,6 @@
---
- name: Prepare
hosts: all
gather_facts: False
roles:
- role: bootstrap-os

View file

@ -0,0 +1,20 @@
import os
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("crio")
assert svc.is_running
assert svc.is_enabled
def test_run(host):
path = "unix:///var/run/crio/crio.sock"
with host.sudo():
cmd = host.command("crictl --runtime-endpoint " + path + " version")
assert cmd.rc == 0
assert "RuntimeName: cri-o" in cmd.stdout

View file

@ -21,7 +21,15 @@
group: no group: no
delegate_to: "{{ inventory_hostname }}" delegate_to: "{{ inventory_hostname }}"
- name: Install crictl completion - name: Get crictl completion
shell: "{{ bin_dir }}/crictl completion >/etc/bash_completion.d/crictl" shell: "{{ bin_dir }}/crictl completion"
ignore_errors: True
when: ansible_distribution in ["CentOS","RedHat", "Ubuntu", "Debian"] when: ansible_distribution in ["CentOS","RedHat", "Ubuntu", "Debian"]
changed_when: False
register: cri_completion
- name: Install crictl completion
copy:
dest: /etc/bash_completion.d/crictl
content: "{{ cri_completion.stdout }}"
become: True
when: cri_completion is defined

View file

@ -101,6 +101,14 @@
- is_ostree - is_ostree
- not need_bootstrap_crio.stat.exists - not need_bootstrap_crio.stat.exists
- name: Remove example CNI configs
file:
path: "/etc/cni/net.d/{{ item }}"
state: absent
loop:
- 100-crio-bridge.conf
- 200-loopback.conf
- name: Install cri-o config - name: Install cri-o config
template: template:
src: crio.conf.j2 src: crio.conf.j2

View file

@ -281,7 +281,5 @@ network_dir = "/etc/cni/net.d/"
# Paths to directories where CNI plugin binaries are located. # Paths to directories where CNI plugin binaries are located.
plugin_dirs = [ plugin_dirs = [
"/usr/libexec/cni", "/usr/libexec/cni",
{% if ansible_os_family == "ClearLinux" or is_ostree %}
"/opt/cni/bin/", "/opt/cni/bin/",
{% endif %}
] ]

View file

@ -4,4 +4,5 @@ crio_packages:
- cri-tools - cri-tools
crio_conmon: /usr/libexec/crio/conmon crio_conmon: /usr/libexec/crio/conmon
crio_runc_path: "/usr/bin/runc"
crio_seccomp_profile: "" crio_seccomp_profile: ""

View file

@ -1,7 +1,7 @@
--- ---
crio_packages: crio_packages:
- "cri-o-{{ kube_version | regex_replace('^v(?P<major>\\d+).(?P<minor>\\d+).(?P<patch>\\d+)$', '\\g<major>.\\g<minor>') }}" - "cri-o-1.15"
crio_conmon: /usr/libexec/podman/conmon crio_conmon: /usr/bin/conmon
crio_seccomp_profile: "" crio_seccomp_profile: ""
crio_runc_path: /usr/lib/cri-o-runc/sbin/runc crio_runc_path: /usr/lib/cri-o-runc/sbin/runc

View file

@ -0,0 +1,14 @@
---
# Instance settings
cloud_image: ubuntu-1804
mode: default
# Kubespray settings
deploy_netchecker: true
dns_min_replicas: 1
container_manager: crio
# CRI-O requirements
download_container: false
etcd_deployment_type: host
kubelet_deployment_type: host