From 90ebf1ffeebeba4fdce2fc95402c741a9d454186 Mon Sep 17 00:00:00 2001 From: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co> Date: Sat, 27 Jun 2026 11:55:12 -0400 Subject: [PATCH] chore(chart): remove the eval-only Typesense subsystem from the Helm chart Typesense is no longer a relay dependency (search is Postgres FTS), so the chart no longer provisions, wires, validates, or secrets a Typesense backend: - Deleted templates/quickstart-typesense.yaml (in-cluster eval Deployment). - deployment.yaml: dropped TYPESENSE_URL / TYPESENSE_API_KEY env from the relay. - secret-chart.yaml: dropped the Typesense URL/key composition block. - _helpers.tpl: removed buzz.typesenseFullname / buzz.typesenseUrl defines. - _validate.tpl: removed the 'Typesense source must exist' fail-guard. - values.yaml / values.schema.json: removed the typesense.* value block and schema, and the TYPESENSE_* entries from the existingSecret key docs. - NOTES.txt: dropped Typesense from the quickstart/production profile output. - ci/, examples/, Chart.yaml: dropped Typesense from the quickstart render scenario, the GitOps samples, and the chart description. - tests/: removed the three Typesense-specific helm-unittest cases and the now-meaningless typesense.* set/fixture boilerplate. Verified: helm-unittest 25/25 green (was 28; -3 Typesense cases); helm lint clean; ci/quickstart + ha + production-existing-secret render matrices all template cleanly after helm dependency build. Co-authored-by: Tyler Longwell Signed-off-by: Tyler Longwell --- deploy/charts/buzz/Chart.yaml | 2 +- deploy/charts/buzz/ci/quickstart-values.yaml | 4 +- deploy/charts/buzz/examples/argocd-app.yaml | 3 - .../buzz/examples/flux-helmrelease.yaml | 3 - .../charts/buzz/examples/secret-sample.yaml | 4 - deploy/charts/buzz/templates/NOTES.txt | 5 +- deploy/charts/buzz/templates/_helpers.tpl | 14 +-- deploy/charts/buzz/templates/_validate.tpl | 5 - deploy/charts/buzz/templates/deployment.yaml | 10 -- .../buzz/templates/quickstart-typesense.yaml | 96 ------------------- .../charts/buzz/templates/secret-chart.yaml | 22 ----- .../charts/buzz/tests/fixtures/ha-values.yaml | 2 - .../production-existing-secret-values.yaml | 2 - deploy/charts/buzz/tests/networking_test.yaml | 8 -- .../buzz/tests/quickstart_bundled_test.yaml | 35 +------ .../buzz/tests/quickstart_guards_test.yaml | 20 +--- deploy/charts/buzz/tests/render_test.yaml | 6 +- deploy/charts/buzz/tests/secrets_test.yaml | 12 --- deploy/charts/buzz/tests/validation_test.yaml | 25 ----- deploy/charts/buzz/values.schema.json | 18 ---- deploy/charts/buzz/values.yaml | 26 +---- 21 files changed, 15 insertions(+), 307 deletions(-) delete mode 100644 deploy/charts/buzz/templates/quickstart-typesense.yaml diff --git a/deploy/charts/buzz/Chart.yaml b/deploy/charts/buzz/Chart.yaml index 0a1a32d3c..3bba76102 100644 --- a/deploy/charts/buzz/Chart.yaml +++ b/deploy/charts/buzz/Chart.yaml @@ -4,7 +4,7 @@ description: | Buzz — a Nostr-based messaging platform for human–agent collaboration. A single relay binary serving WebSocket + REST + web UI, backed by - PostgreSQL, Redis, and Typesense. Configurable for single-node evaluation + PostgreSQL and Redis. Configurable for single-node evaluation (subcharts on) and HA production (external services, existingSecret). type: application version: 0.1.0 diff --git a/deploy/charts/buzz/ci/quickstart-values.yaml b/deploy/charts/buzz/ci/quickstart-values.yaml index 71d4e76a4..4dcf6bcd2 100644 --- a/deploy/charts/buzz/ci/quickstart-values.yaml +++ b/deploy/charts/buzz/ci/quickstart-values.yaml @@ -1,6 +1,6 @@ # Quickstart / eval: subcharts on, autogen secrets, single replica. # This is the scenario `ct install` exercises against a kind cluster — it -# spins up postgres + redis + minio + typesense in-cluster so the relay can +# spins up postgres + redis + minio in-cluster so the relay can # actually start and pass its S3 conformance probe. quickstart: true postgresql: @@ -9,8 +9,6 @@ redis: enabled: true minio: enabled: true -typesense: - enabled: true relayUrl: wss://buzz.test.local ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000001" relay: diff --git a/deploy/charts/buzz/examples/argocd-app.yaml b/deploy/charts/buzz/examples/argocd-app.yaml index 612f6e4b2..bc693e015 100644 --- a/deploy/charts/buzz/examples/argocd-app.yaml +++ b/deploy/charts/buzz/examples/argocd-app.yaml @@ -37,9 +37,6 @@ spec: externalRedis: url: "" - typesense: - url: "http://typesense.buzz.svc.cluster.local:8108" - # apiKey lives in buzz-secrets s3: endpoint: "https://s3.us-east-1.amazonaws.com" diff --git a/deploy/charts/buzz/examples/flux-helmrelease.yaml b/deploy/charts/buzz/examples/flux-helmrelease.yaml index a6b6276c5..7d9837294 100644 --- a/deploy/charts/buzz/examples/flux-helmrelease.yaml +++ b/deploy/charts/buzz/examples/flux-helmrelease.yaml @@ -37,9 +37,6 @@ spec: secrets: existingSecret: buzz-secrets - typesense: - url: "http://typesense.buzz.svc.cluster.local:8108" - # apiKey lives in buzz-secrets s3: endpoint: "https://s3.us-east-1.amazonaws.com" diff --git a/deploy/charts/buzz/examples/secret-sample.yaml b/deploy/charts/buzz/examples/secret-sample.yaml index c842038b4..e19511bb1 100644 --- a/deploy/charts/buzz/examples/secret-sample.yaml +++ b/deploy/charts/buzz/examples/secret-sample.yaml @@ -9,8 +9,6 @@ # BUZZ_GIT_HOOK_HMAC_SECRET — 32+ chars; required when replicaCount > 1 # DATABASE_URL — postgres://... # REDIS_URL — redis://... (required when replicaCount > 1) -# TYPESENSE_URL -# TYPESENSE_API_KEY # BUZZ_S3_ACCESS_KEY # BUZZ_S3_SECRET_KEY apiVersion: v1 @@ -24,7 +22,5 @@ stringData: BUZZ_GIT_HOOK_HMAC_SECRET: "REPLACE_WITH_RANDOM_64_CHARS" DATABASE_URL: "postgres://buzz:REPLACE@postgres.buzz.svc.cluster.local:5432/buzz?sslmode=require" REDIS_URL: "redis://:REPLACE@redis.buzz.svc.cluster.local:6379" - TYPESENSE_URL: "http://typesense.buzz.svc.cluster.local:8108" - TYPESENSE_API_KEY: "REPLACE" BUZZ_S3_ACCESS_KEY: "REPLACE" BUZZ_S3_SECRET_KEY: "REPLACE" diff --git a/deploy/charts/buzz/templates/NOTES.txt b/deploy/charts/buzz/templates/NOTES.txt index 35a1080ad..c60acf0b4 100644 --- a/deploy/charts/buzz/templates/NOTES.txt +++ b/deploy/charts/buzz/templates/NOTES.txt @@ -26,19 +26,18 @@ ────────────────────────────────────────────────────────────────────────────── Profile ────────────────────────────────────────────────────────────────────────────── -{{ if or .Values.postgresql.enabled .Values.redis.enabled .Values.minio.enabled .Values.typesense.enabled }} +{{ if or .Values.postgresql.enabled .Values.redis.enabled .Values.minio.enabled }} ⚠ QUICKSTART / EVALUATION PROFILE {{ if .Values.postgresql.enabled }}- In-cluster Postgres subchart (CloudPirates){{ end }} {{ if .Values.redis.enabled }}- In-cluster Redis subchart (CloudPirates){{ end }} {{ if .Values.minio.enabled }}- In-cluster MinIO (eval-only, single replica; bucket "{{ .Values.s3.bucket }}" created by post-install Job){{ end }} - {{ if .Values.typesense.enabled }}- In-cluster Typesense (eval-only, single replica){{ end }} - Chart auto-generates secrets via the `lookup` pattern. This is NOT GitOps-safe — secrets will silently rotate under ArgoCD/Flux. For production, see examples/argocd-app.yaml or examples/flux-helmrelease.yaml. {{ else }} ✓ PRODUCTION PROFILE - External Postgres, Redis (if enabled), Typesense, S3. + External Postgres, Redis (if enabled), S3. {{ if .Values.secrets.existingSecret }}- Secrets sourced from: {{ .Values.secrets.existingSecret }}{{ end }} {{ end }} diff --git a/deploy/charts/buzz/templates/_helpers.tpl b/deploy/charts/buzz/templates/_helpers.tpl index e7ac0ed16..f35c5b9ce 100644 --- a/deploy/charts/buzz/templates/_helpers.tpl +++ b/deploy/charts/buzz/templates/_helpers.tpl @@ -37,7 +37,7 @@ app.kubernetes.io/instance: {{ .Release.Name }} {{- end -}} {{/* Relay-specific selector: scopes the relay Deployment + Service so they do - not also match the quickstart MinIO/Typesense pods, which share the base + not also match the quickstart MinIO pods, which share the base selectorLabels but carry their own component label. */}} {{- define "buzz.relaySelectorLabels" -}} {{ include "buzz.selectorLabels" . }} @@ -98,10 +98,6 @@ secrets.existingSecret, use that. Otherwise use the chart-managed one. {{- printf "%s-minio" (include "buzz.fullname" .) -}} {{- end -}} -{{- define "buzz.typesenseFullname" -}} -{{- printf "%s-typesense" (include "buzz.fullname" .) -}} -{{- end -}} - {{/* In-cluster MinIO endpoint, used when minio.enabled and s3.endpoint unset. */}} {{- define "buzz.minioEndpoint" -}} {{- printf "http://%s.%s.svc.cluster.local:9000" (include "buzz.minioFullname" .) .Release.Namespace -}} @@ -116,11 +112,3 @@ secrets.existingSecret, use that. Otherwise use the chart-managed one. {{- end -}} {{- end -}} -{{/* In-cluster Typesense URL, used when typesense.enabled and url unset. */}} -{{- define "buzz.typesenseUrl" -}} -{{- if .Values.typesense.url -}} -{{- .Values.typesense.url -}} -{{- else if .Values.typesense.enabled -}} -{{- printf "http://%s.%s.svc.cluster.local:8108" (include "buzz.typesenseFullname" .) .Release.Namespace -}} -{{- end -}} -{{- end -}} diff --git a/deploy/charts/buzz/templates/_validate.tpl b/deploy/charts/buzz/templates/_validate.tpl index a6435f606..c0a471f07 100644 --- a/deploy/charts/buzz/templates/_validate.tpl +++ b/deploy/charts/buzz/templates/_validate.tpl @@ -50,11 +50,6 @@ surface at template time regardless of which manifest helm renders first. {{- fail "Postgres source missing: enable postgresql.enabled=true, set externalPostgresql.url, or provide secrets.existingSecret with key DATABASE_URL." -}} {{- end -}} -{{/* Typesense source must exist somewhere */}} -{{- if not (or .Values.typesense.enabled .Values.typesense.url .Values.secrets.existingSecret) -}} - {{- fail "Typesense source missing: enable typesense.enabled=true (quickstart in-cluster), set typesense.url + typesense.apiKey, or provide secrets.existingSecret with keys TYPESENSE_URL + TYPESENSE_API_KEY." -}} -{{- end -}} - {{/* S3 / object-storage source must exist somewhere (relay hard-fails its startup conformance probe without a reachable bucket). */}} {{- if not (or .Values.minio.enabled .Values.s3.endpoint .Values.secrets.existingSecret) -}} diff --git a/deploy/charts/buzz/templates/deployment.yaml b/deploy/charts/buzz/templates/deployment.yaml index e234fb8e4..7a2f7c1a7 100644 --- a/deploy/charts/buzz/templates/deployment.yaml +++ b/deploy/charts/buzz/templates/deployment.yaml @@ -130,16 +130,6 @@ spec: name: {{ include "buzz.envSecretName" . }} key: REDIS_URL optional: {{ and (eq (.Values.replicaCount | int) 1) (not .Values.redis.enabled) (not .Values.externalRedis.url) }} - - name: TYPESENSE_URL - valueFrom: - secretKeyRef: - name: {{ include "buzz.envSecretName" . }} - key: TYPESENSE_URL - - name: TYPESENSE_API_KEY - valueFrom: - secretKeyRef: - name: {{ include "buzz.envSecretName" . }} - key: TYPESENSE_API_KEY - name: BUZZ_S3_ACCESS_KEY valueFrom: secretKeyRef: diff --git a/deploy/charts/buzz/templates/quickstart-typesense.yaml b/deploy/charts/buzz/templates/quickstart-typesense.yaml deleted file mode 100644 index 7184d5c5f..000000000 --- a/deploy/charts/buzz/templates/quickstart-typesense.yaml +++ /dev/null @@ -1,96 +0,0 @@ -{{- /* -Eval-only in-cluster Typesense for the quickstart profile. NOT for production — -single replica, no TLS, API key from the chart-managed Secret. Production -deploys leave typesense.enabled=false and point typesense.url/apiKey (or -secrets.existingSecret) at a managed Typesense service. -*/ -}} -{{- if .Values.typesense.enabled -}} -{{- if .Values.secrets.existingSecret -}} -{{- fail "typesense.enabled=true (quickstart) is incompatible with secrets.existingSecret. Quickstart autogenerates the Typesense key in the chart-managed Secret; for external Typesense set typesense.enabled=false and provide TYPESENSE_URL/TYPESENSE_API_KEY." -}} -{{- end -}} -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "buzz.typesenseFullname" . }} - labels: - {{- include "buzz.labels" . | nindent 4 }} - app.kubernetes.io/component: typesense -spec: - replicas: 1 - strategy: - type: Recreate - selector: - matchLabels: - {{- include "buzz.selectorLabels" . | nindent 6 }} - app.kubernetes.io/component: typesense - template: - metadata: - labels: - {{- include "buzz.selectorLabels" . | nindent 8 }} - app.kubernetes.io/component: typesense - spec: - containers: - - name: typesense - image: {{ .Values.typesense.image | quote }} - args: - - "--data-dir=/data" - - "--api-key=$(TYPESENSE_API_KEY)" - - "--enable-cors" - env: - - name: TYPESENSE_API_KEY - valueFrom: - secretKeyRef: - name: {{ include "buzz.chartSecretName" . }} - key: TYPESENSE_API_KEY - ports: - - { name: http, containerPort: 8108 } - readinessProbe: - httpGet: { path: /health, port: http } - initialDelaySeconds: 3 - periodSeconds: 5 - livenessProbe: - httpGet: { path: /health, port: http } - initialDelaySeconds: 5 - periodSeconds: 10 - volumeMounts: - - { name: data, mountPath: /data } - volumes: - - name: data - {{- if .Values.typesense.persistence.enabled }} - persistentVolumeClaim: - claimName: {{ include "buzz.typesenseFullname" . }} - {{- else }} - emptyDir: {} - {{- end }} ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ include "buzz.typesenseFullname" . }} - labels: - {{- include "buzz.labels" . | nindent 4 }} - app.kubernetes.io/component: typesense -spec: - selector: - {{- include "buzz.selectorLabels" . | nindent 4 }} - app.kubernetes.io/component: typesense - ports: - - { name: http, port: 8108, targetPort: http } -{{- if .Values.typesense.persistence.enabled }} ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: {{ include "buzz.typesenseFullname" . }} - labels: - {{- include "buzz.labels" . | nindent 4 }} - app.kubernetes.io/component: typesense - annotations: - helm.sh/resource-policy: keep -spec: - accessModes: ["ReadWriteOnce"] - resources: - requests: - storage: {{ .Values.typesense.persistence.size | quote }} -{{- end }} -{{- end -}} diff --git a/deploy/charts/buzz/templates/secret-chart.yaml b/deploy/charts/buzz/templates/secret-chart.yaml index 0a7677bad..49569bf43 100644 --- a/deploy/charts/buzz/templates/secret-chart.yaml +++ b/deploy/charts/buzz/templates/secret-chart.yaml @@ -73,28 +73,6 @@ data: REDIS_URL: {{ .Values.externalRedis.url | b64enc | quote }} {{- end }} - {{- /* Typesense — bundled (quickstart) composes URL + autogen key; else - pass through external values. */}} - {{- if .Values.typesense.enabled }} - {{- $tsKey := "" }} - {{- if (index $existingData "TYPESENSE_API_KEY") }} - {{- $tsKey = index $existingData "TYPESENSE_API_KEY" | b64dec }} - {{- else if .Values.typesense.apiKey }} - {{- $tsKey = .Values.typesense.apiKey }} - {{- else }} - {{- $tsKey = randAlphaNum 32 }} - {{- end }} - TYPESENSE_URL: {{ include "buzz.typesenseUrl" . | b64enc | quote }} - TYPESENSE_API_KEY: {{ $tsKey | b64enc | quote }} - {{- else }} - {{- if .Values.typesense.url }} - TYPESENSE_URL: {{ .Values.typesense.url | b64enc | quote }} - {{- end }} - {{- if .Values.typesense.apiKey }} - TYPESENSE_API_KEY: {{ .Values.typesense.apiKey | b64enc | quote }} - {{- end }} - {{- end }} - {{- /* S3 creds — bundled MinIO (quickstart) autogenerates; else pass through external values. */}} {{- if .Values.minio.enabled }} diff --git a/deploy/charts/buzz/tests/fixtures/ha-values.yaml b/deploy/charts/buzz/tests/fixtures/ha-values.yaml index c1e014ae1..5fd6ba17b 100644 --- a/deploy/charts/buzz/tests/fixtures/ha-values.yaml +++ b/deploy/charts/buzz/tests/fixtures/ha-values.yaml @@ -8,8 +8,6 @@ externalPostgresql: url: "postgres://buzz:pw@postgres.example.com:5432/buzz" externalRedis: url: "redis://:pw@redis.example.com:6379" -typesense: - url: "https://typesense.example.com" s3: bucket: "buzz-media" persistence: diff --git a/deploy/charts/buzz/tests/fixtures/production-existing-secret-values.yaml b/deploy/charts/buzz/tests/fixtures/production-existing-secret-values.yaml index c875c84e9..089181dc4 100644 --- a/deploy/charts/buzz/tests/fixtures/production-existing-secret-values.yaml +++ b/deploy/charts/buzz/tests/fixtures/production-existing-secret-values.yaml @@ -8,8 +8,6 @@ externalPostgresql: url: "postgres://buzz:pw@postgres.example.com:5432/buzz" externalRedis: url: "redis://:pw@redis.example.com:6379" -typesense: - url: "https://typesense.example.com" s3: endpoint: "https://s3.us-east-1.amazonaws.com" bucket: "buzz-media" diff --git a/deploy/charts/buzz/tests/networking_test.yaml b/deploy/charts/buzz/tests/networking_test.yaml index e925bbb2d..882679f2e 100644 --- a/deploy/charts/buzz/tests/networking_test.yaml +++ b/deploy/charts/buzz/tests/networking_test.yaml @@ -9,8 +9,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s @@ -29,8 +27,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s @@ -47,8 +43,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s @@ -68,8 +62,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s diff --git a/deploy/charts/buzz/tests/quickstart_bundled_test.yaml b/deploy/charts/buzz/tests/quickstart_bundled_test.yaml index 7acb8ab75..3a2f6ab94 100644 --- a/deploy/charts/buzz/tests/quickstart_bundled_test.yaml +++ b/deploy/charts/buzz/tests/quickstart_bundled_test.yaml @@ -1,10 +1,9 @@ suite: quickstart bundled services -# The dev quickstart must stand up MinIO + Typesense in-cluster so the relay's +# The dev quickstart must stand up MinIO in-cluster so the relay's # startup S3 conformance probe passes with zero external dependencies. templates: - templates/quickstart-minio.yaml - templates/quickstart-minio-init.yaml - - templates/quickstart-typesense.yaml - templates/deployment.yaml - templates/secret-chart.yaml - templates/service.yaml @@ -17,7 +16,6 @@ tests: ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" postgresql.enabled: true redis.enabled: true - typesense.enabled: true minio.enabled: true asserts: - containsDocument: @@ -32,24 +30,6 @@ tests: name: rel-buzz-minio-init template: templates/quickstart-minio-init.yaml - - it: renders the in-cluster Typesense Deployment when typesense.enabled - release: - name: rel - set: - relayUrl: wss://buzz.example.com - ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" - postgresql.enabled: true - redis.enabled: true - typesense.enabled: true - minio.enabled: true - asserts: - - containsDocument: - kind: Deployment - apiVersion: apps/v1 - name: rel-buzz-typesense - template: templates/quickstart-typesense.yaml - documentIndex: 0 - - it: relay S3 endpoint resolves to the bundled MinIO Service release: name: rel @@ -58,7 +38,6 @@ tests: ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" postgresql.enabled: true redis.enabled: true - typesense.enabled: true minio.enabled: true asserts: - contains: @@ -68,7 +47,7 @@ tests: value: "http://rel-buzz-minio.NAMESPACE.svc.cluster.local:9000" template: templates/deployment.yaml - - it: chart Secret composes TYPESENSE_URL at the bundled Typesense Service + - it: chart Secret composes the bundled MinIO credentials the relay reads release: name: rel set: @@ -76,15 +55,8 @@ tests: ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" postgresql.enabled: true redis.enabled: true - typesense.enabled: true minio.enabled: true asserts: - - matchRegex: - path: data.TYPESENSE_URL - decodeBase64: true - pattern: "^http://rel-buzz-typesense\\..+:8108$" - template: templates/secret-chart.yaml - documentIndex: 0 # MinIO creds the relay reads must exist for the conformance probe. - isNotNullOrEmpty: path: data.BUZZ_S3_ACCESS_KEY @@ -95,7 +67,7 @@ tests: template: templates/secret-chart.yaml documentIndex: 0 - - it: relay Service selector is scoped to component=relay (must NOT match bundled MinIO/Typesense pods) + - it: relay Service selector is scoped to component=relay (must NOT match bundled MinIO pods) release: name: rel set: @@ -103,7 +75,6 @@ tests: ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" postgresql.enabled: true redis.enabled: true - typesense.enabled: true minio.enabled: true asserts: - equal: diff --git a/deploy/charts/buzz/tests/quickstart_guards_test.yaml b/deploy/charts/buzz/tests/quickstart_guards_test.yaml index 9054cf5be..d9601acac 100644 --- a/deploy/charts/buzz/tests/quickstart_guards_test.yaml +++ b/deploy/charts/buzz/tests/quickstart_guards_test.yaml @@ -1,5 +1,5 @@ suite: quickstart guards -# Quickstart autogenerates MinIO/Typesense creds in the chart-managed Secret, +# Quickstart autogenerates MinIO creds in the chart-managed Secret, # so it is mutually exclusive with secrets.existingSecret. Isolated single- # template suites so the fail-guard is the only document under assertion. tests: @@ -10,26 +10,8 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" postgresql.enabled: true - typesense.url: http://ts:8108 - typesense.apiKey: k minio.enabled: true secrets.existingSecret: "buzz-secrets" asserts: - failedTemplate: errorPattern: "incompatible with secrets.existingSecret" - - - it: typesense.enabled is incompatible with existingSecret - templates: - - templates/quickstart-typesense.yaml - set: - relayUrl: wss://buzz.example.com - ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" - postgresql.enabled: true - s3.endpoint: http://minio:9000 - s3.accessKey: a - s3.secretKey: s - typesense.enabled: true - secrets.existingSecret: "buzz-secrets" - asserts: - - failedTemplate: - errorPattern: "incompatible with secrets.existingSecret" diff --git a/deploy/charts/buzz/tests/render_test.yaml b/deploy/charts/buzz/tests/render_test.yaml index 970aeeab8..e6e641aa2 100644 --- a/deploy/charts/buzz/tests/render_test.yaml +++ b/deploy/charts/buzz/tests/render_test.yaml @@ -8,14 +8,12 @@ templates: - templates/service.yaml - templates/pvc-git.yaml tests: - - it: renders cleanly in production profile (external pg/redis/typesense) + - it: renders cleanly in production profile (external pg/redis) set: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d externalRedis.url: redis://h:6379 - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s @@ -39,8 +37,6 @@ tests: ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d externalRedis.url: redis://h:6379 - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s diff --git a/deploy/charts/buzz/tests/secrets_test.yaml b/deploy/charts/buzz/tests/secrets_test.yaml index 1a3690c1f..3f020f6ce 100644 --- a/deploy/charts/buzz/tests/secrets_test.yaml +++ b/deploy/charts/buzz/tests/secrets_test.yaml @@ -8,8 +8,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s @@ -31,8 +29,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s @@ -47,8 +43,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s @@ -70,8 +64,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s @@ -93,8 +85,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s @@ -114,8 +104,6 @@ tests: ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" postgresql.enabled: true redis.enabled: true - typesense.url: http://ts:8108 - typesense.apiKey: k s3.endpoint: http://minio:9000 s3.accessKey: a s3.secretKey: s diff --git a/deploy/charts/buzz/tests/validation_test.yaml b/deploy/charts/buzz/tests/validation_test.yaml index 56e656ae8..d29b17102 100644 --- a/deploy/charts/buzz/tests/validation_test.yaml +++ b/deploy/charts/buzz/tests/validation_test.yaml @@ -7,8 +7,6 @@ tests: relayUrl: "" ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k asserts: - failedTemplate: errorMessage: "relayUrl is required: set --set relayUrl=wss://your.domain" @@ -18,8 +16,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k asserts: - failedTemplate: errorPattern: "ownerPubkey is required when relay.requireRelayMembership=true" @@ -29,8 +25,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "NOTAHEX" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k asserts: - failedTemplate: errorPattern: "ownerPubkey: Does not match pattern" @@ -40,8 +34,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k replicaCount: 3 asserts: - failedTemplate: @@ -53,8 +45,6 @@ tests: ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d externalRedis.url: redis://h:6379 - typesense.url: http://ts:8108 - typesense.apiKey: k replicaCount: 3 persistence.git.accessMode: ReadWriteOnce asserts: @@ -66,8 +56,6 @@ tests: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k ingress.enabled: true httproute.enabled: true asserts: @@ -78,28 +66,15 @@ tests: set: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" - typesense.url: http://ts:8108 - typesense.apiKey: k asserts: - failedTemplate: errorPattern: "Postgres source missing" - - it: fails when Typesense source is missing - set: - relayUrl: wss://buzz.example.com - ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" - externalPostgresql.url: postgres://u:p@h:5432/d - asserts: - - failedTemplate: - errorPattern: "Typesense source missing" - - it: fails when S3/object-storage source is missing set: relayUrl: wss://buzz.example.com ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000000" externalPostgresql.url: postgres://u:p@h:5432/d - typesense.url: http://ts:8108 - typesense.apiKey: k asserts: - failedTemplate: errorPattern: "S3/object-storage source missing" diff --git a/deploy/charts/buzz/values.schema.json b/deploy/charts/buzz/values.schema.json index 38f7b204d..92d5f018a 100644 --- a/deploy/charts/buzz/values.schema.json +++ b/deploy/charts/buzz/values.schema.json @@ -162,24 +162,6 @@ "url": { "type": "string", "pattern": "^(rediss?://.+)?$" } } }, - "typesense": { - "type": "object", - "additionalProperties": false, - "properties": { - "enabled": { "type": "boolean" }, - "url": { "type": "string", "pattern": "^(https?://.+)?$" }, - "apiKey": { "type": "string" }, - "image": { "type": "string", "minLength": 1 }, - "persistence": { - "type": "object", - "additionalProperties": false, - "properties": { - "enabled": { "type": "boolean" }, - "size": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$" } - } - } - } - }, "s3": { "type": "object", "additionalProperties": false, diff --git a/deploy/charts/buzz/values.yaml b/deploy/charts/buzz/values.yaml index 15a70ec28..9b88c820b 100644 --- a/deploy/charts/buzz/values.yaml +++ b/deploy/charts/buzz/values.yaml @@ -2,22 +2,22 @@ # # Two supported tiers: # -# PRODUCTION (default) — external Postgres/Redis/Typesense/S3, existingSecret +# PRODUCTION (default) — external Postgres/Redis/S3, existingSecret # refs everywhere, no chart-side autogeneration, GitOps-safe (ArgoCD/Flux). # HA-ready: replicaCount >= 2 (requires Redis and RWX storage for git). # -# QUICKSTART — bundles in-cluster Postgres + Redis + MinIO + Typesense and +# QUICKSTART — bundles in-cluster Postgres + Redis + MinIO and # auto-generates relay secrets via the `lookup` pattern (NOT GitOps-safe — # see README), single replica, evaluation only. Opt in by enabling each -# bundled service: postgresql.enabled, redis.enabled, minio.enabled, -# typesense.enabled. See ci/quickstart-values.yaml and the README. +# bundled service: postgresql.enabled, redis.enabled, minio.enabled. +# See ci/quickstart-values.yaml and the README. # # See examples/argocd-app.yaml and examples/flux-helmrelease.yaml for the # canonical GitOps configurations. # Intent marker for the evaluation profile, surfaced in NOTES.txt. It does NOT # by itself enable any bundled service — set the per-service .enabled flags -# (postgresql / redis / minio / typesense) to bring them up in-cluster. +# (postgresql / redis / minio) to bring them up in-cluster. quickstart: false # ── Image ──────────────────────────────────────────────────────────────────── @@ -56,8 +56,6 @@ ownerPubkey: "" # BUZZ_GIT_HOOK_HMAC_SECRET — 32+ chars; required when replicaCount > 1 # DATABASE_URL — full Postgres URL (preferred over externalPostgresql.url) # REDIS_URL — full Redis URL with auth -# TYPESENSE_URL — Typesense base URL -# TYPESENSE_API_KEY — Typesense API key # BUZZ_S3_ACCESS_KEY — S3 access key # BUZZ_S3_SECRET_KEY — S3 secret key secrets: @@ -211,20 +209,6 @@ redis: externalRedis: url: "" # redis://:pass@host:6379 -# ── Typesense ──────────────────────────────────────────────────────────────── -# Production: point url/apiKey at an external Typesense service (or supply -# TYPESENSE_URL/TYPESENSE_API_KEY via secrets.existingSecret). -# Quickstart (`enabled: true`): the chart runs an in-cluster, eval-only -# Typesense Deployment and composes TYPESENSE_URL with an autogenerated key. -typesense: - enabled: false # quickstart: set true for bundled in-cluster Typesense - url: "" - apiKey: "" - image: typesense/typesense:30.2 - persistence: - enabled: true - size: 4Gi - # ── S3 / object storage (media) ────────────────────────────────────────────── # Production: point endpoint/bucket at an external S3-compatible service and # supply credentials (inline below or via secrets.existingSecret).