Skip to content
Draft
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
1 change: 1 addition & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,7 @@ void runTest(Integer TEST_ID) {
fi
export KUBECONFIG=/tmp/$CLUSTER_NAME-$clusterSuffix
export PATH="\${KREW_ROOT:-\$HOME/.krew}/bin:\$PATH"
export PG_DISTRIBUTION=community
set -o pipefail
kubectl kuttl test --config e2e-tests/kuttl.yaml --test "^${testName}\$" |& tee e2e-tests/logs/${testName}.log
"""
Expand Down
54 changes: 35 additions & 19 deletions e2e-tests/tests/builtin-extensions/06-enable-pgstatmonitor.yaml
Original file line number Diff line number Diff line change
@@ -1,19 +1,35 @@
apiVersion: pgv2.percona.com/v2
kind: PerconaPGCluster
metadata:
name: builtin-extensions
spec:
patroni:
dynamicConfiguration:
postgresql:
parameters:
pgaudit.log: 'ddl,write,role'
pgaudit.log_level: 'warning'
logging_collector: 'off'
extensions:
builtin:
pg_stat_monitor: true
pg_stat_statements: false # you can't enable both pg_stat_statements and pg_stat_monitor
pg_audit: true
pgvector: true
pg_repack: true
apiVersion: kuttl.dev/v1beta1
kind: TestStep
commands:
- script: |-
set -o errexit
set -o xtrace

# community images do not ship pg_stat_monitor; keep the patch so the
# cluster generation still increments and 06-assert.yaml passes.
Comment on lines +8 to +9
PG_STAT_MONITOR="true"
if [[ "${PG_DISTRIBUTION}" == "community" ]]; then
PG_STAT_MONITOR="false"
fi

kubectl apply -n "${NAMESPACE}" -f - <<EOF
apiVersion: pgv2.percona.com/v2
kind: PerconaPGCluster
metadata:
name: builtin-extensions
spec:
patroni:
dynamicConfiguration:
postgresql:
parameters:
pgaudit.log: 'ddl,write,role'
pgaudit.log_level: 'warning'
logging_collector: 'off'
extensions:
builtin:
pg_stat_monitor: ${PG_STAT_MONITOR}
pg_stat_statements: false
pg_audit: true
pgvector: true
pg_repack: true
EOF
30 changes: 18 additions & 12 deletions e2e-tests/tests/builtin-extensions/07-assert.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 30
---
kind: ConfigMap
apiVersion: v1
metadata:
name: 07-check-extensions
data:
data: |2-
pg_repack
pg_stat_monitor
pgaudit
plpgsql
vector
commands:
- script: |-
data=$(kubectl get configmap -n "${NAMESPACE}" 07-check-extensions \
-o jsonpath='{.data.data}')

for ext in pg_repack pgaudit plpgsql vector; do
echo "${data}" | grep -q "${ext}" || {
echo "ERROR: '${ext}' missing from extensions. Got: ${data}"
exit 1
}
done

if [[ "${PG_DISTRIBUTION}" != "community" ]]; then
echo "${data}" | grep -q "pg_stat_monitor" || {
echo "ERROR: 'pg_stat_monitor' missing from extensions. Got: ${data}"
exit 1
}
fi
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ commands:
set -o errexit
set -o xtrace

if [[ "${PG_DISTRIBUTION}" == "community" ]]; then
echo "Skipping pg_stat_monitor check: not available in community images"
exit 0
fi

source ../../functions

sleep 30
Expand All @@ -15,4 +20,3 @@ commands:
"postgres:$(get_psql_user_pass builtin-extensions-pguser-postgres)@$(get_psql_user_host builtin-extensions-pguser-postgres)/postgres"

timeout: 360

Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ commands:
set -o errexit
set -o xtrace

if [[ "${PG_DISTRIBUTION}" == "community" ]]; then
echo "Skipping pg_stat_monitor query-source test: not available in community images"
exit 0
fi

source ../../functions

kubectl -n ${NAMESPACE} patch perconapgcluster/monitoring-pmm3 --type=merge -p '{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ commands:
set -o errexit
set -o xtrace

if [[ "${PG_DISTRIBUTION}" == "community" ]]; then
echo "Skipping pg_stat_monitor query-source test: not available in community images"
exit 0
fi

source ../../functions

kubectl -n ${NAMESPACE} patch perconapgcluster/monitoring --type=merge -p '{
Expand Down
19 changes: 14 additions & 5 deletions e2e-tests/vars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,25 @@ fi
export IMAGE_BASE=${IMAGE_BASE:-"perconalab/percona-postgresql-operator"}
export IMAGE=${IMAGE:-"${IMAGE_BASE}:${VERSION}"}
if [[ ! $PG_VER && $IMAGE_POSTGRESQL ]]; then
pg_version_value=$(echo "$IMAGE_POSTGRESQL" | sed -E 's/.*:(.*ppg)?([0-9]+).*/\2/')
pg_version_value=$(echo "$IMAGE_POSTGRESQL" | sed -E 's/.*-(ppg|postgres)([0-9]+).*/\2/')
export PG_VER="${pg_version_value}"
else
export PG_VER="${PG_VER:-18}"
fi
Comment on lines 34 to 39

export IMAGE_PGBOUNCER=${IMAGE_PGBOUNCER:-"${IMAGE_BASE}:main-pgbouncer$PG_VER"}
export IMAGE_POSTGRESQL=${IMAGE_POSTGRESQL:-"${IMAGE_BASE}:main-ppg$PG_VER-postgres"}
export IMAGE_BACKREST=${IMAGE_BACKREST:-"${IMAGE_BASE}:main-pgbackrest$PG_VER"}
export IMAGE_UPGRADE=${IMAGE_UPGRADE:-"${IMAGE_BASE}:main-upgrade"}
export PG_DISTRIBUTION="${PG_DISTRIBUTION:-}"

if [[ $PG_DISTRIBUTION == "community" ]]; then
export IMAGE_PGBOUNCER=${IMAGE_PGBOUNCER:-"${IMAGE_BASE}:main-pgbouncer-community"}
export IMAGE_POSTGRESQL=${IMAGE_POSTGRESQL:-"${IMAGE_BASE}:main-postgres${PG_VER}-community"}
export IMAGE_BACKREST=${IMAGE_BACKREST:-"${IMAGE_BASE}:main-pgbackrest-community"}
export IMAGE_UPGRADE=${IMAGE_UPGRADE:-"${IMAGE_BASE}:main-upgrade-community"}
else
export IMAGE_PGBOUNCER=${IMAGE_PGBOUNCER:-"${IMAGE_BASE}:main-pgbouncer$PG_VER"}
export IMAGE_POSTGRESQL=${IMAGE_POSTGRESQL:-"${IMAGE_BASE}:main-ppg$PG_VER-postgres"}
export IMAGE_BACKREST=${IMAGE_BACKREST:-"${IMAGE_BASE}:main-pgbackrest$PG_VER"}
export IMAGE_UPGRADE=${IMAGE_UPGRADE:-"${IMAGE_BASE}:main-upgrade"}
fi
export BUCKET=${BUCKET:-"pg-operator-testing"}
export PMM_SERVER_VERSION=${PMM_SERVER_VERSION:-"9.9.9"}
export IMAGE_PMM_CLIENT=${IMAGE_PMM_CLIENT:-"perconalab/pmm-client:dev-latest"}
Expand Down
Loading