apiVersion: argoproj.io/v1alpha1 kind: CronWorkflow metadata: name: db-backup-cron spec: schedule: "0 5 * * *" timezone: "Asia/Seoul" workflowSpec: entrypoint: db-backup templates: - name: db-backup container: image: nexus2.exem-oss.org/dsk-middleware-backup:v3.0 command: ["sh", "-c"] args: - | # SSH 키를 파일로 저장 echo -n "$SSH_KEY" > /tmp/id_rsa chmod 600 /tmp/id_rsa cat /tmp/id_rsa # SSH 터널링 설정 ssh -i /tmp/id_rsa -fN -L $MONGO_MANIFEST_PORT:$MASTER_HOST:$MONGO_MANIFEST_PORT dev2@bastion.kr.datasaker.io -o StrictHostKeyChecking=no & ssh -i /tmp/id_rsa -fN -L $MONGO_DSK_PORT:$MASTER_HOST:$MONGO_DSK_PORT dev2@bastion.kr.datasaker.io -o StrictHostKeyChecking=no & ssh -i /tmp/id_rsa -fN -L $POSTGRES_PORT:$MASTER_HOST:$POSTGRES_PORT dev2@bastion.kr.datasaker.io -o StrictHostKeyChecking=no & chmod +x /backup.sh /backup.sh env: - name: SSH_KEY valueFrom: secretKeyRef: name: bastion-ssh-key key: ssh-key - name: sh_debug value: '' - name: MASTER_HOST valueFrom: secretKeyRef: name: db-creds key: master_host - name: MONGO_MANIFEST_PORT value: '30111' - name: MONGO_DSK_PORT value: '30112' - name: MONGO_USERNAME valueFrom: secretKeyRef: name: db-creds key: mongo_username - name: MONGO_PASSWORD valueFrom: secretKeyRef: name: db-creds key: mongo_password - name: POSTGRES_PORT value: '32098' - name: POSTGRES_USERNAME valueFrom: secretKeyRef: name: db-creds key: postgres_username - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: db-creds key: postgres_password - name: S3_BUCKET value: 'dsk-middleware-backup' - name: sse value: 'aws:kms' - name: AWS_DEFAULT_REGION valueFrom: secretKeyRef: name: aws-creds key: AWS_REGION - name: AWS_ACCESS_KEY_ID valueFrom: secretKeyRef: name: aws-creds key: AWS_ACCESS_KEY_ID - name: AWS_SECRET_ACCESS_KEY valueFrom: secretKeyRef: name: aws-creds key: AWS_SECRET_ACCESS_KEY - name: kms_arn valueFrom: secretKeyRef: name: aws-creds key: KMS_ARN restartPolicy: OnFailure