Skip to content

Helm Values Manager is a Helm plugin designed to simplify configuration and secret management across multiple Kubernetes deployments. It provides an intuitive CLI to define, validate, and securely store configuration values for Helm-based applications.

License

Notifications You must be signed in to change notification settings

Zipstack/helm-values-manager

Repository files navigation

Helm Values Manager

Quality Gate Status Build Status pre-commit.ci status Security Coverage Duplicated Lines (%) Bugs Code Smells

🚀 A powerful Helm plugin for managing values and secrets across multiple environments.

The Problem

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.

Features

  • 🔐 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

Requirements

  • Python 3.9 or higher
  • Helm 3.x
  • pip (Python package installer)

Installation

helm plugin install https://github.com/Zipstack/helm-values-manager --version v0.1.0

Quick Start

  1. Initialize a new configuration for your Helm release:
helm values-manager init --release my-app
  1. 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)"
  1. Add deployments for different environments:
helm values-manager add-deployment dev
helm values-manager add-deployment prod
  1. 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
  1. 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"
  1. View available commands and options:
helm values-manager --help

For detailed information about all available commands and their options, see our Command Reference.

Development

Setup Development Environment

  1. Clone the repository:
git clone https://github.com/zipstack/helm-values-manager
cd helm-values-manager
  1. Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: .\venv\Scripts\activate
  1. Install development dependencies:
pip install -e ".[dev]"
  1. Install pre-commit hooks:
pre-commit install

Running Tests

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

Code Quality

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

Contributing

🙌 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.

Acknowledgments

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.

📌 License

🔓 Open-source under the MIT License.

🌟 Star this repo if you find it useful! 🌟

Star

About

Helm Values Manager is a Helm plugin designed to simplify configuration and secret management across multiple Kubernetes deployments. It provides an intuitive CLI to define, validate, and securely store configuration values for Helm-based applications.

Resources

License

Stars

Watchers

Forks

Packages

No packages published