-
Notifications
You must be signed in to change notification settings - Fork 24
fix(examples): replace Bitnami charts with official Docker images #595
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
Replace unreliable Bitnami Helm charts with official Docker images and native Kubernetes manifests for PostgreSQL, Redis, and RabbitMQ. This change significantly improves reliability and simplifies the setup process. Key improvements: - Created dedicated Kubernetes manifests for each dependency: * PostgreSQL using postgres:16-alpine * Redis using redis:7-alpine * RabbitMQ using rabbitmq:3.13-management-alpine - Enhanced setup-dependencies.sh script with: * Robust error detection and diagnostic capabilities * Health checks for pods with proper error state detection * Improved timeout handling with periodic error checking * Clear error messages with troubleshooting instructions * Support for detecting ImagePullBackOff, CrashLoopBackOff, etc. - Fixed documentation paths: * Updated quickstart to reference examples/kubernetes directory * Renamed values.yaml to outpost.yaml for clarity - Made setup script executable (chmod +x) Breaking changes: - Bitnami Helm charts are no longer used for dependencies - Users must run setup-dependencies.sh to deploy PostgreSQL, Redis, and RabbitMQ using the new Kubernetes manifests - Configuration paths have changed in documentation This change resolves timeout issues and provides more reliable dependency deployment for local Kubernetes development.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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 replaces Bitnami Helm charts with official Docker images and native Kubernetes manifests for PostgreSQL, Redis, and RabbitMQ to improve reliability and simplify the setup process for local Kubernetes development with Outpost.
Key Changes:
- Replaced Bitnami Helm chart dependencies with StatefulSet-based deployments using official Alpine Docker images
- Enhanced setup-dependencies.sh with robust error detection, health checks, and diagnostic capabilities
- Updated documentation to reference the correct paths (examples/kubernetes instead of deployments/kubernetes, and outpost.yaml instead of values.yaml)
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| examples/kubernetes/setup-dependencies.sh | Complete rewrite replacing Helm-based installation with kubectl-based manifests, adding comprehensive error handling and health checking functions |
| examples/kubernetes/postgresql.yaml | New Kubernetes manifest for PostgreSQL StatefulSet using postgres:16-alpine image |
| examples/kubernetes/redis.yaml | New Kubernetes manifest for Redis StatefulSet using redis:7-alpine image |
| examples/kubernetes/rabbitmq.yaml | New Kubernetes manifest for RabbitMQ StatefulSet using rabbitmq:3.13-management-alpine image |
| examples/kubernetes/outpost.yaml | New Helm values file for Outpost configuration (renamed from values.yaml) |
| docs/pages/quickstarts/kubernetes.mdx | Updated documentation paths to reference examples/kubernetes directory and outpost.yaml configuration file |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Change from incorrect 'redis-cli --raw incr ping' to proper 'redis-cli ping' - Add authentication using -a flag with REDIS_PASSWORD environment variable - Use shell wrapper (sh -c) to properly expand environment variable Fixes authentication errors in Redis health checks.
- Create separate headless service 'outpost-postgresql-headless' with clusterIP: None - Use headless service as serviceName for StatefulSet - Keep regular ClusterIP service for client connections Follows Kubernetes best practices for StatefulSet DNS records.
- Change password generation from 'openssl rand -hex' to 'openssl rand -base64' for better entropy * PostgreSQL: base64 24 bytes * Redis: base64 24 bytes * RabbitMQ: base64 24 bytes (password) and 48 bytes (erlang cookie) * Application secrets: base64 24/48 bytes - Extract duplicate diagnostic code into reusable print_pod_diagnostics() function - Update message from 'Bitnami images are not available' to 'Using official Docker images for improved reliability' Addresses PR feedback for improved security and code quality.
Resolves #581
Replace unreliable Bitnami Helm charts with official Docker images and
native Kubernetes manifests for PostgreSQL, Redis, and RabbitMQ. This
change significantly improves reliability and simplifies the setup
process.
Key improvements:
Created dedicated Kubernetes manifests for each dependency:
Enhanced setup-dependencies.sh script with:
Fixed documentation paths:
Made setup script executable (chmod +x)
Breaking changes:
and RabbitMQ using the new Kubernetes manifests
This change resolves timeout issues and provides more reliable
dependency deployment for local Kubernetes development.