Skip to content
Open
Show file tree
Hide file tree
Changes from 38 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
8d39567
rename upstream api package
egegunes Apr 20, 2026
bb21125
fix old api references
egegunes Apr 20, 2026
3ade8de
rename CRDs
egegunes Apr 20, 2026
c4baaf7
fix api version
egegunes Apr 20, 2026
ac6f625
remove testing dir
egegunes Apr 20, 2026
3955649
fix rbacs
egegunes Apr 20, 2026
5cee9a4
add migration controller
egegunes Apr 20, 2026
5e81eac
update manifests
egegunes Apr 21, 2026
92f6a31
fix unit tests
egegunes Apr 22, 2026
8f121cc
fix upgrade-minor
egegunes Apr 23, 2026
bb84b04
Merge branch 'main' into crd-rename
mayankshah1607 Apr 23, 2026
50cd1dd
Merge branch 'main' into crd-rename
hors Apr 23, 2026
b1b4cfd
fix typo
egegunes Apr 24, 2026
20baf17
e2e-tests: add Crunchy Data migration test suite
hors Apr 27, 2026
2c70a21
Merge branch 'main' into crd-rename
hors Apr 27, 2026
855095d
address mayank's comments
egegunes Apr 27, 2026
87e562b
remove references to testing/
egegunes Apr 27, 2026
0aefa6e
use require to assert owner reference
egegunes Apr 27, 2026
5986a05
fix issues due to review comments
egegunes Apr 27, 2026
66a29e0
address review comments
egegunes Apr 28, 2026
497af8d
Merge branch 'main' into crd-rename
egegunes Apr 28, 2026
25d5c98
Push stranded timeline history files after stanza creation
hors Apr 28, 2026
ad66ef7
fix timeouts
hors Apr 28, 2026
706bb71
fix test
hors Apr 28, 2026
28c6eb5
K8SPG-1000 Add extensions major upgrade tests
jvpasinatto Apr 8, 2026
bf40ab8
consider in docker.io prefix in get_container_image function
jvpasinatto Apr 9, 2026
1cae3be
CLOUD-727: Bump github.com/Azure/go-ntlmssp
dependabot[bot] Apr 23, 2026
6816797
address mayank's comments
egegunes Apr 27, 2026
13bebd2
remove references to testing/
egegunes Apr 27, 2026
a854cac
use require to assert owner reference
egegunes Apr 27, 2026
4cd87dd
fix issues due to review comments
egegunes Apr 27, 2026
5335d2b
address review comments
egegunes Apr 28, 2026
62f329d
CLOUD-727: Bump k8s.io/apimachinery from 0.35.4 to 0.36.0 (#1568)
dependabot[bot] Apr 28, 2026
b0328f7
fix timeouts
hors Apr 28, 2026
bc3d09a
Push stranded timeline history files after stanza creation
hors Apr 28, 2026
150b6d0
Merge branch 'crd-rename' into stanza-timing-fix
hors Apr 28, 2026
fb73327
fix tests
hors Apr 29, 2026
847ccad
Merge branch 'crd-rename' into stanza-timing-fix
hors Apr 29, 2026
f1ede33
remove migration controller
egegunes Apr 29, 2026
f15c14a
fix updating owner references of issuer & certificates
egegunes Apr 29, 2026
b71131c
add status condition for migration status
egegunes Apr 30, 2026
783a445
Merge branch 'crd-rename' into stanza-timing-fix
hors Apr 30, 2026
81b3319
Merge remote-tracking branch 'origin/main' into stanza-timing-fix
hors Jun 11, 2026
27557c3
fix file
hors Jun 11, 2026
5557553
Apply suggestion from @github-actions[bot]
hors Jun 11, 2026
5191d59
Apply suggestion from @github-actions[bot]
hors Jun 11, 2026
26ce453
fix test upgrade-minor
hors Jun 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ tools
licenses/*
!licenses/LICENSE.txt
bin/
/testing/kuttl/e2e-generated/
/testing/kuttl/e2e-generated-other/
/testing/kuttl/e2e-generated*/

# Test binary, build with 'go test -c'
*.test
Expand Down
2 changes: 0 additions & 2 deletions .golangci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,6 @@ linters:
deny:
- pkg: net/http/httptest
desc: Should be used only in tests.
- pkg: testing/*
desc: The "testing" packages should be used only in tests.
- pkg: github.com/percona/percona-postgresql-operator/v2/internal/testing/*
desc: The "internal/testing" packages should be used only in tests.
- pkg: errors
Expand Down
47 changes: 5 additions & 42 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,6 @@ clean: clean-deprecated
rm -f bin/postgres-operator
rm -f config/rbac/role.yaml
rm -rf licenses/*/
[ ! -d testing/kuttl/e2e-generated ] || rm -r testing/kuttl/e2e-generated
[ ! -d testing/kuttl/e2e-generated-other ] || rm -r testing/kuttl/e2e-generated-other
rm -rf build/crd/generated build/crd/*/generated
[ ! -f hack/tools/setup-envtest ] || rm hack/tools/setup-envtest
[ ! -d hack/tools/envtest ] || { chmod -R u+w hack/tools/envtest && rm -r hack/tools/envtest; }
Expand Down Expand Up @@ -219,41 +217,6 @@ check-envtest-existing: createnamespaces
$(GO_TEST) -count=1 -cover -p=1 -tags=envtest ./...
kubectl delete -k ./config/dev

# Expects operator to be running
.PHONY: check-kuttl
check-kuttl: ## Run kuttl end-to-end tests
check-kuttl: ## example command: make check-kuttl KUTTL_TEST='
${KUTTL_TEST} \
--config testing/kuttl/kuttl-test.yaml

.PHONY: generate-kuttl
generate-kuttl: export KUTTL_PG_UPGRADE_FROM_VERSION ?= 15
generate-kuttl: export KUTTL_PG_UPGRADE_TO_VERSION ?= 16
generate-kuttl: export KUTTL_PG_VERSION ?= 16
generate-kuttl: export KUTTL_POSTGIS_VERSION ?= 3.4
generate-kuttl: export KUTTL_PSQL_IMAGE ?= registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-16.3-1
generate-kuttl: export KUTTL_TEST_DELETE_NAMESPACE ?= kuttl-test-delete-namespace
generate-kuttl: ## Generate kuttl tests
[ ! -d testing/kuttl/e2e-generated ] || rm -r testing/kuttl/e2e-generated
[ ! -d testing/kuttl/e2e-generated-other ] || rm -r testing/kuttl/e2e-generated-other
bash -ceu ' \
case $(KUTTL_PG_VERSION) in \
16 ) export KUTTL_BITNAMI_IMAGE_TAG=16.0.0-debian-11-r3 ;; \
15 ) export KUTTL_BITNAMI_IMAGE_TAG=15.0.0-debian-11-r4 ;; \
14 ) export KUTTL_BITNAMI_IMAGE_TAG=14.5.0-debian-11-r37 ;; \
13 ) export KUTTL_BITNAMI_IMAGE_TAG=13.8.0-debian-11-r39 ;; \
12 ) export KUTTL_BITNAMI_IMAGE_TAG=12.12.0-debian-11-r40 ;; \
esac; \
render() { envsubst '"'"' \
$$KUTTL_PG_UPGRADE_FROM_VERSION $$KUTTL_PG_UPGRADE_TO_VERSION \
$$KUTTL_PG_VERSION $$KUTTL_POSTGIS_VERSION $$KUTTL_PSQL_IMAGE \
$$KUTTL_BITNAMI_IMAGE_TAG $$KUTTL_TEST_DELETE_NAMESPACE'"'"'; }; \
while [ $$# -gt 0 ]; do \
source="$${1}" target="$${1/e2e/e2e-generated}"; \
mkdir -p "$${target%/*}"; render < "$${source}" > "$${target}"; \
shift; \
done' - testing/kuttl/e2e/*/*.yaml testing/kuttl/e2e-other/*/*.yaml testing/kuttl/e2e/*/*/*.yaml testing/kuttl/e2e-other/*/*/*.yaml

##@ Generate

.PHONY: check-generate
Expand All @@ -279,7 +242,7 @@ generate: generate-cw
generate-crunchy-crd: ## Generate crd
GOBIN='$(CURDIR)/hack/tools' ./hack/controller-generator.sh \
crd:crdVersions='v1' \
paths='./pkg/apis/postgres-operator.crunchydata.com/...' \
paths='./pkg/apis/upstream.pgv2.percona.com/...' \
output:dir='build/crd/crunchy/generated' # build/crd/generated/{group}_{plural}.yaml
@
GOBIN='$(CURDIR)/hack/tools' ./hack/controller-generator.sh \
Expand All @@ -297,10 +260,10 @@ generate-crunchy-crd: ## Generate crd
paths='./pkg/apis/...' \
output:dir='build/crd/crunchybridgeclusters/generated' # build/crd/{plural}/generated/{group}_{plural}.yaml
@
$(KUSTOMIZE) build ./build/crd/crunchy/ > ./config/crd/bases/postgres-operator.crunchydata.com_postgresclusters.yaml
$(KUSTOMIZE) build ./build/crd/pgupgrades > ./config/crd/bases/postgres-operator.crunchydata.com_pgupgrades.yaml
$(KUSTOMIZE) build ./build/crd/pgadmins > ./config/crd/bases/postgres-operator.crunchydata.com_pgadmins.yaml
$(KUSTOMIZE) build ./build/crd/crunchybridgeclusters > ./config/crd/bases/postgres-operator.crunchydata.com_crunchybridgeclusters.yaml
$(KUSTOMIZE) build ./build/crd/crunchy/ > ./config/crd/bases/upstream.pgv2.percona.com_postgresclusters.yaml
$(KUSTOMIZE) build ./build/crd/pgupgrades > ./config/crd/bases/upstream.pgv2.percona.com_pgupgrades.yaml
$(KUSTOMIZE) build ./build/crd/pgadmins > ./config/crd/bases/upstream.pgv2.percona.com_pgadmins.yaml
$(KUSTOMIZE) build ./build/crd/crunchybridgeclusters > ./config/crd/bases/upstream.pgv2.percona.com_crunchybridgeclusters.yaml

.PHONY: generate-deepcopy
generate-deepcopy: ## Generate deepcopy functions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.20.0
name: postgresclusters.postgres-operator.crunchydata.com
name: postgresclusters.upstream.pgv2.percona.com
spec:
group: postgres-operator.crunchydata.com
group: upstream.pgv2.percona.com
names:
kind: PostgresCluster
listKind: PostgresClusterList
Expand Down
10 changes: 5 additions & 5 deletions build/crd/crunchy/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,32 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- generated/postgres-operator.crunchydata.com_postgresclusters.yaml
- generated/upstream.pgv2.percona.com_postgresclusters.yaml

patchesJson6902:
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: postgresclusters.postgres-operator.crunchydata.com
name: postgresclusters.upstream.pgv2.percona.com
path: condition.yaml
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: postgresclusters.postgres-operator.crunchydata.com
name: postgresclusters.upstream.pgv2.percona.com
path: todos.yaml
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: postgresclusters.postgres-operator.crunchydata.com
name: postgresclusters.upstream.pgv2.percona.com
path: validation.yaml
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: postgresclusters.postgres-operator.crunchydata.com
name: postgresclusters.upstream.pgv2.percona.com
patch: |-
- op: add
path: "/metadata/labels"
Expand Down
4 changes: 2 additions & 2 deletions build/crd/crunchybridgeclusters/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- generated/postgres-operator.crunchydata.com_crunchybridgeclusters.yaml
- generated/upstream.pgv2.percona.com_crunchybridgeclusters.yaml

patches:
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: crunchybridgeclusters.postgres-operator.crunchydata.com
name: crunchybridgeclusters.upstream.pgv2.percona.com
# The version below should match the version on the PostgresCluster CRD
patch: |-
- op: add
Expand Down
6 changes: 3 additions & 3 deletions build/crd/pgadmins/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- generated/postgres-operator.crunchydata.com_pgadmins.yaml
- generated/upstream.pgv2.percona.com_pgadmins.yaml

patches:
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: pgadmins.postgres-operator.crunchydata.com
name: pgadmins.upstream.pgv2.percona.com
path: todos.yaml
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: pgadmins.postgres-operator.crunchydata.com
name: pgadmins.upstream.pgv2.percona.com
# The version below should match the version on the PostgresCluster CRD
patch: |-
- op: add
Expand Down
6 changes: 3 additions & 3 deletions build/crd/pgupgrades/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- generated/postgres-operator.crunchydata.com_pgupgrades.yaml
- generated/upstream.pgv2.percona.com_pgupgrades.yaml

patches:
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: pgupgrades.postgres-operator.crunchydata.com
name: pgupgrades.upstream.pgv2.percona.com
path: todos.yaml
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: pgupgrades.postgres-operator.crunchydata.com
name: pgupgrades.upstream.pgv2.percona.com
# The version below should match the version on the PostgresCluster CRD
patch: |-
- op: add
Expand Down
10 changes: 5 additions & 5 deletions build/crd/postgresclusters/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,32 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- generated/postgres-operator.crunchydata.com_postgresclusters.yaml
- generated/upstream.pgv2.percona.com_postgresclusters.yaml

patchesJson6902:
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: postgresclusters.postgres-operator.crunchydata.com
name: postgresclusters.upstream.pgv2.percona.com
path: condition.yaml
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: postgresclusters.postgres-operator.crunchydata.com
name: postgresclusters.upstream.pgv2.percona.com
path: todos.yaml
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: postgresclusters.postgres-operator.crunchydata.com
name: postgresclusters.upstream.pgv2.percona.com
path: validation.yaml
- target:
group: apiextensions.k8s.io
version: v1
kind: CustomResourceDefinition
name: postgresclusters.postgres-operator.crunchydata.com
name: postgresclusters.upstream.pgv2.percona.com
patch: |-
- op: add
path: "/metadata/labels"
Expand Down
8 changes: 7 additions & 1 deletion cmd/postgres-operator/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import (
"github.com/percona/percona-postgresql-operator/v2/internal/upgradecheck"
"github.com/percona/percona-postgresql-operator/v2/percona/certmanager"
perconaController "github.com/percona/percona-postgresql-operator/v2/percona/controller"
"github.com/percona/percona-postgresql-operator/v2/percona/controller/migration"
"github.com/percona/percona-postgresql-operator/v2/percona/controller/pgbackup"
"github.com/percona/percona-postgresql-operator/v2/percona/controller/pgcluster"
"github.com/percona/percona-postgresql-operator/v2/percona/controller/pgrestore"
Expand All @@ -48,7 +49,7 @@ import (
perconaRuntime "github.com/percona/percona-postgresql-operator/v2/percona/runtime"
"github.com/percona/percona-postgresql-operator/v2/percona/utils/registry"
v2 "github.com/percona/percona-postgresql-operator/v2/pkg/apis/pgv2.percona.com/v2"
"github.com/percona/percona-postgresql-operator/v2/pkg/apis/postgres-operator.crunchydata.com/v1beta1"
"github.com/percona/percona-postgresql-operator/v2/pkg/apis/upstream.pgv2.percona.com/v1beta1"
)

var (
Expand Down Expand Up @@ -279,6 +280,11 @@ func addControllersToManager(ctx context.Context, mgr manager.Manager) error {
return errors.Wrap(err, "unable to create PGAdmin controller")
}

migrationReconciler := &migration.Reconciler{Client: mgr.GetClient()}
if err := migrationReconciler.SetupWithManager(mgr); err != nil {
return errors.Wrap(err, "unable to create legacy PostgresCluster migration controller")
}

return nil
}

Expand Down
42 changes: 21 additions & 21 deletions cmd/postgres-operator/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ func TestInitManager(t *testing.T) {

assert.DeepEqual(t, options.Controller.GroupKindConcurrency,
map[string]int{
"PGAdmin.postgres-operator.crunchydata.com": 1,
"PGUpgrade.postgres-operator.crunchydata.com": 1,
"PerconaPGBackup.pgv2.percona.com": 1,
"PerconaPGCluster.pgv2.percona.com": 1,
"PerconaPGRestore.pgv2.percona.com": 1,
"PerconaPGUpgrade.pgv2.percona.com": 1,
"PostgresCluster.postgres-operator.crunchydata.com": 1,
"PGAdmin.upstream.pgv2.percona.com": 1,
"PGUpgrade.upstream.pgv2.percona.com": 1,
"PerconaPGBackup.pgv2.percona.com": 1,
"PerconaPGCluster.pgv2.percona.com": 1,
"PerconaPGRestore.pgv2.percona.com": 1,
"PerconaPGUpgrade.pgv2.percona.com": 1,
"PostgresCluster.upstream.pgv2.percona.com": 1,
})

assert.Assert(t, options.Cache.DefaultNamespaces == nil)
Expand Down Expand Up @@ -125,13 +125,13 @@ func TestInitManager(t *testing.T) {
}
assert.DeepEqual(t, options.Controller.GroupKindConcurrency,
map[string]int{
"PGAdmin.postgres-operator.crunchydata.com": 1,
"PGUpgrade.postgres-operator.crunchydata.com": 1,
"PerconaPGBackup.pgv2.percona.com": 1,
"PerconaPGCluster.pgv2.percona.com": 1,
"PerconaPGRestore.pgv2.percona.com": 1,
"PerconaPGUpgrade.pgv2.percona.com": 1,
"PostgresCluster.postgres-operator.crunchydata.com": 1,
"PGAdmin.upstream.pgv2.percona.com": 1,
"PGUpgrade.upstream.pgv2.percona.com": 1,
"PerconaPGBackup.pgv2.percona.com": 1,
"PerconaPGCluster.pgv2.percona.com": 1,
"PerconaPGRestore.pgv2.percona.com": 1,
"PerconaPGUpgrade.pgv2.percona.com": 1,
"PostgresCluster.upstream.pgv2.percona.com": 1,
})
}
})
Expand All @@ -143,13 +143,13 @@ func TestInitManager(t *testing.T) {
assert.NilError(t, err)
assert.DeepEqual(t, options.Controller.GroupKindConcurrency,
map[string]int{
"PGAdmin.postgres-operator.crunchydata.com": 19,
"PGUpgrade.postgres-operator.crunchydata.com": 19,
"PerconaPGBackup.pgv2.percona.com": 19,
"PerconaPGCluster.pgv2.percona.com": 19,
"PerconaPGRestore.pgv2.percona.com": 19,
"PerconaPGUpgrade.pgv2.percona.com": 19,
"PostgresCluster.postgres-operator.crunchydata.com": 19,
"PGAdmin.upstream.pgv2.percona.com": 19,
"PGUpgrade.upstream.pgv2.percona.com": 19,
"PerconaPGBackup.pgv2.percona.com": 19,
"PerconaPGCluster.pgv2.percona.com": 19,
"PerconaPGRestore.pgv2.percona.com": 19,
"PerconaPGUpgrade.pgv2.percona.com": 19,
"PostgresCluster.upstream.pgv2.percona.com": 19,
})
})
})
Expand Down
Loading
Loading