ansible-role-k8s-nextcloud/tasks/main.yml

64 lines
2.1 KiB
YAML

- name: Nextcloud setup
block:
- name: Defined Nextcloud repository
kubernetes.core.helm_repository:
name: nextcloud
repo_url: "https://nextcloud.github.io/helm/"
- name: Deploy Nextcloud
kubernetes.core.helm:
context: "{{ my_context }}"
name: nextcloud
chart_ref: nextcloud/nextcloud
chart_version: "3.0.4"
release_namespace: "nextcloud"
create_namespace: true
values:
ingress:
enabled: true
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
traefik.ingress.kubernetes.io/router.middlewares: security_headers@file,compress@file,nextcloud-nextcloud-redirect@kubernetescrd
tls:
- secretName: nextcloud.{{ cluster_domain }}
hosts:
- nextcloud.{{ cluster_domain }}
nextcloud:
host: nextcloud.{{ cluster_domain }}
username: admin
password: "{{ prometheus_grafana_admin_password }}"
mail:
enabled: true
fromAddress: nextcloud
domain: "{{ cluster_domain }}"
smtp:
host: "{{ smtp_host }}"
secure: ssl
port: 465
authtype: LOGIN
name: "{{ smtp_user }}"
password: "{{ smtp_password }}"
persistence:
enabled: true
storageClass: "longhorn"
size: 20Gi
- name: Install Nextcloud Middleware
kubernetes.core.k8s:
state: present
context: "{{ my_context }}"
namespace: "nextcloud"
definition:
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: nextcloud-redirect
namespace: "nextcloud"
spec:
redirectRegex:
permanent: true
regex: "https://(.*)/.well-known/(card|cal)dav"
replacement: "https://${1}/remote.php/dav/"
tags:
- nextcloud