Skip to content

Commit 05e0b27

Browse files
committed
fix: telemetry-redis is not optional
1 parent 40fbdf2 commit 05e0b27

19 files changed

Lines changed: 226 additions & 155 deletions

helm/fiftyone-teams-app/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1094,7 +1094,6 @@ If pods show unhealthy states (e.g., `0/1`, `CrashLoopBackOff`, `Pending`):
10941094
| teamsAppSettings.updateStrategy | object | `{"type":"RollingUpdate"}` | Control how `teams-app` pods are redeployed during an upgrade. [Reference][upgrade-strategies] |
10951095
| teamsAppSettings.volumeMounts | list | `[]` | Volume mounts for `teams-app` pods. [Reference][volumes]. |
10961096
| teamsAppSettings.volumes | list | `[]` | Volumes for `teams-app` pods. [Reference][volumes]. |
1097-
| telemetry.enabled | bool | `false` | Controls whether the telemetry Redis backend is deployed and `FIFTYONE_TELEMETRY_REDIS_URL` is injected on consumer deployments. When `false`, no Redis objects are rendered and no env var is added — any sidecars defined via `extraContainers`/`nativeSidecarContainers` remain responsible for their own configuration. |
10981097
| telemetry.redis.affinity | object | `{}` | Affinity for the telemetry Redis pod. [Reference][affinity]. |
10991098
| telemetry.redis.containerSecurityContext | object | `{}` | Container-level security attributes for the telemetry Redis container. [Reference][container-security-context]. |
11001099
| telemetry.redis.external.url | string | `""` | URL of an external Redis to use instead of the bundled one (e.g. `redis://my-redis.example.com:6379`). When set, the chart does not render the bundled Redis `Deployment`/`Service`/`PersistentVolumeClaim`. |

helm/fiftyone-teams-app/templates/_do_targets.tpl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,8 @@ Create a merged list of environment variables for delegated-operator templates
5050
secretKeyRef:
5151
name: {{ .secretName }}
5252
key: encryptionKey
53-
{{- if .telemetryRedisUrl }}
5453
- name: FIFTYONE_TELEMETRY_REDIS_URL
5554
value: {{ .telemetryRedisUrl | quote }}
56-
{{- end }}
5755
{{- range $key, $val := .env }}
5856
- name: {{ $key }}
5957
value: {{ $val | quote }}

