apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ytdl-sub
  name: ytdl-sub
spec:
  selector:
    matchLabels:
      app: ytdl-sub
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: ytdl-sub
    spec:
      containers:
      - env:
        - name: PUID
          value: "1000"
        - name: PGID
          value: "1000"
        - name: TZ
          value: "Europe/Berlin"
        - name: DOCKER_MODS
          value: "linuxserver/mods:universal-cron"
        image: ghcr.io/jmbannon/ytdl-sub:ubuntu-2024.12.27
        imagePullPolicy: Always
        name: ytdl-sub
        ports:
        - containerPort: 8443
          name: http
          protocol: TCP
        volumeMounts:
        - mountPath: /config
          name: config
        - mountPath: /youtube
          name: youtube
      initContainers:
      - image: busybox
        name: copy-config
        command:
        - /bin/sh
        - -c
        - "cp /config_src/config.yaml /config/;
          cp /config_src/subscriptions.yaml /config/;
          cp /secret/cookies.txt /config/;
          mkdir /config/ytdl-sub-configs ;
          cp /config_src/run_cron /config/ytdl-sub-configs/ ;
          chmod +x /config/ytdl-sub-configs/run_cron ;
          mkdir /config/crontabs ;
          cp /config_src/abc /config/crontabs/ ;
          chown -R 1000:1000 /config"
        volumeMounts:
        - mountPath: /config_src
          name: config-src
        - mountPath: /config
          name: config
        - mountPath: /secret
          name: cookie
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30
      volumes:
      - name: config
        emptyDir: {}
      - name: cookie
        secret:
          secretName: cookie-secret
      - name: config-src
        configMap:
          name: ytdl-sub-config
      - name: youtube
        persistentVolumeClaim:
          claimName: smb-youtube