Skip to content

Commit e87058c

Browse files
EItanyaCopilot
andauthored
add common k8s labels kagent-dev#1028 (kagent-dev#1032)
Add common k8s labels resolves kagent-dev#1028 --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 87dbb78 commit e87058c

9 files changed

Lines changed: 134 additions & 3 deletions

go/internal/controller/translator/agent/adk_api_translator.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/kagent-dev/kagent/go/api/v1alpha1"
1717
"github.com/kagent-dev/kagent/go/api/v1alpha2"
1818
"github.com/kagent-dev/kagent/go/internal/adk"
19+
"github.com/kagent-dev/kagent/go/internal/controller/translator/labels"
1920
"github.com/kagent-dev/kagent/go/internal/utils"
2021
"github.com/kagent-dev/kagent/go/internal/version"
2122
"github.com/kagent-dev/kagent/go/pkg/translator"
@@ -268,7 +269,7 @@ func (a *adkApiTranslator) buildManifest(
268269
}
269270

270271
selectorLabels := map[string]string{
271-
"app": "kagent",
272+
"app": labels.ManagedByKagent,
272273
"kagent": agent.Name,
273274
}
274275
podLabels := func() map[string]string {
@@ -1070,6 +1071,16 @@ func getDefaultResources(spec *corev1.ResourceRequirements) corev1.ResourceRequi
10701071
return *spec
10711072
}
10721073

1074+
func getDefaultLabels(agentName string, incoming map[string]string) map[string]string {
1075+
defaultLabels := map[string]string{
1076+
labels.AppManagedBy: labels.ManagedByKagent,
1077+
labels.AppPartOf: labels.ManagedByKagent,
1078+
labels.AppName: agentName,
1079+
}
1080+
maps.Copy(defaultLabels, incoming)
1081+
return defaultLabels
1082+
}
1083+
10731084
func (a *adkApiTranslator) resolveInlineDeployment(agent *v1alpha2.Agent, mdd *modelDeploymentData) (*resolvedDeployment, error) {
10741085
// Defaults
10751086
port := int32(8080)
@@ -1119,7 +1130,7 @@ func (a *adkApiTranslator) resolveInlineDeployment(agent *v1alpha2.Agent, mdd *m
11191130
ImagePullSecrets: slices.Clone(spec.ImagePullSecrets),
11201131
Volumes: append(slices.Clone(spec.Volumes), mdd.Volumes...),
11211132
VolumeMounts: append(slices.Clone(spec.VolumeMounts), mdd.VolumeMounts...),
1122-
Labels: maps.Clone(spec.Labels),
1133+
Labels: getDefaultLabels(agent.Name, spec.Labels),
11231134
Annotations: maps.Clone(spec.Annotations),
11241135
Env: append(slices.Clone(spec.Env), mdd.EnvVars...),
11251136
Resources: getDefaultResources(spec.Resources), // Set default resources if not specified
@@ -1189,7 +1200,7 @@ func (a *adkApiTranslator) resolveByoDeployment(agent *v1alpha2.Agent) (*resolve
11891200
ImagePullSecrets: slices.Clone(spec.ImagePullSecrets),
11901201
Volumes: slices.Clone(spec.Volumes),
11911202
VolumeMounts: slices.Clone(spec.VolumeMounts),
1192-
Labels: maps.Clone(spec.Labels),
1203+
Labels: getDefaultLabels(agent.Name, spec.Labels),
11931204
Annotations: maps.Clone(spec.Annotations),
11941205
Env: slices.Clone(spec.Env),
11951206
Resources: getDefaultResources(spec.Resources), // Set default resources if not specified

go/internal/controller/translator/agent/testdata/outputs/agent_with_http_toolserver.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@
5050
"metadata": {
5151
"labels": {
5252
"app": "kagent",
53+
"app.kubernetes.io/managed-by": "kagent",
54+
"app.kubernetes.io/name": "agent",
55+
"app.kubernetes.io/part-of": "kagent",
5356
"kagent": "agent"
5457
},
5558
"name": "agent",
@@ -76,6 +79,9 @@
7679
"metadata": {
7780
"labels": {
7881
"app": "kagent",
82+
"app.kubernetes.io/managed-by": "kagent",
83+
"app.kubernetes.io/name": "agent",
84+
"app.kubernetes.io/part-of": "kagent",
7985
"kagent": "agent"
8086
},
8187
"name": "agent",
@@ -98,6 +104,9 @@
98104
"metadata": {
99105
"labels": {
100106
"app": "kagent",
107+
"app.kubernetes.io/managed-by": "kagent",
108+
"app.kubernetes.io/name": "agent",
109+
"app.kubernetes.io/part-of": "kagent",
101110
"kagent": "agent"
102111
},
103112
"name": "agent",
@@ -135,6 +144,9 @@
135144
},
136145
"labels": {
137146
"app": "kagent",
147+
"app.kubernetes.io/managed-by": "kagent",
148+
"app.kubernetes.io/name": "agent",
149+
"app.kubernetes.io/part-of": "kagent",
138150
"kagent": "agent"
139151
}
140152
},
@@ -258,6 +270,9 @@
258270
"metadata": {
259271
"labels": {
260272
"app": "kagent",
273+
"app.kubernetes.io/managed-by": "kagent",
274+
"app.kubernetes.io/name": "agent",
275+
"app.kubernetes.io/part-of": "kagent",
261276
"kagent": "agent"
262277
},
263278
"name": "agent",

go/internal/controller/translator/agent/testdata/outputs/agent_with_mcp_service.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
"metadata": {
4747
"labels": {
4848
"app": "kagent",
49+
"app.kubernetes.io/managed-by": "kagent",
50+
"app.kubernetes.io/name": "agent",
51+
"app.kubernetes.io/part-of": "kagent",
4952
"kagent": "agent"
5053
},
5154
"name": "agent",
@@ -72,6 +75,9 @@
7275
"metadata": {
7376
"labels": {
7477
"app": "kagent",
78+
"app.kubernetes.io/managed-by": "kagent",
79+
"app.kubernetes.io/name": "agent",
80+
"app.kubernetes.io/part-of": "kagent",
7581
"kagent": "agent"
7682
},
7783
"name": "agent",
@@ -94,6 +100,9 @@
94100
"metadata": {
95101
"labels": {
96102
"app": "kagent",
103+
"app.kubernetes.io/managed-by": "kagent",
104+
"app.kubernetes.io/name": "agent",
105+
"app.kubernetes.io/part-of": "kagent",
97106
"kagent": "agent"
98107
},
99108
"name": "agent",
@@ -131,6 +140,9 @@
131140
},
132141
"labels": {
133142
"app": "kagent",
143+
"app.kubernetes.io/managed-by": "kagent",
144+
"app.kubernetes.io/name": "agent",
145+
"app.kubernetes.io/part-of": "kagent",
134146
"kagent": "agent"
135147
}
136148
},
@@ -254,6 +266,9 @@
254266
"metadata": {
255267
"labels": {
256268
"app": "kagent",
269+
"app.kubernetes.io/managed-by": "kagent",
270+
"app.kubernetes.io/name": "agent",
271+
"app.kubernetes.io/part-of": "kagent",
257272
"kagent": "agent"
258273
},
259274
"name": "agent",

go/internal/controller/translator/agent/testdata/outputs/agent_with_nested_agent.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
"metadata": {
4545
"labels": {
4646
"app": "kagent",
47+
"app.kubernetes.io/managed-by": "kagent",
48+
"app.kubernetes.io/name": "parent-agent",
49+
"app.kubernetes.io/part-of": "kagent",
4750
"kagent": "parent-agent"
4851
},
4952
"name": "parent-agent",
@@ -70,6 +73,9 @@
7073
"metadata": {
7174
"labels": {
7275
"app": "kagent",
76+
"app.kubernetes.io/managed-by": "kagent",
77+
"app.kubernetes.io/name": "parent-agent",
78+
"app.kubernetes.io/part-of": "kagent",
7379
"kagent": "parent-agent"
7480
},
7581
"name": "parent-agent",
@@ -92,6 +98,9 @@
9298
"metadata": {
9399
"labels": {
94100
"app": "kagent",
101+
"app.kubernetes.io/managed-by": "kagent",
102+
"app.kubernetes.io/name": "parent-agent",
103+
"app.kubernetes.io/part-of": "kagent",
95104
"kagent": "parent-agent"
96105
},
97106
"name": "parent-agent",
@@ -129,6 +138,9 @@
129138
},
130139
"labels": {
131140
"app": "kagent",
141+
"app.kubernetes.io/managed-by": "kagent",
142+
"app.kubernetes.io/name": "parent-agent",
143+
"app.kubernetes.io/part-of": "kagent",
132144
"kagent": "parent-agent"
133145
}
134146
},
@@ -252,6 +264,9 @@
252264
"metadata": {
253265
"labels": {
254266
"app": "kagent",
267+
"app.kubernetes.io/managed-by": "kagent",
268+
"app.kubernetes.io/name": "parent-agent",
269+
"app.kubernetes.io/part-of": "kagent",
255270
"kagent": "parent-agent"
256271
},
257272
"name": "parent-agent",

go/internal/controller/translator/agent/testdata/outputs/agent_with_system_message_from_configmap.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
"metadata": {
3737
"labels": {
3838
"app": "kagent",
39+
"app.kubernetes.io/managed-by": "kagent",
40+
"app.kubernetes.io/name": "agent-with-configmap-system-message",
41+
"app.kubernetes.io/part-of": "kagent",
3942
"kagent": "agent-with-configmap-system-message"
4043
},
4144
"name": "agent-with-configmap-system-message",
@@ -62,6 +65,9 @@
6265
"metadata": {
6366
"labels": {
6467
"app": "kagent",
68+
"app.kubernetes.io/managed-by": "kagent",
69+
"app.kubernetes.io/name": "agent-with-configmap-system-message",
70+
"app.kubernetes.io/part-of": "kagent",
6571
"kagent": "agent-with-configmap-system-message"
6672
},
6773
"name": "agent-with-configmap-system-message",
@@ -84,6 +90,9 @@
8490
"metadata": {
8591
"labels": {
8692
"app": "kagent",
93+
"app.kubernetes.io/managed-by": "kagent",
94+
"app.kubernetes.io/name": "agent-with-configmap-system-message",
95+
"app.kubernetes.io/part-of": "kagent",
8796
"kagent": "agent-with-configmap-system-message"
8897
},
8998
"name": "agent-with-configmap-system-message",
@@ -121,6 +130,9 @@
121130
},
122131
"labels": {
123132
"app": "kagent",
133+
"app.kubernetes.io/managed-by": "kagent",
134+
"app.kubernetes.io/name": "agent-with-configmap-system-message",
135+
"app.kubernetes.io/part-of": "kagent",
124136
"kagent": "agent-with-configmap-system-message"
125137
}
126138
},
@@ -244,6 +256,9 @@
244256
"metadata": {
245257
"labels": {
246258
"app": "kagent",
259+
"app.kubernetes.io/managed-by": "kagent",
260+
"app.kubernetes.io/name": "agent-with-configmap-system-message",
261+
"app.kubernetes.io/part-of": "kagent",
247262
"kagent": "agent-with-configmap-system-message"
248263
},
249264
"name": "agent-with-configmap-system-message",

go/internal/controller/translator/agent/testdata/outputs/agent_with_system_message_from_secret.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
"metadata": {
3737
"labels": {
3838
"app": "kagent",
39+
"app.kubernetes.io/managed-by": "kagent",
40+
"app.kubernetes.io/name": "agent-with-secret-system-message",
41+
"app.kubernetes.io/part-of": "kagent",
3942
"kagent": "agent-with-secret-system-message"
4043
},
4144
"name": "agent-with-secret-system-message",
@@ -62,6 +65,9 @@
6265
"metadata": {
6366
"labels": {
6467
"app": "kagent",
68+
"app.kubernetes.io/managed-by": "kagent",
69+
"app.kubernetes.io/name": "agent-with-secret-system-message",
70+
"app.kubernetes.io/part-of": "kagent",
6571
"kagent": "agent-with-secret-system-message"
6672
},
6773
"name": "agent-with-secret-system-message",
@@ -84,6 +90,9 @@
8490
"metadata": {
8591
"labels": {
8692
"app": "kagent",
93+
"app.kubernetes.io/managed-by": "kagent",
94+
"app.kubernetes.io/name": "agent-with-secret-system-message",
95+
"app.kubernetes.io/part-of": "kagent",
8796
"kagent": "agent-with-secret-system-message"
8897
},
8998
"name": "agent-with-secret-system-message",
@@ -121,6 +130,9 @@
121130
},
122131
"labels": {
123132
"app": "kagent",
133+
"app.kubernetes.io/managed-by": "kagent",
134+
"app.kubernetes.io/name": "agent-with-secret-system-message",
135+
"app.kubernetes.io/part-of": "kagent",
124136
"kagent": "agent-with-secret-system-message"
125137
}
126138
},
@@ -244,6 +256,9 @@
244256
"metadata": {
245257
"labels": {
246258
"app": "kagent",
259+
"app.kubernetes.io/managed-by": "kagent",
260+
"app.kubernetes.io/name": "agent-with-secret-system-message",
261+
"app.kubernetes.io/part-of": "kagent",
247262
"kagent": "agent-with-secret-system-message"
248263
},
249264
"name": "agent-with-secret-system-message",

go/internal/controller/translator/agent/testdata/outputs/anthropic_agent.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
"metadata": {
3838
"labels": {
3939
"app": "kagent",
40+
"app.kubernetes.io/managed-by": "kagent",
41+
"app.kubernetes.io/name": "anthropic-agent",
42+
"app.kubernetes.io/part-of": "kagent",
4043
"kagent": "anthropic-agent"
4144
},
4245
"name": "anthropic-agent",
@@ -63,6 +66,9 @@
6366
"metadata": {
6467
"labels": {
6568
"app": "kagent",
69+
"app.kubernetes.io/managed-by": "kagent",
70+
"app.kubernetes.io/name": "anthropic-agent",
71+
"app.kubernetes.io/part-of": "kagent",
6672
"kagent": "anthropic-agent"
6773
},
6874
"name": "anthropic-agent",
@@ -85,6 +91,9 @@
8591
"metadata": {
8692
"labels": {
8793
"app": "kagent",
94+
"app.kubernetes.io/managed-by": "kagent",
95+
"app.kubernetes.io/name": "anthropic-agent",
96+
"app.kubernetes.io/part-of": "kagent",
8897
"kagent": "anthropic-agent"
8998
},
9099
"name": "anthropic-agent",
@@ -122,6 +131,9 @@
122131
},
123132
"labels": {
124133
"app": "kagent",
134+
"app.kubernetes.io/managed-by": "kagent",
135+
"app.kubernetes.io/name": "anthropic-agent",
136+
"app.kubernetes.io/part-of": "kagent",
125137
"kagent": "anthropic-agent"
126138
}
127139
},
@@ -245,6 +257,9 @@
245257
"metadata": {
246258
"labels": {
247259
"app": "kagent",
260+
"app.kubernetes.io/managed-by": "kagent",
261+
"app.kubernetes.io/name": "anthropic-agent",
262+
"app.kubernetes.io/part-of": "kagent",
248263
"kagent": "anthropic-agent"
249264
},
250265
"name": "anthropic-agent",

0 commit comments

Comments
 (0)