helm/fiftyone-teams-app/templates/_helpers.tpl

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -298,16 +298,14 @@ Telemetry Redis URL
298298
299299
Resolves the URL for the telemetry Redis backend:
300300
- if telemetry.redis.external.url is set, returns it (external Redis)
301-
- else if telemetry.enabled, returns the in-cluster Service URL
302-
- else returns empty string
301+
- else returns the in-cluster Service URL for the bundled Redis
303302
304-
Used both by `*-deployment.yaml` env injection and to gate the bundled
305-
Redis templates.
303+
Always returns a non-empty URL — the application depends on Redis.
306304
*/}}
307305
{{- define "fiftyone-teams-app.telemetryRedisUrl" -}}
308306
{{- if .Values.telemetry.redis.external.url -}}
309307
{{- .Values.telemetry.redis.external.url -}}
310-
{{- else if .Values.telemetry.enabled -}}
308+
{{- else -}}
311309
{{- printf "redis://%s:%v" .Values.telemetry.redis.service.name (.Values.telemetry.redis.service.port | int) -}}
312310
{{- end -}}
313311
{{- end }}
@@ -360,10 +358,8 @@ Create a merged list of environment variables for delegated-operator-executor
360358
secretKeyRef:
361359
name: {{ .secretName }}
362360
key: encryptionKey
363-
{{- if .telemetryRedisUrl }}
364361
- name: FIFTYONE_TELEMETRY_REDIS_URL
365362
value: {{ .telemetryRedisUrl | quote }}
366-
{{- end }}
367363
{{- range $key, $val := .env }}
368364
- name: {{ $key }}
369365
value: {{ $val | quote }}
@@ -422,11 +418,8 @@ Create a merged list of environment variables for fiftyone-teams-api
422418
secretKeyRef:
423419
name: {{ $secretName }}
424420
key: fiftyoneDatabaseName
425-
{{- $telemetryRedisUrl := include "fiftyone-teams-app.telemetryRedisUrl" . }}
426-
{{- if $telemetryRedisUrl }}
427421
- name: FIFTYONE_TELEMETRY_REDIS_URL
428-
value: {{ $telemetryRedisUrl | quote }}
429-
{{- end }}
422+
value: {{ include "fiftyone-teams-app.telemetryRedisUrl" . | quote }}
430423
{{- range $key, $val := .Values.apiSettings.env }}
431424
- name: {{ $key }}
432425
value: {{ $val | quote }}
@@ -472,11 +465,8 @@ Create a merged list of environment variables for fiftyone-app
472465
secretKeyRef:
473466
name: {{ $secretName }}
474467
key: encryptionKey
475-
{{- $telemetryRedisUrl := include "fiftyone-teams-app.telemetryRedisUrl" . }}
476-
{{- if $telemetryRedisUrl }}
477468
- name: FIFTYONE_TELEMETRY_REDIS_URL
478-
value: {{ $telemetryRedisUrl | quote }}
479-
{{- end }}
469+
value: {{ include "fiftyone-teams-app.telemetryRedisUrl" . | quote }}
480470
{{- range $key, $val := .Values.appSettings.env }}
481471
- name: {{ $key }}
482472
value: {{ $val | quote }}
@@ -546,11 +536,8 @@ Create a merged list of environment variables for fiftyone-teams-cas
546536
secretKeyRef:
547537
name: {{ $secretName }}
548538
key: mongodbConnectionString
549-
{{- $telemetryRedisUrl := include "fiftyone-teams-app.telemetryRedisUrl" . }}
550-
{{- if $telemetryRedisUrl }}
551539
- name: FIFTYONE_TELEMETRY_REDIS_URL
552-
value: {{ $telemetryRedisUrl | quote }}
553-
{{- end }}
540+
value: {{ include "fiftyone-teams-app.telemetryRedisUrl" . | quote }}
554541
{{- range $key, $val := .Values.casSettings.env }}
555542
- name: {{ $key }}
556543
value: {{ $val | quote }}
@@ -598,11 +585,8 @@ Create a merged list of environment variables for fiftyone-teams-plugins
598585
secretKeyRef:
599586
name: {{ $secretName }}
600587
key: encryptionKey
601-
{{- $telemetryRedisUrl := include "fiftyone-teams-app.telemetryRedisUrl" . }}
602-
{{- if $telemetryRedisUrl }}
603588
- name: FIFTYONE_TELEMETRY_REDIS_URL
604-
value: {{ $telemetryRedisUrl | quote }}
605-
{{- end }}
589+
value: {{ include "fiftyone-teams-app.telemetryRedisUrl" . | quote }}
606590
{{- range $key, $val := .Values.pluginsSettings.env }}
607591
- name: {{ $key }}
608592
value: {{ $val | quote }}
@@ -654,11 +638,8 @@ Create a merged list of environment variables for fiftyone-teams-app
654638
{{- else }}
655639
value: {{ printf "http://%s:%.0f" .Values.appSettings.service.name (float64 .Values.appSettings.service.port) | quote }}
656640
{{- end }}
657-
{{- $telemetryRedisUrl := include "fiftyone-teams-app.telemetryRedisUrl" . }}
658-
{{- if $telemetryRedisUrl }}
659641
- name: FIFTYONE_TELEMETRY_REDIS_URL
660-
value: {{ $telemetryRedisUrl | quote }}
661-
{{- end }}
642+
value: {{ include "fiftyone-teams-app.telemetryRedisUrl" . | quote }}
662643
{{- range $key, $val := .Values.teamsAppSettings.env }}
663644
- name: {{ $key }}
664645
value: {{ $val | quote }}

helm/fiftyone-teams-app/templates/telemetry-redis-deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- if and .Values.telemetry.enabled (not .Values.telemetry.redis.external.url) }}
1+
{{- if not .Values.telemetry.redis.external.url }}
22
apiVersion: apps/v1
33
kind: Deployment
44
metadata:

helm/fiftyone-teams-app/templates/telemetry-redis-pvc.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- if and .Values.telemetry.enabled (not .Values.telemetry.redis.external.url) .Values.telemetry.redis.persistence.enabled }}
1+
{{- if and (not .Values.telemetry.redis.external.url) .Values.telemetry.redis.persistence.enabled }}
22
apiVersion: v1
33
kind: PersistentVolumeClaim
44
metadata:

