summaryrefslogtreecommitdiff
path: root/roles/kubernetes/addons/zfs-localpv/tasks/main.yml
blob: 57dd6cf418fd7394590c3523d20ecc0112b0ff79 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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"