--- apiVersion: apps/v1 kind: Deployment metadata: name: sabnzbd namespace: media spec: selector: matchLabels: app: sabnzbd template: metadata: labels: app: sabnzbd spec: restartPolicy: Always containers: - image: ghcr.io/hotio/sabnzbd imagePullPolicy: Always name: sabnzbd env: - name: TZ value: Australia/Melbourne - name: PUID value: '1000' - name: PGID value: '1000' - name: UMASK value: '002' - name: WEBUI_PORTS value: '8080/tcp,8080/udp' - name: ARGS value: '' ports: - containerPort: 8080 name: web protocol: TCP volumeMounts: - mountPath: /data name: sabnzbd-data - mountPath: /config name: sabnzbd-config volumes: - name: sabnzbd-data persistentVolumeClaim: claimName: data - name: sabnzbd-config persistentVolumeClaim: claimName: sabnzbd-config --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: sabnzbd-config namespace: media spec: storageClassName: zfs-fast accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: v1 kind: Service metadata: labels: app: sabnzbd name: sabnzbd namespace: media spec: ports: - name: web port: 8080 protocol: TCP targetPort: 8080 - name: web-udp port: 8080 protocol: UDP targetPort: 8080 selector: app: sabnzbd type: ClusterIP --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: sabnzbd-ingress namespace: media spec: ingressClassName: haproxy rules: - host: sabnzbd.ntwl.xyz http: paths: - backend: service: name: sabnzbd port: name: web path: / pathType: Prefix