diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..0c8e79c --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,64 @@ +- 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: "2.12.1" + release_namespace: "nextcloud" + create_namespace: yes + 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.containo.us/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 \ No newline at end of file