Repository navigation
chore(deploy): genericize o6n deployment config out of public repo - #600
Conversation
The repo is public; o6n-specific topology (mesh IP, internal registry host, namespace, secret names) had leaked into helm values, the deploy script, the woodpecker pipeline, and the runbooks. No secret values were exposed. - Replace helm/values-o6n-deepseek.yaml with a placeholder values-example.yaml - deploy script: support VALUES_CONTENT (inject real values from a Woodpecker secret via temp file, like KUBECONFIG_CONTENT); genericize defaults - .woodpecker/deploy.yml: source namespace/image-repo/values from secrets (k8s_namespace, image_repository, deploy_values); keep build-registry image - genericize phase2-k8s + woodpecker runbooks to placeholders; note real values live in the private SRE inventory + Woodpecker repo secrets Build-registry hostname in .woodpecker/ci.yml is structural and retained. Git history is intentionally not rewritten (topology only, no credentials). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThe deployment pipeline is generalized from hardcoded DeepSeek/Langfuse/namespace-specific values to secrets-sourced, placeholder-driven configuration. The deploy script gains apply-mode guardrails rejecting placeholder inputs, secure temp-file handling for kubeconfig and values content, and an updated Helm invocation. The CI pipeline, Helm example values, tests, and docs are all updated to match. ChangesGeneralize deploy pipeline to placeholder-based configuration
Estimated code review effort🎯 2 (Simple) | ⏱️ ~15 minutes Possibly related PRs
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
Review found apply mode would silently fall through to the genericized placeholders (<registry> image, example values) if the Woodpecker secrets were unset/empty — asymmetric with the existing IMAGE_TAG hard-fail. Reject apply when IMAGE_REPOSITORY is still a placeholder or no real values source is provided; dry-run intentionally still tolerates the placeholders. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Why
This repo is public. o6n-specific infra topology had leaked into HEAD: internal registry host (
git.mesh.kinaz.me), the o6n netbird mesh IP, namespace, NodePort, and secret names. No secret values were exposed (the SealedSecret boundary held). This stops the bleeding going forward; git history is intentionally left as-is (topology only, no credentials).Changes
values-o6n-deepseek.yaml; add placeholdervalues-example.yaml(same knobs, no real data).VALUES_CONTENT(real values injected from a Woodpecker secret via a 0600 temp file, mirroringKUBECONFIG_CONTENT); genericize defaults;HELM_VALUESkept as fallback.K8S_NAMESPACE,IMAGE_REPOSITORY, and values from secrets (k8s_namespace,image_repository,deploy_values); manual + dry-run-default unchanged. Deploy-toolsimage:(build registry) is structural and retained with a comment.phase2-k8s.md+woodpecker.mdto<placeholders>; note real values live in the private SRE inventory + Woodpecker repo secrets.Not in scope / accepted
.woodpecker/ci.ymlkaniko build-registry hostname is structural and retained.Cutover dependency (step ②)
Live deploy now requires Woodpecker repo secrets:
deploy_values(real o6n values),k8s_namespace,image_repository(plus existingkubeconfig).Verification
uv run pytest tests/deploy/ -q→ 38 passed (outside codex sandbox).🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Chores
Tests