Skip to content

Commit 94be215

Browse files
EItanyaclaude
andauthored
fix(helm): rename helpers to avoid parent chart collision (#49)
Renames all helper templates from kagent.* to kagent-tools.* prefix to prevent naming conflicts with the parent kagent chart. When Helm renders subcharts, template definitions are global, causing the parent chart's helpers to override the subchart's helpers with the same names. This fixes: - Selector label mismatch when using nameOverride (was using parent's logic instead of subchart's fullname logic) - Helm upgrade failures due to immutable selector field changes - Enables proper use of nameOverride instead of requiring fullnameOverride workaround All helper references updated across all template files: - _helpers.tpl: Renamed 10 helper definitions - deployment.yaml, service.yaml, serviceaccount.yaml: Updated references - clusterrole.yaml, clusterrolebinding.yaml: Updated references - servicemonitor.yaml, NOTES.txt: Updated references Backward compatible: existing fullnameOverride usage continues to work. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 994e911 commit 94be215

8 files changed

Lines changed: 49 additions & 49 deletions

File tree

helm/kagent-tools/templates/NOTES.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# This is a Helm chart for Kagent Tools
44
#
55
# 1. Forward application port by running these commands in the terminal:
6-
# kubectl -n {{ include "kagent.namespace" . }} port-forward service/{{ .Release.Name }} {{.Values.service.ports.tools.targetPort}}:{{.Values.service.ports.tools.port}} &
6+
# kubectl -n {{ include "kagent-tools.namespace" . }} port-forward service/{{ .Release.Name }} {{.Values.service.ports.tools.targetPort}}:{{.Values.service.ports.tools.port}} &
77
#
88
# 2. Then visit http://127.0.0.1:{{.Values.service.ports.tools.port}}/mcp to use MCP
99
#
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{{/*
22
Expand the name of the chart.
33
*/}}
4-
{{- define "kagent.name" -}}
4+
{{- define "kagent-tools.name" -}}
55
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
66
{{- end }}
77

88
{{/*
99
Create a default fully qualified app name.
1010
*/}}
11-
{{- define "kagent.fullname" -}}
11+
{{- define "kagent-tools.fullname" -}}
1212
{{- if .Values.fullnameOverride }}
1313
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
1414
{{- else }}
@@ -23,16 +23,16 @@ Create a default fully qualified app name.
2323
{{/*
2424
Create chart name and version as used by the chart label.
2525
*/}}
26-
{{- define "kagent.chart" -}}
26+
{{- define "kagent-tools.chart" -}}
2727
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
2828
{{- end }}
2929

3030
{{/*
3131
Common labels
3232
*/}}
33-
{{- define "kagent.labels" -}}
34-
helm.sh/chart: {{ include "kagent.chart" . }}
35-
{{ include "kagent.selectorLabels" . }}
33+
{{- define "kagent-tools.labels" -}}
34+
helm.sh/chart: {{ include "kagent-tools.chart" . }}
35+
{{ include "kagent-tools.selectorLabels" . }}
3636
{{- if .Chart.Version }}
3737
app.kubernetes.io/version: {{ .Chart.Version | quote }}
3838
{{- end }}
@@ -42,41 +42,41 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
4242
{{/*
4343
Selector labels
4444
*/}}
45-
{{- define "kagent.selectorLabels" -}}
46-
app.kubernetes.io/name: {{ include "kagent.fullname" . }}
45+
{{- define "kagent-tools.selectorLabels" -}}
46+
app.kubernetes.io/name: {{ include "kagent-tools.fullname" . }}
4747
app.kubernetes.io/instance: {{ .Release.Name }}
4848
{{- end }}
4949

5050
{{/*Default provider name*/}}
51-
{{- define "kagent.defaultProviderName" -}}
51+
{{- define "kagent-tools.defaultProviderName" -}}
5252
{{ .Values.providers.default | default "openAI" | lower}}
5353
{{- end }}
5454

5555
{{/*Default model name*/}}
56-
{{- define "kagent.defaultModelConfigName" -}}
56+
{{- define "kagent-tools.defaultModelConfigName" -}}
5757
default-model-config
5858
{{- end }}
5959

6060
{{/*
6161
Expand the namespace of the release.
6262
Allows overriding it for multi-namespace deployments in combined charts.
6363
*/}}
64-
{{- define "kagent.namespace" -}}
64+
{{- define "kagent-tools.namespace" -}}
6565
{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}}
6666
{{- end }}
6767

