Martlark / pg_dump

Docker image for scheduled dump of PostGres SQL files with automatic retention and removal
Apache License 2.0
22 stars 14 forks source link

Handle exit code of dump.sh to effective use in kubernetes (and more) #20

Open Dimama opened 6 months ago

Dimama commented 6 months ago

@Martlark hi Really appreciate your solution for database dump. Very handy and well documented

I use it to run as kubernetes cronjob (configuration simplified)

kind: CronJob
metadata:
  name: database-dump
  namespace: database-dump
spec:
  failedJobsHistoryLimit: 3
  successfulJobsHistoryLimit: 3
  schedule: "1 30 * * *"
  startingDeadlineSeconds: 600
  jobTemplate:
    spec:
      backoffLimit: 0
      template:
        metadata:
          name: database-dump
        spec:
          containers:
          - name: database-dump
            image: martlark/pg_dump:15.5
            command: ['./dump.sh']
            imagePullPolicy: Always
            env:
              - name: PGUSER
                value: user
              - name: POSTGRES_PASSWORD
                value: pass
              - name: POSTGRES_DB
                value: dbname
              - name: PGHOST
                value: host
              - name: S3_ACCESS_KEY
                value: secret_key
              - name: S3_SECRET_KEY
                value: access_key
              - name: S3_BUCKET_PATH
                value: bucket
              - name: S3_HOSTNAME
                value: s3_host
              - name: S3_HOST_BUCKET
                value: s3_host_bucket
              - name: S3_SYNC_OPTION
                value: --no-delete-removed
          restartPolicy: Never

It works great, but in case of some error inside dump.sh i got only error message and script return 0 exit code which interpreted by kubernetes as succeeded

I suggest to add handle exit code of main operations inside dump.sh and return error code in this cases as dump.sh result I believe this solution will help to increase effective number uses cases of your solution

If you like my suggestion, I can present my solution via Pull Request

Dimama commented 6 months ago

I've found a workaround to solve this problem in my case: set -e flag to bash

command: ['/bin/bash', '-e', 'dump.sh'] instead of command: ['./dump.sh']

Martlark commented 6 months ago

Thanks for the praise. Please add a pull request.

Best regards,

Andrew.


From: Дмитрий Мельников @.> Sent: Thursday, April 18, 2024 9:27:59 PM To: Martlark/pg_dump @.> Cc: Andrew Rowe @.>; Mention @.> Subject: Re: [Martlark/pg_dump] Handle exit code of dump.sh to effective use in kubernetes (and more) (Issue #20)

I've found a workaround to solve this problem in my case: set -e flag to bash

command: ['/bin/bash', '-e', 'dump.sh'] instead of command: ['./dump.sh']

— Reply to this email directly, view it on GitHubhttps://github.com/Martlark/pg_dump/issues/20#issuecomment-2063641246, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA6JUB5FSXBUTUROHSMAPDDY56U37AVCNFSM6AAAAABGNBQLVCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRTGY2DCMRUGY. You are receiving this because you were mentioned.Message ID: @.***>