diff --git a/e2e-tests/tests/users/13-add-custom-user-with-public-schema-access.yaml b/e2e-tests/tests/users/13-add-custom-user-with-public-schema-access.yaml index 99c81c5d0d..7ad867dfc0 100644 --- a/e2e-tests/tests/users/13-add-custom-user-with-public-schema-access.yaml +++ b/e2e-tests/tests/users/13-add-custom-user-with-public-schema-access.yaml @@ -7,6 +7,16 @@ commands: set -o xtrace source ../../functions - - kubectl -n ${NAMESPACE} patch perconapgcluster/${test_name} --type=json -p '[{"op":"add", "path":"/spec/autoCreateUserSchema","value":true},{"op":"add", "path":"/spec/users","value":[{"name":"chico","databases":["spain"],"password":{"type":"ASCII"},"secretName":"chico-credentials", "grantPublicSchemaAccess": true}]}]' - sleep 10 + if [[ $PG_VER < 15 ]]; then + # grantPublicSchemaAccess is not supported before PPG15. Checking that applying patch fails." + set +o errexit + patch_output=$(kubectl -n ${NAMESPACE} patch perconapgcluster/${test_name} --type=json -p '[{"op":"add", "path":"/spec/autoCreateUserSchema","value":true},{"op":"add", "path":"/spec/users","value":[{"name":"chico","databases":["spain"],"password":{"type":"ASCII"},"secretName":"chico-credentials", "grantPublicSchemaAccess": true}]}]' 2>&1) + set -o errexit + if [[ $patch_output != 'The PerconaPGCluster "users" is invalid: spec: Invalid value: "object": PostgresVersion must be >= 15 if grantPublicSchemaAccess exists and is true' ]]; then + echo "grantPublicSchemaAccess is not supported before PPG15. Current PG_VER = $PG_VER but the patch was applied" + exit 1 + fi + else + kubectl -n ${NAMESPACE} patch perconapgcluster/${test_name} --type=json -p '[{"op":"add", "path":"/spec/autoCreateUserSchema","value":true},{"op":"add", "path":"/spec/users","value":[{"name":"chico","databases":["spain"],"password":{"type":"ASCII"},"secretName":"chico-credentials", "grantPublicSchemaAccess": true}]}]' + sleep 10 + fi diff --git a/e2e-tests/tests/users/14-write-data-to-custom-db.yaml b/e2e-tests/tests/users/14-write-data-to-custom-db.yaml index e395acbb7b..dd07f6912c 100644 --- a/e2e-tests/tests/users/14-write-data-to-custom-db.yaml +++ b/e2e-tests/tests/users/14-write-data-to-custom-db.yaml @@ -7,16 +7,19 @@ commands: source ../../functions - password=$(get_psql_user_pass chico-credentials) - user='chico' - db_name='spain' - schema='public' - hostname=$(get_pgbouncer_host chico-credentials) + if [[ $PG_VER < 15 ]]; then + echo "grantPublicSchemaAccess is not supported before PPG15. Current PG_VER = $PG_VER. Skipping check" + else + password=$(get_psql_user_pass chico-credentials) + user='chico' + db_name='spain' + schema='public' + hostname=$(get_pgbouncer_host chico-credentials) - run_psql \ - 'SET search_path TO public;CREATE TABLE IF NOT EXISTS customApp (id int PRIMARY KEY);' \ - "-h $hostname -U $user -d $db_name" "$password" - run_psql \ - "INSERT INTO $schema.customApp (id) VALUES (100500)" \ - "-h $hostname -U $user -d $db_name" "$password" - + run_psql \ + 'SET search_path TO public;CREATE TABLE IF NOT EXISTS customApp (id int PRIMARY KEY);' \ + "-h $hostname -U $user -d $db_name" "$password" + run_psql \ + "INSERT INTO $schema.customApp (id) VALUES (100500)" \ + "-h $hostname -U $user -d $db_name" "$password" + fi diff --git a/e2e-tests/tests/users/15-read-from-primary-custom-db.yaml b/e2e-tests/tests/users/15-read-from-primary-custom-db.yaml index 04d6b2c43b..c30648c174 100644 --- a/e2e-tests/tests/users/15-read-from-primary-custom-db.yaml +++ b/e2e-tests/tests/users/15-read-from-primary-custom-db.yaml @@ -7,13 +7,17 @@ commands: set -o xtrace source ../../functions + if [[ $PG_VER < 15 ]]; then + echo "grantPublicSchemaAccess is not supported before PPG15. Current PG_VER = $PG_VER. Creating dummy configmap to pass check" + kubectl create configmap -n "${NAMESPACE}" 10-read-from-primary-custom-db --from-literal=data=' 100500' + else + password=$(get_psql_user_pass chico-credentials) + user='chico' + db_name='spain' + schema='public' + hostname=$(get_pgbouncer_host chico-credentials) - password=$(get_psql_user_pass chico-credentials) - user='chico' - db_name='spain' - schema='public' - hostname=$(get_pgbouncer_host chico-credentials) + data=$(run_psql "SELECT * from $schema.customApp;" "-h $hostname -U $user -d $db_name" "$password") - data=$(run_psql "SELECT * from $schema.customApp;" "-h $hostname -U $user -d $db_name" "$password") - - kubectl create configmap -n "${NAMESPACE}" 10-read-from-primary-custom-db --from-literal=data="${data}" + kubectl create configmap -n "${NAMESPACE}" 10-read-from-primary-custom-db --from-literal=data="${data}" + fi diff --git a/e2e-tests/vars.sh b/e2e-tests/vars.sh index e7274d7f81..42691936e0 100755 --- a/e2e-tests/vars.sh +++ b/e2e-tests/vars.sh @@ -23,7 +23,12 @@ fi export IMAGE_BASE=${IMAGE_BASE:-"perconalab/percona-postgresql-operator"} export IMAGE=${IMAGE:-"${IMAGE_BASE}:${VERSION}"} -export PG_VER="${PG_VER:-17}" +if [[ ! $PG_VER && $IMAGE_POSTGRESQL ]]; then + pg_version_value=$(echo "$IMAGE_POSTGRESQL" | sed -E 's/.*:(.*ppg)?([0-9]+).*/\2/') + export PG_VER="${pg_version_value}" +else + export PG_VER="${PG_VER:-17}" +fi export IMAGE_PGBOUNCER=${IMAGE_PGBOUNCER:-"${IMAGE_BASE}:main-pgbouncer$PG_VER"} export IMAGE_POSTGRESQL=${IMAGE_POSTGRESQL:-"perconalab/percona-distribution-postgresql:$PG_VER"} export IMAGE_BACKREST=${IMAGE_BACKREST:-"${IMAGE_BASE}:main-pgbackrest$PG_VER"} @@ -49,10 +54,10 @@ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}'); do fi if [[ $var_value == percona/* || $var_value == perconalab/* ]]; then new_value="${REGISTRY_NAME_FULL}${var_value}" - export "$var=$new_value" - echo $var=$new_value + export "$var"="$new_value" + echo "$var"="$new_value" fi - echo $IMAGE + echo "$IMAGE" done # shellcheck disable=SC2034