ansible-role-k8s-storage/tasks/longhorn.yml
Adrien Reslinger d5e57c2fac
All checks were successful
continuous-integration/drone/push Build is passing
Update lognhorn deployment
2021-10-03 17:47:59 +02:00

107 lines
3.7 KiB
YAML

---
- name: longhorn need to be present
block:
- name: Defined longhorn repository
kubernetes.core.helm_repository:
name: longhorn
repo_url: "https://charts.longhorn.io"
- name: Deploy latest version of longhorn
kubernetes.core.helm:
context: "{{ my_context }}"
name: longhorn
chart_ref: longhorn/longhorn
# chart_version: 1.2.0
create_namespace: yes
release_namespace: "{{ storage_longhorn_namespace }}"
values:
# persistence:
# defaultClass: true
# defaultClassReplicaCount: 3
# reclaimPolicy: Delete
# recurringJobs:
# enable: true
# jobList: [
# {
# "name":"snap",
# "task":"snapshot",
# "cron":"*/1 * * * *",
# "retain":1
# },
# {
# "name":"backup",
# "task":"backup",
# "cron":"*/2 * * * *",
# "retain":1
# }
# ]
defaultSettings:
defaultDataPath: "/var/lib/longhorn/"
backupTarget: "nfs://longhorn-test-nfs-svc.default:/opt/backupstore"
allowRecurringJobWhileVolumeDetached: true
createDefaultDiskLabeledNodes: true
# createDefaultDiskLabeledNodes: true
replicaSoftAntiAffinity: false
# defaultReplicaCount: 2
defaultDataLocality: disabled
# defaultLonghornStaticStorageClass: longhorn
# disableSchedulingOnCordonedNode: false
replicaZoneSoftAntiAffinity: false
ingress:
enabled: true
host: "longhorn.{{ cluster_domain }}"
# tls: false
# tlsSecret: longhorn.local-tls
annotations:
kubernetes.io/ingress.class: traefik
# cert-manager.io/cluster-issuer: letsencrypt-prod
#{% if ingress_whitelist is defined %}
# ingress.kubernetes.io/whitelist-source-range: "{% for acl_whitelist in ingress_whitelist %}{{ acl_whitelist }}{% if not loop.last %}, {% endif %}{% endfor %}"
#{% endif %}
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
#{% if basic_auth is defined %}
# traefik.ingress.kubernetes.io/router.middlewares: {{ traefik_namespace }}-traefik-dashboard-basicauth@kubernetescrd
# traefik.ingress.kubernetes.io/router.middlewares: basic-auth@file
#{% endif %}
enablePSP: true
- name: Install longhorn UI Ingress
k8s:
state: present
context: "{{ my_context }}"
apply: true
namespace: "{{ storage_longhorn_namespace }}"
resource_definition: "{{ lookup('template', 'longhorn/' + item) | from_yaml }}"
with_items:
- "longhorn_ingressroute.yaml.j2"
when:
- storage_longhorn|bool
tags:
- longhorn
- storage
- name: longhorn need to be absent
block:
- name: Deploy latest version of longhorn
kubernetes.core.helm:
context: "{{ my_context }}"
name: longhorn
chart_ref: longhorn/longhorn
# chart_version: 1.2.0
release_state: absent
release_namespace: "{{ storage_longhorn_namespace }}"
create_namespace: true
- name: Remove Ingress for longhorn UI
k8s:
state: absent
context: "{{ my_context }}"
namespace: "{{ storage_longhorn_namespace }}"
resource_definition: "{{ lookup('template', 'longhorn/' + item) | from_yaml }}"
with_items:
- "longhorn_ingressroute.yaml.j2"
- "longhorn-namespace.yml.j2"
when:
- not storage_longhorn|bool
tags:
- longhorn
- storage