diff --git a/docs/how-tos/backup-to-s3.md b/docs/how-tos/backup-to-s3.md index cd62461..8fa7f68 100644 --- a/docs/how-tos/backup-to-s3.md +++ b/docs/how-tos/backup-to-s3.md @@ -82,53 +82,3 @@ networks: web: ``` -## Deploy on Kubernetes - -For Kubernetes, you don't need to run it in scheduled mode. You can deploy it as CronJob. - -### Simple Kubernetes CronJob usage: - -```yaml -apiVersion: batch/v1 -kind: CronJob -metadata: - name: bkup-job -spec: - schedule: "0 1 * * *" - jobTemplate: - spec: - template: - spec: - containers: - - name: mysql-bkup - image: jkaninda/mysql-bkup - command: - - /bin/sh - - -c - - backup -s s3 --path /custom_path - env: - - name: DB_PORT - value: "3306" - - name: DB_HOST - value: "" - - name: DB_NAME - value: "" - - name: DB_USERNAME - value: "" - # Please use secret! - - name: DB_PASSWORD - value: "" - - name: AWS_S3_ENDPOINT - value: "https://s3.amazonaws.com" - - name: AWS_S3_BUCKET_NAME - value: "xxx" - - name: AWS_REGION - value: "us-west-2" - - name: AWS_ACCESS_KEY - value: "xxxx" - - name: AWS_SECRET_KEY - value: "xxxx" - - name: AWS_DISABLE_SSL - value: "false" - restartPolicy: OnFailure -``` \ No newline at end of file diff --git a/docs/how-tos/backup-to-ssh.md b/docs/how-tos/backup-to-ssh.md index c2be963..7af0b80 100644 --- a/docs/how-tos/backup-to-ssh.md +++ b/docs/how-tos/backup-to-ssh.md @@ -87,55 +87,3 @@ services: networks: web: ``` - -## Deploy on Kubernetes - -For Kubernetes, you don't need to run it in scheduled mode. -You can deploy it as CronJob. - -Simple Kubernetes CronJob usage: - -```yaml -apiVersion: batch/v1 -kind: CronJob -metadata: - name: bkup-job -spec: - schedule: "0 1 * * *" - jobTemplate: - spec: - template: - spec: - containers: - - name: mysql-bkup - image: jkaninda/mysql-bkup - command: - - /bin/sh - - -c - - backup -s ssh - env: - - name: DB_PORT - value: "3306" - - name: DB_HOST - value: "" - - name: DB_NAME - value: "" - - name: DB_USERNAME - value: "" - # Please use secret! - - name: DB_PASSWORD - value: "" - - name: SSH_HOST - value: "" - - name: SSH_PORT - value: "22" - - name: SSH_USER - value: "xxx" - - name: REMOTE_PATH - value: "/home/jkaninda/backups" - - name: AWS_ACCESS_KEY - value: "xxxx" - - name: SSH_IDENTIFY_FILE - value: "/tmp/id_ed25519" - restartPolicy: Never -``` \ No newline at end of file diff --git a/docs/how-tos/deploy-on-kubernetes.md b/docs/how-tos/deploy-on-kubernetes.md index 09fb7f7..8e7b182 100644 --- a/docs/how-tos/deploy-on-kubernetes.md +++ b/docs/how-tos/deploy-on-kubernetes.md @@ -81,13 +81,9 @@ spec: # for a list of available releases. image: jkaninda/mysql-bkup command: - - /bin/sh - - -c - - bkup - - backup - - --storage - - ssh - - --disable-compression + - /bin/sh + - -c + - backup --storage ssh resources: limits: memory: "128Mi" @@ -116,7 +112,7 @@ spec: value: "/home/toto/backup" # Optional, required if you want to encrypt your backup - name: GPG_PASSPHRASE - value: "xxxx" + value: "secure-passphrase" restartPolicy: Never ``` @@ -139,13 +135,9 @@ spec: # for a list of available releases. image: jkaninda/mysql-bkup command: - - /bin/sh - - -c - - bkup - - restore - - --storage - - ssh - - --file store_20231219_022941.sql.gz + - /bin/sh + - -c + - backup --storage ssh --file store_20231219_022941.sql.gz resources: limits: memory: "128Mi" @@ -238,7 +230,6 @@ spec: This image also supports Kubernetes security context, you can run it in Rootless environment. It has been tested on Openshift, it works well. -Deployment on OpenShift is supported, you need to remove `securityContext` section on your yaml file. ```yaml apiVersion: batch/v1 @@ -301,3 +292,55 @@ spec: # value: "xxx" restartPolicy: OnFailure ``` + +## Migrate database + +```yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: migrate-db +spec: + ttlSecondsAfterFinished: 100 + template: + spec: + containers: + - name: mysql-bkup + # In production, it is advised to lock your image tag to a proper + # release version instead of using `latest`. + # Check https://github.com/jkaninda/mysql-bkup/releases + # for a list of available releases. + image: jkaninda/mysql-bkup + command: + - /bin/sh + - -c + - migrate + resources: + limits: + memory: "128Mi" + cpu: "500m" + env: + ## Source Database + - name: DB_HOST + value: "mysql" + - name: DB_PORT + value: "3306" + - name: DB_NAME + value: "dbname" + - name: DB_USERNAME + value: "username" + - name: DB_PASSWORD + value: "password" + ## Target Database + - name: TARGET_DB_HOST + value: "target-mysql" + - name: TARGET_DB_PORT + value: "3306" + - name: TARGET_DB_NAME + value: "dbname" + - name: TARGET_DB_USERNAME + value: "username" + - name: TARGET_DB_PASSWORD + value: "password" + restartPolicy: Never +``` \ No newline at end of file diff --git a/docs/how-tos/migrate.md b/docs/how-tos/migrate.md index 9e11332..189e516 100644 --- a/docs/how-tos/migrate.md +++ b/docs/how-tos/migrate.md @@ -78,54 +78,3 @@ TARGET_DB_PASSWORD=password jkaninda/mysql-bkup migrate ``` -## Kubernetes - -```yaml -apiVersion: batch/v1 -kind: Job -metadata: - name: migrate-db -spec: - ttlSecondsAfterFinished: 100 - template: - spec: - containers: - - name: mysql-bkup - # In production, it is advised to lock your image tag to a proper - # release version instead of using `latest`. - # Check https://github.com/jkaninda/mysql-bkup/releases - # for a list of available releases. - image: jkaninda/mysql-bkup - command: - - /bin/sh - - -c - - migrate - resources: - limits: - memory: "128Mi" - cpu: "500m" - env: - ## Source Database - - name: DB_HOST - value: "mysql" - - name: DB_PORT - value: "3306" - - name: DB_NAME - value: "dbname" - - name: DB_USERNAME - value: "username" - - name: DB_PASSWORD - value: "password" - ## Target Database - - name: TARGET_DB_HOST - value: "target-mysql" - - name: TARGET_DB_PORT - value: "3306" - - name: TARGET_DB_NAME - value: "dbname" - - name: TARGET_DB_USERNAME - value: "username" - - name: TARGET_DB_PASSWORD - value: "password" - restartPolicy: Never -``` \ No newline at end of file diff --git a/docs/how-tos/restore-from-s3.md b/docs/how-tos/restore-from-s3.md index a53fc23..c648278 100644 --- a/docs/how-tos/restore-from-s3.md +++ b/docs/how-tos/restore-from-s3.md @@ -46,50 +46,3 @@ services: networks: web: ``` - -## Restore on Kubernetes - -Simple Kubernetes restore Job: - -```yaml -apiVersion: batch/v1 -kind: Job -metadata: - name: restore-db -spec: - template: - spec: - containers: - - name: mysql-bkup - image: jkaninda/mysql-bkup - command: - - /bin/sh - - -c - - restore -s s3 --path /custom_path -f store_20231219_022941.sql.gz - env: - - name: DB_PORT - value: "3306" - - name: DB_HOST - value: "" - - name: DB_NAME - value: "" - - name: DB_USERNAME - value: "" - # Please use secret! - - name: DB_PASSWORD - value: "" - - name: AWS_S3_ENDPOINT - value: "https://s3.amazonaws.com" - - name: AWS_S3_BUCKET_NAME - value: "xxx" - - name: AWS_REGION - value: "us-west-2" - - name: AWS_ACCESS_KEY - value: "xxxx" - - name: AWS_SECRET_KEY - value: "xxxx" - - name: AWS_DISABLE_SSL - value: "false" - restartPolicy: Never - backoffLimit: 4 -``` diff --git a/docs/how-tos/restore-from-ssh.md b/docs/how-tos/restore-from-ssh.md index c0b73be..ea42664 100644 --- a/docs/how-tos/restore-from-ssh.md +++ b/docs/how-tos/restore-from-ssh.md @@ -44,50 +44,4 @@ services: - web networks: web: -``` -## Restore on Kubernetes - -Simple Kubernetes restore Job: - -```yaml -apiVersion: batch/v1 -kind: Job -metadata: - name: restore-db -spec: - template: - spec: - containers: - - name: mysql-bkup - image: jkaninda/mysql-bkup - command: - - /bin/sh - - -c - - restore -s ssh -f store_20231219_022941.sql.gz - env: - - name: DB_PORT - value: "3306" - - name: DB_HOST - value: "" - - name: DB_NAME - value: "" - - name: DB_USERNAME - value: "" - # Please use secret! - - name: DB_PASSWORD - value: "" - - name: SSH_HOST_NAME - value: "" - - name: SSH_PORT - value: "22" - - name: SSH_USER - value: "xxx" - - name: SSH_REMOTE_PATH - value: "/home/jkaninda/backups" - - name: AWS_ACCESS_KEY - value: "xxxx" - - name: SSH_IDENTIFY_FILE - value: "/tmp/id_ed25519" - restartPolicy: Never - backoffLimit: 4 ``` \ No newline at end of file