6868
{{/*
6969
Service account name: default when useDefaultServiceAccount is true, otherwise the chart fullname.
7070
*/}}
71-
{{- define "kagent.serviceAccountName" -}}
72-
{{- if .Values.useDefaultServiceAccount }}default{{- else }}{{ include "kagent.fullname" . }}{{- end }}
71+
{{- define "kagent-tools.serviceAccountName" -}}
72+
{{- if .Values.useDefaultServiceAccount }}default{{- else }}{{ include "kagent-tools.fullname" . }}{{- end }}
7373
{{- end }}
7474

7575
{{/*
7676
Watch namespaces - transforms list of namespaces cached by the controller into comma-separated string
7777
Removes duplicates
7878
*/}}
79-
{{- define "kagent.watchNamespaces" -}}
79+
{{- define "kagent-tools.watchNamespaces" -}}
8080
{{- $nsSet := dict }}
8181
{{- .Values.controller.watchNamespaces | default list | uniq | join "," }}
8282
{{- end -}}

helm/kagent-tools/templates/clusterrole.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
apiVersion: rbac.authorization.k8s.io/v1
44
kind: ClusterRole
55
metadata:
6-
name: {{ include "kagent.fullname" . }}-read-role
6+
name: {{ include "kagent-tools.fullname" . }}-read-role
77
labels:
8-
{{- include "kagent.labels" . | nindent 4 }}
8+
{{- include "kagent-tools.labels" . | nindent 4 }}
99
rules:
1010
# Core workload resources
1111
- apiGroups: [""]
@@ -82,9 +82,9 @@ rules:
8282
apiVersion: rbac.authorization.k8s.io/v1
8383
kind: ClusterRole
8484
metadata:
85-
name: {{ include "kagent.fullname" . }}-cluster-admin-role
85+
name: {{ include "kagent-tools.fullname" . }}-cluster-admin-role
8686
labels:
87-
{{- include "kagent.labels" . | nindent 4 }}
87+
{{- include "kagent-tools.labels" . | nindent 4 }}
8888
rules:
8989
- apiGroups: ["*"]
9090
resources: ["*"]

helm/kagent-tools/templates/clusterrolebinding.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,22 @@ apiVersion: rbac.authorization.k8s.io/v1
33
kind: ClusterRoleBinding
44
metadata:
55
{{- if .Values.rbac.readOnly }}
6-
name: {{ include "kagent.fullname" . }}-read-rolebinding
6+
name: {{ include "kagent-tools.fullname" . }}-read-rolebinding
77
{{- else }}
8-
name: {{ include "kagent.fullname" . }}-cluster-admin-rolebinding
8+
name: {{ include "kagent-tools.fullname" . }}-cluster-admin-rolebinding
99
{{- end }}
1010
labels:
11-
{{- include "kagent.labels" . | nindent 4 }}
11+
{{- include "kagent-tools.labels" . | nindent 4 }}
1212
roleRef:
1313
apiGroup: rbac.authorization.k8s.io
1414
kind: ClusterRole
1515
{{- if .Values.rbac.readOnly }}
16-
name: {{ include "kagent.fullname" . }}-read-role
16+
name: {{ include "kagent-tools.fullname" . }}-read-role
1717
{{- else }}
18-
name: {{ include "kagent.fullname" . }}-cluster-admin-role
18+
name: {{ include "kagent-tools.fullname" . }}-cluster-admin-role
1919
{{- end }}
2020
subjects:
2121
- kind: ServiceAccount
22-
name: {{ include "kagent.fullname" . }}
23-
namespace: {{ include "kagent.namespace" . }}
22+
name: {{ include "kagent-tools.fullname" . }}
23+
namespace: {{ include "kagent-tools.namespace" . }}
2424
{{- end }}

helm/kagent-tools/templates/deployment.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
apiVersion: apps/v1
22
kind: Deployment
33
metadata:
4-
name: {{ include "kagent.fullname" . }}
5-
namespace: {{ include "kagent.namespace" . }}
4+
name: {{ include "kagent-tools.fullname" . }}
5+
namespace: {{ include "kagent-tools.namespace" . }}
66
labels:
7-
{{- include "kagent.labels" . | nindent 4 }}
7+
{{- include "kagent-tools.labels" . | nindent 4 }}
88
spec:
99
replicas: {{ .Values.replicaCount }}
1010
selector:
1111
matchLabels:
12-
{{- include "kagent.selectorLabels" . | nindent 6 }}
12+
{{- include "kagent-tools.selectorLabels" . | nindent 6 }}
1313
template:
1414
metadata:
1515
{{- with .Values.podAnnotations }}
1616
annotations:
1717
{{- toYaml . | nindent 8 }}
1818
{{- end }}
1919
labels:
20-
{{- include "kagent.selectorLabels" . | nindent 8 }}
20+
{{- include "kagent-tools.selectorLabels" . | nindent 8 }}
2121
spec:
2222
{{- with .Values.imagePullSecrets }}
2323
imagePullSecrets:
@@ -43,15 +43,15 @@ spec:
4343
{{- if not (hasKey . "labelSelector") }}
4444
labelSelector:
4545
matchLabels:
46-
{{- include "kagent.selectorLabels" $ | nindent 14 }}
46+
{{- include "kagent-tools.selectorLabels" $ | nindent 14 }}
4747
{{- end }}
4848
{{- end }}
4949
{{- end }}
5050

