apiVersion: v1 kind: Service metadata: name: nextcloud-app namespace: nextcloud spec: selector: app: nextcloud-app ports: - port: 80 targetPort: 80 --- apiVersion: v1 kind: Service metadata: name: nextcloud-db namespace: nextcloud spec: selector: app: nextcloud-db ports: - port: 5432 --- apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: nextcloud-redirect namespace: nextcloud spec: redirectRegex: regex: "^https://(.*)/.well-known/(card|cal)dav" replacement: "https://${1}/remote.php/dav/" --- apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: nextcloud-hsts namespace: nextcloud spec: headers: stsSeconds: 15552000 stsIncludeSubdomains: true stsPreload: true --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nextcloud-ingress namespace: nextcloud annotations: cert-manager.io/cluster-issuer: "letsencrypt-prod" traefik.ingress.kubernetes.io/router.middlewares: nextcloud-nextcloud-redirect@kubernetescrd, nextcloud-nextcloud-hsts@kubernetescrd spec: tls: - hosts: - cloud.mynest.love secretName: nextcloud-tls rules: - host: cloud.mynest.love http: paths: - path: / pathType: Prefix backend: service: name: nextcloud-app port: number: 80