Skip to content

chore(toposerver): always delete topo PVCs with cluster - #555

Open
niconosenzo wants to merge 1 commit into
multigres:mainfrom
niconosenzo:cleanup-topo-volumes
Open

chore(toposerver): always delete topo PVCs with cluster#555
niconosenzo wants to merge 1 commit into
multigres:mainfrom
niconosenzo:cleanup-topo-volumes

Conversation

@niconosenzo

@niconosenzo niconosenzo commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Topo etcd data is coordination state rebuilt on cluster creation, so retaining its PVCs after a MultigresCluster is deleted only leaves orphaned volumes behind.

What this change introduce, gate TopoServer deletion with a finalizer so rebuildable etcd volumes are removed when the owning MultigresCluster is terminating or gone. Reconcile deletion-timestamp transitions explicitly and preserve data-plane PVCs under Retain.

@niconosenzo
niconosenzo requested a review from a team as a code owner July 31, 2026 11:56
@github-actions

This comment has been minimized.

@niconosenzo
niconosenzo force-pushed the cleanup-topo-volumes branch from c280c75 to 1d455dd Compare July 31, 2026 12:02
@github-actions

This comment has been minimized.

@Verolop Verolop left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for tackling the orphaned PVCs. So happy we're finally at this stage 🥳
I left one lifecycle blocking comment, and a couple of small ones.

