Configure prod k8s overlay for FLASHApp deployment#68
Conversation
- Apply `flashapp` slug to namePrefix, commonLabels, Redis URL,
IngressRoute service ref
- Point image at ghcr.io/openms/flashapp:latest
- Wire IngressRoute to flashapp.webapps.openms.{de,org}
- Switch overlay to memory-tier-high component
- Bump rq-worker Deployment to 5 replicas
- Resize workspace-pvc to 3Ti
- Flip CI `latest`-tag gate from refs/heads/main to refs/heads/develop
so develop pushes publish :latest for both the OCI image and the
Apptainer SIF (FLASHApp's active branch is develop, not main)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis PR updates CI/CD tagging strategy to publish latest Docker images and SIF packages from the develop branch instead of main, and reconfigures production Kubernetes deployment from template-app to flashapp with increased storage capacity and updated resource patches. ChangesCI/CD Tagging Strategy
Production flashapp Deployment Configuration
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Wire the prod Kustomize overlay to actually deploy FLASHApp instead of the inherited
template-appplaceholders, plus a few sizing knobs and a CI fix needed for:latestto exist at all on this fork.Overlay (
k8s/overlays/prod/kustomization.yaml)namePrefixandcommonLabels.app:template-app→flashappghcr.io/openms/streamlit-template:main-full→ghcr.io/openms/flashapp:latesttemplate.webapps.openms.{de,org}→flashapp.webapps.openms.{de,org}flashapp-*memory-tier-low→memory-tier-highrq-workerDeploymentreplicas: 1→5Base (
k8s/base/workspace-pvc.yaml)500Gi→3Ti(PVC name andclaimNameuntouched so kustomize still scopes it toflashapp-workspaces-pvc)CI (
.github/workflows/build-and-test.yml)latest-tag enable gate fromrefs/heads/main→refs/heads/developfor both the OCI image (line 79) and the Apptainer SIF (line 306). FLASHApp's CI only triggers ondeveloppushes andv*tags, so without this change:latestwould never get published andImagePullBackOffwould block the cluster.Operator notes (post-merge)
kubectl apply -k k8s/overlays/prod/against the OpenMS cluster.kubectl -n openms rollout status deployment/flashapp-streamlit deployment/flashapp-rq-worker.https://flashapp.webapps.openms.de(and.org).:latestdoesn't trigger a rollout on its own. Runkubectl -n openms rollout restart deployment/flashapp-streamlit deployment/flashapp-rq-workerafter each CI run to pick up the rebuilt image.Caveats
workspaces-pvcisReadWriteOnce. After rollout, 2 streamlit + 5 rq-worker = 7 pods must share one node. If pods sitPending, scale rq-worker back down or switch the storage class to RWX.memory-tier-high: requires worker nodes labelledopenms.de/memory-tier=high. Confirms with cluster admin that capacity exists alongside the existing heavy DIA apps.cinder-csi. In-place expansion of an already-deployed PVC requiresallowVolumeExpansion: trueon the StorageClass — recreate, don't edit, if expansion isn't allowed.Test plan
lint-manifestspasses against the rewritten overlaybuildjob publishesghcr.io/openms/flashapp:latest(verify on GHCR after merge)publish-apptainerjob publishesghcr.io/openms/flashapp/sif:latesttest-traefik/test-nginxkind jobs come up under the newflashapp-resource nameskubectl apply -ksucceeds; pods reach Readyhttps://flashapp.webapps.openms.deandhttps://flashapp.webapps.openms.orgboth serve the app🤖 Generated with Claude Code
Summary by CodeRabbit