Skip to content

Commit cd451c3

Browse files
committed
rework merge logic
1 parent 2d18dc3 commit cd451c3

File tree

7 files changed

+13
-22
lines changed

7 files changed

+13
-22
lines changed

charts/tembo-ai/templates/inference-service/_helpers.tpl

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,19 @@ Create the name of the inference-service service account to use
2121
{{- end }}
2222

2323
{{/*
24-
Merge configurations with priority to service-specific configs, handling nested structures
24+
Deepmerge the inference-service default configs and the services sepecific configs
2525
*/}}
26-
{{- define "tembo-ai.inferenceService.mergeConfigs" -}}
27-
{{- $result := dict -}}
28-
{{- range $key, $value := .defaults -}}
26+
{{- define "tembo-ai.inferenceService.deepMerge" -}}
27+
{{- $result := deepCopy (index . 0) -}}
28+
{{- range $key, $value := index . 1 -}}
2929
{{- if kindIs "map" $value -}}
30-
{{- if hasKey $.service $key -}}
31-
{{- $nested := dict "defaults" $value "service" (index $.service $key) -}}
32-
{{- $_ := set $result $key (fromYaml (include "tembo-ai.mergeConfigs" $nested)) -}}
30+
{{- if hasKey $result $key -}}
31+
{{- $newValue := fromYaml (include "tembo-ai.inferenceService.deepMerge" (list (get $result $key) $value)) -}}
32+
{{- $_ := set $result $key $newValue -}}
3333
{{- else -}}
3434
{{- $_ := set $result $key $value -}}
3535
{{- end -}}
3636
{{- else -}}
37-
{{- if not (hasKey $.service $key) -}}
38-
{{- $_ := set $result $key $value -}}
39-
{{- else -}}
40-
{{- $_ := set $result $key (index $.service $key) -}}
41-
{{- end -}}
42-
{{- end -}}
43-
{{- end -}}
44-
{{- range $key, $value := .service -}}
45-
{{- if not (hasKey $result $key) -}}
4637
{{- $_ := set $result $key $value -}}
4738
{{- end -}}
4839
{{- end -}}

charts/tembo-ai/templates/inference-service/external-secret.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{{- if .Values.inferenceService.services }}
22
{{- $defaults := .Values.inferenceService.defaults }}
33
{{- range $serviceName, $serviceConfig := .Values.inferenceService.services }}
4-
{{- $mergedConfig := fromYaml (include "tembo-ai.inferenceService.mergeConfigs" (dict "defaults" $defaults "service" $serviceConfig)) }}
4+
{{- $mergedConfig := fromYaml (include "tembo-ai.inferenceService.deepMerge" (list $defaults $serviceConfig)) }}
55
{{- if and (default false $mergedConfig.enabled) $mergedConfig.externalSecrets.secretName }}
66
---
77
apiVersion: external-secrets.io/v1beta1

charts/tembo-ai/templates/inference-service/pod-monitor.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{{- $defaults := .Values.inferenceService.defaults }}
33
{{- $releaseName := default "release-name" .Release.Name }}
44
{{- range $serviceName, $serviceConfig := .Values.inferenceService.services }}
5-
{{- $mergedConfig := fromYaml (include "tembo-ai.inferenceService.mergeConfigs" (dict "defaults" $defaults "service" $serviceConfig)) }}
5+
{{- $mergedConfig := fromYaml (include "tembo-ai.inferenceService.deepMerge" (list $defaults $serviceConfig)) }}
66
{{- if and (default false $mergedConfig.enabled) (default false $mergedConfig.podMonitor.enabled) }}
77
---
88
apiVersion: monitoring.coreos.com/v1

charts/tembo-ai/templates/inference-service/service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{{- if .Values.inferenceService.services }}
22
{{- $defaults := .Values.inferenceService.defaults }}
33
{{- range $serviceName, $serviceConfig := .Values.inferenceService.services }}
4-
{{- $mergedConfig := fromYaml (include "tembo-ai.inferenceService.mergeConfigs" (dict "defaults" $defaults "service" $serviceConfig)) }}
4+
{{- $mergedConfig := fromYaml (include "tembo-ai.inferenceService.deepMerge" (list $defaults $serviceConfig)) }}
55
{{- if and (default false $mergedConfig.enabled) (default true $mergedConfig.service.enabled) }}
66
---
77
apiVersion: v1

charts/tembo-ai/templates/inference-service/serviceaccount.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{{- if .Values.inferenceService.services }}
22
{{- $defaults := .Values.inferenceService.defaults }}
33
{{- range $serviceName, $serviceConfig := .Values.inferenceService.services }}
4-
{{- $mergedConfig := fromYaml (include "tembo-ai.inferenceService.mergeConfigs" (dict "defaults" $defaults "service" $serviceConfig)) }}
4+
{{- $mergedConfig := fromYaml (include "tembo-ai.inferenceService.deepMerge" (list $defaults $serviceConfig)) }}
55
{{- if and (default false $mergedConfig.enabled) (default true $mergedConfig.serviceAccount.create) }}
66
---
77
apiVersion: v1

charts/tembo-ai/templates/inference-service/statefulset.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{{- if .Values.inferenceService.services }}
22
{{- $defaults := .Values.inferenceService.defaults }}
33
{{- range $serviceName, $serviceConfig := .Values.inferenceService.services }}
4-
{{- $mergedConfig := fromYaml (include "tembo-ai.inferenceService.mergeConfigs" (dict "defaults" $defaults "service" $serviceConfig)) }}
4+
{{- $mergedConfig := fromYaml (include "tembo-ai.inferenceService.deepMerge" (list $defaults $serviceConfig)) }}
55
{{- if (default false $mergedConfig.enabled) }}
66
---
77
apiVersion: apps/v1

charts/tembo-ai/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,6 @@ inferenceService:
168168
accessMode: ReadWriteOnce
169169
mountPath: /root/.cache/
170170
# Define individual inference services here
171-
services: []
171+
services: {}
172172
# service1:
173173
# enabled: true

0 commit comments

Comments
 (0)