Comment thread pkg/resource-handler/controller/toposerver/statefulset.go Outdated
localTopo := localTopoSpec.DeepCopy()
// Merge hierarchy: Etcd -> local toposerver -> multigrescluster.
if localTopo != nil && localTopo.Etcd != nil {
localTopo.Etcd.PVCDeletionPolicy = multigresv1alpha1.MergePVCDeletionPolicy(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Switching the global topo to external currently deletes every TopoServer with the cluster label, including local ones, so with this change, that would also delete their PVCs. Could we scope that cleanup to the global TopoServer first? Could be a separate PR.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decided to not rely on the PVCDeletionPolicy for the topo PVCs, if the multigrescluster owner object has been deleted or will be deleted, we get rid of the PVC. Unless we have a reason to keep the volumes after that event ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed on deleting the topo PVCs when the MultigresCluster is deleted. I saw that the selector issue I mentioned is separate and already exists today, plus it's only for one specific case, so it does not need to block this PR :D

Comment thread test/e2e/dedicated/deletion/deletion_test.go
@niconosenzo
niconosenzo force-pushed the cleanup-topo-volumes branch from 1d455dd to 2138173 Compare July 31, 2026 16:31
@github-actions

This comment has been minimized.

@niconosenzo
niconosenzo force-pushed the cleanup-topo-volumes branch from 2138173 to 3ebe028 Compare July 31, 2026 16:37
@github-actions

This comment has been minimized.

@niconosenzo
niconosenzo force-pushed the cleanup-topo-volumes branch from 3ebe028 to ee9ec8d Compare July 31, 2026 17:03
@github-actions

This comment has been minimized.

@niconosenzo
niconosenzo force-pushed the cleanup-topo-volumes branch from ee9ec8d to 7f4b340 Compare August 3, 2026 09:55
@github-actions

This comment has been minimized.

@niconosenzo
niconosenzo force-pushed the cleanup-topo-volumes branch from 7f4b340 to 017d1c7 Compare August 3, 2026 10:36
@github-actions

This comment has been minimized.

@niconosenzo
niconosenzo force-pushed the cleanup-topo-volumes branch from 017d1c7 to d418f34 Compare August 3, 2026 10:41
@github-actions

This comment has been minimized.

@niconosenzo
niconosenzo requested a review from Verolop August 3, 2026 11:20
Gate TopoServer deletion with a finalizer so rebuildable etcd volumes
are removed when the owning MultigresCluster is terminating or gone.
Reconcile deletion-timestamp transitions explicitly and preserve
data-plane PVCs under Retain.

Signed-off-by: Nicolas Nosenzo <niconosenzo@gmail.com>
@niconosenzo
niconosenzo force-pushed the cleanup-topo-volumes branch from d418f34 to bbb8bd8 Compare August 3, 2026 11:21
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

🔬 Go Test Coverage Report

Summary

Coverage Type Result
Threshold 70%
Previous Test Coverage 76.7%
New Test Coverage 76.7%

Status

✅ PASS

Detail

Show New Coverage
github.com/multigres/multigres-operator/api/v1alpha1/cell_types.go:193:								init					100.0%
github.com/multigres/multigres-operator/api/v1alpha1/celltemplate_types.go:67:							init					100.0%
github.com/multigres/multigres-operator/api/v1alpha1/common_types.go:139:							IsEnabled				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/common_types.go:290:							ComponentCertSecretName			0.0%
github.com/multigres/multigres-operator/api/v1alpha1/common_types.go:297:							ComponentCertCommonName			0.0%
github.com/multigres/multigres-operator/api/v1alpha1/common_types.go:451:							MergePVCDeletionPolicy			0.0%
github.com/multigres/multigres-operator/api/v1alpha1/common_types.go:482:							MergeDurabilityPolicy			0.0%
github.com/multigres/multigres-operator/api/v1alpha1/common_types.go:491:							MergeBackupConfig			81.8%
github.com/multigres/multigres-operator/api/v1alpha1/coretemplate_types.go:68:							init					100.0%
github.com/multigres/multigres-operator/api/v1alpha1/multigrescluster_types.go:651:						init					100.0%
github.com/multigres/multigres-operator/api/v1alpha1/observability_helpers.go:37:						BuildOTELEnvVars			100.0%
github.com/multigres/multigres-operator/api/v1alpha1/observability_helpers.go:43:						BuildOTELEnvVarsWithResourceAttributes	91.1%
github.com/multigres/multigres-operator/api/v1alpha1/observability_helpers.go:132:						buildOTELResourceAttributes		92.9%
github.com/multigres/multigres-operator/api/v1alpha1/observability_helpers.go:161:						filterOTELResourceAttributes		85.7%
github.com/multigres/multigres-operator/api/v1alpha1/observability_helpers.go:183:						splitOTELResourceAttributes		100.0%
github.com/multigres/multigres-operator/api/v1alpha1/observability_helpers.go:206:						BuildOTELSamplingVolume			0.0%
github.com/multigres/multigres-operator/api/v1alpha1/observability_helpers.go:231:						envOrCRD				100.0%
github.com/multigres/multigres-operator/api/v1alpha1/shard_types.go:322:							init					100.0%
github.com/multigres/multigres-operator/api/v1alpha1/shardtemplate_types.go:83:							init					100.0%
github.com/multigres/multigres-operator/api/v1alpha1/tablegroup_types.go:204:							init					100.0%
github.com/multigres/multigres-operator/api/v1alpha1/toposerver_types.go:245:							init					100.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:14:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:19:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:29:						DeepCopyInto				64.7%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:54:						DeepCopy				80.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:64:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:69:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:79:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:88:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:98:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:106:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:121:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:131:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:141:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:151:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:167:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:177:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:191:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:201:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:209:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:224:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:234:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:269:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:279:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:291:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:301:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:306:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:316:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:324:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:334:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:342:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:356:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:366:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:374:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:394:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:404:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:414:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:424:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:429:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:439:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:445:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:455:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:463:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:473:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:481:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:495:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:505:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:513:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:533:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:543:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:560:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:570:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:575:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:585:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:602:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:612:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:629:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:639:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:656:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:666:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:676:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:686:						DeepCopyInto				100.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:692:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:702:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:707:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:717:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:722:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:732:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:752:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:762:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:772:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:782:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:797:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:807:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:817:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:827:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:837:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:847:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:856:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:866:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:874:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:888:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:898:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:906:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:979:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:989:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1030:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1040:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1056:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1066:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1076:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1086:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1091:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1101:						DeepCopyInto				100.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1106:						DeepCopy				80.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1116:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1128:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1138:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1178:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1188:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1193:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1203:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1208:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1218:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1238:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1248:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1253:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1263:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1268:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1278:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1287:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1297:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1305:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1325:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1335:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1345:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1355:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1378:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1388:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1402:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1412:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1420:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1442:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1452:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1480:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1490:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1560:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1570:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1598:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1608:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1616:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1626:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1634:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1648:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1658:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1666:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1693:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1703:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1733:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1743:						DeepCopyInto				40.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1753:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1763:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1772:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1782:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1790:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1812:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1822:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1836:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1846:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1854:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1913:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1923:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1935:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1945:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1950:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1960:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1969:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1979:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:1987:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:2001:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:2011:						DeepCopyObject				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:2019:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:2034:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:2044:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:2056:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:2066:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:2076:						DeepCopy				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:2086:						DeepCopyInto				0.0%
github.com/multigres/multigres-operator/api/v1alpha1/zz_generated.deepcopy.go:2091:						DeepCopy				0.0%
github.com/multigres/multigres-operator/cmd/multigres-gc/main.go:39:								init					0.0%
github.com/multigres/multigres-operator/cmd/multigres-gc/main.go:43:								main					0.0%
github.com/multigres/multigres-operator/cmd/multigres-gc/main.go:125:								registerCleankeepers			0.0%
github.com/multigres/multigres-operator/cmd/multigres-gc/main.go:131:								namespaceOrAll				0.0%
github.com/multigres/multigres-operator/cmd/multigres-operator/main.go:78:							init					0.0%
github.com/multigres/multigres-operator/cmd/multigres-operator/main.go:84:							main					0.0%
github.com/multigres/multigres-operator/cmd/multigres-operator/main.go:498:							certsExist				0.0%
github.com/multigres/multigres-operator/pkg/cert/generator.go:52:								WithExtKeyUsages			100.0%
github.com/multigres/multigres-operator/pkg/cert/generator.go:59:								WithOrganization			100.0%
github.com/multigres/multigres-operator/pkg/cert/generator.go:81:								GenerateCA				88.9%
github.com/multigres/multigres-operator/pkg/cert/generator.go:143:								GenerateServerCert			91.7%
github.com/multigres/multigres-operator/pkg/cert/generator.go:217:								ParseCA					100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:94:									componentName				100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:101:								organization				100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:108:								extKeyUsages				100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:125:								NewManager				100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:136:								Bootstrap				100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:151:								Start					100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:179:								reconcilePKI				100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:203:								ensureCA				96.8%
github.com/multigres/multigres-operator/pkg/cert/manager.go:283:								ensureServerCert			100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:403:								waitForProjection			100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:428:								setOwner				100.0%
github.com/multigres/multigres-operator/pkg/cert/manager.go:443:								emitEvent				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_cell.go:14:			BuildCell				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_global.go:33:			BuildGlobalTopoServer			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_global.go:94:			BuildMultiadminDeployment		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_global.go:253:			BuildMultiadminService			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_global.go:294:			BuildMultiadminWebDeployment		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_global.go:407:			BuildMultiadminWebService		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_global.go:465:			BuildMultigatewayGlobalService		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_global.go:529:			BuildMultigatewayGlobalReplicaService	100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_global.go:570:			postgresSuperuserOrDefault		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_tablegroup.go:14:		BuildTableGroup				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/builders_tablegroup.go:94:		buildCellTopologyLabels			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:58:			buildCertificate			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:79:			publicGatewayDNSNames			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:87:			buildInternalCertificates		91.7%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:146:			truncateCommonName			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:155:			buildCertificateFromSpec		87.5%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:197:			reconcileCertificate			85.7%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:270:			listCertificates			85.7%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:293:			findCertificateByName			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:309:			deleteOwnedCertificates			94.4%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:367:			isOwnedBy				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/certificate.go:381:			isNoMatchError				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/multigrescluster_controller.go:53:	Reconcile				96.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/multigrescluster_controller.go:317:	handleDeletion				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/multigrescluster_controller.go:367:	SetupWithManager			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/multigrescluster_controller.go:405:	projectRefOrGenerationChangedPredicate	72.7%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/multigrescluster_controller.go:435:	enqueueRequestsFromTemplate		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/multigrescluster_controller.go:462:	templateKindFromObject			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/multigrescluster_controller.go:478:	referencesTemplate			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/multigrescluster_controller.go:495:	collectResolvedTemplates		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/multigrescluster_controller.go:559:	collectTrackingLabels			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_cells.go:17:			reconcileCells				85.4%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_databases.go:17:		reconcileDatabases			87.5%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_global.go:26:			reconcileGlobalComponents		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_global.go:44:			reconcileGlobalTopoServer		81.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_global.go:105:		reconcileMultiadmin			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_global.go:162:		globalTopoRef				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_global.go:199:		reconcileMultiadminWeb			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_topology.go:47:		reconcileTopology			73.8%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_topology.go:182:		specCellNames				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_topology.go:190:		cellNamesToKeepInTopology		87.5%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_topology.go:222:		managedLocalTopoServerReady		73.3%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_topology.go:263:		openTopoStore				66.7%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_topology.go:276:		isPruningEnabled			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/reconcile_topology.go:287:		handleTopoUnavailable			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/status.go:22:				extractExternalEndpoint			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/status.go:42:				computeGatewayCondition			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/status.go:79:				computeAdminWebCondition		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/multigrescluster/status.go:113:				updateStatus				98.3%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/builders.go:14:				BuildShard				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/builders.go:84:				calculateTotalReplicas			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/reconcile_shards.go:20:			stepListChildShards			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/reconcile_shards.go:38:			stepApplyDesiredShards			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/reconcile_shards.go:89:			observedCleanupInProgress		85.7%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/reconcile_shards.go:106:			stepReconcileUndesired			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/reconcile_shards.go:166:			stepRequeueIfPending			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/status.go:19:					stepComputeStatus			97.8%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/status.go:112:				stepPatchStatus				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/steps.go:48:					Error					100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/steps.go:52:					Unwrap					100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/steps.go:56:					newStepError				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/steps.go:65:					continueStep				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/steps.go:69:					doneStep				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/steps.go:76:					runSteps				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/steps.go:93:					stepFetchTableGroup			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/steps.go:107:					stepHandlePendingDeletion		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/steps.go:119:					stepShortCircuitDeletion		100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/tablegroup_controller.go:39:			Reconcile				100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/tablegroup_controller.go:91:			withStepErrorHandling			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/tablegroup_controller.go:113:			handlePendingDeletion			96.3%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/tablegroup_controller.go:188:			setShardPendingDeletion			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/tablegroup_controller.go:203:			childShardSelector			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/tablegroup_controller.go:215:			SetupWithManager			100.0%
github.com/multigres/multigres-operator/pkg/cluster-handler/controller/tablegroup/tablegroup_controller.go:237:			projectRefOrGenerationChangedPredicate	72.7%
github.com/multigres/multigres-operator/pkg/data-handler/backuphealth/backuphealth.go:48:					Evaluate				92.9%
github.com/multigres/multigres-operator/pkg/data-handler/backuphealth/backuphealth.go:82:					EvaluateBackups				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/backuphealth/backuphealth.go:147:					ParseTime				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/backuphealth/backuphealth.go:160:					Apply					100.0%
github.com/multigres/multigres-operator/pkg/data-handler/drain/drain.go:37:							ExecuteDrainStateMachine		100.0%
github.com/multigres/multigres-operator/pkg/data-handler/drain/drain.go:255:							UpdateDrainState			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/drain/drain.go:274:							IsPrimaryTerminatingOrMissing		100.0%
github.com/multigres/multigres-operator/pkg/data-handler/drain/drain.go:298:							IsPrimaryDraining			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/drain/drain.go:325:							IsPrimaryNotReady			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/cell.go:18:							RegisterCell				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/cell.go:63:							cellMetadataFromTopoRefs		90.9%
github.com/multigres/multigres-operator/pkg/data-handler/topo/cell.go:99:							createOrUpdateCell			91.7%
github.com/multigres/multigres-operator/pkg/data-handler/topo/cell.go:129:							ManagedLocalTopoServerName		100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/cell.go:135:							ManagedLocalTopoServerAddress		100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/cell.go:140:							UnregisterCell				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/database.go:18:							RegisterDatabase			91.7%
github.com/multigres/multigres-operator/pkg/data-handler/topo/database.go:88:							UnregisterDatabase			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/database.go:129:							GetBackupLocation			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/database.go:169:							GetDurabilityPolicy			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/database.go:180:							buildDurabilityPolicy			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:35:							GetPoolerStatus				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:77:							matchPoolerToPod			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:90:							FindPrimaryPooler			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:124:							PoolerRoutingRole			66.7%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:133:							IsPrimaryPooler				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:138:							CollectCells				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:154:							ShardFilter				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:165:							PodMatchesPooler			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:174:							ForceUnregisterPod			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:210:							MarkDeadPoolers				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:276:							isLifecycleShutdown			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:284:							isLifecycleQuarantined			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/pooler.go:292:							poolerMatchesAnyActivePod		100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/store.go:18:							NewStoreFromShard			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/store.go:37:							NewStoreFromCell			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/store.go:57:							NewStoreFromRef				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/store.go:76:							IsTopoUnavailable			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/topology.go:21:							RegisterDatabaseFromSpec		96.8%
github.com/multigres/multigres-operator/pkg/data-handler/topo/topology.go:117:							RegisterCellFromSpec			100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/topology.go:160:							PruneDatabases				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/topology.go:207:							PruneCells				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/topology.go:253:							isNodeExists				100.0%
github.com/multigres/multigres-operator/pkg/data-handler/topo/topology.go:261:							isNoNode				100.0%
github.com/multigres/multigres-operator/pkg/gc/gc.go:28:									WithDefaults				0.0%
github.com/multigres/multigres-operator/pkg/gc/pvc/pvc.go:38:									New					100.0%
github.com/multigres/multigres-operator/pkg/gc/pvc/pvc.go:46:									Kind					0.0%
github.com/multigres/multigres-operator/pkg/gc/pvc/pvc.go:48:									Clean					84.6%
github.com/multigres/multigres-operator/pkg/gc/pvc/pvc.go:82:									processPVC				89.7%
github.com/multigres/multigres-operator/pkg/gc/pvc/pvc.go:135:									buildSelector				71.4%
github.com/multigres/multigres-operator/pkg/monitoring/metrics.go:112:								init					100.0%
github.com/multigres/multigres-operator/pkg/monitoring/metrics.go:131:								Collectors				100.0%
github.com/multigres/multigres-operator/pkg/monitoring/recorder.go:7:								SetClusterInfo				100.0%
github.com/multigres/multigres-operator/pkg/monitoring/recorder.go:16:								SetClusterTopology			100.0%
github.com/multigres/multigres-operator/pkg/monitoring/recorder.go:22:								SetCellGatewayReplicas			100.0%
github.com/multigres/multigres-operator/pkg/monitoring/recorder.go:28:								SetShardPoolReplicas			100.0%
github.com/multigres/multigres-operator/pkg/monitoring/recorder.go:36:								SetPoolPodsDrifted			100.0%
github.com/multigres/multigres-operator/pkg/monitoring/recorder.go:41:								SetTopoServerReplicas			100.0%
github.com/multigres/multigres-operator/pkg/monitoring/recorder.go:47:								RecordWebhookRequest			100.0%
github.com/multigres/multigres-operator/pkg/monitoring/recorder.go:57:								SetLastBackupAge			100.0%
github.com/multigres/multigres-operator/pkg/monitoring/recorder.go:62:								IncrementDrainOperations		100.0%
github.com/multigres/multigres-operator/pkg/monitoring/recorder.go:67:								SetRollingUpdateInProgress		100.0%
github.com/multigres/multigres-operator/pkg/monitoring/tracing.go:50:								InitTracing				100.0%
github.com/multigres/multigres-operator/pkg/monitoring/tracing.go:92:								StartReconcileSpan			100.0%
github.com/multigres/multigres-operator/pkg/monitoring/tracing.go:108:								StartChildSpan				100.0%
github.com/multigres/multigres-operator/pkg/monitoring/tracing.go:114:								RecordSpanError				100.0%
github.com/multigres/multigres-operator/pkg/monitoring/tracing.go:125:								InjectTraceContext			100.0%
github.com/multigres/multigres-operator/pkg/monitoring/tracing.go:154:								ExtractTraceContext			100.0%
github.com/multigres/multigres-operator/pkg/monitoring/tracing.go:187:								EnrichLoggerWithTrace			100.0%
github.com/multigres/multigres-operator/pkg/resolver/cell.go:15:								ResolveCell				100.0%
github.com/multigres/multigres-operator/pkg/resolver/cell.go:47:								ResolveCellTemplate			100.0%
github.com/multigres/multigres-operator/pkg/resolver/cell.go:87:								mergeCellConfig				100.0%
github.com/multigres/multigres-operator/pkg/resolver/cluster.go:15:								PopulateClusterDefaults			100.0%
github.com/multigres/multigres-operator/pkg/resolver/cluster.go:179:								ResolveGlobalTopo			100.0%
github.com/multigres/multigres-operator/pkg/resolver/cluster.go:242:								ResolveMultiadmin			100.0%
github.com/multigres/multigres-operator/pkg/resolver/cluster.go:280:								ResolveMultiadminWeb			100.0%
github.com/multigres/multigres-operator/pkg/resolver/cluster.go:318:								ResolveCoreTemplate			100.0%
github.com/multigres/multigres-operator/pkg/resolver/cluster.go:354:								mergeEtcdSpec				100.0%
github.com/multigres/multigres-operator/pkg/resolver/defaults.go:78:								DefaultResourcesAdmin			100.0%
github.com/multigres/multigres-operator/pkg/resolver/defaults.go:91:								DefaultResourcesEtcd			100.0%
github.com/multigres/multigres-operator/pkg/resolver/defaults.go:104:								DefaultResourcesGateway			100.0%
github.com/multigres/multigres-operator/pkg/resolver/defaults.go:117:								DefaultResourcesOrch			100.0%
github.com/multigres/multigres-operator/pkg/resolver/defaults.go:130:								DefaultResourcesPostgres		100.0%
github.com/multigres/multigres-operator/pkg/resolver/defaults.go:143:								DefaultResourcesPooler			100.0%
github.com/multigres/multigres-operator/pkg/resolver/defaults.go:156:								DefaultResourcesAdminWeb		100.0%
github.com/multigres/multigres-operator/pkg/resolver/resolver.go:21:								NewResolver				100.0%
github.com/multigres/multigres-operator/pkg/resolver/resolver.go:38:								mergeStatelessSpec			100.0%
github.com/multigres/multigres-operator/pkg/resolver/resolver.go:70:								mergePodPlacementSpec			100.0%
github.com/multigres/multigres-operator/pkg/resolver/resolver.go:83:								isResourcesZero				100.0%
github.com/multigres/multigres-operator/pkg/resolver/resolver.go:92:								defaultEtcdSpec				100.0%
github.com/multigres/multigres-operator/pkg/resolver/resolver.go:114:								defaultExternalTopoSpec			100.0%
github.com/multigres/multigres-operator/pkg/resolver/resolver.go:127:								defaultStatelessSpec			100.0%
github.com/multigres/multigres-operator/pkg/resolver/shard.go:23:								ResolveShard				100.0%
github.com/multigres/multigres-operator/pkg/resolver/shard.go:110:								ResolveShardTemplate			100.0%
github.com/multigres/multigres-operator/pkg/resolver/shard.go:145:								mergeShardConfig			100.0%
github.com/multigres/multigres-operator/pkg/resolver/shard.go:236:								mergeMultiorchSpec			100.0%
github.com/multigres/multigres-operator/pkg/resolver/shard.go:247:								mergePoolSpec				96.2%
github.com/multigres/multigres-operator/pkg/resolver/shard.go:292:								defaultPoolSpec				100.0%
github.com/multigres/multigres-operator/pkg/resolver/shard.go:307:								defaultBackupConfig			100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:30:								ValidateCoreTemplateReference		100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:53:								CoreTemplateExists			100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:73:								ValidateCellTemplateReference		100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:96:								CellTemplateExists			100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:116:								ValidateShardTemplateReference		100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:139:								ShardTemplateExists			100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:165:								ValidateClusterIntegrity		100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:238:								ValidateClusterLogic			98.5%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:649:								hasDefaultStorageClass			100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:666:								getEffectiveEtcdReplicas		100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:678:								effectiveDatabaseDurabilityPolicy	100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:697:								ValidatePoolName			100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:719:								validateResourceRequirements		100.0%
github.com/multigres/multigres-operator/pkg/resolver/validation.go:740:								validateCellTopology			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:49:				Reconcile				95.2%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:177:				reconcileMultigatewayDeployment		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:211:				reconcileMultigatewayService		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:245:				reconcileLocalTopoServer		85.7%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:301:				localTopoServerReady			80.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:333:				handlePendingDeletion			88.2%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:381:				ensureLocalTopoServerDeleted		75.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:392:				deleteOwnedLocalTopoServerIfExists	75.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:418:				deleteLocalTopoServerIfExists		66.7%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:450:				patchReadyForDeletionCondition		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:474:				patchLocalTopoServerWaitingStatus	88.9%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:515:				updateStatus				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:613:				setConditions				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:663:				SetupWithManager			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/cell_controller.go:684:				projectRefOrGenerationChangedPredicate	63.6%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/local_toposerver.go:16:				BuildLocalTopoServerName		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/local_toposerver.go:20:				hasManagedLocalTopoServer		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/local_toposerver.go:24:				isControlledByCell			83.3%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/local_toposerver.go:39:				BuildLocalTopoServer			90.9%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/multigateway.go:56:				BuildMultigatewayDeploymentName		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/multigateway.go:68:				BuildMultigatewayServiceName		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/multigateway.go:79:				BuildMultigatewayDeployment		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/multigateway.go:309:				BuildMultigatewayService		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/multigateway.go:366:				buildCellNodeSelector			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/cell/placement.go:9:					tolerationsFromPlacement		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/configmap.go:24:					BuildPgHbaConfigMap			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:126:				PgHbaConfigMapName			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:130:				postgresPasswordSecretRef		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:135:				buildSocketDirVolume			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:145:				buildPgHbaVolume			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:158:				buildPostgresPasswordVolume		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:180:				postgresPasswordVolumeMount		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:188:				shardTLSConfigured			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:192:				buildShardTLSVolume			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:209:				shardTLSVolumeMount			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:229:				buildPgctldSidecar			95.5%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:367:				buildPostgresExporterContainer		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:405:				BuildPoolServiceID			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:413:				buildMultipoolerContainer		96.2%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:567:				buildMultiorchContainer			93.3%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:654:				buildRuntimeOTELEnvVars			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:674:				buildPostgresConfigVolume		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:690:				buildPoolVolumes			91.7%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:723:				buildSharedBackupVolume			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:765:				buildPgBackRestCertVolume		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:838:				buildPgBackRestCipherKeyVolume		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:861:				pgPasswordFileEnvVar			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:870:				pgUserEnvVar				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:876:				postgresSuperuserOrDefault		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/containers.go:885:				s3EnvVars				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/drain_helpers.go:19:				resolvePodRole				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/drain_helpers.go:35:				countDrainedPods			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/drain_helpers.go:47:				clearDrainAnnotations			0.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/drain_helpers.go:60:				initiateDrain				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/labels.go:10:					buildPoolLabelsWithCell			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/multiorch.go:26:					BuildMultiorchDeployment		95.2%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/multiorch.go:103:					BuildMultiorchService			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/multiorch.go:134:					buildMultiorchNameWithCell		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/multiorch.go:154:					buildMultiorchLabelsWithCell		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/placement.go:9:					tolerationsFromPlacement		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pdb.go:19:					BuildPoolPodDisruptionBudget		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pod.go:34:					BuildPoolPodName			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pod.go:52:					BuildPoolPod				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pod.go:136:					buildPoolPodSecurityContext		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pod.go:159:					buildContainerSecurityContext		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pod.go:173:					buildHeadlessServiceName		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pod.go:196:					ComputeSpecHash				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pod.go:249:					hashContainers				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pod.go:288:					sortedKeys				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pvc.go:23:					BuildPoolDataPVCName			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pvc.go:45:					BuildPoolDataPVC			95.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pvc.go:103:					BuildSharedBackupPVCName		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_pvc.go:120:					BuildSharedBackupPVC			96.4%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_service.go:23:				BuildPoolHeadlessService		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/pool_service.go:58:				buildPoolHeadlessServiceName		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/ports.go:33:					buildMultipoolerContainerPorts		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/ports.go:55:					buildPoolHeadlessServicePorts		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/ports.go:86:					buildMultiorchContainerPorts		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/ports.go:102:					buildPostgresExporterContainerPorts	100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/ports.go:114:					buildMultiorchServicePorts		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_data_plane.go:25:			reconcileDataPlane			45.1%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_data_plane.go:127:			reconcilePodRoles			61.5%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_data_plane.go:189:			reconcileDrainState			45.8%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_data_plane.go:250:			isDrainStale				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_data_plane.go:302:			topoStore				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_data_plane.go:314:			reconcilePoolerPrune			75.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_data_plane.go:358:			hasPrimary				0.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_data_plane.go:370:			isPoolerPruningEnabled			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_deletion.go:40:				handleDeletion				76.9%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_deletion.go:152:			cleanupShardPVCs			73.3%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_deletion.go:217:			shardPVCShouldBeCleaned			42.9%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_deletion.go:237:			handlePendingDeletion			75.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_multiorch.go:15:			reconcileMultiorchDeployment		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_multiorch.go:50:			reconcileMultiorchService		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:29:			reconcilePoolPods			97.2%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:138:			createMissingResources			82.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:307:			isPodReady				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:324:			isPoolHealthy				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:348:			handleExternalDeletion			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:389:			handleScaleDown				97.8%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:511:			handleRollingUpdates			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:624:			selectPodToDrain			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:681:			syncDrainedLabels			55.6%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:714:			cleanupDrainedPod			95.5%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:790:			cleanupPodPVC				81.5%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:845:			countPoolCellPVCs			81.8%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:880:			podNeedsUpdate				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:913:			expandPVCIfNeeded			95.5%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:963:			pvcNeedsFilesystemResize		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_pool_pods.go:978:			resolvePodIndex				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_shared_infra.go:20:			reconcilePgHbaConfigMap			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_shared_infra.go:45:			reconcilePostgresPasswordSecret		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_shared_infra.go:53:			postgresPasswordSecretData		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_shared_infra.go:61:			postgresPasswordSecret			84.6%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_shared_infra.go:105:			reconcilePgBackRestCerts		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_shared_infra.go:159:			reconcileBackupCipherSecret		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_shared_infra.go:194:			reconcileSharedBackupPVC		91.7%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_shared_infra.go:243:			reconcilePoolPDB			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/reconcile_shared_infra.go:270:			reconcilePoolHeadlessService		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:60:				orphanByRemainingCount			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:81:				Reconcile				81.3%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:405:				reconcilePool				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:455:				getMultiorchCells			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:491:				getPoolCells				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:511:				ShouldDeletePVCOnShardRemoval		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:525:				ShouldDeleteShardLevelPVCOnRemoval	100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:534:				reconcilePVCOwnerRefs			55.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:621:				SetupWithManager			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:650:				computePostgresConfigHash		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/shard_controller.go:675:				enqueueFromPostgresConfigMap		87.5%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/status.go:23:					updateStatus				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/status.go:141:					updatePoolsStatus			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/status.go:235:					updateMultiorchStatus			96.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/status.go:294:					cellSetToSlice				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/status.go:304:					setConditions				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/storage_class_guard.go:31:			Error					0.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/storage_class_guard.go:35:			isMissingStorageClassDependency		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/storage_class_guard.go:40:			backupFilesystemStorageClassName	80.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/storage_class_guard.go:51:			validateStorageClassExists		77.8%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/storage_class_guard.go:70:			validateBackupStorageClassDependency	76.9%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/storage_class_guard.go:113:			validatePoolStorageClassDependencies	90.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/shard/storage_class_guard.go:170:			setStorageClassCondition		84.6%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/storage/pvc.go:17:					BuildPVCTemplate			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/container_env.go:13:				buildContainerEnv			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/container_env.go:41:				buildPodIdentityEnv			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/container_env.go:66:				buildEtcdConfigEnv			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/container_env.go:120:			buildEtcdClusterPeerList		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/ports.go:23:					buildContainerPorts			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/ports.go:56:					buildHeadlessServicePorts		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/ports.go:86:					buildClientServicePorts			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/reconcile_deletion.go:24:			handleDeletion				84.4%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/reconcile_deletion.go:131:			deleteTopoPVCs				71.4%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/service.go:17:				BuildHeadlessService			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/service.go:53:				BuildClientService			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/statefulset.go:38:				BuildStatefulSet			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/statefulset.go:149:				buildVolumeClaimTemplates		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/storage_class_guard.go:33:			Error					0.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/storage_class_guard.go:38:			isMissingStorageClassDependency		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/storage_class_guard.go:44:			validateStorageClassExists		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/storage_class_guard.go:61:			validateEtcdStorageClassDependency	93.3%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/storage_class_guard.go:114:			setStorageClassCondition		84.6%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/toposerver_controller.go:48:			Reconcile				98.5%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/toposerver_controller.go:187:		reconcileStatefulSet			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/toposerver_controller.go:221:		reconcileHeadlessService		100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/toposerver_controller.go:255:		reconcileClientService			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/toposerver_controller.go:289:		updateStatus				97.1%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/toposerver_controller.go:404:		setConditions				100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/toposerver_controller.go:435:		SetupWithManager			100.0%
github.com/multigres/multigres-operator/pkg/resource-handler/controller/toposerver/toposerver_controller.go:458:		generationOrDeletionChangedPredicate	57.1%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:17:								IgnoreMetaRuntimeFields			100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:55:								IgnoreServiceRuntimeFields		100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:75:								IgnoreStatefulSetRuntimeFields		100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:97:								IgnoreDeploymentRuntimeFields		100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:116:								IgnorePodSpecDefaults			100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:148:								IgnorePodSpecDefaultsExceptPullPolicy	100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:179:								IgnoreStatefulSetSpecDefaults		100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:191:								IgnoreDeploymentSpecDefaults		100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:204:								IgnoreProbeDefaults			100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:219:								filterByFieldName			100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:235:								IgnoreObjectMetaCompletely		100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:243:								IgnoreStatus				100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:249:								IgnorePVCRuntimeFields			100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:258:								CompareOptions				100.0%
github.com/multigres/multigres-operator/pkg/testutil/compare.go:267:								CompareSpecOnly				100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:29:								WithKubeconfig				100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:36:								WithCRDPaths				100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:57:								AddUser					100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:62:								getKubeconfigFromUserAdder		100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:87:								SetUpEnvtest				100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:148:								SetUpClient				100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:175:								SetUpManager				100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:206:								StartManager				100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:216:								startManager				100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:256:								SetUpEnvtestManager			100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:272:								createEnvtestEnvironment		100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:287:								startEnvtest				100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:302:								cleanEnvtest				100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:319:								createEnvtestDir			100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:333:								writeKubeconfigFile			100.0%
github.com/multigres/multigres-operator/pkg/testutil/envtest.go:343:								generateKubeconfigFile			100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:51:								NewFakeClientWithFailures		100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:61:								Get					100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:75:								List					100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:88:								Create					100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:101:							Update					100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:114:							Patch					100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:128:							Delete					100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:141:							DeleteAllOf				100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:154:							Status					100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:166:							Update					100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:179:							Patch					100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:196:							FailOnObjectName			100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:210:							FailOnKeyName				100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:220:							FailOnNamespacedKeyName			100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:230:							FailOnNamespace				100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:244:							AlwaysFail				100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:252:							FailKeyAfterNCalls			100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:265:							FailObjAfterNCalls			100.0%
github.com/multigres/multigres-operator/pkg/testutil/fake_client.go:278:							FailObjListAfterNCalls			100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:34:							Error					100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:84:							WithExtraResource			100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:92:							WithTimeout				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:100:							WithCmpOpts				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:108:							NewResourceWatcher			100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:146:							SetTimeout				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:152:							ResetTimeout				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:159:							SetCmpOpts				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:165:							ResetCmpOpts				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:175:							Events					100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:188:							EventCh					100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:198:							ForKind					100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:218:							ForName					100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:234:							Count					100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:243:							subscribe				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:257:							unsubscribe				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher.go:278:							extractKind				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_cache.go:16:						findLatestEvent				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_cache.go:34:						findLatestEventFor			100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_cache.go:57:						checkLatestEventMatches			100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_deletion.go:22:						Obj					100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_deletion.go:51:						WaitForDeletion				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_deletion.go:70:						waitForSingleDeletion			100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_listener.go:19:						collectEvents				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_listener.go:55:						sendEvent				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_match.go:46:						WaitForMatch				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_match.go:88:						waitForSingleMatch			100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_match.go:178:						waitForEvent				100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_match.go:213:						WaitForEventType			100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_match.go:261:						addEventHandlerToInformer		100.0%
github.com/multigres/multigres-operator/pkg/testutil/resource_watcher_match.go:285:						watchResource				100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:164:							BuildStandardLabels			100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:175:							AddCellLabel				100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:181:							AddClusterLabel				100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:187:							AddShardLabel				100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:196:							AddDatabaseLabel			100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:205:							AddTableGroupLabel			100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:214:							AddPoolLabel				100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:223:							AddZoneIDLabel				100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:232:							AddRegionLabel				100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:259:							GetSelectorLabels			100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/labels.go:273:							MergeLabels				100.0%
github.com/multigres/multigres-operator/pkg/util/metadata/project_ref.go:16:							ResolveProjectRef			100.0%
github.com/multigres/multigres-operator/pkg/util/name/name.go:103:								Hash					100.0%
github.com/multigres/multigres-operator/pkg/util/name/name.go:146:								JoinWithConstraints			100.0%
github.com/multigres/multigres-operator/pkg/util/name/name.go:209:								isLowercaseLetter			100.0%
github.com/multigres/multigres-operator/pkg/util/name/name.go:213:								isUppercaseLetter			100.0%
github.com/multigres/multigres-operator/pkg/util/name/name.go:217:								isDigit					100.0%
github.com/multigres/multigres-operator/pkg/util/name/name.go:221:								isLowercaseAlphanumeric			100.0%
github.com/multigres/multigres-operator/pkg/util/pvc/orphan.go:27:								MarkOrphan				95.5%
github.com/multigres/multigres-operator/pkg/util/pvc/orphan.go:78:								ClearOrphan				87.5%
github.com/multigres/multigres-operator/pkg/util/pvc/orphan.go:98:								HasOrphanLabel				100.0%
github.com/multigres/multigres-operator/pkg/util/pvc/retention.go:12:								BuildRetentionPolicy			100.0%
github.com/multigres/multigres-operator/pkg/util/status/conditions.go:9:							SetCondition				100.0%
github.com/multigres/multigres-operator/pkg/util/status/conditions.go:25:							IsConditionTrue				100.0%
github.com/multigres/multigres-operator/pkg/util/status/phase.go:30:								ComputePhase				100.0%
github.com/multigres/multigres-operator/pkg/util/status/phase.go:51:								IsCrashLooping				100.0%
github.com/multigres/multigres-operator/pkg/util/status/phase.go:56:								isContainerCrashLooping			100.0%
github.com/multigres/multigres-operator/pkg/util/status/phase.go:68:								AnyCrashLooping				100.0%
github.com/multigres/multigres-operator/pkg/util/status/phase.go:98:								ComputeWorkloadPhase			100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/defaulter.go:27:							NewMultigresClusterDefaulter		100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/defaulter.go:34:							Default					100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:36:							NewMultigresClusterValidator		100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:41:							ValidateCreate				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:49:							ValidateUpdate				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:68:							ValidateDelete				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:75:							validate				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:127:							validateTemplatesExist			100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:137:							validateLogic				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:148:							validateNoStorageShrink			90.5%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:191:							collectPoolStorageSizes			100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:219:							validateEtcdReplicasImmutable		100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:255:							effectiveEtcdReplicas			100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:284:							NewTemplateValidator			100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:289:							ValidateCreate				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:297:							ValidateUpdate				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:306:							validatePoolNames			100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:323:							ValidateDelete				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:368:							isTemplateInUse				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:432:							NewChildResourceValidator		100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:439:							ValidateCreate				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:447:							ValidateUpdate				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:455:							ValidateDelete				100.0%
github.com/multigres/multigres-operator/pkg/webhook/handlers/validator.go:462:							validate				100.0%
github.com/multigres/multigres-operator/pkg/webhook/pki.go:44:									PatchWebhookCABundle			100.0%
github.com/multigres/multigres-operator/pkg/webhook/pki.go:51:									patchMutatingWebhook			100.0%
github.com/multigres/multigres-operator/pkg/webhook/pki.go:97:									patchValidatingWebhook			100.0%
github.com/multigres/multigres-operator/pkg/webhook/pki.go:147:									HasCertAnnotation			100.0%
github.com/multigres/multigres-operator/pkg/webhook/pki.go:173:									FindOperatorDeployment			100.0%
github.com/multigres/multigres-operator/pkg/webhook/setup.go:21:								Setup					100.0%
total:																(statements)				76.7%

@Verolop Verolop left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for reworking this 💚

I left two lifecycle comments that need addressing before merge. One covers the case where the TopoServer is already gone before the cluster is deleted. The other covers the StatefulSet still deleting the PVC while the cluster is running.

I also left one smaller finalizer safety comment. The global/local selector issue already existed before this change, so I don’t consider that a blocker for this PR.

"github.com/multigres/multigres-operator/pkg/util/metadata"
)

// handleDeletion runs when a TopoServer is being deleted. It is gated by

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When a cluster switches from managed topo to external, this TopoServer is deleted while the cluster is still running. This handler keeps the PVC and removes the finalizer, which is right at that point, but if the cluster is deleted later, there is no TopoServer left to come back and remove that PVC. Kubernetes GC cannot help because the PVC has no cluster owner, and multigres-gc will not see it because it has no orphan-since label.
One way to deal with this is to make the PVC follow the MultigresCluster, not the TopoServer. Add the cluster as a non-controller owner of the PVC, so Kubernetes keeps it while that exact cluster exists and deletes it when the cluster is gone, but if you prefer explicit cleanup, put the finalizer on the MultigresCluster for the same reason.
One e2e test for this path should help too: start with managed topo and Retain, switch to external and confirm the PVC stays, then delete the cluster and confirm the PVC is removed, but this can be a separate pr later.

// k8s can finish deleting the TopoServer. Any error above returns
// early, leaving the finalizer in place so reconciliation retries.
if slices.Contains(toposerver.Finalizers, topoServerFinalizer) {
patch := client.MergeFrom(toposerver.DeepCopy())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small safety note: this patch replaces the whole finalizer list using the object we read earlier. If another finalizer is added at the same time, this patch can accidentally remove it.
You can fetch the latest TopoServer and use Update, or use MergeFromWithOptimisticLock, and make the same change where the finalizer is added.

Comment thread pkg/resource-handler/controller/toposerver/statefulset.go Outdated
localTopo := localTopoSpec.DeepCopy()
// Merge hierarchy: Etcd -> local toposerver -> multigrescluster.
if localTopo != nil && localTopo.Etcd != nil {
localTopo.Etcd.PVCDeletionPolicy = multigresv1alpha1.MergePVCDeletionPolicy(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed on deleting the topo PVCs when the MultigresCluster is deleted. I saw that the selector issue I mentioned is separate and already exists today, plus it's only for one specific case, so it does not need to block this PR :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants