From 206f82c0f29a2d489dba0f7124af69747c6e0a71 Mon Sep 17 00:00:00 2001 From: Tom Klapiscak <372253+tomklapiscak@users.noreply.github.com> Date: Thu, 13 Aug 2026 13:42:18 +0100 Subject: [PATCH 1/8] [patch] postsync-hadr, govcloud compat: supply S3 endpoint URL when copying backup from S3 --- .../120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml index cf61db962..4745574ea 100644 --- a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml +++ b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml @@ -547,7 +547,7 @@ spec: fi # copy backup from cos bucket to standby - oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "export AWS_ACCESS_KEY_ID=${PARM1}; export AWS_SECRET_ACCESS_KEY=${PARM2}; mkdir -p /mnt/backup/primary-backup; /mnt/backup/aws/dist/aws s3 cp s3://${CONTAINER}/${SOURCE} /mnt/backup/primary-backup/${backup_filename} | tee /tmp/backupdownload_${backup_filename}.log" db2inst1 || exit $? + oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "export AWS_ACCESS_KEY_ID=${PARM1}; export AWS_SECRET_ACCESS_KEY=${PARM2}; mkdir -p /mnt/backup/primary-backup; /mnt/backup/aws/dist/aws s3 cp s3://${CONTAINER}/${SOURCE} /mnt/backup/primary-backup/${backup_filename} --endpoint-url=${SERVER} | tee /tmp/backupdownload_${backup_filename}.log" db2inst1 || exit $? else oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cp /mnt/backup/standby/${backup_filename} /tmp; chmod 777 /tmp/${backup_filename}" db2inst1 || exit $? From 626fe546256ccba72fca6cc771acfbf2cae0fb96 Mon Sep 17 00:00:00 2001 From: Tom Klapiscak <372253+tomklapiscak@users.noreply.github.com> Date: Thu, 13 Aug 2026 13:45:27 +0100 Subject: [PATCH 2/8] temporarily add debug to try and figure out where MAS_APP_ID is getting forced to "manage" --- .../templates/10-postsync-setup-hadr.yaml | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml index 4745574ea..728653529 100644 --- a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml +++ b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml @@ -191,6 +191,8 @@ spec: set -e + echo "MAS_APP_ID: ${MAS_APP_ID}" + source /mascli/functions/gitops_utils PRIMARY_HADR_ROLE='' @@ -385,6 +387,8 @@ spec: IS_FRESH_HADR_SETUP_STANDBY='false' fi + echo "MAS_APP_ID: ${MAS_APP_ID}" + is_backup_file_available='false' if [[ ! ($PRIMARY_HADR_ROLE == 'PRIMARY' && $STANDBY_HADR_ROLE == 'STANDBY' && $STANDBY_HADR_STATUS == 'CONNECTED') ]]; then @@ -404,6 +408,8 @@ spec: fi fi + echo "MAS_APP_ID: ${MAS_APP_ID}" + # checking for latest backup if auto backup if enabled timestamp='' copy_to_cos='false' @@ -416,6 +422,8 @@ spec: echo "Timestamp of backup is $timestamp" fi + echo "MAS_APP_ID: ${MAS_APP_ID}" + if [[ $(( `date +%Y%m%d` - ${timestamp:0:8} )) -lt 2 || -z ${timestamp} ]]; then # check if it is a full backup BACKUP_TYPE_SCRIPT='/tmp/backup_type_script.sh' @@ -459,6 +467,8 @@ spec: fi fi + echo "MAS_APP_ID: ${MAS_APP_ID}" + if [[ ${AUTO_BACKUP} == 'false' || -z ${timestamp} ]]; then # checking if backup is already available in primary echo "Checking if a backup already exists on ${DB2_NAMESPACE}/c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0" @@ -483,6 +493,9 @@ spec: fi fi + echo "MAS_APP_ID: ${MAS_APP_ID}" + + # take backup of primary if not available if [[ $is_backup_file_available == 'false' ]]; then echo "" @@ -498,12 +511,15 @@ spec: else echo "Backup is already available in primary. Hence skipping" fi + if [[ ${AUTO_BACKUP} == 'true' ]]; then copy_to_cos='true' fi fi + echo "MAS_APP_ID: ${MAS_APP_ID}" + # copy backup files to standby if they are not there or not valid images echo "Checking if backup files were copied already to standby c-${DB2_INSTANCE_NAME}-db2u-0" @@ -525,6 +541,8 @@ spec: fi fi + echo "MAS_APP_ID: ${MAS_APP_ID}" + # Process each backup file for backup_filename in ${backup_filenames}; do echo "" @@ -561,6 +579,9 @@ spec: fi done + echo "MAS_APP_ID: ${MAS_APP_ID}" + + echo "" echo "Copying keystore from primary to standby" KEYSTORE_GENERATION_SCRIPT='/tmp/keystore_generation.sh' @@ -601,6 +622,9 @@ spec: echo "HADR is already setup. Hence skipping the restore on standby" fi + echo "MAS_APP_ID: ${MAS_APP_ID}" + + # check if config LOGARCHMETH1 is defined config_op=`oc get db2uinstances db2wh-${MAS_INSTANCE_ID}-${MAS_APP_ID}-sdb -n ${DB2_NAMESPACE} -o json | jq -r '.spec.environment.databases' | jq ".[] | select(.name==\"${DB2_DBNAME}\")" | jq '.dbConfig.LOGARCHMETH1' | sed 's/DISK://'` if [[ "${config_op}" != "null" ]]; then @@ -610,6 +634,9 @@ spec: oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "sudo mkdir -p ${config_op}; sudo chown -R db2inst1:db2iadm1 ${config_op}" db2inst1 || exit $? fi + echo "MAS_APP_ID: ${MAS_APP_ID}" + + echo "" echo "================================================================================" echo "Calling apply-db2cfg-settings.sh file on c-${DB2_INSTANCE_NAME}-db2u-0" From b528e78bb057f5ef5055c6c8dac72441ef9aaf9b Mon Sep 17 00:00:00 2001 From: Tom Klapiscak <372253+tomklapiscak@users.noreply.github.com> Date: Thu, 13 Aug 2026 13:47:28 +0100 Subject: [PATCH 3/8] sync to mas-gitops --- .../120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml index 728653529..ff17223b5 100644 --- a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml +++ b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml @@ -635,6 +635,7 @@ spec: fi echo "MAS_APP_ID: ${MAS_APP_ID}" + echo "" From 2c5bc6e53b53f54fa096c627df6dd44a824500d2 Mon Sep 17 00:00:00 2001 From: Tom Klapiscak <372253+tomklapiscak@users.noreply.github.com> Date: Thu, 13 Aug 2026 13:47:52 +0100 Subject: [PATCH 4/8] bump hadr job version to avoid conflicts --- .../templates/10-postsync-setup-hadr.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml index ff17223b5..58e946639 100644 --- a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml +++ b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml @@ -28,7 +28,7 @@ Increment this value whenever you make a change to an immutable field of the Job E.g. passing in a new environment variable. Included in $_job_hash (see below). */}} -{{- $_job_version := "v10" }} +{{- $_job_version := "v11" }} {{- /* 10 char hash appended to the job name taking into account $_job_config_values, $_job_version and $_cli_image_digest @@ -635,7 +635,7 @@ spec: fi echo "MAS_APP_ID: ${MAS_APP_ID}" - + echo "" From e108a67c3a223826cbb330a43b517e154ae6d81d Mon Sep 17 00:00:00 2001 From: Tom Klapiscak <372253+tomklapiscak@users.noreply.github.com> Date: Thu, 13 Aug 2026 14:52:34 +0100 Subject: [PATCH 5/8] Use aws s3 command instead of db2RemStgManager to upload backups db2RemStgManager was segfaulting on 25GB backup files --- .../templates/10-postsync-setup-hadr.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml index 58e946639..0817f2a25 100644 --- a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml +++ b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml @@ -536,9 +536,15 @@ spec: aws_is_installed=`oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "/mnt/backup/aws/dist/aws --version 2>&1 || true" db2inst1` if [[ $aws_is_installed =~ 'not found' ]]; then - # Setup AWS CLI + # Setup AWS CLI on standby oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cd /mnt/backup; curl 'https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip' -o 'awscliv2.zip'; unzip awscliv2.zip -d /mnt/backup/;" db2inst1 || exit $? fi + + aws_is_installed_primary=`oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "/mnt/backup/aws/dist/aws --version 2>&1 || true" db2inst1` + if [[ $aws_is_installed_primary =~ 'not found' ]]; then + # Setup AWS CLI on primary + oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cd /mnt/backup; curl 'https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip' -o 'awscliv2.zip'; unzip awscliv2.zip -d /mnt/backup/;" db2inst1 || exit $? + fi fi echo "MAS_APP_ID: ${MAS_APP_ID}" @@ -561,7 +567,7 @@ spec: SOURCE=backups-${MAS_APP_ID}/c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0/${backup_filename} if [[ ${copy_to_cos} == 'true' ]]; then SOURCE1=/mnt/backup/standby/${backup_filename} - oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc ". /mnt/backup/bin/.PROPS;db2RemStgManager ALIAS PUT source=${SOURCE1} target=DB2REMOTE://AWSCOS//${SOURCE} | tee /tmp/backupupload_${backup_filename}.log" db2inst1 || exit $? + oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc ". /mnt/backup/bin/.PROPS; export AWS_ACCESS_KEY_ID=${PARM1}; export AWS_SECRET_ACCESS_KEY=${PARM2}; /mnt/backup/aws/dist/aws s3 cp ${SOURCE1} s3://${CONTAINER}/${SOURCE} --endpoint-url=${SERVER} | tee /tmp/backupupload_${backup_filename}.log" db2inst1 || exit $? fi # copy backup from cos bucket to standby From 152d4a6cfbb138a9225587bdd025263aed6923cb Mon Sep 17 00:00:00 2001 From: Tom Klapiscak <372253+tomklapiscak@users.noreply.github.com> Date: Thu, 13 Aug 2026 15:23:52 +0100 Subject: [PATCH 6/8] Revert "temporarily add debug to try and figure out where MAS_APP_ID is getting forced to "manage"" This reverts commit 626fe546256ccba72fca6cc771acfbf2cae0fb96. --- .../templates/10-postsync-setup-hadr.yaml | 28 ------------------- 1 file changed, 28 deletions(-) diff --git a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml index 0817f2a25..11959b6ce 100644 --- a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml +++ b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml @@ -191,8 +191,6 @@ spec: set -e - echo "MAS_APP_ID: ${MAS_APP_ID}" - source /mascli/functions/gitops_utils PRIMARY_HADR_ROLE='' @@ -387,8 +385,6 @@ spec: IS_FRESH_HADR_SETUP_STANDBY='false' fi - echo "MAS_APP_ID: ${MAS_APP_ID}" - is_backup_file_available='false' if [[ ! ($PRIMARY_HADR_ROLE == 'PRIMARY' && $STANDBY_HADR_ROLE == 'STANDBY' && $STANDBY_HADR_STATUS == 'CONNECTED') ]]; then @@ -408,8 +404,6 @@ spec: fi fi - echo "MAS_APP_ID: ${MAS_APP_ID}" - # checking for latest backup if auto backup if enabled timestamp='' copy_to_cos='false' @@ -422,8 +416,6 @@ spec: echo "Timestamp of backup is $timestamp" fi - echo "MAS_APP_ID: ${MAS_APP_ID}" - if [[ $(( `date +%Y%m%d` - ${timestamp:0:8} )) -lt 2 || -z ${timestamp} ]]; then # check if it is a full backup BACKUP_TYPE_SCRIPT='/tmp/backup_type_script.sh' @@ -467,8 +459,6 @@ spec: fi fi - echo "MAS_APP_ID: ${MAS_APP_ID}" - if [[ ${AUTO_BACKUP} == 'false' || -z ${timestamp} ]]; then # checking if backup is already available in primary echo "Checking if a backup already exists on ${DB2_NAMESPACE}/c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0" @@ -493,9 +483,6 @@ spec: fi fi - echo "MAS_APP_ID: ${MAS_APP_ID}" - - # take backup of primary if not available if [[ $is_backup_file_available == 'false' ]]; then echo "" @@ -511,15 +498,12 @@ spec: else echo "Backup is already available in primary. Hence skipping" fi - if [[ ${AUTO_BACKUP} == 'true' ]]; then copy_to_cos='true' fi fi - echo "MAS_APP_ID: ${MAS_APP_ID}" - # copy backup files to standby if they are not there or not valid images echo "Checking if backup files were copied already to standby c-${DB2_INSTANCE_NAME}-db2u-0" @@ -547,8 +531,6 @@ spec: fi fi - echo "MAS_APP_ID: ${MAS_APP_ID}" - # Process each backup file for backup_filename in ${backup_filenames}; do echo "" @@ -585,9 +567,6 @@ spec: fi done - echo "MAS_APP_ID: ${MAS_APP_ID}" - - echo "" echo "Copying keystore from primary to standby" KEYSTORE_GENERATION_SCRIPT='/tmp/keystore_generation.sh' @@ -628,9 +607,6 @@ spec: echo "HADR is already setup. Hence skipping the restore on standby" fi - echo "MAS_APP_ID: ${MAS_APP_ID}" - - # check if config LOGARCHMETH1 is defined config_op=`oc get db2uinstances db2wh-${MAS_INSTANCE_ID}-${MAS_APP_ID}-sdb -n ${DB2_NAMESPACE} -o json | jq -r '.spec.environment.databases' | jq ".[] | select(.name==\"${DB2_DBNAME}\")" | jq '.dbConfig.LOGARCHMETH1' | sed 's/DISK://'` if [[ "${config_op}" != "null" ]]; then @@ -640,10 +616,6 @@ spec: oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "sudo mkdir -p ${config_op}; sudo chown -R db2inst1:db2iadm1 ${config_op}" db2inst1 || exit $? fi - echo "MAS_APP_ID: ${MAS_APP_ID}" - - - echo "" echo "================================================================================" echo "Calling apply-db2cfg-settings.sh file on c-${DB2_INSTANCE_NAME}-db2u-0" From c0b2745160ac68f51fb1cded0ebc604110067c79 Mon Sep 17 00:00:00 2001 From: Tom Klapiscak <372253+tomklapiscak@users.noreply.github.com> Date: Fri, 14 Aug 2026 14:19:50 +0100 Subject: [PATCH 7/8] do not spam logs when awscli is unzipped --- .../templates/10-postsync-setup-hadr.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml index 11959b6ce..70cda3a92 100644 --- a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml +++ b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml @@ -521,13 +521,13 @@ spec: aws_is_installed=`oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "/mnt/backup/aws/dist/aws --version 2>&1 || true" db2inst1` if [[ $aws_is_installed =~ 'not found' ]]; then # Setup AWS CLI on standby - oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cd /mnt/backup; curl 'https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip' -o 'awscliv2.zip'; unzip awscliv2.zip -d /mnt/backup/;" db2inst1 || exit $? + oc exec -n ${DB2_NAMESPACE} c-${DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cd /mnt/backup; curl 'https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip' -o 'awscliv2.zip'; unzip -q awscliv2.zip -d /mnt/backup/;" db2inst1 || exit $? fi aws_is_installed_primary=`oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "/mnt/backup/aws/dist/aws --version 2>&1 || true" db2inst1` if [[ $aws_is_installed_primary =~ 'not found' ]]; then # Setup AWS CLI on primary - oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cd /mnt/backup; curl 'https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip' -o 'awscliv2.zip'; unzip awscliv2.zip -d /mnt/backup/;" db2inst1 || exit $? + oc exec -n ${DB2_NAMESPACE} c-${PRIMARY_DB2_INSTANCE_NAME}-db2u-0 -- su -lc "cd /mnt/backup; curl 'https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip' -o 'awscliv2.zip'; unzip -q awscliv2.zip -d /mnt/backup/;" db2inst1 || exit $? fi fi From e35a9679dfa3c4d713a70d791595021e277e313e Mon Sep 17 00:00:00 2001 From: Tom Klapiscak <372253+tomklapiscak@users.noreply.github.com> Date: Fri, 14 Aug 2026 15:37:23 +0100 Subject: [PATCH 8/8] Fix postsync-hadr script logic; only inspect cos backup if one was actually found --- .../120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml index 70cda3a92..ed8da2c71 100644 --- a/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml +++ b/instance-applications/120-ibm-db2u-database/templates/10-postsync-setup-hadr.yaml @@ -416,7 +416,7 @@ spec: echo "Timestamp of backup is $timestamp" fi - if [[ $(( `date +%Y%m%d` - ${timestamp:0:8} )) -lt 2 || -z ${timestamp} ]]; then + if [[ -n ${timestamp} && $(( `date +%Y%m%d` - ${timestamp:0:8} )) -lt 2 ]]; then # check if it is a full backup BACKUP_TYPE_SCRIPT='/tmp/backup_type_script.sh'