summaryrefslogtreecommitdiff
path: root/roles/kubernetes/addons/zfs-localpv/tasks/main.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/kubernetes/addons/zfs-localpv/tasks/main.yml')
-rw-r--r--roles/kubernetes/addons/zfs-localpv/tasks/main.yml42
1 files changed, 42 insertions, 0 deletions
diff --git a/roles/kubernetes/addons/zfs-localpv/tasks/main.yml b/roles/kubernetes/addons/zfs-localpv/tasks/main.yml
new file mode 100644
index 00000000..57dd6cf4
--- /dev/null
+++ b/roles/kubernetes/addons/zfs-localpv/tasks/main.yml
@@ -0,0 +1,42 @@
+---
+- name: create base directory for zfs-localpv addon
+ file:
+ path: /etc/kubernetes/addons/zfs-localpv
+ state: directory
+
+- name: copy config for zfs-localpv
+ template:
+ src: "zfs-operator.{{ kubernetes_zfs_localpv_version }}.yml.j2"
+ dest: /etc/kubernetes/addons/zfs-localpv/config.yml
+
+- name: check if zfs-localpv is already installed
+ check_mode: no
+ command: kubectl --kubeconfig /etc/kubernetes/admin.conf diff -f /etc/kubernetes/addons/zfs-localpv/config.yml
+ failed_when: false
+ changed_when: false
+ register: kube_zfs_localpv_config_diff_result
+
+- name: install zfs-localpv onto the cluster
+ when: kube_zfs_localpv_config_diff_result.rc != 0
+ command: kubectl --kubeconfig /etc/kubernetes/admin.conf apply -f /etc/kubernetes/addons/zfs-localpv/config.yml
+
+
+- name: copy storageclasses config for zfs-localpv
+ loop: "{{ kubernetes_zfs_localpv_storage_classes | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ template:
+ src: "storageclass.yml.j2"
+ dest: "/etc/kubernetes/addons/zfs-localpv/sc-{{ item.key }}.yml"
+
+- name: check if zfs-localpv storageclass already exists
+ loop: "{{ kubernetes_zfs_localpv_storage_classes | list }}"
+ check_mode: no
+ command: "kubectl --kubeconfig /etc/kubernetes/admin.conf diff -f /etc/kubernetes/addons/zfs-localpv/sc-{{ item }}.yml"
+ failed_when: false
+ changed_when: false
+ register: kube_zfs_localpv_sc_diff
+
+- name: install/update storageclasses for zfs-localpv
+ loop: "{{ kube_zfs_localpv_sc_diff.results | selectattr('rc', 'ne', 0) | map(attribute='item') }}"
+ command: "kubectl --kubeconfig /etc/kubernetes/admin.conf apply -f /etc/kubernetes/addons/zfs-localpv/sc-{{ item }}.yml"