Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HELM] Refactor Chart #1872

Open
wants to merge 36 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
92198f7
Split templates
lakinduakash Oct 8, 2024
722b891
Fix file name
lakinduakash Oct 8, 2024
b1d4b3c
Move validations to validations.yaml
lakinduakash Oct 8, 2024
5d97a47
Add NOTES.txt
lakinduakash Oct 8, 2024
7d6c007
Update documentation in values.yaml ( for `helm-docs` )
lakinduakash Oct 8, 2024
41d1f2b
Split templates
lakinduakash Oct 8, 2024
d4d2ae6
Fix file name
lakinduakash Oct 8, 2024
80fc6a0
Move validations to validations.yaml
lakinduakash Oct 8, 2024
d90ddbf
Add NOTES.txt
lakinduakash Oct 8, 2024
dc34c1d
Update documentation in values.yaml ( for `helm-docs` )
lakinduakash Oct 8, 2024
602f27e
Merge branch 'refs/heads/main' into lakindu/helm
lakinduakash Oct 25, 2024
2af1bc6
Merge remote-tracking branch 'origin/lakindu/helm' into lakindu/helm
lakinduakash Oct 25, 2024
801e907
Add agents related templates and values
lakinduakash Oct 25, 2024
0c434c3
Add missing EOF
lakinduakash Oct 25, 2024
8c552e5
Add agents-pvc.yaml
lakinduakash Oct 25, 2024
cc15e61
Add h2ogpt-pvc.yaml
lakinduakash Oct 25, 2024
cd6c173
Separate PVC into files and remove autoscaling
lakinduakash Oct 25, 2024
1661737
Remove stack, vllm, tgi, and lmdeploy related checks for agents
lakinduakash Oct 25, 2024
6690942
Update secret configs
lakinduakash Oct 25, 2024
ba0434b
Add conditions for agent and openAi ports
lakinduakash Oct 25, 2024
86f060b
Remove stack from h2ogpt
lakinduakash Oct 25, 2024
a14ed1c
Add HPA for agents
lakinduakash Oct 25, 2024
db1cfce
Fix stack removal
lakinduakash Oct 25, 2024
95573cd
Add default resource limits
lakinduakash Oct 25, 2024
661cf3c
Add README.md generated from helm-docs
lakinduakash Oct 25, 2024
1b75c9d
Update Chart version
lakinduakash Oct 25, 2024
0f52c7b
Update secrets
lakinduakash Oct 28, 2024
9af9f2d
Remove global OpenAI, replicate and openAIAzure
lakinduakash Oct 28, 2024
78b2e72
Update helm-doc
lakinduakash Oct 28, 2024
f5b79da
Fix agents volumes
lakinduakash Oct 28, 2024
0086360
Remove lmdeploy
lakinduakash Oct 30, 2024
eccb0c2
Remove tgi
lakinduakash Oct 30, 2024
86fae3c
Change overrideConfig passing method
lakinduakash Nov 5, 2024
9818a04
Fix boolean values quote issue
lakinduakash Nov 5, 2024
72c5859
Add new line
lakinduakash Nov 6, 2024
36ca38e
Rename agents to agent
lakinduakash Nov 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions helm/h2ogpt-chart/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v2
name: h2ogpt
description: A Helm chart for h2ogpt
description: A Helm chart for h2oGPT

# A chart can be either an 'application' or a 'library' chart.
#
Expand All @@ -15,10 +15,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0-288
version: 0.2.1-1254

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: 0.1.0-288
appVersion: 0.2.1-1254
148 changes: 148 additions & 0 deletions helm/h2ogpt-chart/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
# h2ogpt

