Skip to content

Commit 7934900

Browse files
chore: remove managed-by label from kro instances (#997)
* chore: remove managed-by label from kro instances * chore: remove managed-by label from kro instances Co-authored-by: Jakob Möller <contact@jakob-moeller.com> * chore: remove managed-by label from kro instances --------- Co-authored-by: Jakob Möller <contact@jakob-moeller.com>
1 parent cb38337 commit 7934900

File tree

4 files changed

+32
-8
lines changed

4 files changed

+32
-8
lines changed

pkg/controller/instance/resources.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,13 @@ func (c *Controller) applyDecoratorLabels(
399399
// Merge tool labels from labeler. On conflict (duplicate keys), log and use
400400
// instance labels only - this avoids panic from nil dereference.
401401
instanceLabeler := metadata.NewInstanceLabeler(rcx.Instance)
402-
toolLabels, err := instanceLabeler.Merge(rcx.Labeler)
402+
nodeLabeler := metadata.NewNodeLabeler()
403+
merged, err := instanceLabeler.Merge(nodeLabeler)
404+
if err != nil {
405+
rcx.Log.V(1).Info("label merge conflict between instance and node labeler, using instance labels only", "error", err)
406+
merged = instanceLabeler
407+
}
408+
toolLabels, err := merged.Merge(rcx.Labeler)
403409
if err != nil {
404410
rcx.Log.V(1).Info("label merge conflict, using instance labels only", "error", err)
405411
toolLabels = instanceLabeler

pkg/metadata/labels.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,16 +176,23 @@ func NewInstanceLabeler(instance *unstructured.Unstructured) GenericLabeler {
176176
}
177177
}
178178

179-
// NewKROMetaLabeler returns a new labeler that sets the OwnedLabel,
180-
// KROVersion, and ManagedBy labels on a resource.
181-
func NewKROMetaLabeler() GenericLabeler {
179+
// NewNodeLabeler returns a new labeler for child resources
180+
// Only includes app.kubernetes.io/managed-by label, as other labels come from the parent labeler.
181+
func NewNodeLabeler() GenericLabeler {
182182
return map[string]string{
183-
OwnedLabel: "true",
184-
KROVersionLabel: safeVersion(version.GetVersionInfo().GitVersion),
185183
ManagedByLabelKey: ManagedByKROValue,
186184
}
187185
}
188186

187+
// NewKROMetaLabeler returns a new labeler that sets the OwnedLabel, and
188+
// KROVersion labels on a resource.
189+
func NewKROMetaLabeler() GenericLabeler {
190+
return map[string]string{
191+
OwnedLabel: "true",
192+
KROVersionLabel: safeVersion(version.GetVersionInfo().GitVersion),
193+
}
194+
}
195+
189196
// NewCollectionItemLabeler returns a new labeler that sets collection-specific
190197
// labels on a resource that is part of a collection (forEach expansion).
191198
// - node-id: the resource ID from the RGD (e.g "workerPods")

pkg/metadata/labels_test.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,8 +272,16 @@ func TestNewKROMetaLabeler(t *testing.T) {
272272
t.Run("NewKROMetaLabeler", func(t *testing.T) {
273273
labeler := NewKROMetaLabeler()
274274
assert.Equal(t, GenericLabeler{
275-
OwnedLabel: "true",
276-
KROVersionLabel: version.GetVersionInfo().GitVersion,
275+
OwnedLabel: "true",
276+
KROVersionLabel: version.GetVersionInfo().GitVersion,
277+
}, labeler)
278+
})
279+
}
280+
281+
func TestNewNodeLabeler(t *testing.T) {
282+
t.Run("NewNodeLabeler", func(t *testing.T) {
283+
labeler := NewNodeLabeler()
284+
assert.Equal(t, GenericLabeler{
277285
ManagedByLabelKey: ManagedByKROValue,
278286
}, labeler)
279287
})

test/integration/suites/core/annotation_label_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ var _ = Describe("Labels and Annotations", func() {
139139
HaveKeyWithValue(metadata.ResourceGraphDefinitionNameLabel, rgd.GetName()),
140140
), "default kro labels should also be present")
141141

142+
g.Expect(instance.GetLabels()).ToNot(HaveKey(metadata.ManagedByLabelKey),
143+
"instance should not have app.kubernetes.io/managed-by label it may be used by other application lifecycle tooling")
144+
142145
}, 10*time.Second, time.Second).WithContext(ctx).Should(Succeed())
143146

144147
cfgMap := &corev1.ConfigMap{}

0 commit comments

Comments
 (0)