Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion addons/mongodb/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: MongoDB is a document database designed for ease of application dev

type: application

version: 0.9.5
version: 0.9.6

appVersion: "5.0"

Expand Down
2 changes: 2 additions & 0 deletions addons/mongodb/dataprotection/common-scripts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,8 @@ storage:
credentials:
access-key-id: ${S3_ACCESS_KEY}
secret-access-key: ${S3_SECRET_KEY}
restore:
numDownloadWorkers: ${PBM_RESTORE_DOWNLOAD_WORKERS:-4}
EOF
echo "INFO: PBM storage configuration completed."
fi
Expand Down
3 changes: 2 additions & 1 deletion addons/mongodb/dataprotection/rs-pbm-full-restore.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,12 @@ while [ $attempt -le $MAX_RETRIES ]; do
continue
else
echo "ERROR: Failed to get backup metadata: $describe_result"
exit 1
fi
done
set -e

if [ -z "$describe_result" ]; then
if [ -z "$describe_result" ] || echo "$describe_result" | grep -q "not found"; then
echo "ERROR: Failed to get backup metadata after $MAX_RETRIES attempts"
exit 1
fi
Expand Down
3 changes: 2 additions & 1 deletion addons/mongodb/dataprotection/shard-pbm-full-restore.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,12 @@ while [ $attempt -le $MAX_RETRIES ]; do
continue
else
echo "ERROR: Failed to get backup metadata: $describe_result"
exit 1
fi
done
set -e

