osmith submitted this change.
ansible: podman: use fuse-overlayfs
The default driver "vfs" leads to container crashes on heavy i/o load
on our jenkins machines. Use "fuse-overlayfs" instead, which does not
have these problems.
Add a systemd service that creates /dev/fuse when the LXC container
starts and configure the driver via ~/.config/containers/storage.conf.
Note: when changing the storage driver, the previous storage database
needs to be removed (~/.local/share/containers/storage/). I've done
this manually before rolling out this change.
Fixes: OS#6524
Change-Id: Ib67d5cbc7d567efed673e2e646ae5b903c49e928
---
A ansible/roles/podman/files/mknod-fuse.service
A ansible/roles/podman/files/storage.conf
M ansible/roles/podman/tasks/main.yml
3 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/ansible/roles/podman/files/mknod-fuse.service b/ansible/roles/podman/files/mknod-fuse.service
new file mode 100644
index 0000000..b796f4f
--- /dev/null
+++ b/ansible/roles/podman/files/mknod-fuse.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Create /dev/fuse (OS#6524)
+
+[Service]
+ExecStart=sh -c 'test -e /dev/fuse || mknod -m 666 /dev/fuse c 10 229'
+RemainAfterExit=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/ansible/roles/podman/files/storage.conf b/ansible/roles/podman/files/storage.conf
new file mode 100644
index 0000000..f212591
--- /dev/null
+++ b/ansible/roles/podman/files/storage.conf
@@ -0,0 +1,5 @@
+[storage]
+driver = "overlay"
+
+[storage.options]
+mount_program = "/usr/bin/fuse-overlayfs"
diff --git a/ansible/roles/podman/tasks/main.yml b/ansible/roles/podman/tasks/main.yml
index 45a712d..102b37e 100644
--- a/ansible/roles/podman/tasks/main.yml
+++ b/ansible/roles/podman/tasks/main.yml
@@ -5,5 +5,26 @@
pkg:
- podman
- buildah
+ - fuse-overlayfs
# Has reasonable recommends needed for dns resolving etc.
install_recommends: yes
+
+- name: install mknod-fuse.service
+ copy:
+ src: mknod-fuse.service
+ dest: /etc/systemd/system/
+ mode: 0644
+
+- name: enable mknod-fuse.service
+ systemd_service:
+ daemon_reload: true
+ name: mknod-fuse
+ enabled: true
+ state: started
+
+- name: install storage.conf
+ copy:
+ src: storage.conf
+ dest: "/home/{{ jenkins_user }}/.config/containers/"
+ mode: 0644
+ owner: "{{ jenkins_user }}"
To view, visit change 37896. To unsubscribe, or for help writing mail filters, visit settings.