summaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
Diffstat (limited to 'roles')
-rw-r--r--roles/docker/tasks/main.yml4
-rw-r--r--roles/docker/tasks/zfs.yml15
2 files changed, 19 insertions, 0 deletions
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