apiVersion: batch/v1
kind: Job
metadata:
  name: mpd-build
  namespace: media
spec:
  ttlSecondsAfterFinished: 3600
  template:
    spec:
      restartPolicy: Never
      initContainers:
      - name: prepare-context
        image: alpine/git:latest
        command:
        - sh
        - -c
        - |
          mkdir -p /workspace/mpd
          # We'll copy the files directly since they're in the ConfigMap
          echo "Build context prepared"
        volumeMounts:
        - name: workspace
          mountPath: /workspace
      containers:
      - name: kaniko
        image: gcr.io/kaniko-project/executor:latest
        args:
        - "--dockerfile=/workspace/mpd/Dockerfile"
        - "--context=/workspace/mpd"
        - "--destination=images.caffeinetux.com/apps/mpd:latest"
        - "--destination=images.caffeinetux.com/apps/mpd:alpine-3.21"
        - "--cache=true"
        - "--cache-repo=images.caffeinetux.com/apps/mpd/cache"
        volumeMounts:
        - name: workspace
          mountPath: /workspace
        - name: docker-config
          mountPath: /kaniko/.docker
        - name: dockerfile
          mountPath: /workspace/mpd/Dockerfile
          subPath: Dockerfile
        - name: mpd-config
          mountPath: /workspace/mpd/mpd.conf
          subPath: mpd.conf
      volumes:
      - name: workspace
        emptyDir: {}
      - name: docker-config
        secret:
          secretName: harbor-registry
          items:
          - key: .dockerconfigjson
            path: config.json
      - name: dockerfile
        configMap:
          name: mpd-build-files
      - name: mpd-config
        configMap:
          name: mpd-build-files
