summaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
Diffstat (limited to 'roles')
-rw-r--r--roles/containerd/tasks/zfs.yml7
-rw-r--r--roles/vm/host/tasks/zfs.yml11
-rw-r--r--roles/vm/install/tasks/main.yml3
3 files changed, 8 insertions, 13 deletions
diff --git a/roles/containerd/tasks/zfs.yml b/roles/containerd/tasks/zfs.yml
index 2ebcae3c..1abf4d34 100644
--- a/roles/containerd/tasks/zfs.yml
+++ b/roles/containerd/tasks/zfs.yml
@@ -1,16 +1,11 @@
---
## containerd from ubuntu doesn't support zfs directly
## we need to create a volume and an ext4 fs on top of that...
-- name: verify that the zfs volsize property is set
- assert:
- msg: "contained does not support zfs directly - please set the volsize property to make it a volume"
- that: "'volsize' in containerd_zfs.properties"
-
- name: create zfs volume
zfs:
name: "{{ containerd_zfs.pool }}/{{ containerd_zfs.name }}"
state: present
- extra_zfs_properties: "{{ containerd_zfs.properties }}"
+ extra_zfs_properties: "{{ containerd_zfs.properties | default({}) | combine({'volsize': item.value.size}) }}"
- name: create and ext4 filesystem on the zfs volume
filesystem:
diff --git a/roles/vm/host/tasks/zfs.yml b/roles/vm/host/tasks/zfs.yml
index b88ee73e..b84f2d0d 100644
--- a/roles/vm/host/tasks/zfs.yml
+++ b/roles/vm/host/tasks/zfs.yml
@@ -2,14 +2,15 @@
- name: create zfs base datasets
loop: "{{ lookup('dict', vm_host.zfs, wantlist=True) }}"
loop_control:
- label: "{{ item.key }} -> {{ item.value.pool }}/{{ item.value.name }}{% if 'quota' in item.value %}={{ item.value.quota }}{% endif %}"
+ label: "{{ item.key }} -> {{ item.value.pool }}/{{ item.value.name }} ({{ (item.value.properties | default({})).items() | map('join', '=') | join(', ') }})"
+ vars:
+ default_properties:
+ canmount: no
+ mountpoint: none
zfs:
name: "{{ item.value.pool }}/{{ item.value.name }}"
state: present
- extra_zfs_properties:
- quota: "{{ item.value.quota | default(omit) }}"
- canmount: no
- mountpoint: none
+ extra_zfs_properties: "{{ default_properties | combine(item.value.properties | default({})) }}"
- name: configure lvm to ignore zfs volumes
lineinfile:
diff --git a/roles/vm/install/tasks/main.yml b/roles/vm/install/tasks/main.yml
index 13716559..6b8f9ca7 100644
--- a/roles/vm/install/tasks/main.yml
+++ b/roles/vm/install/tasks/main.yml
@@ -25,8 +25,7 @@
zfs:
name: "{{ vm_host_cooked.zfs[item.value.backend | default('default')].pool }}/{{ vm_host_cooked.zfs[item.value.backend | default('default')].name }}/{{ install_hostname }}/{{ item.value.name }}"
state: present
- extra_zfs_properties:
- volsize: "{{ item.value.size }}"
+ extra_zfs_properties: "{{ item.value.properties | default({}) | combine({'volsize': item.value.size}) }}"
- block: