From 1efe9cd72ca2a3887692689445da8814cf4cb4b5 Mon Sep 17 00:00:00 2001 From: Vladimir Sitnikov Date: Fri, 27 Mar 2026 15:06:54 +0300 Subject: [PATCH] fix: set ownerReferences in CreateServiceIfNotExists and CreateConfigMapIfNotExists These methods were missing ownerReferences, unlike their CreateOrUpdate counterparts. This caused operator-created services (e.g. pg-patroni-api, pg-patroni-ro) and config maps to be orphaned after helm uninstall, since Kubernetes garbage collector had no owner to cascade from. Co-Authored-By: Claude Opus 4.6 (1M context) --- operator/pkg/helper/resource_management.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/operator/pkg/helper/resource_management.go b/operator/pkg/helper/resource_management.go index 986c2ffe..6b67d452 100644 --- a/operator/pkg/helper/resource_management.go +++ b/operator/pkg/helper/resource_management.go @@ -756,6 +756,7 @@ func (rm *ResourceManager) CreateServiceIfNotExists(service *corev1.Service) err }, foundService) if err != nil && errors.IsNotFound(err) { logger.Info(fmt.Sprintf("Creating %s k8s service", service.Name)) + service.OwnerReferences = rm.GetOwnerReferences() service.Labels = rm.getLabels(service.ObjectMeta) err = rm.kubeClient.Create(context.TODO(), service) if err != nil { @@ -775,6 +776,7 @@ func (rm *ResourceManager) CreateConfigMapIfNotExists(cm *corev1.ConfigMap) erro }, foundCm) if err != nil && errors.IsNotFound(err) { logger.Info(fmt.Sprintf("Creating %s configMap", cm.Name)) + cm.OwnerReferences = rm.GetOwnerReferences() cm.Labels = rm.getLabels(cm.ObjectMeta) err = rm.kubeClient.Create(context.TODO(), cm) if err != nil {