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 command: ["/venv/bin/radicale", "--config", "/config/config"] 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: annotations: nginx.ingress.kubernetes.io/ssl-redirect: "true" labels: app.kubernetes.io/component: radicale app.kubernetes.io/instance: radicale app.kubernetes.io/name: radicale name: dav.koti.lan namespace: default spec: ingressClassName: nginx rules: - host: dav.koti.lan http: paths: - backend: service: name: radicale port: name: http path: / pathType: Prefix tls: - hosts: - dav.koti.lan secretName: dav-koti-lan