Skip to content

Commit a8ba3e5

Browse files
fix: authentication fails with custom sa (#1264)
When using custom service account, the `KAGENT_NAME` env var will be set as the name of the service account which is not the agent name, and causes issue when used as the `X-Agent-Name` header for authentication. --------- Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
1 parent 69f0f21 commit a8ba3e5

26 files changed

Lines changed: 39 additions & 124 deletions

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -351,10 +351,8 @@ func (a *adkApiTranslator) buildManifest(
351351
},
352352
},
353353
corev1.EnvVar{
354-
Name: "KAGENT_NAME",
355-
ValueFrom: &corev1.EnvVarSource{
356-
FieldRef: &corev1.ObjectFieldSelector{FieldPath: "spec.serviceAccountName"},
357-
},
354+
Name: "KAGENT_NAME",
355+
Value: agent.Name,
358356
},
359357
corev1.EnvVar{
360358
Name: "KAGENT_URL",

go/internal/controller/translator/agent/adk_api_translator_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,19 @@ func Test_AdkApiTranslator_ServiceAccountNameOverride(t *testing.T) {
580580
} else {
581581
assert.Nil(t, serviceAccount, "ServiceAccount should NOT be created when using custom override")
582582
}
583+
584+
// Verify KAGENT_NAME env var
585+
var kagentNameEnv string
586+
for _, env := range deployment.Spec.Template.Spec.Containers[0].Env {
587+
if env.Name == "KAGENT_NAME" {
588+
if env.Value != "" {
589+
kagentNameEnv = env.Value
590+
} else if env.ValueFrom != nil && env.ValueFrom.FieldRef != nil {
591+
kagentNameEnv = "Ref:" + env.ValueFrom.FieldRef.FieldPath
592+
}
593+
}
594+
}
595+
assert.Equal(t, tt.agent.Name, kagentNameEnv, "KAGENT_NAME env var should be the agent name")
583596
})
584597
}
585598
}

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -182,11 +182,7 @@
182182
},
183183
{
184184
"name": "KAGENT_NAME",
185-
"valueFrom": {
186-
"fieldRef": {
187-
"fieldPath": "spec.serviceAccountName"
188-
}
189-
}
185+
"value": "agent"
190186
},
191187
{
192188
"name": "KAGENT_URL",

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,7 @@
174174
},
175175
{
176176
"name": "KAGENT_NAME",
177-
"valueFrom": {
178-
"fieldRef": {
179-
"fieldPath": "spec.serviceAccountName"
180-
}
181-
}
177+
"value": "agent-with-code"
182178
},
183179
{
184180
"name": "KAGENT_URL",

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,7 @@
187187
},
188188
{
189189
"name": "KAGENT_NAME",
190-
"valueFrom": {
191-
"fieldRef": {
192-
"fieldPath": "spec.serviceAccountName"
193-
}
194-
}
190+
"value": "source-agent"
195191
},
196192
{
197193
"name": "KAGENT_URL",

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,7 @@
142142
},
143143
{
144144
"name": "KAGENT_NAME",
145-
"valueFrom": {
146-
"fieldRef": {
147-
"fieldPath": "spec.serviceAccountName"
148-
}
149-
}
145+
"value": "agent-with-custom-sa"
150146
},
151147
{
152148
"name": "KAGENT_URL",

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,7 @@
181181
},
182182
{
183183
"name": "KAGENT_NAME",
184-
"valueFrom": {
185-
"fieldRef": {
186-
"fieldPath": "spec.serviceAccountName"
187-
}
188-
}
184+
"value": "agent"
189185
},
190186
{
191187
"name": "KAGENT_URL",

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -177,11 +177,7 @@
177177
},
178178
{
179179
"name": "KAGENT_NAME",
180-
"valueFrom": {
181-
"fieldRef": {
182-
"fieldPath": "spec.serviceAccountName"
183-
}
184-
}
180+
"value": "agent"
185181
},
186182
{
187183
"name": "KAGENT_URL",

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,7 @@
175175
},
176176
{
177177
"name": "KAGENT_NAME",
178-
"valueFrom": {
179-
"fieldRef": {
180-
"fieldPath": "spec.serviceAccountName"
181-
}
182-
}
178+
"value": "parent-agent"
183179
},
184180
{
185181
"name": "KAGENT_URL",

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,7 @@
187187
},
188188
{
189189
"name": "KAGENT_NAME",
190-
"valueFrom": {
191-
"fieldRef": {
192-
"fieldPath": "spec.serviceAccountName"
193-
}
194-
}
190+
"value": "agent-with-proxy"
195191
},
196192
{
197193
"name": "KAGENT_URL",

0 commit comments

Comments
 (0)