summaryrefslogtreecommitdiff
path: root/roles/containerd
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-05-07 01:38:36 +0200
committerChristian Pointner <equinox@spreadspace.org>2021-05-07 01:38:51 +0200
commitb824f11c7e3794289ef3093b0e2fc8b9e74c2ef5 (patch)
tree55e83806145eddb62a7bcd00c043427caef6374a /roles/containerd
parentremove legacy group_vars (diff)
renew containerd role
Diffstat (limited to 'roles/containerd')
-rw-r--r--roles/containerd/defaults/main.yml7
-rw-r--r--roles/containerd/handlers/main.yml5
-rw-r--r--roles/containerd/tasks/lvm.yml18
-rw-r--r--roles/containerd/tasks/main.yml34
-rw-r--r--roles/containerd/tasks/zfs.yml21
5 files changed, 40 insertions, 45 deletions
diff --git a/roles/containerd/defaults/main.yml b/roles/containerd/defaults/main.yml
new file mode 100644
index 00000000..b1ad9368
--- /dev/null
+++ b/roles/containerd/defaults/main.yml
@@ -0,0 +1,7 @@
+---
+containerd_pkg_provider: docker-com
+containerd_pkg_name: containerd.io
+
+# containerd_pkg_version:
+
+# containerd_config: {}
diff --git a/roles/containerd/handlers/main.yml b/roles/containerd/handlers/main.yml
new file mode 100644
index 00000000..99f4d8e9
--- /dev/null
+++ b/roles/containerd/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+- name: restart containerd
+ service:
+ name: containerd
+ state: restarted
diff --git a/roles/containerd/tasks/lvm.yml b/roles/containerd/tasks/lvm.yml
deleted file mode 100644
index 93be2656..00000000
--- a/roles/containerd/tasks/lvm.yml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-- name: create logical volume
- lvol:
- vg: "{{ containerd_storage.vg }}"
- lv: "{{ containerd_storage.lv }}"
- size: "{{ containerd_storage.size }}"
-
-- name: create filesystem
- filesystem:
- fstype: "{{ containerd_storage.fs }}"
- dev: "/dev/mapper/{{ containerd_storage.vg | replace('-', '--') }}-{{ containerd_storage.lv | replace('-', '--') }}"
-
-- name: mount filesytem
- mount:
- src: "/dev/mapper/{{ containerd_storage.vg | replace('-', '--') }}-{{ containerd_storage.lv | replace('-', '--') }}"
- path: /var/lib/containerd
- fstype: "{{ containerd_storage.fs }}"
- state: mounted
diff --git a/roles/containerd/tasks/main.yml b/roles/containerd/tasks/main.yml
index f0d29a4a..ab23bd96 100644
--- a/roles/containerd/tasks/main.yml
+++ b/roles/containerd/tasks/main.yml
@@ -1,15 +1,37 @@
---
-- name: check for supported platform
- when: ansible_distribution != "Ubuntu"
- fail:
- msg: "currenty this only works with ubuntu"
+- name: install containerd config
+ when: containerd_config is defined
+ copy:
+ content: "{{ containerd_config | to_toml }}\n"
+ dest: /etc/containerd/config.toml
+ notify: restart containerd
- name: prepare storage volume for /var/lib/containerd
when: containerd_storage is defined
- import_tasks: "{{ containerd_storage.type }}.yml"
+ vars:
+ storage_volume: "{{ containerd_storage | combine({'dest': '/var/lib/containerd'}) }}"
+ include_role:
+ name: "storage/{{ containerd_storage.type }}/volume"
+
+- name: prepare package provider
+ when: containerd_pkg_provider != 'distro'
+ include_role:
+ name: "apt-repo/{{ containerd_pkg_provider }}"
- name: install containerd
apt:
- name: containerd
+ name: "{{ containerd_pkg_name }}{% if containerd_pkg_version is defined %}={{ containerd_pkg_version }}{% endif %}"
state: present
force: yes
+
+- name: disable automatic upgrades for containerd package
+ when: containerd_pkg_version is defined
+ dpkg_selections:
+ name: "{{ containerd_pkg_name }}"
+ selection: hold
+
+- name: start and enable containerd
+ service:
+ name: containerd
+ enabled: true
+ state: started
diff --git a/roles/containerd/tasks/zfs.yml b/roles/containerd/tasks/zfs.yml
deleted file mode 100644
index 7cf33639..00000000
--- a/roles/containerd/tasks/zfs.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-## containerd from ubuntu doesn't support zfs directly
-## we need to create a volume and an ext4 fs on top of that...
-- name: create zfs volume
- zfs:
- name: "{{ containerd_storage.pool }}/{{ containerd_storage.name }}"
- state: present
- extra_zfs_properties: "{{ containerd_storage.properties | default({}) | combine({'volsize': item.value.size}) }}"
-
-- name: create and ext4 filesystem on the zfs volume
- filesystem:
- fstype: ext4
- dev: "/dev/zvol/{{ containerd_storage.pool }}/{{ containerd_storage.name }}"
-
-- name: mount filesytem
- mount:
- src: "/dev/zvol/{{ containerd_storage.pool }}/{{ containerd_storage.name }}"
- path: /var/lib/containerd
- fstype: ext4
- opts: defaults,x-systemd.automount,nofail
- state: mounted