1313# Use absolute path relative to the script location
1414SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
1515CHART_DIR=" $SCRIPT_DIR /nexent"
16+ COMMON_VALUES=" $CHART_DIR /charts/nexent-common/values.yaml"
1617NAMESPACE=" nexent"
1718RELEASE_NAME=" nexent"
1819
@@ -145,70 +146,76 @@ update_values_yaml() {
145146 echo " Using APP_VERSION: $APP_VERSION "
146147 echo " "
147148
148- # Update backend image
149- sed -i " /^ backend:/,/^ [a-z]/{s| repository:.*| repository: \" ${NEXENT_IMAGE%%:* } \" |}" " $CHART_DIR /values.yaml"
150- sed -i " /^ backend:/,/^ [a-z]/{s| tag:.*| tag: \" $APP_VERSION \" |}" " $CHART_DIR /values.yaml"
151-
152- # Update web image
153- sed -i " /^ web:/,/^ [a-z]/{s| repository:.*| repository: \" ${NEXENT_WEB_IMAGE%%:* } \" |}" " $CHART_DIR /values.yaml"
154- sed -i " /^ web:/,/^ [a-z]/{s| tag:.*| tag: \" $APP_VERSION \" |}" " $CHART_DIR /values.yaml"
155-
156- # Update dataProcess image
157- sed -i " /^ dataProcess:/,/^ [a-z]/{s| repository:.*| repository: \" ${NEXENT_DATA_PROCESS_IMAGE%%:* } \" |}" " $CHART_DIR /values.yaml"
158- sed -i " /^ dataProcess:/,/^ [a-z]/{s| tag:.*| tag: \" $APP_VERSION \" |}" " $CHART_DIR /values.yaml"
149+ # Define paths to each chart's values.yaml
150+ VAL_CONFIG=" $CHART_DIR /charts/nexent-config/values.yaml"
151+ VAL_RUNTIME=" $CHART_DIR /charts/nexent-runtime/values.yaml"
152+ VAL_MCP=" $CHART_DIR /charts/nexent-mcp/values.yaml"
153+ VAL_NORTHBOUND=" $CHART_DIR /charts/nexent-northbound/values.yaml"
154+ VAL_WEB=" $CHART_DIR /charts/nexent-web/values.yaml"
155+ VAL_DATA_PROCESS=" $CHART_DIR /charts/nexent-data-process/values.yaml"
156+ VAL_ELASTICSEARCH=" $CHART_DIR /charts/nexent-elasticsearch/values.yaml"
157+ VAL_POSTGRESQL=" $CHART_DIR /charts/nexent-postgresql/values.yaml"
158+ VAL_REDIS=" $CHART_DIR /charts/nexent-redis/values.yaml"
159+ VAL_MINIO=" $CHART_DIR /charts/nexent-minio/values.yaml"
160+ VAL_SUPABASE_KONG=" $CHART_DIR /charts/nexent-supabase-kong/values.yaml"
161+ VAL_SUPABASE_AUTH=" $CHART_DIR /charts/nexent-supabase-auth/values.yaml"
162+ VAL_SUPABASE_DB=" $CHART_DIR /charts/nexent-supabase-db/values.yaml"
163+ VAL_OPENSSH=" $CHART_DIR /charts/nexent-openssh/values.yaml"
164+
165+
166+ # Update backend image (nexent/nexent) for: config, runtime, mcp, northbound
167+ # Pattern: match from "images:" section to next top-level key
168+ for VAL_FILE in " $VAL_CONFIG " " $VAL_RUNTIME " " $VAL_MCP " " $VAL_NORTHBOUND " ; do
169+ sed -i " s|repository:.*|repository: ${NEXENT_IMAGE%%:* } |" " $VAL_FILE "
170+ sed -i " s|tag:.*|tag: ${APP_VERSION} |" " $VAL_FILE "
171+ done
172+
173+ # Update web image (nexent-web)
174+ sed -i " s|repository:.*|repository: ${NEXENT_WEB_IMAGE%%:* } |" " $VAL_WEB "
175+ sed -i " s|tag:.*|tag: ${APP_VERSION} |" " $VAL_WEB "
176+
177+ # Update dataProcess image (nexent-data-process)
178+ sed -i " s|repository:.*|repository: ${NEXENT_DATA_PROCESS_IMAGE%%:* } |" " $VAL_DATA_PROCESS "
179+ sed -i " s|tag:.*|tag: ${APP_VERSION} |" " $VAL_DATA_PROCESS "
159180
160181 # Update mcp container image
161- sed -i " /^ mcp:/,/^ [a-z]/{s| repository:.*| repository: \" ${NEXENT_MCP_DOCKER_IMAGE%%:* } \" |}" " $CHART_DIR /values.yaml "
162- sed -i " /^ mcp:/,/^ [a-z]/{s| tag:.*| tag: \" $APP_VERSION \" |}" " $CHART_DIR /values.yaml "
182+ sed -i " /^ mcp:/,/^ [a-z]/{s| repository:.*| repository: \" ${NEXENT_MCP_DOCKER_IMAGE%%:* } \" |}" " $COMMON_VALUES "
183+ sed -i " /^ mcp:/,/^ [a-z]/{s| tag:.*| tag: \" $APP_VERSION \" |}" " $COMMON_VALUES "
163184
164185 # Update elasticsearch image
165- sed -i " /^ elasticsearch:/,/^ [a-z]/{s| repository:.*| repository: \" ${ELASTICSEARCH_IMAGE%%:* } \" |} " " $CHART_DIR /values.yaml "
166- sed -i " /^ elasticsearch:/,/^ [a-z]/{s| tag:.*| tag: \" ${ELASTICSEARCH_IMAGE##*: } \" |} " " $CHART_DIR /values.yaml "
186+ sed -i " s| repository:.*|repository: ${ELASTICSEARCH_IMAGE%%:* } | " " $VAL_ELASTICSEARCH "
187+ sed -i " s| tag:.*|tag: ${ELASTICSEARCH_IMAGE##*: } | " " $VAL_ELASTICSEARCH "
167188
168189 # Update postgresql image
169- sed -i " /^ postgresql:/,/^ [a-z]/{s| repository:.*| repository: \" ${POSTGRESQL_IMAGE%%:* } \" |} " " $CHART_DIR /values.yaml "
170- sed -i " /^ postgresql:/,/^ [a-z]/{s| tag:.*| tag: \" ${POSTGRESQL_IMAGE##*: } \" |} " " $CHART_DIR /values.yaml "
190+ sed -i " s| repository:.*|repository: ${POSTGRESQL_IMAGE%%:* } | " " $VAL_POSTGRESQL "
191+ sed -i " s| tag:.*|tag: ${POSTGRESQL_IMAGE##*: } | " " $VAL_POSTGRESQL "
171192
172193 # Update redis image
173- sed -i " /^ redis:/,/^ [a-z]/{s| repository:.*| repository: \" ${REDIS_IMAGE%%:* } \" |} " " $CHART_DIR /values.yaml "
174- sed -i " /^ redis:/,/^ [a-z]/{s| tag:.*| tag: \" ${REDIS_IMAGE##*: } \" |} " " $CHART_DIR /values.yaml "
194+ sed -i " s| repository:.*|repository: ${REDIS_IMAGE%%:* } | " " $VAL_REDIS "
195+ sed -i " s| tag:.*|tag: ${REDIS_IMAGE##*: } | " " $VAL_REDIS "
175196
176197 # Update minio image
177- sed -i " /^ minio:/,/^ [a-z]/{s| repository:.*| repository: \" ${MINIO_IMAGE%%:* } \" |}" " $CHART_DIR /values.yaml"
178- sed -i " /^ minio:/,/^ [a-z]/{s| tag:.*| tag: \" ${MINIO_IMAGE##*: } \" |}" " $CHART_DIR /values.yaml"
179-
180- # Update Supabase images using grep to find exact line numbers
181- # Only for full version
182- if [ " $DEPLOYMENT_VERSION " = " full" ] && grep -q " ^ supabase:" " $CHART_DIR /values.yaml" ; then
183- # Find line numbers for each field dynamically
184- KONG_REPO_LINE=$( grep -n ' kong:' " $CHART_DIR /values.yaml" | head -1 | cut -d: -f1)
185- KONG_REPO_LINE=$(( KONG_REPO_LINE + 1 ))
186- KONG_TAG_LINE=$(( KONG_REPO_LINE + 1 ))
187-
188- GOTRUE_REPO_LINE=$( grep -n ' gotrue:' " $CHART_DIR /values.yaml" | head -1 | cut -d: -f1)
189- GOTRUE_REPO_LINE=$(( GOTRUE_REPO_LINE + 1 ))
190- GOTRUE_TAG_LINE=$(( GOTRUE_REPO_LINE + 1 ))
191-
192- POSTGRES_REPO_LINE=$( grep -n ' postgres:' " $CHART_DIR /values.yaml" | head -1 | cut -d: -f1)
193- POSTGRES_REPO_LINE=$(( POSTGRES_REPO_LINE + 1 ))
194- POSTGRES_TAG_LINE=$(( POSTGRES_REPO_LINE + 1 ))
195-
196- # Update supabase.kong
197- sed -i " ${KONG_REPO_LINE} s|.*| repository: \" ${SUPABASE_KONG%%:* } \" |" " $CHART_DIR /values.yaml"
198- sed -i " ${KONG_TAG_LINE} s|.*| tag: \" ${SUPABASE_KONG##*: } \" |" " $CHART_DIR /values.yaml"
199-
200- # Update supabase.gotrue
201- sed -i " ${GOTRUE_REPO_LINE} s|.*| repository: \" ${SUPABASE_GOTRUE%%:* } \" |" " $CHART_DIR /values.yaml"
202- sed -i " ${GOTRUE_TAG_LINE} s|.*| tag: \" ${SUPABASE_GOTRUE##*: } \" |" " $CHART_DIR /values.yaml"
203-
204- # Update supabase.postgres
205- sed -i " ${POSTGRES_REPO_LINE} s|.*| repository: \" ${SUPABASE_DB%%:* } \" |" " $CHART_DIR /values.yaml"
206- sed -i " ${POSTGRES_TAG_LINE} s|.*| tag: \" ${SUPABASE_DB##*: } \" |" " $CHART_DIR /values.yaml"
198+ sed -i " s|repository:.*|repository: ${MINIO_IMAGE%%:* } |" " $VAL_MINIO "
199+ sed -i " s|tag:.*|tag: ${MINIO_IMAGE##*: } |" " $VAL_MINIO "
200+
201+ # Update Supabase images (only for full version)
202+ if [ " $DEPLOYMENT_VERSION " = " full" ]; then
203+ # Update supabase-kong image
204+ sed -i " s|repository:.*|repository: ${SUPABASE_KONG%%:* } |" " $VAL_SUPABASE_KONG "
205+ sed -i " s|tag:.*|tag: ${SUPABASE_KONG##*: } |" " $VAL_SUPABASE_KONG "
206+
207+ # Update supabase-auth (gotrue) image
208+ sed -i " s|repository:.*|repository: ${SUPABASE_GOTRUE%%:* } |" " $VAL_SUPABASE_AUTH "
209+ sed -i " s|tag:.*|tag: ${SUPABASE_GOTRUE##*: } |" " $VAL_SUPABASE_AUTH "
210+
211+ # Update supabase-db image
212+ sed -i " s|repository:.*|repository: ${SUPABASE_DB%%:* } |" " $VAL_SUPABASE_DB "
213+ sed -i " s|tag:.*|tag: ${SUPABASE_DB##*: } |" " $VAL_SUPABASE_DB "
207214 fi
208215
209216 # Update openssh image
210- sed -i " /^ openssh:/{s| repository:.*| repository: \" ${OPENSSH_SERVER_IMAGE%%:* } \" |} " " $CHART_DIR /values.yaml "
211- sed -i " /^ openssh:/{s| tag:.*| tag: \" $ APP_VERSION\" |} " " $CHART_DIR /values.yaml "
217+ sed -i " s| repository:.*|repository: ${OPENSSH_SERVER_IMAGE%%:* } | " " $VAL_OPENSSH "
218+ sed -i " s| tag:.*|tag: ${ APP_VERSION} | " " $VAL_OPENSSH "
212219
213220 echo " Image tags updated in values.yaml"
214221 echo " "
@@ -312,28 +319,28 @@ generate_supabase_secrets() {
312319 echo " Updating Supabase secrets in values.yaml..."
313320
314321 # Update secrets.supabase.jwtSecret
315- if grep -q " jwtSecret:" " $CHART_DIR /values.yaml " ; then
316- sed -i " s|jwtSecret:.*|jwtSecret: \" $JWT_SECRET \" |" " $CHART_DIR /values.yaml "
322+ if grep -q " jwtSecret:" " $COMMON_VALUES " ; then
323+ sed -i " s|jwtSecret:.*|jwtSecret: \" $JWT_SECRET \" |" " $COMMON_VALUES "
317324 fi
318325
319326 # Update secrets.supabase.secretKeyBase
320- if grep -q " secretKeyBase:" " $CHART_DIR /values.yaml " ; then
321- sed -i " s|secretKeyBase:.*|secretKeyBase: \" $SECRET_KEY_BASE \" |" " $CHART_DIR /values.yaml "
327+ if grep -q " secretKeyBase:" " $COMMON_VALUES " ; then
328+ sed -i " s|secretKeyBase:.*|secretKeyBase: \" $SECRET_KEY_BASE \" |" " $COMMON_VALUES "
322329 fi
323330
324331 # Update secrets.supabase.vaultEncKey
325- if grep -q " vaultEncKey:" " $CHART_DIR /values.yaml " ; then
326- sed -i " s|vaultEncKey:.*|vaultEncKey: \" $VAULT_ENC_KEY \" |" " $CHART_DIR /values.yaml "
332+ if grep -q " vaultEncKey:" " $COMMON_VALUES " ; then
333+ sed -i " s|vaultEncKey:.*|vaultEncKey: \" $VAULT_ENC_KEY \" |" " $COMMON_VALUES "
327334 fi
328335
329336 # Update secrets.supabase.anonKey
330- if grep -q " anonKey:" " $CHART_DIR /values.yaml " ; then
331- sed -i " s|anonKey:.*|anonKey: \" $anon_key \" |" " $CHART_DIR /values.yaml "
337+ if grep -q " anonKey:" " $COMMON_VALUES " ; then
338+ sed -i " s|anonKey:.*|anonKey: \" $anon_key \" |" " $COMMON_VALUES "
332339 fi
333340
334341 # Update secrets.supabase.serviceRoleKey
335- if grep -q " serviceRoleKey:" " $CHART_DIR /values.yaml " ; then
336- sed -i " s|serviceRoleKey:.*|serviceRoleKey: \" $service_role_key \" |" " $CHART_DIR /values.yaml "
342+ if grep -q " serviceRoleKey:" " $COMMON_VALUES " ; then
343+ sed -i " s|serviceRoleKey:.*|serviceRoleKey: \" $service_role_key \" |" " $COMMON_VALUES "
337344 fi
338345
339346 echo " Supabase secrets generated and saved to values.yaml"
@@ -395,9 +402,9 @@ apply() {
395402 echo " =========================================="
396403 echo " MinIO Access Key/Secret Key Setup"
397404 echo " =========================================="
398- if grep -q " minio:" " $CHART_DIR /values.yaml " && grep -q " accessKey:" " $CHART_DIR /values.yaml " ; then
399- MINIO_ACCESS_KEY=$( grep " accessKey:" " $CHART_DIR /values.yaml " | head -1 | sed ' s/.*accessKey: *//' | tr -d ' "' | tr -d " '" | xargs)
400- MINIO_SECRET_KEY=$( grep " secretKey:" " $CHART_DIR /values.yaml " | head -1 | sed ' s/.*secretKey: *//' | tr -d ' "' | tr -d " '" | xargs)
405+ if grep -q " minio:" " $COMMON_VALUES " && grep -q " accessKey:" " $COMMON_VALUES " ; then
406+ MINIO_ACCESS_KEY=$( grep " accessKey:" " $COMMON_VALUES " | head -1 | sed ' s/.*accessKey: *//' | tr -d ' "' | tr -d " '" | xargs)
407+ MINIO_SECRET_KEY=$( grep " secretKey:" " $COMMON_VALUES " | head -1 | sed ' s/.*secretKey: *//' | tr -d ' "' | tr -d " '" | xargs)
401408 fi
402409
403410 if [ -z " $MINIO_ACCESS_KEY " ] || [ " $MINIO_ACCESS_KEY " = " " ]; then
@@ -406,16 +413,16 @@ apply() {
406413 MINIO_SECRET_KEY=$( head -c 32 /dev/urandom | base64 | tr -dc ' A-Za-z0-9' | head -c 24)
407414
408415 # Write to values.yaml
409- if grep -q " accessKey:" " $CHART_DIR /values.yaml " ; then
410- sed -i " s|accessKey:.*|accessKey: \" $MINIO_ACCESS_KEY \" |" " $CHART_DIR /values.yaml "
416+ if grep -q " accessKey:" " $COMMON_VALUES " ; then
417+ sed -i " s|accessKey:.*|accessKey: \" $MINIO_ACCESS_KEY \" |" " $COMMON_VALUES "
411418 else
412- sed -i " /minio:/a\\ accessKey: \" $MINIO_ACCESS_KEY \" " " $CHART_DIR /values.yaml "
419+ sed -i " /minio:/a\\ accessKey: \" $MINIO_ACCESS_KEY \" " " $COMMON_VALUES "
413420 fi
414421
415- if grep -q " secretKey:" " $CHART_DIR /values.yaml " ; then
416- sed -i " s|secretKey:.*|secretKey: \" $MINIO_SECRET_KEY \" |" " $CHART_DIR /values.yaml "
422+ if grep -q " secretKey:" " $COMMON_VALUES " ; then
423+ sed -i " s|secretKey:.*|secretKey: \" $MINIO_SECRET_KEY \" |" " $COMMON_VALUES "
417424 else
418- sed -i " /minio:/a\\ secretKey: \" $MINIO_SECRET_KEY \" " " $CHART_DIR /values.yaml "
425+ sed -i " /minio:/a\\ secretKey: \" $MINIO_SECRET_KEY \" " " $COMMON_VALUES "
419426 fi
420427 echo " MinIO credentials generated and saved to values.yaml"
421428 echo " Access Key: $MINIO_ACCESS_KEY "
@@ -482,9 +489,9 @@ apply() {
482489 helm upgrade --install nexent " $CHART_DIR " \
483490 --namespace " $NAMESPACE " \
484491 --create-namespace \
485- --set services. openssh.enabled=" $ENABLE_OPENSSH " \
486- --set secrets.ssh.username=" $SSH_USERNAME " \
487- --set secrets.ssh.password=" $SSH_PASSWORD "
492+ --set nexent- openssh.enabled=" $ENABLE_OPENSSH " \
493+ --set nexent-common. secrets.ssh.username=" $SSH_USERNAME " \
494+ --set nexent-common. secrets.ssh.password=" $SSH_PASSWORD "
488495
489496 # Step 9: Wait for Elasticsearch to be ready and initialize API key
490497 echo " "
0 commit comments