Files
buzz/deploy/local/quickstart-ha-values.yaml
npub17jjz49l9jjmhhk7cac63j8yt9z555n9cw8vk7v5jz4vzw4ppld5qgj57cc 39673d1e67 feat(deploy): local docker-desktop k8s mesh testbed (3-replica HA)
Baseline the mesh lanes redeploy onto: build image -> helm install
quickstart HA (3 replicas) -> 3/3 Ready. Repeatable via
deploy/local/build-and-deploy.sh; evidence dir per run.

Chart fixes for multi-replica quickstart:
- Bucket-init as a NORMAL resource (revision-suffixed), not a helm hook:
  the relay's A3 S3 conformance probe is startup-fatal and does not
  create the bucket, so a post-install hook deadlocks against --wait
  (relay never Ready without the bucket) and a pre-install hook deadlocks
  against MinIO (a normal resource). Running the Job alongside MinIO +
  the Deployment lets its until-loop gate cleanly.
- Relay initContainer waits for the bucket before start, replacing the
  transient CrashLoopBackOff with a deterministic gate.

Dockerfile: optional EXTRA_CA_CERTS + NPM_REGISTRY build-args for builds
behind a TLS-intercepting corporate proxy / registry mirror. No-op on
public CI (args unset).

HA values: replicaCount 3 + persistence.git.enabled=false (per-pod
emptyDir; the default single RWO PVC cannot multi-attach across pods).

Co-authored-by: npub17jjz49l9jjmhhk7cac63j8yt9z555n9cw8vk7v5jz4vzw4ppld5qgj57cc <f4a42a97e594b77bdbd8ee35191c8b28a94a4cb871d96f32921558275421fb68@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: npub17jjz49l9jjmhhk7cac63j8yt9z555n9cw8vk7v5jz4vzw4ppld5qgj57cc <f4a42a97e594b77bdbd8ee35191c8b28a94a4cb871d96f32921558275421fb68@sprout-oss.stage.blox.sqprod.co>
2026-07-08 11:02:39 -04:00

45 lines
1.9 KiB
YAML

# Local docker-desktop HA testbed: quickstart bundled services + 3 replicas.
#
# This is the baseline every mesh build redeploys onto (mesh lane, thread
# fa90bba8 / kickoff 5a760d8d). It layers the HA shape on top of the CI
# quickstart set (ci/quickstart-values.yaml): bundled Postgres/Redis/MinIO,
# chart-autogenerated secrets, membership enforcement off.
#
# Two lines carry HA:
# replicaCount: 3 — chart hard-requires Redis for buzz-pubsub
# (quickstart provides it); the git-hook HMAC
# secret autogenerates chart-side (secret-chart.yaml).
# persistence.git.enabled — false → per-pod emptyDir. The default (true) is a
# single ReadWriteOnce PVC that cannot multi-attach
# across 3 pods on one node; it would wedge 2/3.
# Object store + Postgres are the source of truth
# for git state, not local disk (values.yaml docs
# emptyDir as the correct multi-replica choice).
quickstart: true
postgresql:
enabled: true
redis:
enabled: true
minio:
enabled: true
relayUrl: wss://buzz.test.local
ownerPubkey: "0000000000000000000000000000000000000000000000000000000000000001"
relay:
# Testbed, not business-logic validation — same rationale as CI quickstart.
requireRelayMembership: false
podDisruptionBudget:
enabled: false
# ── HA shape ──────────────────────────────────────────────────────────────
replicaCount: 3
persistence:
git:
enabled: false
# Locally-built image; docker-desktop k8s shares the docker image store, so
# IfNotPresent resolves the tag with no push / `kind load` step.
image:
repository: buzz-relay
tag: mesh-local
pullPolicy: IfNotPresent