Skip to content

Database Replication at SLAC#82

Draft
rearmstr wants to merge 41 commits intoLSSTDESC:mainfrom
rearmstr:helm_nersc
Draft

Database Replication at SLAC#82
rearmstr wants to merge 41 commits intoLSSTDESC:mainfrom
rearmstr:helm_nersc

Conversation

@rearmstr
Copy link
Copy Markdown

No description provided.

fifteen3 and others added 30 commits January 29, 2026 12:24
Includes configurations for:
- Local Kind cluster (values-local.yaml)
- SLAC S3DF production (values-slac.yaml)
- Development vCluster (values-ccosta-dev.yaml)

Services: PostgreSQL, PostgreSQL standby, MongoDB, web app,
query runner, shell pod, mailhog, WAL webserver

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- scripts/helm-deploy.sh: automates build, helm install, code copy to
  PVC via shell pod, and pod restart. Supports --registry-password,
  --skip-build, --skip-helm, and --release flags.
- templates/secrets.yaml: generate dockerconfigjson secret from
  registryCredentials values so image pull secrets are Helm-managed.
- values.yaml, values-ccosta-dev.yaml: add registryCredentials config.
- HELM_HOWTO.md: rewrite deploy instructions around helm-deploy.sh,
  document registry credentials, deploy script options, and uninstall
  behavior.
- ADR-HELM-DEPLOY.md: architecture decision record for the deploy
  script approach vs alternatives (bake into images, init containers,
  Helm hooks, S3).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The rkwebutil frontend uses @external_url@ placeholders in .js.in and
.html.in templates, substituted by ./configure --with-external-url.
For subdirectory deployments (e.g. /fastdb-ccosta-dev/), the frontend
must be built with this path baked in.

- helm-deploy.sh: add --external-url flag that overrides the
  makeinstall entrypoint to pass --with-external-url to configure
- HELM_HOWTO.md: document subdirectory deployments, the relationship
  between --external-url (build-time JS/HTML) and webap.basePath
  (runtime Flask SCRIPT_NAME), and update all examples

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add -n <namespace> to all helm commands in Common Operations to
prevent releases going to the default namespace. Reference the deploy
script as the recommended deploy method and note that bare helm install
leaves the code PVC empty. Clarify uninstall warning about PVC data
loss and add values-ccosta-dev.yaml to file reference table.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Reframe the deploy script as an optional wrapper that saves repetitive
typing during iterative development. Everything it does can be run
manually via helm and kubectl.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add --context to pass through to all kubectl/helm commands so the
script targets the correct cluster instead of the current kubeconfig
context. Add --create-cluster to create a Kind cluster before
deploying, using sed to expand ${PWD} in the Kind config template.
Cluster name is derived from the namespace. Update defaults from
ccosta-dev to local. Update HELM_HOWTO.md to match.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The sessions, query-results, and logs PVCs were hardcoded to
ReadWriteMany which Kind's local-path provisioner does not support.
Template the access mode from values (default ReadWriteMany) and
override to ReadWriteOnce in values-local.yaml. Also update local
image registry/tag to match docker-compose output so images can be
loaded into Kind without retagging.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
helm-deploy.sh: auto-detect podman/docker runtime, add --load-images
flag for building and loading container images into Kind clusters
(implied by --create-cluster), default EXTERNAL_URL to "/".
values-ccosta-dev.yaml: add metallb.io/address-pool annotation for
postgres LoadBalancer on S3DF.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Documents the steps to create a user in PostgreSQL, trigger a
password-reset email via the web UI, and retrieve the reset link
from Mailhog logs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Rob Knop <rknop@pobox.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants