apiVersion: apps/v1 kind: Deployment metadata: name: seerr labels: app: seerr {{- include "media.labels" . | nindent 4 }} spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: seerr template: metadata: labels: app: seerr spec: nodeSelector: node-role.kubernetes.io/control-plane: "true" containers: - name: seerr image: {{ .Values.seerr.image }} ports: - containerPort: 5055 env: {{- include "media.commonEnv" . | nindent 12 }} readinessProbe: httpGet: path: /api/v1/settings/public port: 5055 initialDelaySeconds: 20 periodSeconds: 15 timeoutSeconds: 3 livenessProbe: httpGet: path: /api/v1/settings/public port: 5055 initialDelaySeconds: 30 periodSeconds: 30 timeoutSeconds: 3 volumeMounts: - name: config mountPath: /app/config volumes: - name: config hostPath: path: {{ .Values.dogboxServiceData }}/seerr/config type: Directory --- apiVersion: v1 kind: Service metadata: name: seerr labels: app: seerr spec: selector: app: seerr ports: - port: 5055 targetPort: 5055 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: seerr annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls.certresolver: {{ .Values.certResolver }} spec: rules: - host: watch.{{ .Values.domain }} http: paths: - path: / pathType: Prefix backend: service: name: seerr port: number: 5055 --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: seerr-internal annotations: kubernetes.io/ingress.class: traefik-internal spec: entryPoints: - web routes: - match: Host(`seerr.{{ .Values.internalDomain }}`) kind: Rule services: - name: seerr port: 5055 --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: seerr-internal-tls annotations: kubernetes.io/ingress.class: traefik-internal spec: entryPoints: - websecure routes: - match: Host(`seerr.{{ .Values.internalDomain }}`) kind: Rule services: - name: seerr port: 5055 tls: {}