Add crun support (#6864)
Signed-off-by: Victor Morales <v.morales@samsung.com>
This commit is contained in:
parent
da5077fa5f
commit
4f7a760a94
9 changed files with 81 additions and 1 deletions
|
@ -54,6 +54,13 @@ kata_runtimes:
|
||||||
type: oci
|
type: oci
|
||||||
root: /run/kata-containers
|
root: /run/kata-containers
|
||||||
|
|
||||||
|
# crun is a fast and low-memory footprint OCI Container Runtime fully written in C.
|
||||||
|
crun_runtime:
|
||||||
|
name: crun
|
||||||
|
path: /usr/bin/crun
|
||||||
|
type: oci
|
||||||
|
root: /run/crun
|
||||||
|
|
||||||
# When this is true, CRI-O package repositories are added. Set this to false when using an
|
# When this is true, CRI-O package repositories are added. Set this to false when using an
|
||||||
# environment with preconfigured CRI-O package repositories.
|
# environment with preconfigured CRI-O package repositories.
|
||||||
crio_add_repos: true
|
crio_add_repos: true
|
||||||
|
|
|
@ -45,12 +45,18 @@
|
||||||
|
|
||||||
- import_tasks: "crictl.yml"
|
- import_tasks: "crictl.yml"
|
||||||
|
|
||||||
- name: Build a list of crio runtimes
|
- name: Build a list of crio runtimes with Katacontainers runtimes
|
||||||
set_fact:
|
set_fact:
|
||||||
crio_runtimes: "{{ crio_runtimes + kata_runtimes }}"
|
crio_runtimes: "{{ crio_runtimes + kata_runtimes }}"
|
||||||
when:
|
when:
|
||||||
- kata_containers_enabled
|
- kata_containers_enabled
|
||||||
|
|
||||||
|
- name: Build a list of crio runtimes with crun runtime
|
||||||
|
set_fact:
|
||||||
|
crio_runtimes: "{{ crio_runtimes + [crun_runtime] }}"
|
||||||
|
when:
|
||||||
|
- crun_enabled
|
||||||
|
|
||||||
- name: Make sure needed folders exist in the system
|
- name: Make sure needed folders exist in the system
|
||||||
with_items:
|
with_items:
|
||||||
- /etc/crio
|
- /etc/crio
|
||||||
|
|
5
roles/container-engine/crun/defaults/main.yml
Normal file
5
roles/container-engine/crun/defaults/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
crun_version: 0.15
|
||||||
|
crun_release_url: https://github.com/containers/crun/releases/download/{{ crun_version }}/crun-{{ crun_version }}-linux-{{ host_architecture }}
|
||||||
|
crun_bin_dir: /usr/bin/
|
19
roles/container-engine/crun/tasks/main.yml
Normal file
19
roles/container-engine/crun/tasks/main.yml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Create binary destination folder
|
||||||
|
file:
|
||||||
|
mode: '0755'
|
||||||
|
state: directory
|
||||||
|
path: "{{ crun_bin_dir }}"
|
||||||
|
|
||||||
|
- name: Check if binary exists
|
||||||
|
stat:
|
||||||
|
path: "{{ crun_bin_dir }}/crun"
|
||||||
|
register: crun_stat
|
||||||
|
|
||||||
|
- name: Download binary
|
||||||
|
get_url:
|
||||||
|
url: "{{ crun_release_url }}"
|
||||||
|
dest: "{{ crun_bin_dir }}/crun"
|
||||||
|
mode: '0755'
|
||||||
|
when: not crun_stat.stat.exists
|
|
@ -7,6 +7,13 @@ dependencies:
|
||||||
- container-engine
|
- container-engine
|
||||||
- kata-containers
|
- kata-containers
|
||||||
|
|
||||||
|
- role: container-engine/crun
|
||||||
|
when:
|
||||||
|
- crun_enabled
|
||||||
|
tags:
|
||||||
|
- container-engine
|
||||||
|
- crun
|
||||||
|
|
||||||
- role: container-engine/cri-o
|
- role: container-engine/cri-o
|
||||||
when:
|
when:
|
||||||
- container_manager == 'crio'
|
- container_manager == 'crio'
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
kind: RuntimeClass
|
||||||
|
apiVersion: node.k8s.io/v1beta1
|
||||||
|
metadata:
|
||||||
|
name: crun
|
||||||
|
handler: crun
|
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: crun | Copy runtime class manifest
|
||||||
|
copy:
|
||||||
|
src: runtimeclass-crun.yml
|
||||||
|
dest: "{{ kube_config_dir }}/runtimeclass-crun.yml"
|
||||||
|
mode: preserve
|
||||||
|
when:
|
||||||
|
- inventory_hostname == groups['kube-master'][0]
|
||||||
|
|
||||||
|
- name: crun | Apply manifests
|
||||||
|
kube:
|
||||||
|
name: "runtimeclass-crun"
|
||||||
|
kubectl: "{{ bin_dir }}/kubectl"
|
||||||
|
resource: "runtimeclass"
|
||||||
|
filename: "{{ kube_config_dir }}/runtimeclass-crun.yml"
|
||||||
|
state: "latest"
|
||||||
|
when:
|
||||||
|
- inventory_hostname == groups['kube-master'][0]
|
|
@ -6,3 +6,10 @@ dependencies:
|
||||||
- apps
|
- apps
|
||||||
- kata-containers
|
- kata-containers
|
||||||
- container-runtimes
|
- container-runtimes
|
||||||
|
|
||||||
|
- role: kubernetes-apps/container_runtimes/crun
|
||||||
|
when: crun_enabled
|
||||||
|
tags:
|
||||||
|
- apps
|
||||||
|
- crun
|
||||||
|
- container-runtimes
|
||||||
|
|
|
@ -224,6 +224,10 @@ container_manager: docker
|
||||||
# When enabled, it requires `container_manager` different than Docker
|
# When enabled, it requires `container_manager` different than Docker
|
||||||
kata_containers_enabled: false
|
kata_containers_enabled: false
|
||||||
|
|
||||||
|
# Enable crun as additional container runtime
|
||||||
|
# When enabled, it requires container_manager=crio
|
||||||
|
crun_enabled: false
|
||||||
|
|
||||||
# Container on localhost (download images when download_localhost is true)
|
# Container on localhost (download images when download_localhost is true)
|
||||||
container_manager_on_localhost: "{{ container_manager }}"
|
container_manager_on_localhost: "{{ container_manager }}"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue