Skip to content

Commit ca556a4

Browse files
authored
Merge pull request #1163 from keynslug/fix/ownership
fix(config): avoid losing ownerRef on update
2 parents 840696a + 0f4da94 commit ca556a4

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

internal/controller/sync_emqx_config.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ func (s *syncConfig) reconcile(r *reconcileRound, instance *crdv2.EMQX) subResul
4040
if err := ctrl.SetControllerReference(instance, configMap, s.Scheme); err != nil {
4141
return subResult{err: emperror.Wrap(err, "failed to set controller reference for configMap")}
4242
}
43+
r.log.V(1).Info("creating config resource", "configMap", klog.KObj(configMap))
4344
if err := s.Client.Create(r.ctx, configMap); err != nil {
4445
return subResult{err: emperror.Wrap(err, "failed to create configMap")}
4546
}
@@ -53,6 +54,9 @@ func (s *syncConfig) reconcile(r *reconcileRound, instance *crdv2.EMQX) subResul
5354
// Assuming the config is valid, otherwise master controller would bail out.
5455
if configMap.Data[resources.BaseConfigFile] != confWithDefaults {
5556
configMap = resource.ConfigMap(confWithDefaults)
57+
if err := ctrl.SetControllerReference(instance, configMap, s.Scheme); err != nil {
58+
return subResult{err: emperror.Wrap(err, "failed to set controller reference for configMap")}
59+
}
5660
r.log.V(1).Info("updating config resource", "configMap", klog.KObj(configMap))
5761
if err := s.Client.Update(r.ctx, configMap); err != nil {
5862
return subResult{err: emperror.Wrap(err, "failed to update configMap")}

internal/handler/handler.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
k8sErrors "k8s.io/apimachinery/pkg/api/errors"
1616
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
1717
"k8s.io/apimachinery/pkg/runtime"
18+
"k8s.io/klog/v2"
1819
ctrl "sigs.k8s.io/controller-runtime"
1920
"sigs.k8s.io/controller-runtime/pkg/client"
2021
"sigs.k8s.io/controller-runtime/pkg/manager"
@@ -73,6 +74,7 @@ func (handler *Handler) CreateOrUpdate(ctx context.Context, scheme *runtime.Sche
7374
err := handler.Client.Get(ctx, client.ObjectKeyFromObject(obj), u)
7475
if err != nil {
7576
if k8sErrors.IsNotFound(err) {
77+
logger.V(1).Info("creating managed resource", "resource", klog.KObj(obj))
7678
return handler.Create(ctx, obj)
7779
}
7880
return emperror.Wrapf(err, "failed to get %s %s", obj.GetObjectKind().GroupVersionKind().Kind, obj.GetName())
@@ -142,7 +144,7 @@ func (handler *Handler) CreateOrUpdate(ctx context.Context, scheme *runtime.Sche
142144
return emperror.Wrapf(err, "failed to calculate patch for %s %s", obj.GetObjectKind().GroupVersionKind().Kind, obj.GetName())
143145
}
144146
if !patchResult.IsEmpty() {
145-
logger.Info("Will update EMQX sub-resource", "sub-resource", obj.GetObjectKind().GroupVersionKind().GroupKind().String(), "name", obj.GetName(), "patch", string(patchResult.Patch))
147+
logger.V(1).Info("updating managed resource", "resource", klog.KObj(obj), "patch", string(patchResult.Patch))
146148
return handler.Update(ctx, obj)
147149
}
148150
return nil

0 commit comments

Comments
 (0)