percona / percona-postgresql-operator

Percona Operator for PostgreSQL
https://www.percona.com/doc/kubernetes-operator-for-postgresql/index.html
Apache License 2.0
254 stars 50 forks source link

K8SPG-531: remove error on cluster creation #746

Closed pooknull closed 2 months ago

pooknull commented 2 months ago

K8SPG-531 Powered by Pull Request Badge

https://perconadev.atlassian.net/browse/K8SPG-531

DESCRIPTION

Problem: Sometimes after the creation of the cluster, the operator has the following error in the logs:

2024-03-18T10:12:47.525Z    ERROR   Reconciler error    {"controller": "perconapgcluster", "controllerGroup": "pgv2.percona.com", "controllerKind": "PerconaPGCluster", "PerconaPGCluster": {"name":"test-pg-db","namespace":"test2"}, "namespace": "test2", "name": "test-pg-db", "reconcileID": "5060d1b6-b7d7-42db-ba50-5b8d44d216cc", "error": "get PostgresCluster: PostgresCluster.postgres-operator.crunchydata.com \"test-pg-db\" not found", "errorVerbose": "PostgresCluster.postgres-operator.crunchydata.com \"test-pg-db\" not found\nget PostgresCluster\ngithub.com/percona/percona-postgresql-operator/percona/controller/pgcluster.(*PGClusterReconciler).Reconcile\n\t/go/src/github.com/percona/percona-postgresql-operator/percona/controller/pgcluster/controller.go:245\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:119\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:316\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:266\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:227\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1650"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:227

Cause: Operator tries to get the cluster immediately after creating it and fails. On the next reconcile everything is fine.

Solution: The operator should not attempt to retrieve the cluster immediately after creation.

CHECKLIST

Jira

Tests

Config/Logging/Testability

JNKPercona commented 2 months ago
Test name Status
custom-extensions passed
demand-backup passed
init-deploy passed
monitoring passed
operator-self-healing passed
scaling passed
scheduled-backup passed
self-healing passed
start-from-backup passed
telemetry-transfer passed
upgrade-minor passed
users passed
We run 12 out of 12

commit: https://github.com/percona/percona-postgresql-operator/pull/746/commits/151ab2bcaf485b452d93255621a4221bf1154d19 image: perconalab/percona-postgresql-operator:PR-746-151ab2bca