Skip to content

Commit 7a8add7

Browse files
authored
Merge pull request #2518 from percona/release-1.20.0
K8SPXC-1792: Update versions back to main after 1.20.0 release
2 parents 7b1f54f + f858464 commit 7a8add7

45 files changed

Lines changed: 387 additions & 1790 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
* @hors @egegunes @pooknull @nmarukovich @gkech @mayankshah1607 @oksana-grishchenko
2-
/e2e-tests/ @jvpasinatto @eleo007 @valmiranogueira @bogdanjeler-ev @egegunes @nmarukovich @gkech @mayankshah1607 @oksana-grishchenko
3-
Jenkinsfile @jvpasinatto @eleo007 @valmiranogueira @bogdanjeler-ev
2+
/e2e-tests/ @jvpasinatto @eleo007 @valmiranogueira @egegunes @nmarukovich @gkech @mayankshah1607 @oksana-grishchenko @DhruthiKV
3+
Jenkinsfile @jvpasinatto @eleo007 @valmiranogueira @DhruthiKV

.github/workflows/reviewdog.yml

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,12 @@ jobs:
8787
with:
8888
go-version: '1.26'
8989
- name: check on release branch
90-
if: ${{ contains(github.base_ref, 'release-') }}
90+
if: ${{ contains(github.base_ref, 'release-') && ! startsWith(github.head_ref, 'after-release-') }}
9191
run: |
9292
make generate manifests VERSION="$(cat pkg/version/version.txt)" IMAGE_TAG_BASE="percona/percona-xtradb-cluster-operator"
9393
git diff --exit-code
9494
- name: check on non release branches
95-
if: ${{ ! contains(github.base_ref, 'release-') }}
95+
if: ${{ ! contains(github.base_ref, 'release-') || startsWith(github.head_ref, 'after-release-') }}
9696
run: |
9797
make generate manifests VERSION=main
9898
git diff --exit-code
@@ -136,3 +136,75 @@ jobs:
136136
exit 1
137137
fi
138138
echo "All images are available."
139+
140+
deploy-images-in-release-versions:
141+
name: runner / deploy images in release_versions
142+
runs-on: ubuntu-latest
143+
# Only relevant for release branches, where deploy manifests pin released images.
144+
if: ${{ contains(github.base_ref, 'release-') }}
145+
steps:
146+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
147+
- name: Verify each deploy/*.yaml image matches its e2e-tests/release_versions entry
148+
shell: bash
149+
run: |
150+
set -euo pipefail
151+
152+
# Return the value of an IMAGE_* variable from release_versions.
153+
rv() { grep -E "^$1=" e2e-tests/release_versions | head -n1 | cut -d= -f2-; }
154+
155+
# Map a PerconaXtraDBCluster .spec.<component> to its release_versions variable.
156+
# PXC and backup use the 8.4 (default) versions.
157+
declare -A COMPONENT_VAR=(
158+
[pxc]=IMAGE_PXC84
159+
[haproxy]=IMAGE_HAPROXY
160+
[proxysql]=IMAGE_PROXY
161+
[logcollector]=IMAGE_LOGCOLLECTOR
162+
[backup]=IMAGE_BACKUP84
163+
[pmm]=IMAGE_PMM3_CLIENT
164+
)
165+
166+
failed=0
167+
168+
# Compare a single image to the expected release_versions variable.
169+
check_value() {
170+
local where=$1 actual=$2 var=$3 expected
171+
expected=$(rv "$var")
172+
if [ -z "$expected" ]; then
173+
echo "::error::$var is not defined in e2e-tests/release_versions"; failed=1; return
174+
fi
175+
if [ "$actual" != "$expected" ]; then
176+
echo "::error::$where image '$actual' does not match $var='$expected' from e2e-tests/release_versions"; failed=1; return
177+
fi
178+
echo "OK: $where = $actual (matches $var)"
179+
}
180+
181+
# PerconaXtraDBCluster manifests: verify EVERY image-bearing component under .spec.
182+
# Any component without a mapping fails the check, so newly added images can't slip through.
183+
for file in deploy/cr.yaml deploy/cr-minimal.yaml; do
184+
while IFS= read -r comp; do
185+
[ -z "$comp" ] && continue
186+
image=$(yq ".spec.${comp}.image" "$file")
187+
var=${COMPONENT_VAR[$comp]:-}
188+
if [ -z "$var" ]; then
189+
echo "::error file=$file::No release_versions mapping for component '$comp' (update this check)"; failed=1
190+
else
191+
check_value "$file[$comp]" "$image" "$var"
192+
fi
193+
done < <(yq '.spec | to_entries | .[] | select(.value | has("image")) | .key' "$file")
194+
done
195+
196+
# Operator Deployment manifests: the operator container image must match IMAGE_OPERATOR.
197+
for file in deploy/operator.yaml deploy/bundle.yaml; do
198+
image=$(yq '.spec.template.spec.containers[]? | select(.name == "percona-xtradb-cluster-operator") | .image' "$file" | head -n1)
199+
if [ -z "$image" ]; then
200+
echo "::error file=$file::Could not find the operator container image"; failed=1
201+
else
202+
check_value "$file[operator]" "$image" IMAGE_OPERATOR
203+
fi
204+
done
205+
206+
if [ "$failed" -ne 0 ]; then
207+
echo "::error::deploy manifest images are out of sync with e2e-tests/release_versions"
208+
exit 1
209+
fi
210+
echo "All deploy images match their release_versions entries."

Makefile

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,12 +163,12 @@ update-version:
163163
MAJOR_VER := $(shell grep -oE "crVersion: .*" deploy/cr.yaml|grep -oE "[0-9]+\.[0-9]+\.[0-9]+"|cut -d'.' -f1)
164164
MINOR_VER := $(shell grep -oE "crVersion: .*" deploy/cr.yaml|grep -oE "[0-9]+\.[0-9]+\.[0-9]+"|cut -d'.' -f2)
165165
NEXT_VER ?= $(MAJOR_VER).$$(($(MINOR_VER) + 1)).0
166-
after-release: update-version manifests
166+
after-release: update-version manifests upgrade-consistency-after-release
167167
$(SED) -i \
168168
-e "s/crVersion: .*/crVersion: $(NEXT_VER)/" \
169169
-e "/^ pxc:/,/^ image:/{s#image: .*#image: perconalab/percona-xtradb-cluster-operator:main-pxc8.4#}" \
170170
-e "/^ haproxy:/,/^ image:/{s#image: .*#image: perconalab/percona-xtradb-cluster-operator:main-haproxy#}" \
171-
-e "/^ logcollector:/,/^ image:/{s#image: .*#image: perconalab/percona-xtradb-cluster-operator:main-logcollector#}" deploy/cr-minimal.yaml
171+
-e "/^ logcollector:/,/^ image:/{s#image: .*#image: perconalab/fluentbit:main-logcollector#}" deploy/cr-minimal.yaml
172172
$(SED) -i \
173173
-e "s/crVersion: .*/crVersion: $(NEXT_VER)/" \
174174
-e "/^ pxc:/,/^ image:/{s#image: .*#image: perconalab/percona-xtradb-cluster-operator:main-pxc8.4#}" \
@@ -178,6 +178,60 @@ after-release: update-version manifests
178178
-e "/^ backup:/,/^ image:/{s#image: .*#image: perconalab/percona-xtradb-cluster-operator:main-pxc8.4-backup#}" \
179179
-e "/initContainer:/,/image:/{s#image: .*#image: perconalab/percona-xtradb-cluster-operator:main#}" \
180180
-e "/^ pmm:/,/^ image:/{s#image: .*#image: perconalab/pmm-client:3-dev-latest#}" deploy/cr.yaml
181+
# Revert release_versions file to perconalab dev images
182+
$(SED) -i \
183+
-e "s#^IMAGE_OPERATOR=.*#IMAGE_OPERATOR=perconalab/percona-xtradb-cluster-operator:main#" \
184+
-e "s#^IMAGE_PXC84=.*#IMAGE_PXC84=perconalab/percona-xtradb-cluster-operator:main-pxc8.4#" \
185+
-e "s#^IMAGE_BACKUP84=.*#IMAGE_BACKUP84=perconalab/percona-xtradb-cluster-operator:main-pxc8.4-backup#" \
186+
-e "s#^IMAGE_PXC80=.*#IMAGE_PXC80=perconalab/percona-xtradb-cluster-operator:main-pxc8.0#" \
187+
-e "s#^IMAGE_BACKUP80=.*#IMAGE_BACKUP80=perconalab/percona-xtradb-cluster-operator:main-pxc8.0-backup#" \
188+
-e "s#^IMAGE_PXC57=.*#IMAGE_PXC57=perconalab/percona-xtradb-cluster-operator:main-pxc5.7#" \
189+
-e "s#^IMAGE_BACKUP57=.*#IMAGE_BACKUP57=perconalab/percona-xtradb-cluster-operator:main-pxc5.7-backup#" \
190+
-e "s#^IMAGE_PROXY=.*#IMAGE_PROXY=perconalab/percona-xtradb-cluster-operator:main-proxysql#" \
191+
-e "s#^IMAGE_PROXY3=.*#IMAGE_PROXY3=perconalab/percona-xtradb-cluster-operator:main-proxysql3#" \
192+
-e "s#^IMAGE_HAPROXY=.*#IMAGE_HAPROXY=perconalab/percona-xtradb-cluster-operator:main-haproxy#" \
193+
-e "s#^IMAGE_LOGCOLLECTOR=.*#IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector#" \
194+
-e "s#^IMAGE_PMM_CLIENT=.*#IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest#" \
195+
-e "s#^IMAGE_PMM_SERVER=.*#IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest#" \
196+
-e "s#^IMAGE_PMM3_CLIENT=.*#IMAGE_PMM3_CLIENT=perconalab/pmm-client:3-dev-latest#" \
197+
-e "s#^IMAGE_PMM3_SERVER=.*#IMAGE_PMM3_SERVER=perconalab/pmm-server:3-dev-latest#" e2e-tests/release_versions
198+
199+
# Update the upgrade-consistency test window to the next version.
200+
# Gets the 3 tested versions from the run file, drops the oldest, keeps the two newest, and appends the next development version X.(Y+1).0.
201+
# Copies and renames compare files, bumps generation version in statefulset compare files.
202+
UC_DIR := e2e-tests/upgrade-consistency
203+
.PHONY: upgrade-consistency-after-release
204+
upgrade-consistency-after-release: ## Slide upgrade-consistency test window to the next version
205+
@set -e; \
206+
dir=$(UC_DIR); cmp=$$dir/compare; run=$$dir/run; \
207+
vers=$$(grep -oE '[0-9]+\.[0-9]+\.[0-9]+' $$run | awk '!seen[$$0]++' | sort -t. -k1,1n -k2,2n -k3,3n); \
208+
n=$$(printf '%s\n' "$$vers" | grep -c .); \
209+
[ "$$n" -eq 3 ] || { echo "ERROR: expected 3 tested versions in $$run, found $$n: $$vers" >&2; exit 1; }; \
210+
v1=$$(printf '%s\n' "$$vers" | sed -n 1p); \
211+
v2=$$(printf '%s\n' "$$vers" | sed -n 2p); \
212+
v3=$$(printf '%s\n' "$$vers" | sed -n 3p); \
213+
major=$${v3%%.*}; minor=$$(echo "$$v3" | cut -d. -f2); \
214+
vnew=$$major.$$((minor + 1)).0; \
215+
suf() { echo "$$1" | tr -d .; }; \
216+
esc() { echo "$$1" | sed 's/\./\\./g'; }; \
217+
echo "upgrade-consistency: replace old with new versions: [$$v1 $$v2 $$v3] -> [$$v2 $$v3 $$vnew]"; \
218+
$(SED) -i "s/$$(esc $$v3)/$$vnew/g; s/-$$(suf $$v3)/-$$(suf $$vnew)/g" $$run; \
219+
$(SED) -i "s/$$(esc $$v2)/$$v3/g; s/-$$(suf $$v2)/-$$(suf $$v3)/g" $$run; \
220+
$(SED) -i "s/$$(esc $$v1)/$$v2/g; s/-$$(suf $$v1)/-$$(suf $$v2)/g" $$run; \
221+
s2=$$(suf $$v2); s3=$$(suf $$v3); snew=$$(suf $$vnew); \
222+
for f in $$cmp/*$$s3*; do cp "$$f" "$$(echo "$$f" | sed "s/$$s3/$$snew/")"; done; \
223+
for s in $$s2 $$s3; do \
224+
for f in $$cmp/statefulset_*$$s*; do \
225+
g=$$(awk '/^ generation:/{print $$2; exit}' "$$f"); \
226+
[ -n "$$g" ] && $(SED) -i "s/^ generation: $$g$$/ generation: $$((g - 1))/" "$$f"; \
227+
done; \
228+
done; \
229+
keep=" $$s2 $$s3 $$snew "; \
230+
for f in $$cmp/*.yml; do \
231+
v=$$(basename "$$f" | grep -oE '[0-9]+'); \
232+
case "$$keep" in *" $$v "*) : ;; *) rm -f "$$f" ;; esac; \
233+
done; \
234+
echo "upgrade-consistency: done; review with: git status $$dir"
181235

182236
VS_BRANCH = main
183237
version-service-client: swagger

config/crd/patches/versionlabel_in_pxc.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ metadata:
44
name: perconaxtradbclusters.pxc.percona.com
55
labels:
66
app.kubernetes.io/name: percona-xtradb-cluster
7-
app.kubernetes.io/version: v1.20.0
7+
app.kubernetes.io/version: v1.21.0
88
app.kubernetes.io/component: crd
99
app.kubernetes.io/part-of: percona-xtradb-cluster-operator

config/crd/patches/versionlabel_in_pxcbackup.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ metadata:
44
name: perconaxtradbclusterbackups.pxc.percona.com
55
labels:
66
app.kubernetes.io/name: percona-xtradb-cluster
7-
app.kubernetes.io/version: v1.20.0
7+
app.kubernetes.io/version: v1.21.0
88
app.kubernetes.io/component: crd
99
app.kubernetes.io/part-of: percona-xtradb-cluster-operator

config/crd/patches/versionlabel_in_pxcrestore.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ metadata:
44
name: perconaxtradbclusterrestores.pxc.percona.com
55
labels:
66
app.kubernetes.io/name: percona-xtradb-cluster
7-
app.kubernetes.io/version: v1.20.0
7+
app.kubernetes.io/version: v1.21.0
88
app.kubernetes.io/component: crd
99
app.kubernetes.io/part-of: percona-xtradb-cluster-operator

deploy/bundle.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
app.kubernetes.io/component: crd
88
app.kubernetes.io/name: percona-xtradb-cluster
99
app.kubernetes.io/part-of: percona-xtradb-cluster-operator
10-
app.kubernetes.io/version: v1.20.0
10+
app.kubernetes.io/version: v1.21.0
1111
name: perconaxtradbclusterbackups.pxc.percona.com
1212
spec:
1313
group: pxc.percona.com
@@ -407,7 +407,7 @@ metadata:
407407
app.kubernetes.io/component: crd
408408
app.kubernetes.io/name: percona-xtradb-cluster
409409
app.kubernetes.io/part-of: percona-xtradb-cluster-operator
410-
app.kubernetes.io/version: v1.20.0
410+
app.kubernetes.io/version: v1.21.0
411411
name: perconaxtradbclusterrestores.pxc.percona.com
412412
spec:
413413
group: pxc.percona.com
@@ -1096,7 +1096,7 @@ metadata:
10961096
app.kubernetes.io/component: crd
10971097
app.kubernetes.io/name: percona-xtradb-cluster
10981098
app.kubernetes.io/part-of: percona-xtradb-cluster-operator
1099-
app.kubernetes.io/version: v1.20.0
1099+
app.kubernetes.io/version: v1.21.0
11001100
name: perconaxtradbclusters.pxc.percona.com
11011101
spec:
11021102
group: pxc.percona.com

deploy/cr-minimal.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ kind: PerconaXtraDBCluster
33
metadata:
44
name: minimal-cluster
55
spec:
6-
crVersion: 1.20.0
6+
crVersion: 1.21.0
77
secretsName: minimal-cluster-secrets
88
unsafeFlags:
99
tls: true

deploy/cr.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ metadata:
1010
# annotations:
1111
# percona.com/issue-vault-token: "true"
1212
spec:
13-
crVersion: 1.20.0
13+
crVersion: 1.21.0
1414
# storageScaling:
1515
# enableVolumeScaling: false
1616
# enableExternalAutoscaling: false

deploy/crd.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
app.kubernetes.io/component: crd
88
app.kubernetes.io/name: percona-xtradb-cluster
99
app.kubernetes.io/part-of: percona-xtradb-cluster-operator
10-
app.kubernetes.io/version: v1.20.0
10+
app.kubernetes.io/version: v1.21.0
1111
name: perconaxtradbclusterbackups.pxc.percona.com
1212
spec:
1313
group: pxc.percona.com
@@ -407,7 +407,7 @@ metadata:
407407
app.kubernetes.io/component: crd
408408
app.kubernetes.io/name: percona-xtradb-cluster
409409
app.kubernetes.io/part-of: percona-xtradb-cluster-operator
410-
app.kubernetes.io/version: v1.20.0
410+
app.kubernetes.io/version: v1.21.0
411411
name: perconaxtradbclusterrestores.pxc.percona.com
412412
spec:
413413
group: pxc.percona.com
@@ -1096,7 +1096,7 @@ metadata:
10961096
app.kubernetes.io/component: crd
10971097
app.kubernetes.io/name: percona-xtradb-cluster
10981098
app.kubernetes.io/part-of: percona-xtradb-cluster-operator
1099-
app.kubernetes.io/version: v1.20.0
1099+
app.kubernetes.io/version: v1.21.0
11001100
name: perconaxtradbclusters.pxc.percona.com
11011101
spec:
11021102
group: pxc.percona.com

0 commit comments

Comments
 (0)