summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inventory/host_vars/sk-cloudia.yml6
-rw-r--r--roles/docker/tasks/main.yml4
-rw-r--r--roles/docker/tasks/zfs.yml15
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