Used to cleanly shutdown jobs/cronjobs that need to be linkerd meshed.
10K+
Example of usage:
apiVersion: batch/v1
kind: CronJob
metadata:
name: mysql-backup-job
spec:
# take a backup every day at 00:00
schedule: "0 0 * * *"
jobTemplate:
spec:
template:
metadata:
annotations:
linkerd.io/inject: enabled
config.linkerd.io/skip-outbound-ports: "22"
spec:
restartPolicy: OnFailure
# init container to fix job not completing because of linkerd proxy injection
initContainers:
- name: linkerd-await
image: ioagel/linkerd-await:0.2.7
command: [ "cp" ]
args: [ "/tmp/linkerd-await", "/linkerd/await" ]
volumeMounts:
- mountPath: /linkerd
name: linkerd-await
containers:
- name: mysql-backup
image: ioagel/mysql-rsync:8.0
command: [ "/linkerd/await" ]
args: [ "--shutdown", "--", "/scripts/backup_mysql.sh" ]
env:
- name: MYSQL_HOST
value: mysql-cluster
- name: MYSQL_PORT
value: "6447"
- name: MYSQL_USER
valueFrom:
secretKeyRef:
key: rootUser
name: mysql-cluster-secret
- name: MYSQL_PASS
valueFrom:
secretKeyRef:
key: rootPassword
name: mysql-cluster-secret
- name: MYSQL_DB
valueFrom:
secretKeyRef:
key: database
name: mysql-cluster-secret
- name: SSH_USER
valueFrom:
secretKeyRef:
key: ssh-user
name: mysql-cluster-secret
- name: BACKUP_HOST
valueFrom:
secretKeyRef:
key: backup-host
name: mysql-cluster-secret
- name: REMOTE_BACKUP_DIR
valueFrom:
secretKeyRef:
key: remote-backup-dir
name: mysql-cluster-secret
volumeMounts:
- name: backup-script
mountPath: /scripts
readOnly: true
- mountPath: /linkerd
name: linkerd-await
readOnly: true
- mountPath: /etc/ssh-key
name: ssh-private-key
readOnly: true
volumes:
- name: backup-script
configMap:
name: backup-script-cm
defaultMode: 0755
- name: ssh-private-key
secret:
secretName: mysql-cluster-secret
defaultMode: 0600
items:
- key: ssh-private-key
path: id_rsa
- name: linkerd-await
emptyDir: { }
Content type
Image
Digest
sha256:93aa884a9…
Size
8.9 MB
Last updated
about 4 years ago
docker pull ioagel/linkerd-await:0.2.7