#apiVersion: v1 #kind: Namespace #metadata: # name: immich-sync #--- apiVersion: apps/v1 kind: Deployment metadata: name: immich-sync # namespace: immich-sync spec: replicas: 1 selector: matchLabels: app: immich-sync template: metadata: labels: app: immich-sync spec: automountServiceAccountToken: false containers: - name: immich-sync image: registry.brunner.ninja/feedc0de/immich-sync:latest imagePullPolicy: Always env: - name: PORT value: "8090" ports: - name: http containerPort: 8090 readinessProbe: httpGet: path: /healthz port: http initialDelaySeconds: 1 periodSeconds: 5 livenessProbe: httpGet: path: /healthz port: http initialDelaySeconds: 5 periodSeconds: 15 resources: requests: cpu: 10m memory: 32Mi limits: cpu: "1" memory: 128Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 65532 runAsGroup: 65532 volumeMounts: - name: tmp mountPath: /tmp volumes: - name: tmp emptyDir: medium: Memory sizeLimit: 16Mi imagePullSecrets: - name: quay-pull-secret --- apiVersion: v1 kind: Service metadata: name: immich-sync # namespace: immich-sync spec: ports: - name: http port: 80 protocol: TCP targetPort: http selector: app: immich-sync --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: immich-sync # namespace: immich-sync annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls.certresolver: letsencrypt # This service can make outbound requests to user-supplied URLs. Keep authentication enabled. traefik.ingress.kubernetes.io/router.middlewares: "default-authentik@kubernetescrd" spec: ingressClassName: traefik rules: - host: immich-sync.brunner.ninja http: paths: - path: / pathType: Prefix backend: service: name: immich-sync port: name: http