--- - 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: "{{ storage_longhorn.version }}" 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 kubernetes.core.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.enabled tags: - longhorn - storage - name: longhorn need to be absent block: - name: Deploy latest version of longhorn kubernetes.core.helm: context: "{{ my_context }}" name: longhorn state: absent release_namespace: "{{ storage_longhorn.namespace }}" - name: Remove Ingress for longhorn UI kubernetes.core.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.enabled tags: - longhorn - storage