if [ -z "$describe_result" ]; then
if [ -z "$describe_result" ] || echo "$describe_result" | grep -q "not found"; then
echo "ERROR: Failed to get backup metadata after $MAX_RETRIES attempts"
exit 1
fi
Expand Down
19 changes: 16 additions & 3 deletions addons/mongodb/scripts/mongodb-common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ function wait_restore_completion_by_cluster_cr() {
local max_retries=$1
local wait_interval=5
local retries=0
local state=0

while true; do
cluster_json=$(kubectl get clusters.apps.kubeblocks.io "${KB_CLUSTER_NAME}" -n "${KB_NAMESPACE}" -o json 2>&1)
Expand All @@ -25,7 +26,10 @@ function wait_restore_completion_by_cluster_cr() {
echo "INFO: No restore-from-backup annotation, do not need to restore."
return 0
else
echo "INFO: Waiting for restore completion..."
if [[ "$state" != "1" ]]; then
echo "INFO: Waiting for restore completion..."
state=1
fi
sleep $wait_interval
((retries++))
if [[ -n "$max_retries" && "$retries" -ge "$max_retries" ]]; then
Expand Down Expand Up @@ -53,16 +57,25 @@ function process_restore_signal() {
local process="$1"
local target_signal="$2"
local pbm_backupfile=$MONGODB_ROOT/tmp/mongodb_pbm.backup
local last_annotation_value=""
local last_state="0"
restore_signal_cm_name="$KB_CLUSTER_NAME-restore-signal"
restore_signal_cm_namespace="$KB_NAMESPACE"
while true; do
kubectl_get_result=$(kubectl get configmap $restore_signal_cm_name -n $restore_signal_cm_namespace -o json 2>&1)
kubectl_get_exit_code=$?
if [ "$kubectl_get_exit_code" -ne 0 ]; then
echo "INFO: Waiting for restore signal..."
if [[ "$last_state" != "1" ]]; then
echo "INFO: Waiting for restore signal..."
last_state="1"
fi
else
last_state="0"
annotation_value=$(echo "$kubectl_get_result" | jq -r '.metadata.labels["apps.kubeblocks.io/restore-mongodb-shard"] // empty')
echo "INFO: Restore signal is $annotation_value."
if [[ "$annotation_value" != "$last_annotation_value" ]]; then
echo "INFO: Restore signal is $annotation_value."
last_annotation_value="$annotation_value"
fi
if [[ "$annotation_value" == "start" ]]; then
if [[ "$target_signal" == "start" ]]; then
echo "INFO: Restore $annotation_value signal received, starting restore..."
Expand Down
2 changes: 1 addition & 1 deletion addons/mongodb/scripts/mongodb-shard-setup.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ process="mongod --bind_ip_all --port $PORT --replSet $KB_CLUSTER_COMP_NAME --con
boot_or_enter_restore "$process"

echo "INFO: Startup backup agent for restore."
pbm-agent-entrypoint &
pbm-agent-entrypoint >> $MONGODB_ROOT/tmp/pbm_agent_restore.log 2>&1 &

echo "INFO: Start mongodb for restore."
$process &
Expand Down
2 changes: 1 addition & 1 deletion addons/mongodb/scripts/replicaset-setup.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ then
fi

echo "INFO: Startup backup agent for restore."
pbm-agent-entrypoint &
pbm-agent-entrypoint >> $MONGODB_ROOT/tmp/pbm_agent_restore.log 2>&1 &

echo "INFO: Start mongodb for restore."
$process &
Expand Down
4 changes: 3 additions & 1 deletion addons/mongodb/templates/actionset-rs-pbm-physical.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ spec:
- name: PBM_BACKUP_TYPE
value: physical
- name: PBM_COMPRESSION
value: zstd
value: s2 # for big data, use s2 compression to reduce memory usage during restoration
- name: PBM_RESTORE_DOWNLOAD_WORKERS
value: "4"
- name: PBM_IMAGE_TAG
value: {{ .Values.image.percona.backup.tag }}
- name: PSM_IMAGE_TAG
Expand Down
4 changes: 3 additions & 1 deletion addons/mongodb/templates/actionset-rs-pbm-pitr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ spec:
- name: PBM_OPLOG_SPAN_MIN_MINUTES
value: "5"
- name: PBM_COMPRESSION
value: zstd
value: s2 # for big data, use s2 compression to reduce memory usage during restoration
- name: PBM_RESTORE_DOWNLOAD_WORKERS
value: "4"
- name: PBM_PURGE_INTERVAL_SECONDS
value: "86400"
- name: PBM_BACKUP_TYPE
Expand Down
4 changes: 3 additions & 1 deletion addons/mongodb/templates/actionset-shard-pbm-logical.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ spec:
- name: PBM_BACKUP_TYPE
value: logical
- name: PBM_COMPRESSION
value: zstd
value: s2 # for big data, use s2 compression to reduce memory usage during restoration
- name: PBM_RESTORE_DOWNLOAD_WORKERS
value: "4"
- name: PBM_IMAGE_TAG
value: {{ .Values.image.percona.backup.tag }}
- name: PSM_IMAGE_TAG
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ spec:
- name: PBM_BACKUP_TYPE
value: physical
- name: PBM_COMPRESSION
value: zstd
value: s2 # for big data, use s2 compression to reduce memory usage during restoration
- name: PBM_RESTORE_DOWNLOAD_WORKERS
value: "4"
- name: PBM_IMAGE_TAG
value: {{ .Values.image.percona.backup.tag }}
- name: PSM_IMAGE_TAG
Expand Down
4 changes: 3 additions & 1 deletion addons/mongodb/templates/actionset-shard-pbm-pitr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ spec:
- name: PBM_OPLOG_SPAN_MIN_MINUTES
value: "5"
- name: PBM_COMPRESSION
value: zstd
value: s2 # for big data, use s2 compression to reduce memory usage during restoration
- name: PBM_RESTORE_DOWNLOAD_WORKERS
value: "4"
- name: PBM_PURGE_INTERVAL_SECONDS
value: "86400"
- name: PBM_BACKUP_TYPE
Expand Down
32 changes: 21 additions & 11 deletions addons/mongodb/templates/backuppolicytemplate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,10 @@ spec:
- key: PBM_IMAGE_TAG
valueFrom:
serviceVersion:
- names: ["6.0.21", "7.0.18", "8.0.8"]
mappingValue: "2.9.1"
- names: ["7.0.18", "8.0.8"]
mappingValue: "2.12.0"
- names: ["6.0.21"]
mappingValue: "2.10.0"
- names: ["5.0.29", "4.4.29", "4.2.25", "4.0.28"]
mappingValue: "2.5.0-multi"
- key: PSM_IMAGE_TAG
Expand Down Expand Up @@ -135,8 +137,10 @@ spec:
- key: PBM_IMAGE_TAG
valueFrom:
serviceVersion:
- names: ["6.0.21", "7.0.18", "8.0.8"]
mappingValue: "2.9.1"
- names: ["7.0.18", "8.0.8"]
mappingValue: "2.12.0"
- names: ["6.0.21"]
mappingValue: "2.10.0"
- names: ["5.0.29", "4.4.29", "4.2.25", "4.0.28"]
mappingValue: "2.5.0-multi"
- key: PSM_IMAGE_TAG
Expand Down Expand Up @@ -203,8 +207,10 @@ spec:
- key: PBM_IMAGE_TAG
valueFrom:
serviceVersion:
- names: ["6.0.21", "7.0.18", "8.0.8"]
mappingValue: "2.9.1"
- names: ["7.0.18", "8.0.8"]
mappingValue: "2.12.0"
- names: ["6.0.21"]
mappingValue: "2.10.0"
- names: ["5.0.29", "4.4.29", "4.2.25", "4.0.28"]
mappingValue: "2.5.0-multi"
- key: PSM_IMAGE_TAG
Expand Down Expand Up @@ -235,8 +241,10 @@ spec:
- key: PBM_IMAGE_TAG
valueFrom:
serviceVersion:
- names: ["6.0.21", "7.0.18", "8.0.8"]
mappingValue: "2.9.1"
- names: ["7.0.18", "8.0.8"]
mappingValue: "2.12.0"
- names: ["6.0.21"]
mappingValue: "2.10.0"
- names: ["5.0.29", "4.4.29", "4.2.25", "4.0.28"]
mappingValue: "2.5.0-multi"
- key: PSM_IMAGE_TAG
Expand Down Expand Up @@ -267,8 +275,10 @@ spec:
- key: PBM_IMAGE_TAG
valueFrom:
serviceVersion:
- names: ["6.0.21", "7.0.18", "8.0.8"]
mappingValue: "2.9.1"
- names: ["7.0.18", "8.0.8"]
mappingValue: "2.12.0"
- names: ["6.0.21"]
mappingValue: "2.10.0"
- names: ["5.0.29", "4.4.29", "4.2.25", "4.0.28"]
mappingValue: "2.5.0-multi"
- key: PSM_IMAGE_TAG
Expand Down Expand Up @@ -317,4 +327,4 @@ spec:
- backupMethod: archive-oplog
enabled: false
cronExpression: "*/5 * * * *"
retentionPeriod: 8d
retentionPeriod: 8d
12 changes: 6 additions & 6 deletions addons/mongodb/templates/cmpv-shard.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,30 +32,30 @@ spec:
serviceVersion: 8.0.8
images:
mongodb: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.repository }}:8.0.8
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.12.0
init-syncer: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.syncer.repository }}:{{ .Values.image.syncer.tag }}
init-kubectl: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.kubectl.repository }}:{{ .Values.image.kubectl.tag }}
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.12.0
exporter: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.exporter.repository }}:{{ .Values.image.exporter.tag }}
- name: 7.0.18
changes:
serviceVersion: 7.0.18
images:
mongodb: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.repository }}:7.0.18
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.12.0
init-syncer: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.syncer.repository }}:{{ .Values.image.syncer.tag }}
init-kubectl: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.kubectl.repository }}:{{ .Values.image.kubectl.tag }}
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.12.0
exporter: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.exporter.repository }}:{{ .Values.image.exporter.tag }}
- name: 6.0.21
changes:
serviceVersion: 6.0.21
images:
mongodb: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.repository }}:6.0.21
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.10.0
init-syncer: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.syncer.repository }}:{{ .Values.image.syncer.tag }}
init-kubectl: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.kubectl.repository }}:{{ .Values.image.kubectl.tag }}
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.10.0
exporter: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.exporter.repository }}:{{ .Values.image.exporter.tag }}
- name: 5.0.29
changes:
Expand Down
12 changes: 6 additions & 6 deletions addons/mongodb/templates/componentversion.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,30 +22,30 @@ spec:
serviceVersion: 8.0.8
images:
mongodb: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.repository }}:8.0.8
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.12.0
init-syncer: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.syncer.repository }}:{{ .Values.image.syncer.tag }}
init-kubectl: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.kubectl.repository }}:{{ .Values.image.kubectl.tag }}
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.12.0
exporter: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.exporter.repository }}:{{ .Values.image.exporter.tag }}
- name: 7.0.18
changes:
serviceVersion: 7.0.18
images:
mongodb: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.repository }}:7.0.18
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.12.0
init-syncer: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.syncer.repository }}:{{ .Values.image.syncer.tag }}
init-kubectl: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.kubectl.repository }}:{{ .Values.image.kubectl.tag }}
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.12.0
exporter: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.exporter.repository }}:{{ .Values.image.exporter.tag }}
- name: 6.0.21
changes:
serviceVersion: 6.0.21
images:
mongodb: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.repository }}:6.0.21
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
mongodb-backup-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.10.0
init-syncer: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.syncer.repository }}:{{ .Values.image.syncer.tag }}
init-kubectl: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.kubectl.repository }}:{{ .Values.image.kubectl.tag }}
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.9.1
init-pbm-agent: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.percona.backup.repository }}:2.10.0
exporter: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.exporter.repository }}:{{ .Values.image.exporter.tag }}
- name: 5.0.29
changes:
Expand Down
2 changes: 1 addition & 1 deletion addons/mongodb/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ image:
tag: 5.0.29 # 6.0.3-debian-11-r0
syncer:
repository: apecloud/syncer
tag: 0.6.6
tag: 0.6.7
percona:
repository: apecloud/percona-server-mongodb
tag: 8.0.8
Expand Down