helm/fiftyone-teams-app/templates/telemetry-redis-service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- if and .Values.telemetry.enabled (not .Values.telemetry.redis.external.url) }}
1+
{{- if not .Values.telemetry.redis.external.url }}
22
apiVersion: v1
33
kind: Service
44
metadata:

helm/fiftyone-teams-app/values.schema.json

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4010,14 +4010,8 @@
40104010
"type": "object"
40114011
},
40124012
"telemetry": {
4013-
"description": "Telemetry sidecar feature. When enabled, the chart provisions a Redis\nbackend used by the telemetry sidecars (see `*.nativeSidecarContainers` /\n`*.extraContainers`) and auto-injects `FIFTYONE_TELEMETRY_REDIS_URL` on\n`fiftyone-app`, `teams-api`, `teams-app`, `teams-cas`, `teams-plugins`,\nand each delegated-operator deployment so the in-app `Settings → Metrics`\npage can read live samples and logs.",
4013+
"description": "Telemetry sidecar feature. The application depends on Redis for the\nin-app `Settings → Metrics` page (live samples and tailed logs from\n`*.nativeSidecarContainers` / `*.extraContainers`). By default the chart\nprovisions a bundled Redis backend. To use an existing/managed Redis\ninstead, set `telemetry.redis.external.url` and the chart will skip the\nbundled `Deployment`/`Service`/`PersistentVolumeClaim` and wire\n`FIFTYONE_TELEMETRY_REDIS_URL` at that URL instead. The env var is\nalways injected on `fiftyone-app`, `teams-api`, `teams-app`, `teams-cas`,\n`teams-plugins`, and each delegated-operator deployment.",
40144014
"properties": {
4015-
"enabled": {
4016-
"default": false,
4017-
"description": "Controls whether the telemetry Redis backend is deployed and\n`FIFTYONE_TELEMETRY_REDIS_URL` is injected on consumer deployments.\nWhen `false`, no Redis objects are rendered and no env var is added —\nany sidecars defined via `extraContainers`/`nativeSidecarContainers`\nremain responsible for their own configuration.",
4018-
"title": "enabled",
4019-
"type": "boolean"
4020-
},
40214015
"redis": {
40224016
"properties": {
40234017
"affinity": {

helm/fiftyone-teams-app/values.yaml

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,19 +1643,16 @@ teamsAppSettings:
16431643
# -- Volumes for `teams-app` pods. [Reference][volumes].
16441644
volumes: []
16451645

1646-
# Telemetry sidecar feature. When enabled, the chart provisions a Redis
1647-
# backend used by the telemetry sidecars (see `*.nativeSidecarContainers` /
1648-
# `*.extraContainers`) and auto-injects `FIFTYONE_TELEMETRY_REDIS_URL` on
1649-
# `fiftyone-app`, `teams-api`, `teams-app`, `teams-cas`, `teams-plugins`,
1650-
# and each delegated-operator deployment so the in-app `Settings → Metrics`
1651-
# page can read live samples and logs.
1646+
# Telemetry sidecar feature. The application depends on Redis for the
1647+
# in-app `Settings → Metrics` page (live samples and tailed logs from
1648+
# `*.nativeSidecarContainers` / `*.extraContainers`). By default the chart
1649+
# provisions a bundled Redis backend. To use an existing/managed Redis
1650+
# instead, set `telemetry.redis.external.url` and the chart will skip the
1651+
# bundled `Deployment`/`Service`/`PersistentVolumeClaim` and wire
1652+
# `FIFTYONE_TELEMETRY_REDIS_URL` at that URL instead. The env var is
1653+
# always injected on `fiftyone-app`, `teams-api`, `teams-app`, `teams-cas`,
1654+
# `teams-plugins`, and each delegated-operator deployment.
16521655
telemetry:
1653-
# -- Controls whether the telemetry Redis backend is deployed and
1654-
# `FIFTYONE_TELEMETRY_REDIS_URL` is injected on consumer deployments.
1655-
# When `false`, no Redis objects are rendered and no env var is added —
1656-
# any sidecars defined via `extraContainers`/`nativeSidecarContainers`
1657-
# remain responsible for their own configuration.
1658-
enabled: false
16591656
redis:
16601657
# -- Container image for the bundled telemetry Redis.
16611658
image: redis:7-alpine

tests/unit/helm/api-deployment_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,10 @@ func (s *deploymentApiTemplateTest) TestContainerEnv() {
495495
}
496496
}
497497
},
498+
{
499+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
500+
"value": "redis://telemetry-redis:6379"
501+
},
498502
{
499503
"name": "FIFTYONE_DO_EXPIRATION_DAYS",
500504
"value": "1"
@@ -613,6 +617,10 @@ func (s *deploymentApiTemplateTest) TestContainerEnv() {
613617
}
614618
}
615619
},
620+
{
621+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
622+
"value": "redis://telemetry-redis:6379"
623+
},
616624
{
617625
"name": "FIFTYONE_DO_EXPIRATION_DAYS",
618626
"value": "1"
@@ -745,6 +753,10 @@ func (s *deploymentApiTemplateTest) TestContainerEnv() {
745753
}
746754
}
747755
},
756+
{
757+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
758+
"value": "redis://telemetry-redis:6379"
759+
},
748760
{
749761
"name": "FIFTYONE_DO_EXPIRATION_DAYS",
750762
"value": "1"
@@ -874,6 +886,10 @@ func (s *deploymentApiTemplateTest) TestContainerEnv() {
874886
}
875887
}
876888
},
889+
{
890+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
891+
"value": "redis://telemetry-redis:6379"
892+
},
877893
{
878894
"name": "FIFTYONE_DO_EXPIRATION_DAYS",
879895
"value": "1"
@@ -991,6 +1007,10 @@ func (s *deploymentApiTemplateTest) TestContainerEnv() {
9911007
}
9921008
}
9931009
},
1010+
{
1011+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
1012+
"value": "redis://telemetry-redis:6379"
1013+
},
9941014
{
9951015
"name": "FIFTYONE_DO_EXPIRATION_DAYS",
9961016
"value": "1"
@@ -1108,6 +1128,10 @@ func (s *deploymentApiTemplateTest) TestContainerEnv() {
11081128
}
11091129
}
11101130
},
1131+
{
1132+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
1133+
"value": "redis://telemetry-redis:6379"
1134+
},
11111135
{
11121136
"name": "FIFTYONE_DO_EXPIRATION_DAYS",
11131137
"value": "1"

tests/unit/helm/app-deployment_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,10 @@ func (s *deploymentAppTemplateTest) TestContainerEnv() {
472472
}
473473
}
474474
},
475+
{
476+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
477+
"value": "redis://telemetry-redis:6379"
478+
},
475479
{
476480
"name": "FIFTYONE_APP_DEFAULT_QUERY_PERFORMANCE",
477481
"value": "true"
@@ -565,6 +569,10 @@ func (s *deploymentAppTemplateTest) TestContainerEnv() {
565569
}
566570
}
567571
},
572+
{
573+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
574+
"value": "redis://telemetry-redis:6379"
575+
},
568576
{
569577
"name": "FIFTYONE_APP_DEFAULT_QUERY_PERFORMANCE",
570578
"value": "true"
@@ -672,6 +680,10 @@ func (s *deploymentAppTemplateTest) TestContainerEnv() {
672680
}
673681
}
674682
},
683+
{
684+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
685+
"value": "redis://telemetry-redis:6379"
686+
},
675687
{
676688
"name": "FIFTYONE_APP_DEFAULT_QUERY_PERFORMANCE",
677689
"value": "true"
@@ -776,6 +788,10 @@ func (s *deploymentAppTemplateTest) TestContainerEnv() {
776788
}
777789
}
778790
},
791+
{
792+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
793+
"value": "redis://telemetry-redis:6379"
794+
},
779795
{
780796
"name": "FIFTYONE_APP_DEFAULT_QUERY_PERFORMANCE",
781797
"value": "true"
@@ -868,6 +884,10 @@ func (s *deploymentAppTemplateTest) TestContainerEnv() {
868884
}
869885
}
870886
},
887+
{
888+
"name": "FIFTYONE_TELEMETRY_REDIS_URL",
889+
"value": "redis://telemetry-redis:6379"
890+
},
871891
{
872892
"name": "FIFTYONE_APP_DEFAULT_QUERY_PERFORMANCE",
873893
"value": "true"

0 commit comments

Comments
 (0)