--- apiVersion: apps/v1 kind: Deployment metadata: name: xandikos spec: strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate replicas: 1 selector: matchLabels: app: xandikos template: metadata: labels: app: xandikos spec: containers: - name: xandikos image: ghcr.io/jelmer/xandikos imagePullPolicy: Always command: - "python3" - "-m" - "xandikos.web" - "--port=8081" - "-d/data" - "--defaults" - "--listen-address=0.0.0.0" - "--current-user-principal=/jelmer" - "--route-prefix=/dav" resources: limits: cpu: "2" memory: "2Gi" requests: cpu: "0.1" memory: "10M" livenessProbe: httpGet: path: /health port: 8081 initialDelaySeconds: 30 periodSeconds: 3 timeoutSeconds: 90 ports: - containerPort: 8081 volumeMounts: - name: xandikos-volume mountPath: /data securityContext: fsGroup: 1000 volumes: - name: xandikos-volume persistentVolumeClaim: claimName: xandikos --- apiVersion: v1 kind: Service metadata: name: xandikos labels: app: xandikos spec: ports: - port: 8081 name: web selector: app: xandikos type: ClusterIP