diff options
-rw-r--r-- | inventory/host_vars/sk-cloudia.yml | 6 | ||||
-rw-r--r-- | roles/docker/tasks/main.yml | 4 | ||||
-rw-r--r-- | roles/docker/tasks/zfs.yml | 15 |
3 files changed, 25 insertions, 0 deletions
diff --git a/inventory/host_vars/sk-cloudia.yml b/inventory/host_vars/sk-cloudia.yml index 0869c2c8..b085be8a 100644 --- a/inventory/host_vars/sk-cloudia.yml +++ b/inventory/host_vars/sk-cloudia.yml @@ -17,3 +17,9 @@ zfs_zpools: zfs_arc_size: min: "{{ 2 * 1024 * 1024 * 1024 }}" max: "{{ 16 * 1024 * 1024 * 1024 }}" + + +docker_zfs: + pool: storage + name: docker + size: 1G diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 5e66bb1a..9d78114c 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -18,6 +18,10 @@ when: docker_lvm is defined import_tasks: lvm.yml +- name: prepare /var/lib/docker as ZFS dataset + when: docker_zfs is defined + import_tasks: zfs.yml + - name: prepare package provider when: docker_pkg_provider != 'distro' include_tasks: "{{ docker_pkg_provider }}.yml" diff --git a/roles/docker/tasks/zfs.yml b/roles/docker/tasks/zfs.yml new file mode 100644 index 00000000..3301e310 --- /dev/null +++ b/roles/docker/tasks/zfs.yml @@ -0,0 +1,15 @@ +--- +- name: create zfs dataset + zfs: + name: "{{ docker_zfs.pool }}/{{ docker_zfs.name }}" + state: present + extra_zfs_properties: + quota: "{{ docker_zfs.size }}" + +- name: bind mount filesytem + mount: + src: "{{ zfs_zpools[docker_zfs.pool].mountpoint }}/{{ docker_zfs.name }}" + path: /var/lib/docker + fstype: none + opts: bind,x-systemd.automount,nofail + state: mounted |