apiVersion: apps/v1 kind: Deployment metadata: name: radicale labels: app: radicale spec: selector: matchLabels: app: radicale template: metadata: labels: app: radicale spec: nodeSelector: kubernetes.io/hostname: sini containers: - name: radicale image: tomsquest/docker-radicale imagePullPolicy: IfNotPresent volumeMounts: - name: collections mountPath: /data/collections ports: - name: http containerPort: 5232 volumes: - name: collections persistentVolumeClaim: claimName: radicale-collections --- apiVersion: v1 kind: Service metadata: name: radicale spec: selector: app: radicale ports: - name: http port: 80 targetPort: 5232 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: radicale-collections spec: storageClassName: local-path accessModes: - ReadWriteOnce resources: requests: storage: 100Mi --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: dav.koti.lan namespace: default spec: ingressClassName: caddy rules: - host: dav.koti.lan http: paths: - path: / pathType: Prefix backend: service: name: radicale port: number: 80 tls: - secretName: koti-lan-tls hosts: - dav.koti.lan