apiVersion: batch/v1
kind: CronJob
metadata:
  name: mongodb-backup
spec:
  schedule: '*/5 * * * *' # Runs backup every five minutes
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: mongodump
              image: docker.io/library/mongo:latest
              command:
                - sh
                - -c
                - |
                  # Perform backup
                  mongodump --host=mongodb-service --port=27017 --out=/backup/$(date +\%Y-\%m-\%dT\%H-\%M-\%S)
                  # Remove backups older than 7 days
                  find /backup -type d -mtime +7 -exec rm -rf {} +
              volumeMounts:
                - name: backup-storage
                  mountPath: /backup
          restartPolicy: Never
          volumes:
            - name: backup-storage
              persistentVolumeClaim:
                claimName: backup-pvc
#     mongodump -u $MONGO_INITDB_ROOT_USERNAME -p $MONGO_INITDB_ROOT_PASSWORD --host=mongodb-service --port=27017 --out=/backup/$(date +\%Y-\%m-\%dT\%H-\%M-\%S)

# env:
#   - name: MONGO_INITDB_ROOT_USERNAME
#     valueFrom:
#       secretKeyRef:
#         name: mongodb-secret
#         key: username
#   - name: MONGO_INITDB_ROOT_PASSWORD
#     valueFrom:
#       secretKeyRef:
#         name: mongodb-secret
#         key: password