5151

5252
securityContext:
5353
{{- toYaml .Values.podSecurityContext | nindent 8 }}
54-
serviceAccountName: {{ include "kagent.serviceAccountName" . }}
54+
serviceAccountName: {{ include "kagent-tools.serviceAccountName" . }}
5555
containers:
5656
- name: tools
5757
command:
@@ -82,7 +82,7 @@ spec:
8282
- name: OPENAI_API_KEY
8383
valueFrom:
8484
secretKeyRef:
85-
name: {{ include "kagent.fullname" . }}-openai
85+
name: {{ include "kagent-tools.fullname" . }}-openai
8686
key: OPENAI_API_KEY
8787
optional: true # if the secret is not found, the tool will not be available
8888
- name: OTEL_TRACING_ENABLED

helm/kagent-tools/templates/service.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
apiVersion: v1
22
kind: Service
33
metadata:
4-
name: {{ include "kagent.fullname" . }}
5-
namespace: {{ include "kagent.namespace" . }}
4+
name: {{ include "kagent-tools.fullname" . }}
5+
namespace: {{ include "kagent-tools.namespace" . }}
66
labels:
7-
{{- include "kagent.labels" . | nindent 4 }}
7+
{{- include "kagent-tools.labels" . | nindent 4 }}
88
spec:
99
type: {{ .Values.service.type }}
1010
ports:
@@ -18,20 +18,20 @@ spec:
1818
protocol: TCP
1919
name: tools
2020
selector:
21-
{{- include "kagent.selectorLabels" . | nindent 4 }}
21+
{{- include "kagent-tools.selectorLabels" . | nindent 4 }}
2222

2323
---
2424
apiVersion: v1
2525
kind: Service
2626
metadata:
27-
name: {{ include "kagent.fullname" . }}-metrics
28-
namespace: {{ include "kagent.namespace" . }}
27+
name: {{ include "kagent-tools.fullname" . }}-metrics
28+
namespace: {{ include "kagent-tools.namespace" . }}
2929
labels:
30-
{{- include "kagent.labels" . | nindent 4 }}
30+
{{- include "kagent-tools.labels" . | nindent 4 }}
3131
app.kubernetes.io/component: metrics
3232
spec:
3333
selector:
34-
{{- include "kagent.selectorLabels" . | nindent 4 }}
34+
{{- include "kagent-tools.selectorLabels" . | nindent 4 }}
3535
ports:
3636
- name: prometheus-metrics
3737
protocol: TCP

helm/kagent-tools/templates/serviceaccount.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
apiVersion: v1
33
kind: ServiceAccount
44
metadata:
5-
name: {{ include "kagent.fullname" . }}
6-
namespace: {{ include "kagent.namespace" . }}
5+
name: {{ include "kagent-tools.fullname" . }}
6+
namespace: {{ include "kagent-tools.namespace" . }}
77
labels:
8-
{{- include "kagent.labels" . | nindent 4 }}
8+
{{- include "kagent-tools.labels" . | nindent 4 }}
99
{{- end }}

helm/kagent-tools/templates/servicemonitor.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
apiVersion: monitoring.coreos.com/v1
44
kind: ServiceMonitor
55
metadata:
6-
name: {{ include "kagent.fullname" . }}
7-
namespace: {{ include "kagent.namespace" . }}
6+
name: {{ include "kagent-tools.fullname" . }}
7+
namespace: {{ include "kagent-tools.namespace" . }}
88
labels:
99
{{- toYaml .Values.tools.metrics.servicemonitor.labels | nindent 4 }}
1010
spec:
1111
selector:
1212
matchLabels:
13-
{{- include "kagent.selectorLabels" . | nindent 6 }}
13+
{{- include "kagent-tools.selectorLabels" . | nindent 6 }}
1414
app.kubernetes.io/component: metrics
1515
namespaceSelector:
1616
matchNames:
17-
- {{ include "kagent.namespace" . }}
17+
- {{ include "kagent-tools.namespace" . }}
1818
endpoints:
1919
- port: prometheus-metrics
2020
interval: {{ .Values.tools.metrics.servicemonitor.interval | default "30s" }}

0 commit comments

Comments
 (0)