![Version: 0.2.1-1254](https://img.shields.io/badge/Version-0.2.1--1254-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.2.1-1254](https://img.shields.io/badge/AppVersion-0.2.1--1254-informational?style=flat-square)

A Helm chart for h2oGPT

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| agent.additionalConfig | object | `{}` | You can pass additional config here if overrideConfig does not have it. |
| agent.agent_workers | int | `5` | |
| agent.autoscaling.enabled | bool | `false` | |
| agent.autoscaling.maxReplicas | int | `2` | |
| agent.autoscaling.minReplicas | int | `1` | |
| agent.autoscaling.targetCPU | int | `80` | |
| agent.autoscaling.targetMemory | string | `"32Gi"` | |
| agent.enabled | bool | `true` | Enable agent, this must be `false` if `h2ogpt.agent.enabled` is `true` |
| agent.env | object | `{}` | |
| agent.extraVolumeMounts | list | `[]` | Extra volume mounts |
| agent.extraVolumes | list | `[]` | Extra volumes, for more certs, mount under /etc/ssl/more-certs |
| agent.image.pullPolicy | string | `"IfNotPresent"` | |
| agent.image.repository | string | `"gcr.io/vorvan/h2oai/h2ogpt-runtime"` | |
| agent.image.tag | string | `nil` | |
| agent.imagePullSecrets | string | `nil` | |
| agent.initImage.pullPolicy | string | `nil` | |
| agent.initImage.repository | string | `nil` | |
| agent.initImage.tag | string | `nil` | |
| agent.nodeSelector | object | `{}` | Node selector for the agent pods. |
| agent.overrideConfig | object | `{}` | Supported configs are commented. If you don't pass any value, keep {} |
| agent.podAffinity | string | `nil` | Set hostname and zone to true for pod affinity rules based on hostname and zone. |
| agent.podAnnotations | object | `{}` | |
| agent.podLabels | object | `{}` | |
| agent.podSecurityContext.fsGroup | string | `nil` | |
| agent.podSecurityContext.runAsGroup | string | `nil` | |
| agent.podSecurityContext.runAsNonRoot | bool | `true` | |
| agent.podSecurityContext.runAsUser | string | `nil` | |
| agent.replicaCount | int | `1` | |
| agent.resources.limits."nvidia.com/gpu" | int | `1` | |
| agent.resources.limits.memory | string | `"64Gi"` | |
| agent.resources.requests."nvidia.com/gpu" | int | `1` | |
| agent.resources.requests.memory | string | `"32Gi"` | |
| agent.securityContext.allowPrivilegeEscalation | bool | `false` | |
| agent.securityContext.capabilities.drop[0] | string | `"ALL"` | |
| agent.securityContext.runAsNonRoot | bool | `true` | |
| agent.securityContext.seccompProfile.type | string | `"RuntimeDefault"` | |
| agent.service.agentPort | int | `5004` | |
| agent.service.annotations | object | `{}` | |
| agent.service.type | string | `"NodePort"` | |
| agent.storage.class | string | `nil` | |
| agent.storage.size | string | `"128Gi"` | |
| agent.storage.useEphemeral | bool | `true` | |
| agent.tolerations | list | `[]` | Node taints to tolerate by the agent pods. |
| agent.updateStrategy.type | string | `"RollingUpdate"` | |
| caCertificates | string | `""` | CA certs |
| fullnameOverride | string | `""` | |
| global.externalLLM.enabled | bool | `false` | |
| global.externalLLM.modelLock | string | `nil` | |
| global.externalLLM.secret | object | `{}` | list of secrets for h2ogpt and agent env |
| global.visionModels.enabled | bool | `false` | Enable vision models |
| global.visionModels.rotateAlignResizeImage | bool | `false` | |
| global.visionModels.visibleModels | list | `[]` | Visible vision models, the vision model itslef needs to be set via modeLock or base_model. Ex: visibleModels: ['OpenGVLab/InternVL-Chat-V1-5'] |
| h2ogpt.additionalConfig | object | `{}` | You can pass additional config here if overrideConfig does not have it. |
| h2ogpt.agent | object | `{"agent_workers":5,"enabled":false}` | Enable agent |
| h2ogpt.agent.enabled | bool | `false` | Run agent with h2oGPT container |
| h2ogpt.enabled | bool | `true` | Enable h2oGPT |
| h2ogpt.env | object | `{}` | |
| h2ogpt.extraVolumeMounts | list | `[]` | Extra volume mounts |
| h2ogpt.extraVolumes | list | `[]` | Extra volumes, for more certs, mount under /etc/ssl/more-certs |
| h2ogpt.image.pullPolicy | string | `"IfNotPresent"` | |
| h2ogpt.image.repository | string | `"gcr.io/vorvan/h2oai/h2ogpt-runtime"` | |
| h2ogpt.image.tag | string | `nil` | |
| h2ogpt.imagePullSecrets | string | `nil` | |
| h2ogpt.initImage.pullPolicy | string | `nil` | |
| h2ogpt.initImage.repository | string | `nil` | |
| h2ogpt.initImage.tag | string | `nil` | |
| h2ogpt.nodeSelector | object | `{}` | Node selector for the h2ogpt pods. |
| h2ogpt.openai.enabled | bool | `true` | |
| h2ogpt.openai.openai_workers | int | `5` | |
| h2ogpt.overrideConfig | object | `{}` | Supported configs are commented. If you don't pass any value, keep {} |
| h2ogpt.podAffinity | string | `nil` | Set hostname and zone to true for pod affinity rules based on hostname and zone. |
| h2ogpt.podAnnotations | object | `{}` | |
| h2ogpt.podLabels | object | `{}` | |
| h2ogpt.podSecurityContext.fsGroup | string | `nil` | |
| h2ogpt.podSecurityContext.runAsGroup | string | `nil` | |
| h2ogpt.podSecurityContext.runAsNonRoot | bool | `true` | |
| h2ogpt.podSecurityContext.runAsUser | string | `nil` | |
| h2ogpt.replicaCount | int | `1` | |
| h2ogpt.resources.limits."nvidia.com/gpu" | int | `0` | |
| h2ogpt.resources.limits.memory | string | `"64Gi"` | |
| h2ogpt.resources.requests."nvidia.com/gpu" | int | `0` | |
| h2ogpt.resources.requests.memory | string | `"32Gi"` | |
| h2ogpt.securityContext.allowPrivilegeEscalation | bool | `false` | |
| h2ogpt.securityContext.capabilities.drop[0] | string | `"ALL"` | |
| h2ogpt.securityContext.runAsNonRoot | bool | `true` | |
| h2ogpt.securityContext.seccompProfile.type | string | `"RuntimeDefault"` | |
| h2ogpt.service.agentPort | int | `5004` | |
| h2ogpt.service.functionPort | int | `5002` | |
| h2ogpt.service.openaiPort | int | `5000` | |
| h2ogpt.service.type | string | `"NodePort"` | |
| h2ogpt.service.webPort | int | `80` | |
| h2ogpt.service.webServiceAnnotations | object | `{}` | |
| h2ogpt.storage.class | string | `nil` | |
| h2ogpt.storage.size | string | `"128Gi"` | |
| h2ogpt.storage.useEphemeral | bool | `true` | |
| h2ogpt.tolerations | list | `[]` | Node taints to tolerate by the h2ogpt pods. |
| h2ogpt.updateStrategy.type | string | `"RollingUpdate"` | |
| nameOverride | string | `""` | |
| namespaceOverride | string | `""` | |
| vllm.containerArgs[0] | string | `"--model"` | |
| vllm.containerArgs[1] | string | `"h2oai/h2ogpt-4096-llama2-7b-chat"` | |
| vllm.containerArgs[2] | string | `"--tokenizer"` | |
| vllm.containerArgs[3] | string | `"hf-internal-testing/llama-tokenizer"` | |
| vllm.containerArgs[4] | string | `"--tensor-parallel-size"` | |
| vllm.containerArgs[5] | int | `2` | |
| vllm.containerArgs[6] | string | `"--seed"` | |
| vllm.containerArgs[7] | int | `1234` | |
| vllm.containerArgs[8] | string | `"--trust-remote-code"` | |
| vllm.enabled | bool | `false` | Enable vllm |
| vllm.env.DO_NOT_TRACK | string | `"1"` | |
| vllm.env.VLLM_NO_USAGE_STATS | string | `"1"` | |
| vllm.image.pullPolicy | string | `"IfNotPresent"` | |
| vllm.image.repository | string | `"vllm/vllm-openai"` | |
| vllm.image.tag | string | `"latest"` | |
| vllm.imagePullSecrets | string | `nil` | |
| vllm.nodeSelector | string | `nil` | |
| vllm.overrideConfig | string | `nil` | |
| vllm.podAffinity | string | `nil` | Set hostname and zone to true for pod affinity rules based on hostname and zone. |
| vllm.podAnnotations | object | `{}` | |
| vllm.podLabels | object | `{}` | |
| vllm.podSecurityContext.fsGroup | string | `nil` | |
| vllm.podSecurityContext.runAsGroup | string | `nil` | |
| vllm.podSecurityContext.runAsNonRoot | bool | `true` | |
| vllm.podSecurityContext.runAsUser | string | `nil` | |
| vllm.replicaCount | int | `1` | |
| vllm.resources | string | `nil` | |
| vllm.securityContext.allowPrivilegeEscalation | bool | `false` | |
| vllm.securityContext.capabilities.drop[0] | string | `"ALL"` | |
| vllm.securityContext.runAsNonRoot | bool | `true` | |
| vllm.securityContext.seccompProfile | string | `nil` | |
| vllm.service.port | int | `5000` | |
| vllm.service.type | string | `"ClusterIP"` | |
| vllm.storage.class | string | `nil` | |
| vllm.storage.size | string | `"512Gi"` | |
| vllm.storage.useEphemeral | bool | `true` | |
| vllm.tolerations | string | `nil` | |
| vllm.updateStrategy.type | string | `"RollingUpdate"` | |

8 changes: 8 additions & 0 deletions helm/h2ogpt-chart/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Thank you for installing {{ .Chart.Name }}.

Your release is named {{ .Release.Name }}.

To learn more about the release, try:

$ helm status {{ .Release.Name }}
$ helm get all {{ .Release.Name }}
128 changes: 128 additions & 0 deletions helm/h2ogpt-chart/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,131 @@ Create the name of the service account to use
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

{{/*
Config for h2oGPT
*/}}

{{- define "h2ogpt.config" -}}
{{- with .Values.h2ogpt }}
verbose: {{ default "True" ( .overrideConfig.verbose | quote ) }}
{{- if .overrideConfig.heap_app_id }}
heap_app_id: {{ .overrideConfig.heap_app_id }}
{{- end }}
num_async: {{ default 10 .overrideConfig.num_async }}
save_dir: {{ default "/docker_logs" .overrideConfig.save_dir }}
score_model: {{ default "None" .overrideConfig.score_model }}
share: {{ default "False" (.overrideConfig.share | quote ) }}
enforce_h2ogpt_api_key: {{ default "False" ( .overrideConfig.enforce_h2ogpt_api_key | quote ) }}
enforce_h2ogpt_ui_key: {{ default "False" ( .overrideConfig.enforce_h2ogpt_ui_key | quote ) }}
{{- if .overrideConfig.h2ogpt_api_keys }}
h2ogpt_api_keys: {{ .overrideConfig.h2ogpt_api_keys }}
{{- end }}
{{- if .overrideConfig.use_auth_token }}
use_auth_token: {{ .overrideConfig.use_auth_token }}
{{- end }}
visible_models: {{ default "['meta-llama/Meta-Llama-3.1-8B-Instruct']" .overrideConfig.visible_models }}
{{/*visible_vision_models: {{ default "['mistralai/Pixtral-12B-2409']" .overrideConfig.visible_vision_models }}*/}}
top_k_docs_max_show: {{ default 100 .overrideConfig.top_k_docs_max_show }}
{{- if .overrideConfig.admin_pass }}
admin_pass: {{ .overrideConfig.admin_pass }}
{{- end }}
{{- if .openai.enabled }}
openai_server: "True"
openai_port: 5000
openai_workers: {{ default 5 .openai.openai_workers }}
{{- end }}
{{- if .agent.enabled }}
agent_server: "True"
agent_port: 5004
agent_workers: {{ .agent.agent_workers }}
{{- end }}
function_server: {{ default "True" ( .overrideConfig.function_server | quote ) }}
function_port: 5002
function_server_workers: {{ default 1 .overrideConfig.function_server_workers }}
multiple_workers_gunicorn: {{ default "True" ( .overrideConfig.multiple_workers_gunicorn | quote ) }}
llava_model: {{ default "openai:mistralai/Pixtral-12B-2409" .overrideConfig.llava_model }}
enable_llava: {{ default "True" ( .overrideConfig.enable_llava | quote ) }}
{{- if ge (int (index .resources.requests "nvidia.com/gpu") ) (int 1) }}
enable_tts: {{ default "False" ( .overrideConfig.enable_tts | quote ) }}
enable_stt: {{ default "True" ( .overrideConfig.enable_stt | quote ) }}
enable_transcriptions: {{ default "True" ( .overrideConfig.enable_transcriptions | quote ) }}
asr_model: {{ default "distil-whisper/distil-large-v3" .overrideConfig.asr_model }}
pre_load_embedding_model: {{ default "True" (.overrideConfig.pre_load_embedding_model | quote ) }}
pre_load_image_audio_models: {{ default "True" ( .overrideConfig.pre_load_image_audio_models | quote ) }}
cut_distance: {{ default 10000 .overrideConfig.cut_distance }}
hf_embedding_model: {{ default "BAAI/bge-large-en-v1.5" .overrideConfig.hf_embedding_model }}
enable_captions: {{ default "False" ( .overrideConfig.enable_captions | quote ) }}
enable_doctr: {{ default "True" ( .overrideConfig.enable_doctr | quote ) }}
{{- else }}
enable_tts: {{ default "False" ( .overrideConfig.enable_tts | quote ) }}
enable_stt: {{ default "False" ( .overrideConfig.enable_stt | quote ) }}
enable_transcriptions: {{ default "False" ( .overrideConfig.enable_transcriptions | quote ) }}
embedding_gpu_id: {{ default "cpu" .overrideConfig.embedding_gpu_id }}
hf_embedding_model: {{ default "fake" .overrideConfig.hf_embedding_model }}
pre_load_embedding_model: {{ default "False" ( .overrideConfig.pre_load_embedding_model | quote ) }}
pre_load_image_audio_models: {{ default "False" ( .overrideConfig.pre_load_image_audio_models | quote ) }}
enable_captions: {{ default "False" ( .overrideConfig.enable_captions | quote ) }}
enable_doctr: {{ default "False" ( .overrideConfig.enable_doctr | quote ) }}
{{- end }}
{{- end }}
{{- end }}

{{/*
Config for agent
*/}}

{{- define "agent.config" -}}
{{- with .Values.agent }}
verbose: {{ default "True" ( .overrideConfig.verbose | quote ) }}
{{- if .overrideConfig.heap_app_id }}
heap_app_id: {{ .overrideConfig.heap_app_id }}
{{- end }}
num_async: {{ default 10 .overrideConfig.num_async }}
save_dir: {{ default "/docker_logs" .overrideConfig.save_dir }}
score_model: {{ default "None" .overrideConfig.score_model }}
share: {{ default "False" (.overrideConfig.share | quote ) }}
enforce_h2ogpt_api_key: {{ default "False" ( .overrideConfig.enforce_h2ogpt_api_key | quote ) }}
enforce_h2ogpt_ui_key: {{ default "False" ( .overrideConfig.enforce_h2ogpt_ui_key | quote ) }}
{{- if .overrideConfig.h2ogpt_api_keys }}
h2ogpt_api_keys: {{ .overrideConfig.h2ogpt_api_keys }}
{{- end }}
{{- if .overrideConfig.use_auth_token }}
use_auth_token: {{ .overrideConfig.use_auth_token }}
{{- end }}
visible_models: {{ default "['meta-llama/Meta-Llama-3.1-8B-Instruct']" .overrideConfig.visible_models }}
{{/*visible_vision_models: {{ default "['mistralai/Pixtral-12B-2409']" .overrideConfig.visible_vision_models }}*/}}
top_k_docs_max_show: {{ default 100 .overrideConfig.top_k_docs_max_show }}
{{- if .overrideConfig.admin_pass }}
admin_pass: {{ .overrideConfig.admin_pass }}
{{- end }}
agent_server: "True"
agent_port: 5004
agent_workers: {{ default 5 .agent_workers }}
multiple_workers_gunicorn: {{ default "True" ( .overrideConfig.multiple_workers_gunicorn | quote ) }}
llava_model: {{ default "openai:mistralai/Pixtral-12B-2409" .overrideConfig.llava_model }}
enable_llava: {{ default "True" ( .overrideConfig.enable_llava | quote ) }}
{{- if ge (int (index .resources.requests "nvidia.com/gpu") ) (int 1) }}
enable_tts: {{ default "False" ( .overrideConfig.enable_tts | quote ) }}
enable_stt: {{ default "True" ( .overrideConfig.enable_stt | quote ) }}
enable_transcriptions: {{ default "True" ( .overrideConfig.enable_transcriptions | quote ) }}
asr_model: {{ default "distil-whisper/distil-large-v3" .overrideConfig.asr_model }}
pre_load_embedding_model: {{ default "True" (.overrideConfig.pre_load_embedding_model | quote ) }}
pre_load_image_audio_models: {{ default "True" ( .overrideConfig.pre_load_image_audio_models | quote ) }}
cut_distance: {{ default 10000 .overrideConfig.cut_distance }}
hf_embedding_model: {{ default "BAAI/bge-large-en-v1.5" .overrideConfig.hf_embedding_model }}
enable_captions: {{ default "False" ( .overrideConfig.enable_captions | quote ) }}
enable_doctr: {{ default "True" ( .overrideConfig.enable_doctr | quote ) }}
{{- else }}
enable_tts: {{ default "False" ( .overrideConfig.enable_tts | quote ) }}
enable_stt: {{ default "False" ( .overrideConfig.enable_stt | quote ) }}
enable_transcriptions: {{ default "False" ( .overrideConfig.enable_transcriptions | quote ) }}
embedding_gpu_id: {{ default "cpu" .overrideConfig.embedding_gpu_id }}
hf_embedding_model: {{ default "fake" .overrideConfig.hf_embedding_model }}
pre_load_embedding_model: {{ default "False" ( .overrideConfig.pre_load_embedding_model | quote ) }}
pre_load_image_audio_models: {{ default "False" ( .overrideConfig.pre_load_image_audio_models | quote ) }}
enable_captions: {{ default "False" ( .overrideConfig.enable_captions | quote ) }}
enable_doctr: {{ default "False" ( .overrideConfig.enable_doctr | quote ) }}
{{- end }}
{{- end }}
{{- end }}
26 changes: 26 additions & 0 deletions helm/h2ogpt-chart/templates/agents-configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{{- if .Values.agent.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "h2ogpt.fullname" . }}-agent-config
namespace: {{ include "h2ogpt.namespace" . | quote }}
labels:
{{- include "h2ogpt.labels" . | nindent 4 }}
data:
{{- range $key, $value := ( include "agent.config" . | fromYaml ) }}
{{- /* convert boolean value to cli compatiblity */}}
{{- if or ( eq "true" ( $value | toString )) ( eq "false" ( $value | toString )) }}
{{ printf "H2OGPT_%s" $key | upper }}: {{ $value | quote | title }}
{{- else }}
{{ printf "H2OGPT_%s" $key | upper }}: {{ $value | quote }}
{{- end }}
{{- end }}
{{- range $key, $value := ( .Values.agent.additionalConfig ) }}
{{- /* convert boolean value to cli compatiblity */}}
{{- if or ( eq "true" ( $value | toString )) ( eq "false" ( $value | toString )) }}
{{ printf "H2OGPT_%s" $key | upper }}: {{ $value | quote | title }}
{{- else }}
{{ printf "H2OGPT_%s" $key | upper }}: {{ $value | quote }}
{{- end }}
{{- end }}
{{- end }}
Loading
Loading