-
Notifications
You must be signed in to change notification settings - Fork 2
Add Helm deployment documentation with common scenarios #222
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: mfittko <326798+mfittko@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds comprehensive Helm deployment documentation to make Kubernetes deployments more discoverable and user-friendly. The documentation provides copy-pastable examples for common scenarios (SQLite dev, PostgreSQL production, Redis multi-instance, Ingress with TLS, and HPA autoscaling) while keeping the existing detailed chart-local documentation as the complete reference.
Key Changes:
- Created user-facing Helm deployment guide with 5 quick-start scenarios and production configuration examples
- Updated deployment index to highlight Helm as a primary alternative to AWS ECS with feature comparison
- Added decision guidance to help users choose between Helm and AWS ECS based on their infrastructure
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 8 comments.
| File | Description |
|---|---|
docs/deployment/helm.md |
New comprehensive Helm deployment guide (379 lines) covering SQLite, PostgreSQL, Redis, Ingress, HPA, dispatcher configuration, verification, and upgrade instructions |
docs/deployment/index.md |
Updated to add Kubernetes/Helm section with feature highlights and quick-start examples for SQLite and PostgreSQL deployments |
|
@copilot now fix your comments |
Co-authored-by: mfittko <326798+mfittko@users.noreply.github.com>
…tgreSQL build notes Co-authored-by: mfittko <326798+mfittko@users.noreply.github.com>
mfittko
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ APPROVED - All Issues Resolved
Verification Summary
I've conducted a fresh, comprehensive review of commit 9240f00d and can confirm that all issues from the previous review have been properly addressed.
✅ Critical Issues - FIXED
1. Markdown formatting bug (docs/deployment/index.md line 82)
- Status: ✅ FIXED
- What changed: Removed stray leading space before list bullet
- Impact: Markdown now renders correctly without indentation issues
2. Incomplete dispatcher example (docs/deployment/helm.md lines 254-269)
- Status: ✅ FIXED
- What changed:
- Added
kubectl create secretcommand showing how to create the dispatcher API key secret - Added explicit
--set dispatcher.apiKey.existingSecret.key="DISPATCHER_API_KEY"
- Added
- Impact: Example is now complete and runnable - users won't hit silent failures
✅ Strong Recommendations - FIXED
3. OCI vs local path confusion (docs/deployment/helm.md line 47-48)
- Status: ✅ FIXED
- What changed: Added prominent blockquote callout at start of Quick Start Scenarios explaining local path vs OCI registry choice
- Impact: Users now understand when to use
deploy/helm/llm-proxyvsoci://ghcr.io/sofatutor/llm-proxy
4. Missing PostgreSQL build requirement (docs/deployment/index.md lines 60-61)
- Status: ✅ FIXED
- What changed: Added blockquote note about custom image build requirements with link to full guide
- Impact: Users won't hit runtime errors when using custom-built images without Postgres support
5. PostgreSQL wording improvement (docs/deployment/helm.md line 93-96)
- Status: ✅ FIXED
- What changed: Changed "Ensure your Docker image" → "If building images yourself" + added note about pre-built images
- Impact: Clearer guidance that doesn't imply universal requirement for all users
✅ Minor Issues - FIXED
6. Hard-coded "Last Updated" date (docs/deployment/helm.md line 11)
- Status: ✅ FIXED
- What changed: Removed the hard-coded date
- Impact: Reduces maintenance burden and review friction
Fresh Quality Assessment
After a thorough line-by-line review of the updated files (82 lines in index.md, 388 lines in helm.md), I can confirm:
✅ Technical Accuracy
- All env vars, secret keys, and configuration match the codebase
- Event bus backend names (
redis-streams,in-memory) are correct - Dispatcher service names (
file,lunary,helicone) match implementation ENABLE_METRICS,DB_DRIVER, and other env vars verified againstinternal/config
✅ Security Best Practices
- All DATABASE_URL examples use uppercase placeholders (
USER:PASSWORD) sslmode=verify-fullused consistently (notsslmode=require)- Warning comments about never committing real secrets are present
- Redis password generation uses
openssl rand -base64 32
✅ Documentation Quality
- Clear progression from simple (SQLite dev) to complex (multi-replica prod with HPA)
- Copy-pastable examples that actually work
- Helpful callouts and prerequisites for each scenario
- Good cross-references to chart-local docs and related guides
- Comparison table provides clear guidance for AWS ECS vs Helm choice
✅ Consistency
- Formatting is clean and consistent throughout
- Markdown renders correctly (verified by checking structure)
- Links are correct (fixed in previous review round)
- No unresolved TODOs or placeholders
Production Readiness
This documentation is production-ready and meets all quality standards:
- ✅ Complete - All deployment scenarios covered (SQLite, Postgres, Redis, Ingress, HPA, Dispatcher)
- ✅ Correct - Technical details verified against codebase
- ✅ Secure - Security best practices followed throughout
- ✅ Usable - Examples are runnable and well-explained
- ✅ Maintainable - No hard-coded dates, clear structure
Final Verdict
APPROVED ✅
This PR successfully delivers comprehensive Helm deployment documentation that will help users deploy LLM Proxy to Kubernetes with confidence. All critical issues have been resolved, security concerns addressed, and the documentation provides clear, accurate guidance for both development and production scenarios.
Excellent work addressing all the review feedback thoroughly and thoughtfully!
Ready to merge.
|
|
||
| ## Quick Start Scenarios | ||
|
|
||
| > **Note on chart path**: These examples use the local chart path `deploy/helm/llm-proxy`, which requires the repository to be checked out. If you prefer to install from the published OCI registry, replace `deploy/helm/llm-proxy` with `oci://ghcr.io/sofatutor/llm-proxy --version <version>` in the `helm install` commands below. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ Perfect fix - The OCI vs local path callout is clear and well-placed. Users now understand the choice without being confused by the examples. This addresses the original concern about repo checkout requirements beautifully.
| ``` | ||
| Pre-built images from `ghcr.io/sofatutor/llm-proxy` include PostgreSQL support by default. | ||
|
|
||
| ### 3. External Redis (Multi-Instance) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ Excellent wording improvement - "If building images yourself" is much clearer than the previous "Ensure your Docker image". The added note about pre-built images from ghcr.io is perfect for preventing user confusion. This is exactly what was needed.
Helm Chart Documentation Enhancement - COMPLETE ✅
Changes Summary
Initial Documentation (Commits 1-2)
docs/deployment/helm.md(379 lines)docs/deployment/index.mdwith Helm deployment sectionReview Feedback Addressed (Commit 3)
Security Improvements:
user:passtoUSER:PASSWORD(uppercase placeholders)sslmode=requiretosslmode=verify-fullfor better certificate verificationopenssl rand -base64 32Documentation Links Fixed:
../configuration.md→../getting-started/configuration.md../token-management.md→../guides/token-management.mdCritical Issues Fixed (Commit 4)
Markdown Formatting:
docs/deployment/index.mdline 78Dispatcher Example (Critical Fix):
kubectl create secretcommand showing how to create the dispatcher API key secret--set dispatcher.apiKey.existingSecret.key="DISPATCHER_API_KEY"to prevent silent failuresPostgreSQL Build Requirements:
index.mdPostgreSQL quick start about custom image build requirementshelm.mdfrom "Ensure your Docker image" to "If building images yourself"OCI vs Local Path:
deploy/helm/llm-proxyvsoci://ghcr.io/sofatutor/llm-proxyMinor Improvements:
All review comments from thorough line-by-line review have been addressed.
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.