-
-
Notifications
You must be signed in to change notification settings - Fork 148
Description
Summary
I am wrapping the docker-db-backup in a kubernetes cronjob yaml manifest with all the (supposedly) correct environment variables indicated in the README.md file for these cases. My goal is to have the system run its' jobs and exit.
However, it finished the very small backup and then just loops around to sleeping instead of existing. It appears as though the "persist" param in install/assets/dbbackup/template-dbbackup/run
isn't set properly. Perhaps at this section:
if [[ "${MODE,,}" =~ "standalone" ]] || [ "${1,,}" = "manual" ] || [ "${1,,}" = "now" ]; then |
Steps to reproduce
Create a CronJob with similar specs:
apiVersion: batch/v1
kind: CronJob
metadata:
labels:
app.kubernetes.io/component: mongodump
app.kubernetes.io/instance: mongodb-gmfc-rkd
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mongodb
app.kubernetes.io/version: 7.0.3
argocd.argoproj.io/instance: mongodb-gmfc-rkd
helm.sh/chart: mongodb-14.3.0
name: mongodb-mongodump
namespace: mongodb
resourceVersion: '7331833'
uid: c10456d1-6646-4302-9e27-1a543c1b4ef5
spec:
concurrencyPolicy: Replace
failedJobsHistoryLimit: 1
jobTemplate:
spec:
template:
metadata:
labels:
app.kubernetes.io/component: mongodump
app.kubernetes.io/instance: mongodb-gmfc-rkd
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mongodb
app.kubernetes.io/version: 7.0.3
helm.sh/chart: mongodb-14.3.0
spec:
containers:
- env:
- name: MODE
value: MANUAL
- name: MANUAL_RUN_FOREVER
value: 'FALSE'
- name: BACKUP_JOB_CONCURRENCY
value: '1'
- name: CONTAINER_ENABLE_MONITORING
value: 'FALSE'
- name: CONTAINER_ENABLE_SCHEDULING
value: 'FALSE'
- name: CONTAINER_ENABLE_MESSAGING
value: 'FALSE'
- name: CONTAINER_ENABLE_LOGROTATE
value: 'FALSE'
- name: TIMEZONE
value: Etc/UTC
- name: CONTAINER_NAME
value: mongodb-mongodump
- name: DEFAULT_LOG_LEVEL
value: DEBUG
- name: DEBUG_MODE
value: 'TRUE'
- name: DEFAULT_COMPRESSION
value: GZ
- name: DEFAULT_BACKUP_LOCATION
value: S3
- name: DEFAULT_S3_BUCKET
value: XXXXXXXXXX
- name: DEFAULT_S3_KEY_ID
value: >-
XXXXXXXXXXXXXXXXX
- name: DEFAULT_S3_KEY_SECRET
value: XXXXXXXXXXXX
- name: DEFAULT_S3_PATH
value: TEST/2023/11/21
- name: DEFAULT_S3_REGION
value: us
- name: DEFAULT_S3_HOST
value: storage.googleapis.com
- name: DB01_TYPE
value: mongo
- name: DB01_HOST
value: mongodb-headless
- name: DB01_NAME
value: base_monitor
- name: DB01_AUTH
value: admin
- name: DB01_USER
value: test
- name: DB01_PASS
valueFrom:
secretKeyRef:
key: mongodb-root-password
name: mongodb-secret-mongodb
image: 'tiredofit/db-backup:4.0.19'
imagePullPolicy: IfNotPresent
name: mongodb-mongodump
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: OnFailure
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
schedule: '*/30 * * * *'
successfulJobsHistoryLimit: 3
suspend: false
The manifest above is templated from the following helm template as an ExtraDeploy in bitnami mongodb chart:
apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ include "mongodb.fullname" . }}-mongodump
namespace: {{ include "mongodb.namespace" . | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: mongodump
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
spec:
concurrencyPolicy: Replace
schedule: '*/30 * * * *'
jobTemplate:
spec:
template:
metadata:
labels: {{- include "common.labels.standard" . | nindent 12 }}
app.kubernetes.io/component: mongodump
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 12 }}
{{- end }}
{{- if or .Values.annotations .Values.commonAnnotations }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 12 }}
{{- end }}
{{- end }}
spec:
restartPolicy: OnFailure
containers:
- name: {{ include "mongodb.fullname" . }}-mongodump
image: "tiredofit/db-backup:4.0.19"
env:
- name: MODE
value: "MANUAL"
- name: MANUAL_RUN_FOREVER
value: "FALSE"
- name: BACKUP_JOB_CONCURRENCY
value: "1"
- name: CONTAINER_ENABLE_MONITORING
value: "FALSE"
- name: CONTAINER_ENABLE_SCHEDULING
value: "FALSE"
- name: CONTAINER_ENABLE_MESSAGING
value: "FALSE"
- name: CONTAINER_ENABLE_LOGROTATE
value: "FALSE"
- name: TIMEZONE
value: Etc/UTC
- name: CONTAINER_NAME
value: "{{ include "mongodb.fullname" . }}-mongodump"
- name: DEFAULT_LOG_LEVEL
value: DEBUG
- name: DEBUG_MODE
value: "TRUE"
- name: DEFAULT_COMPRESSION
value: GZ
- name: DEFAULT_BACKUP_LOCATION
value: S3
- name: DEFAULT_S3_BUCKET
value: test-bucket
- name: DEFAULT_S3_KEY_ID
value: "key"
- name: DEFAULT_S3_KEY_SECRET
value: "secret"
- name: DEFAULT_S3_PATH
value: {{ .Values.global.clusterName | upper }}/{{ now | date "2006/01/02" }}
- name: DEFAULT_S3_REGION
value: us
- name: DEFAULT_S3_HOST
value: storage.googleapis.com
- name: DB01_TYPE
value: mongo
- name: DB01_HOST
value: {{ include "mongodb.service.nameOverride" . }}
- name: DB01_NAME
value: test
- name: DB01_AUTH
value: admin
- name: DB01_USER
value: {{ .Values.auth.rootUser | quote }}
- name: DB01_PASS
valueFrom:
secretKeyRef:
name: {{ include "mongodb.secretName" . }}
key: mongodb-root-password
What is the expected correct behavior?
Have this bit of code working correctly:
symlink_log
cleanup_old_data
if var_false "${persist}" ; then
print_debug "Exiting due to manual mode"
exit "${exitcode_backup}";
Relevant logs and/or screenshots
Debug log below
env
command output from within the container:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=mongodb-mongodump-28342770-xtphc
FLUENTBIT_VERSION=2.2.0
S6_OVERLAY_VERSION=3.1.6.2
YQ_VERSION=v4.35.2
ZABBIX_VERSION=6.4.8
DOAS_VERSION=v6.8.2
DEBUG_MODE=TRUE
TIMEZONE=Etc/UTC
CONTAINER_ENABLE_SCHEDULING=FALSE
CONTAINER_SCHEDULING_BACKEND=cron
CONTAINER_ENABLE_MESSAGING=FALSE
CONTAINER_MESSAGING_BACKEND=msmtp
CONTAINER_ENABLE_MONITORING=FALSE
CONTAINER_MONITORING_BACKEND=zabbix
CONTAINER_ENABLE_LOGSHIPPING=FALSE
S6_GLOBAL_PATH=/command:/usr/bin:/bin:/usr/sbin:sbin:/usr/local/bin:/usr/local/sbin
S6_KEEP_ENV=1
S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
IMAGE_NAME=tiredofit/db-backup
IMAGE_REPO_URL=https://github.com/tiredofit/docker-db-backup/
INFLUX1_CLIENT_VERSION=1.8.0
INFLUX2_CLIENT_VERSION=2.7.3
MSODBC_VERSION=18.3.2.1-1
MSSQL_VERSION=18.3.1.1-1
AWS_CLI_VERSION=1.29.78
DEFAULT_S3_KEY_SECRET=KEY_SECRET
DEFAULT_S3_PATH=TEST/2023/11/21
DEFAULT_S3_REGION=us
MODE=MANUAL
BACKUP_JOB_CONCURRENCY=1
DEFAULT_BACKUP_LOCATION=S3
DEFAULT_S3_BUCKET=testbucket
DB01_TYPE=mongo
DB01_HOST=mongodb-headless
DB01_USER=csr
MANUAL_RUN_FOREVER=FALSE
CONTAINER_ENABLE_LOGROTATE=FALSE
DEFAULT_LOG_LEVEL=DEBUG
DEFAULT_S3_KEY_ID=KEY_ID
DEFAULT_S3_HOST=storage.googleapis.com
CONTAINER_NAME=mongodb-mongodump
DEFAULT_COMPRESSION=GZ
DB01_PASS=dummypass
DB01_NAME=base_monitor
DB01_AUTH=admin
MONGO_EXPRESS_GMFC_RKD_PORT=tcp://10.43.74.157:8081
MONGO_EXPRESS_GMFC_RKD_PORT_8081_TCP_PROTO=tcp
MONGO_EXPRESS_GMFC_RKD_PORT_8081_TCP_ADDR=10.43.74.157
MONGODB_METRICS_SERVICE_HOST=10.43.215.128
MONGODB_METRICS_SERVICE_PORT=9216
MONGODB_METRICS_PORT_9216_TCP=tcp://10.43.215.128:9216
KUBERNETES_SERVICE_HOST=10.43.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.43.0.1
MONGO_EXPRESS_GMFC_RKD_PORT_8081_TCP_PORT=8081
MONGODB_METRICS_PORT_9216_TCP_PROTO=tcp
MONGODB_METRICS_PORT_9216_TCP_ADDR=10.43.215.128
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
MONGO_EXPRESS_GMFC_RKD_SERVICE_PORT_HTTP=8081
MONGODB_METRICS_SERVICE_PORT_HTTP_METRICS=9216
KUBERNETES_PORT_443_TCP=tcp://10.43.0.1:443
KUBERNETES_PORT=tcp://10.43.0.1:443
MONGO_EXPRESS_GMFC_RKD_SERVICE_HOST=10.43.74.157
MONGO_EXPRESS_GMFC_RKD_SERVICE_PORT=8081
MONGO_EXPRESS_GMFC_RKD_PORT_8081_TCP=tcp://10.43.74.157:8081
MONGODB_METRICS_PORT=tcp://10.43.215.128:9216
MONGODB_METRICS_PORT_9216_TCP_PORT=9216
KUBERNETES_SERVICE_PORT_HTTPS=443
TERM=xterm
HOME=/root
Environment
This is a K3S cluster running version: v1.26.6+k3s1
I have added this CronJob as part of the bitnami mongodb chart version: mongodb-14.3.0
It is deployed using ArgoCD version: v2.8.3+77556d9
- Image version / tag: 4.0.19
- Host OS: Ubuntu 20.04