From 63aaa975d8a1395cefb63ff7aefb0519ea50ce77 Mon Sep 17 00:00:00 2001 From: Shuning Date: Mon, 9 Feb 2026 10:33:29 +0800 Subject: [PATCH 1/6] remove empty envs --- charts/cactus-backend/Chart.yaml | 4 ++-- charts/cactus-backend/README.md | 6 ++++++ charts/cactus-backend/templates/workload.yaml | 2 ++ charts/cactus-parser/Chart.yaml | 2 +- charts/cactus-parser/README.md | 9 ++++++++- charts/cactus-parser/templates/workload.yaml | 2 ++ 6 files changed, 21 insertions(+), 4 deletions(-) diff --git a/charts/cactus-backend/Chart.yaml b/charts/cactus-backend/Chart.yaml index d47432e..a25764e 100644 --- a/charts/cactus-backend/Chart.yaml +++ b/charts/cactus-backend/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: cactus-backend description: A backend that exposes an API for the Cactus app to use. type: application -version: 0.5.11 +version: 0.5.12 appVersion: "0.2" maintainers: - name: dataviruset @@ -25,7 +25,7 @@ dependencies: repository: https://juicedata.github.io/charts/ condition: juicefs-s3-gateway.enabled - name: cactus-parser - version: 0.0.5 + version: 0.0.7 repository: https://charts.lookingglassprotocol.com condition: cactus-parser.enabled - name: opentelemetry-collector diff --git a/charts/cactus-backend/README.md b/charts/cactus-backend/README.md index bbadc2f..a2ee765 100644 --- a/charts/cactus-backend/README.md +++ b/charts/cactus-backend/README.md @@ -134,6 +134,12 @@ Version 0.5.0 introduces significant changes to the feature set of the Cactus Ba * OpenTelemetry integration is now disabled by default. To enable telemetry for both the Cactus Backend and Cactus Parser, set `cactus-backend.envVars.OTEL_ENABLED` and `cactus-backend.cactus-parser.envVars.OTEL_ENABLED` to `true` in your configuration. If you would like to use the OpenTelemetry sub-chart it can be enabled by setting `opentelemetry-collector.enable` to true just like before. +### Upgrading to 0.5.12 + +#### Fixes + +* Environment variables from `envVars` that are `null`, invalid, or empty strings are now omitted from the workload. This is mainly for the case when you need to overwrite env vars with secrets: duplicated env names (e.g. the same key in both `envVars` and `secrets`) can cause "Failed to compare desired state to live state" in ArgoCD. By omitting empty values, you can leave a key unset in `envVars` and provide it only via `secretKeyRef` without conflicts. No changes required to your values—this is transparent. + ## Chart Structure - `Chart.yaml` - Chart metadata diff --git a/charts/cactus-backend/templates/workload.yaml b/charts/cactus-backend/templates/workload.yaml index a46ab32..5d1e0f2 100644 --- a/charts/cactus-backend/templates/workload.yaml +++ b/charts/cactus-backend/templates/workload.yaml @@ -79,8 +79,10 @@ spec: {{- end }} env: {{- range $key, $value := .Values.envVars }} + {{- if and (ne (typeOf $value) "nil") (not (kindIs "invalid" $value)) (not (and (kindIs "string" $value) (eq (trim $value) ""))) }} - name: {{ $key }} value: {{ quote $value }} + {{- end }} {{- end }} {{- range $secretSource, $secretConfig := $secrets }} {{- if eq $secretSource "cactus-backend" }}{{ $secretSource = $secretName }}{{- end }} diff --git a/charts/cactus-parser/Chart.yaml b/charts/cactus-parser/Chart.yaml index e351e68..aa355fc 100644 --- a/charts/cactus-parser/Chart.yaml +++ b/charts/cactus-parser/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: cactus-parser description: Used to deploy parsers that load product data from a source when requested from cactus-backend type: application -version: 0.0.6 +version: 0.0.7 appVersion: "0.0" maintainers: - name: dataviruset diff --git a/charts/cactus-parser/README.md b/charts/cactus-parser/README.md index e4b8884..50d2694 100644 --- a/charts/cactus-parser/README.md +++ b/charts/cactus-parser/README.md @@ -51,7 +51,7 @@ To upgrade your deployment: helm upgrade cactus-parser matterless/cactus-parser ``` -**Important:** +**Important:** Before upgrading from chart version please review the following steps: 1. **Review the [values.yaml](./values.yaml) file** for any new, deprecated, or changed configuration options. @@ -64,6 +64,13 @@ Before upgrading from chart version please review the following steps: 4. **Backup:** If your deployment uses persistent data, ensure you have backups. 5. **Test:** Consider upgrading in a staging environment before production. +### Upgrading to 0.0.7 + +#### Fixes + +* Environment variables from `envVars` that are `null`, invalid, or empty strings are now omitted from the workload. This is mainly for the case when you need to overwrite env vars with secrets: duplicated env names (e.g. the same key in both `envVars` and `secrets`) can cause "Failed to compare desired state to live state" in ArgoCD. By omitting empty values, you can leave a key unset in `envVars` and provide it only via `secretKeyRef` without conflicts. No changes required to your values—this is transparent. + + ## Chart Structure - `Chart.yaml` - Chart metadata diff --git a/charts/cactus-parser/templates/workload.yaml b/charts/cactus-parser/templates/workload.yaml index e9bd57e..491264f 100644 --- a/charts/cactus-parser/templates/workload.yaml +++ b/charts/cactus-parser/templates/workload.yaml @@ -75,8 +75,10 @@ spec: subPath: "{{ .Values.persistentVolume.subPath }}" env: {{- range $key, $value := .Values.envVars }} + {{- if and (ne (typeOf $value) "nil") (not (kindIs "invalid" $value)) (not (and (kindIs "string" $value) (eq (trim $value) ""))) }} - name: {{ $key }} value: {{ quote $value }} + {{- end }} {{- end }} {{- range $secretSource, $secretConfig := $secrets }} {{- if eq $secretSource "cactus-parser" }}{{ $secretSource = $secretName }}{{- end }} From 72f59ed84c7d12bf270198cbfd89d7db05a2ecb5 Mon Sep 17 00:00:00 2001 From: Shuning Date: Mon, 9 Feb 2026 10:34:12 +0800 Subject: [PATCH 2/6] add configs for pushing notifications --- charts/cactus-backend/values.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/charts/cactus-backend/values.yaml b/charts/cactus-backend/values.yaml index 21890bf..25ab9a6 100644 --- a/charts/cactus-backend/values.yaml +++ b/charts/cactus-backend/values.yaml @@ -339,8 +339,16 @@ envVars: # DOMAIN_EXTERNAL_ID_MAPPINGS_FILE: /app/config/domain_external_mappings.json # The file containing the domain external id mappings. Only set this if you enable configFiles. # APP_KEY: cactus-backend # This is the app key used together with the app secret (defined in the secretData above or by using existingSecret) to access Auki services. You should obtain it from the apps section of the Auki console. - OTEL_COLLECTOR_GRPC_ENDPOINT: http://cactus-backend-opentelemetry-collector:4317 # The grpc endpoint for the opentelemetry collector, it should be Release.name-opentelemetry-collector:4317. OTEL_ENABLED: false + OTEL_COLLECTOR_GRPC_ENDPOINT: http://cactus-backend-opentelemetry-collector:4317 # The grpc endpoint for the opentelemetry collector, it should be Release.name-opentelemetry-collector:4317. + + PUSH_NOTIFICATIONS_FIREBASE_ENABLED: false # Whether to enable push notifications via Firebase. + CRONJOBS_SEND_PUSH_NOTIFICATIONS_SCHEDULE: "0 */5 * * * *" # The schedule for the cron job to send push notifications. + CRONJOBS_CLEANUP_NOTIFICATIONS_SCHEDULE: "0 0 * * * *" # The schedule for the cron job to cleanup notifications. + NOTIFICATIONS_RETENTION_DAYS: 5 # The retention days for the processed notifications. + PUSH_NOTIFICATIONS_TIMEOUT_SECS: 3600 # The timeout for pushing notifications in seconds. + PUSH_NOTIFICATIONS_BATCH_SIZE: 100 # The batch size for sending push notifications. + PUSH_NOTIFICATIONS_MAX_ATTEMPTS: 3 # The maximum number of attempts to push a notification. ## Autoscaling configuration ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ autoscaling: From b1b6cd09c35df8f5b2921b3ed22c7cfc21787107 Mon Sep 17 00:00:00 2001 From: Shuning Date: Mon, 9 Feb 2026 10:37:32 +0800 Subject: [PATCH 3/6] use cactus parser 0.0.6 to pass first --- charts/cactus-backend/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/cactus-backend/Chart.yaml b/charts/cactus-backend/Chart.yaml index a25764e..fd9f31a 100644 --- a/charts/cactus-backend/Chart.yaml +++ b/charts/cactus-backend/Chart.yaml @@ -25,7 +25,7 @@ dependencies: repository: https://juicedata.github.io/charts/ condition: juicefs-s3-gateway.enabled - name: cactus-parser - version: 0.0.7 + version: 0.0.6 repository: https://charts.lookingglassprotocol.com condition: cactus-parser.enabled - name: opentelemetry-collector From 6f34e4b2a1cac0bcf9191b16e5f673537927c511 Mon Sep 17 00:00:00 2001 From: Shuning Date: Mon, 9 Feb 2026 11:55:49 +0800 Subject: [PATCH 4/6] fix README --- charts/cactus-backend/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/cactus-backend/README.md b/charts/cactus-backend/README.md index a2ee765..848dc28 100644 --- a/charts/cactus-backend/README.md +++ b/charts/cactus-backend/README.md @@ -132,7 +132,7 @@ Version 0.5.0 introduces significant changes to the feature set of the Cactus Ba #### Fixes -* OpenTelemetry integration is now disabled by default. To enable telemetry for both the Cactus Backend and Cactus Parser, set `cactus-backend.envVars.OTEL_ENABLED` and `cactus-backend.cactus-parser.envVars.OTEL_ENABLED` to `true` in your configuration. If you would like to use the OpenTelemetry sub-chart it can be enabled by setting `opentelemetry-collector.enable` to true just like before. +* OpenTelemetry integration is now disabled by default. To enable telemetry for both the Cactus Backend and Cactus Parser, set `cactus-backend.envVars.OTEL_ENABLED` and `cactus-backend.cactus-parser.envVars.OTEL_ENABLED` to `true` in your configuration. If you would like to use the OpenTelemetry sub-chart it can be enabled by setting `opentelemetry-collector.enable` to `true` just like before. ### Upgrading to 0.5.12 From 5c637aba126d43ef9aa1eec44d6c336fdbc1db06 Mon Sep 17 00:00:00 2001 From: Shuning Date: Mon, 9 Feb 2026 11:57:06 +0800 Subject: [PATCH 5/6] fix README --- charts/cactus-parser/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/charts/cactus-parser/README.md b/charts/cactus-parser/README.md index 50d2694..614d2a9 100644 --- a/charts/cactus-parser/README.md +++ b/charts/cactus-parser/README.md @@ -64,6 +64,12 @@ Before upgrading from chart version please review the following steps: 4. **Backup:** If your deployment uses persistent data, ensure you have backups. 5. **Test:** Consider upgrading in a staging environment before production. +### Upgrading to 0.0.6 + +#### Fixes + +* OpenTelemetry integration is now disabled by default. To enable telemetry for Cactus Parser, set `cactus-parser.envVars.OTEL_ENABLED` to `true` in your configuration. + ### Upgrading to 0.0.7 #### Fixes From dc5ce653c9ec20ed646a47c5ba383400a59984c3 Mon Sep 17 00:00:00 2001 From: Shuning Date: Mon, 9 Feb 2026 13:55:48 +0800 Subject: [PATCH 6/6] upgrade cactus parser to 0.0.7 --- charts/cactus-backend/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/cactus-backend/Chart.yaml b/charts/cactus-backend/Chart.yaml index fd9f31a..a25764e 100644 --- a/charts/cactus-backend/Chart.yaml +++ b/charts/cactus-backend/Chart.yaml @@ -25,7 +25,7 @@ dependencies: repository: https://juicedata.github.io/charts/ condition: juicefs-s3-gateway.enabled - name: cactus-parser - version: 0.0.6 + version: 0.0.7 repository: https://charts.lookingglassprotocol.com condition: cactus-parser.enabled - name: opentelemetry-collector