Skip to content
Open
Show file tree
Hide file tree
Changes from 3 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
Comment on lines 258 to 265
"""
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}"
Comment on lines +35 to 36
Comment on lines 34 to 36
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