osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/37896?usp=email )
Change subject: ansible: podman: use fuse-overlayfs ......................................................................
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(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/96/37896/1
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 }}"