🚀 A powerful Helm plugin for managing values and secrets across multiple environments.
Managing Helm values across multiple environments (dev, staging, prod) is challenging:
- 🔀 Values Sprawl: Values spread across multiple files become hard to track
- 🔍 Configuration Discovery: Difficult to know what values can be configured
- ❌ Missing Values: No validation for required values before deployment
- 🔐 Secret Management: Sensitive data mixed with regular values
- 📝 Documentation: Values often lack descriptions and context
Helm Values Manager solves these challenges by providing a structured way to define, validate, and manage values across environments, with built-in support for documentation and secret handling.
- 🔐 Secure Secret Management: Safely handle sensitive data
- 🌍 Multi-Environment Support: Manage values for dev, staging, prod, and more
- 🔍 Secret Detection: Automatically identify and protect sensitive data
- 📦 Easy Integration: Works seamlessly with existing Helm workflows
- Python 3.9 or higher
- Helm 3.x
- pip (Python package installer)
helm plugin install https://github.com/Zipstack/helm-values-manager --version v0.1.0
- Initialize a new configuration for your Helm release:
helm values-manager init --release my-app
- Add value configurations with descriptions and validation:
# Add a required configuration
helm values-manager add-value-config --path app.replicas --description "Number of application replicas" --required
# Add an optional configuration
helm values-manager add-value-config --path app.logLevel --description "Application log level (debug/info/warn/error)"
- Add deployments for different environments:
helm values-manager add-deployment dev
helm values-manager add-deployment prod
- Set values for each deployment:
# Set values for dev
helm values-manager set-value --path app.replicas --value 1 --deployment dev
helm values-manager set-value --path app.logLevel --value debug --deployment dev
# Set values for prod
helm values-manager set-value --path app.replicas --value 3 --deployment prod
helm values-manager set-value --path app.logLevel --value info --deployment prod
- Generate values files for deployments:
# Generate dev values
helm values-manager generate --deployment dev --output ./dev
# Generate prod values
helm values-manager generate --deployment prod --output ./prod
This will create environment-specific values files:
dev/dev.my-app.values.yaml
:
app:
logLevel: debug
replicas: "1"
prod/prod.my-app.values.yaml
:
app:
logLevel: info
replicas: "3"
- View available commands and options:
helm values-manager --help
For detailed information about all available commands and their options, see our Command Reference.
- Clone the repository:
git clone https://github.com/zipstack/helm-values-manager
cd helm-values-manager
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
- Install development dependencies:
pip install -e ".[dev]"
- Install pre-commit hooks:
pre-commit install
Run tests with tox (will test against multiple Python versions):
tox
Run tests for a specific Python version:
tox -e py39 # For Python 3.9
This project uses several tools to maintain code quality:
- pre-commit: Runs various checks before each commit
- black: Code formatting
- isort: Import sorting
- flake8: Style guide enforcement
Run all code quality checks manually:
pre-commit run --all-files
🙌 PRs and contributions are welcome! Let's build a better Helm secret & config manager together.
Please see our Contributing Guide for details on how to contribute to this project.
We would like to acknowledge the following AI tools that have helped in the development of this project:
- Windsurf IDE with Cascade: For providing intelligent code assistance and pair programming capabilities. Also for helping with improving and documenting the architecture.
- Software Architect GPT: For initial architectural guidance and design decisions.
While these AI tools have been valuable in our development process, all code and design decisions have been carefully reviewed and validated by our development team to ensure quality and security.
🔓 Open-source under the MIT License.