Skip to content

Commit

Permalink
Merge branch 'main' into cloud-857
Browse files Browse the repository at this point in the history
  • Loading branch information
jvpasinatto authored Oct 10, 2024
2 parents 8f248aa + 7113773 commit 81fdc7b
Show file tree
Hide file tree
Showing 104 changed files with 1,705 additions and 438 deletions.
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ void createCluster(String CLUSTER_SUFFIX) {
gcloud auth activate-service-account --key-file $CLIENT_SECRET_FILE
gcloud config set project $GCP_PROJECT
gcloud container clusters list --filter $CLUSTER_NAME-${CLUSTER_SUFFIX} --zone $region --format='csv[no-heading](name)' | xargs gcloud container clusters delete --zone $region --quiet || true
gcloud container clusters create --zone $region $CLUSTER_NAME-${CLUSTER_SUFFIX} --cluster-version=1.27 --machine-type=n1-standard-4 --preemptible --disk-size 30 --num-nodes=3 --network=jenkins-vpc --subnetwork=jenkins-${CLUSTER_SUFFIX} --no-enable-autoupgrade --cluster-ipv4-cidr=/21 --labels delete-cluster-after-hours=6 --enable-ip-alias --workload-pool=cloud-dev-112233.svc.id.goog && \
gcloud container clusters create --zone $region $CLUSTER_NAME-${CLUSTER_SUFFIX} --cluster-version=1.28 --machine-type=n1-standard-4 --preemptible --disk-size 30 --num-nodes=3 --network=jenkins-vpc --subnetwork=jenkins-${CLUSTER_SUFFIX} --no-enable-autoupgrade --cluster-ipv4-cidr=/21 --labels delete-cluster-after-hours=6 --enable-ip-alias --workload-pool=cloud-dev-112233.svc.id.goog && \
kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user jenkins@"$GCP_PROJECT".iam.gserviceaccount.com || ret_val=\$?
if [ \${ret_val} -eq 0 ]; then break; fi
ret_num=\$((ret_num + 1))
Expand Down
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,11 @@ release: generate
-e "/extensions:/,/image:/{s#image: .*#image: percona/percona-postgresql-operator:$(VERSION)#}" \
-e "/^ pmm:/,/^ image:/{s#image: .*#image: percona/pmm-client:@@SET_TAG@@#}" deploy/cr.yaml
sed -i -r "/Version *= \"[0-9]+\.[0-9]+\.[0-9]+\"$$/ s/[0-9]+\.[0-9]+\.[0-9]+/$(VERSION)/" pkg/apis/pgv2.percona.com/v2/perconapgcluster_types.go
sed -i \
-e "/^spec:/,/^ image:/{s#image: .*#image: percona/percona-postgresql-operator:$(VERSION)#}" \
-e "/^spec:/,/^ toPostgresImage:/{s#toPostgresImage: .*#toPostgresImage: percona/percona-postgresql-operator:$(VERSION)-ppg$(PG_VER)-postgres#}" \
-e "/^spec:/,/^ toPgBouncerImage:/{s#toPgBouncerImage: .*#toPgBouncerImage: percona/percona-postgresql-operator:$(VERSION)-ppg$(PG_VER)-pgbouncer#}" \
-e "/^spec:/,/^ toPgBackRestImage:/{s#toPgBackRestImage: .*#toPgBackRestImage: percona/percona-postgresql-operator:$(VERSION)-ppg$(PG_VER)-pgbackres#}" deploy/upgrade.yaml

# Prepare main branch after release
MAJOR_VER := $(shell grep -oE "crVersion: .*" deploy/cr.yaml|grep -oE "[0-9]+\.[0-9]+\.[0-9]+"|cut -d'.' -f1)
Expand All @@ -436,3 +441,8 @@ after-release: generate
-e "/extensions:/,/image:/{s#image: .*#image: perconalab/percona-postgresql-operator:main#}" \
-e "/^ pmm:/,/^ image:/{s#image: .*#image: perconalab/pmm-client:dev-latest#}" deploy/cr.yaml
sed -i -r "/Version *= \"[0-9]+\.[0-9]+\.[0-9]+\"$$/ s/[0-9]+\.[0-9]+\.[0-9]+/$(NEXT_VER)/" pkg/apis/pgv2.percona.com/v2/perconapgcluster_types.go
sed -i \
-e "/^spec:/,/^ image:/{s#image: .*#image: perconalab/percona-postgresql-operator:main#}" \
-e "/^spec:/,/^ toPostgresImage:/{s#toPostgresImage: .*#toPostgresImage: perconalab/percona-postgresql-operator:main-ppg$(PG_VER)-postgres#}" \
-e "/^spec:/,/^ toPgBouncerImage:/{s#toPgBouncerImage: .*#toPgBouncerImage: perconalab/percona-postgresql-operator:main-ppg$(PG_VER)-pgbouncer#}" \
-e "/^spec:/,/^ toPgBackRestImage:/{s#toPgBackRestImage: .*#toPgBackRestImage: perconalab/percona-postgresql-operator:main-ppg$(PG_VER)-pgbackrest#}" deploy/upgrade.yaml
4 changes: 2 additions & 2 deletions config/default/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ resources:

images:
- name: percona-postgresql-operator
newName: perconalab/percona-postgresql-operator
newTag: main
newName: percona/percona-postgresql-operator
newTag: 2.5.0
5 changes: 4 additions & 1 deletion deploy/cr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ metadata:
# - percona.com/delete-pvc
# - percona.com/delete-ssl
spec:
crVersion: 2.5.0
crVersion: 2.6.0
# secrets:
# customRootCATLSSecret:
# name: cluster1-ca-cert
Expand Down Expand Up @@ -46,6 +46,7 @@ spec:
# dataSource:
# postgresCluster:
# clusterName: cluster1
# clusterNamespace: cluster1-namespace
# repoName: repo1
# options:
# - --type=time
Expand Down Expand Up @@ -214,6 +215,8 @@ spec:
resources:
requests:
storage: 1Gi
# limits:
# storage: 5Gi
# tablespaceVolumes:
# - name: user
# dataVolumeClaimSpec:
Expand Down
2 changes: 1 addition & 1 deletion deploy/upgrade.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ metadata:
name: cluster1-15-to-16
spec:
postgresClusterName: cluster1
image: perconalab/percona-postgresql-operator:main-upgrade
image: perconalab/percona-postgresql-operator:main
fromPostgresVersion: 15
toPostgresVersion: 16
toPostgresImage: perconalab/percona-postgresql-operator:main-ppg16-postgres
Expand Down
35 changes: 34 additions & 1 deletion e2e-tests/functions
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# set root repo relatively to a test dir
ROOT_REPO=${ROOT_REPO:-$(realpath ../../..)}
CERT_MANAGER_VER="1.14.2"
CERT_MANAGER_VER="1.15.3"
test_name=$(basename "$(pwd)")
source "${ROOT_REPO}/e2e-tests/vars.sh"

Expand Down Expand Up @@ -58,6 +58,25 @@ deploy_operator() {
| kubectl -n "${OPERATOR_NS:-$NAMESPACE}" apply -f -
}

update_operator() {
local cw_prefix=""

if [[ $OPERATOR_NS ]]; then
cw_prefix="cw-"
fi

kubectl -n "${OPERATOR_NS:-$NAMESPACE}" apply --server-side --force-conflicts -f "${DEPLOY_DIR}/crd.yaml"
kubectl -n "${OPERATOR_NS:-$NAMESPACE}" apply --server-side --force-conflicts -f "${DEPLOY_DIR}/${cw_prefix}rbac.yaml"

local disable_telemetry=true
if [ "${test_name}" == "telemetry-transfer" ]; then
disable_telemetry=false
fi

kubectl -n "${OPERATOR_NS:-$NAMESPACE}" patch deployment percona-postgresql-operator -p \
'{"spec":{"template":{"spec":{"containers":[{"name":"operator","image":"'${IMAGE}'"}]}}}}'
}

deploy_operator_gh() {
local git_tag="$1"
local cw_prefix=""
Expand Down Expand Up @@ -740,3 +759,17 @@ get_container_image() {

echo "${IMAGE_BASE}:${operatorVersion}-ppg${pgVersion}-${component}"
}

get_postgresql_logs() {
local pgVersion=$1

for pod in $(kubectl get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do
local phase=$(kubectl -n ${NAMESPACE} get ${pod} -o jsonpath={".status.phase"})
if [[ "${phase}" != "Running" ]]; then
echo "Waiting for ${pod} to start running"
continue
fi
echo "find /pgdata/pg${pgVersion}/log -type f -iname 'postgresql*.log' -exec tail -n 30 {} \;" \
| kubectl -n ${NAMESPACE} exec -it ${pod} -- bash 2>/dev/null
done
}
2 changes: 0 additions & 2 deletions e2e-tests/tests/custom-extensions/02-assert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ spec:
- name: postgres-startup
- command:
- /usr/local/bin/relocate-extensions.sh
name: extension-relocator-16
resources: {}
volumeMounts:
- mountPath: /pgdata
Expand All @@ -45,7 +44,6 @@ spec:
envFrom:
- secretRef:
name: aws-s3-secret
name: extension-installer-16
resources: {}
volumeMounts:
- mountPath: /pgdata
Expand Down
2 changes: 0 additions & 2 deletions e2e-tests/tests/custom-extensions/05-assert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ spec:
- name: postgres-startup
- command:
- /usr/local/bin/relocate-extensions.sh
name: extension-relocator-16
resources: {}
volumeMounts:
- mountPath: /pgdata
Expand All @@ -45,7 +44,6 @@ spec:
envFrom:
- secretRef:
name: aws-s3-secret
name: extension-installer-16
resources: {}
volumeMounts:
- mountPath: /pgdata
Expand Down
2 changes: 0 additions & 2 deletions e2e-tests/tests/custom-extensions/06-assert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ spec:
- /usr/local/bin/relocate-extensions.sh
env:
- name: PG_VERSION
name: extension-relocator-16
resources: {}
volumeMounts:
- mountPath: /pgdata
Expand All @@ -47,7 +46,6 @@ spec:
envFrom:
- secretRef:
name: aws-s3-secret
name: extension-installer-16
resources: {}
volumeMounts:
- mountPath: /pgdata
Expand Down
6 changes: 4 additions & 2 deletions e2e-tests/tests/custom-extensions/07-assert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ spec:
spec:
initContainers:
- name: postgres-startup
- name: extension-relocator-16
- name: extension-installer-16
- command:
- /usr/local/bin/relocate-extensions.sh
- command:
- /usr/local/bin/install-extensions.sh
- name: nss-wrapper-init
status:
observedGeneration: 3
Expand Down
2 changes: 1 addition & 1 deletion e2e-tests/tests/major-upgrade/01-create-cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ commands:
set -o xtrace
source ../../functions
get_cr \
| yq eval '
.spec.postgresVersion = 12 |
Expand Down
20 changes: 20 additions & 0 deletions e2e-tests/tests/major-upgrade/10-assert.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 360
commands:
- script: |-
kubectl -n ${NAMESPACE} get pg,pod,job
sleep 5
---
apiVersion: pgv2.percona.com/v2
kind: PerconaPGCluster
Expand All @@ -20,3 +24,19 @@ status:
ready: 3
size: 3
state: ready
---
kind: Job
apiVersion: batch/v1
metadata:
labels:
postgres-operator.crunchydata.com/cluster: major-upgrade
postgres-operator.crunchydata.com/pgbackrest: ''
postgres-operator.crunchydata.com/pgbackrest-backup: replica-create
postgres-operator.crunchydata.com/pgbackrest-repo: repo1
ownerReferences:
- apiVersion: pgv2.percona.com/v2
kind: PerconaPGBackup
controller: true
blockOwnerDeletion: true
status:
succeeded: 1
40 changes: 15 additions & 25 deletions e2e-tests/tests/major-upgrade/11-assert.yaml
Original file line number Diff line number Diff line change
@@ -1,31 +1,21 @@
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 660
commands:
- script: |-
kubectl get postgrescluster major-upgrade \
-n ${NAMESPACE} \
-o yaml \
| yq eval '.status.pgbackrest.repos' -
---
kind: Job
apiVersion: batch/v1
apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
metadata:
annotations:
postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-12-to-13
labels:
postgres-operator.crunchydata.com/pgbackrest-backup: manual
postgres-operator.crunchydata.com/pgbackrest-repo: repo1
ownerReferences:
- apiVersion: pgv2.percona.com/v2
kind: PerconaPGBackup
controller: true
blockOwnerDeletion: true
name: major-upgrade
status:
succeeded: 1
---
apiVersion: pgv2.percona.com/v2
kind: PerconaPGBackup
metadata:
name: backup-after-12-to-13
spec:
pgCluster: major-upgrade
repoName: repo1
options:
- --type=full
status:
state: Succeeded
pgbackrest:
repos:
- bound: true
name: repo2
replicaCreateBackupComplete: true
stanzaCreated: true
12 changes: 12 additions & 0 deletions e2e-tests/tests/major-upgrade/11-change-repo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: kuttl.dev/v1beta1
kind: TestStep
commands:
- script: |-
set -o errexit
set -o xtrace
kubectl patch \
-n $NAMESPACE \
perconapgcluster major-upgrade \
--type='json' \
-p='[{"op": "replace", "path": "/spec/backups/pgbackrest/repos/0/name", "value": "repo2"}]'
43 changes: 22 additions & 21 deletions e2e-tests/tests/major-upgrade/12-assert.yaml
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 720
timeout: 660
---
apiVersion: pgv2.percona.com/v2
kind: PerconaPGRestore
kind: Job
apiVersion: batch/v1
metadata:
name: restore-after-12-to-13
spec:
pgCluster: major-upgrade
repoName: repo1
annotations:
postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-12-to-13
labels:
postgres-operator.crunchydata.com/pgbackrest-backup: manual
postgres-operator.crunchydata.com/pgbackrest-repo: repo2
ownerReferences:
- apiVersion: pgv2.percona.com/v2
kind: PerconaPGBackup
controller: true
blockOwnerDeletion: true
status:
state: Succeeded
succeeded: 1
---
apiVersion: pgv2.percona.com/v2
kind: PerconaPGCluster
kind: PerconaPGBackup
metadata:
name: major-upgrade
name: backup-after-12-to-13
spec:
pgCluster: major-upgrade
repoName: repo2
options:
- --type=full
status:
pgbouncer:
ready: 3
size: 3
postgres:
instances:
- name: instance1
ready: 3
size: 3
ready: 3
size: 3
state: ready
state: Succeeded
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ metadata:
name: backup-after-12-to-13
spec:
pgCluster: major-upgrade
repoName: repo1
repoName: repo2
options:
- --type=full
Loading

0 comments on commit 81fdc7b

Please sign in to comment.