A framework for building Kubernetes installers with Helm
Helmet is a reusable Go library for creating intelligent Kubernetes installers that understand dependency relationships, manage configuration, and orchestrate complex multi-component deployments using Helm. It is designed to be imported into your own Go project, where it generates a complete CLI with commands for configuration, deployment, topology inspection, and AI-assisted workflows via the Model Context Protocol (MCP).
- Automatic Dependency Resolution — chart annotations declare dependencies; the framework resolves installation order automatically
- Configuration Management — YAML-based product configuration with Kubernetes ConfigMap persistence
- Template Engine — Go templates for dynamic Helm values with cluster introspection
- Integration System — pluggable integrations for Git providers, registries, and external services
- MCP Support — built-in MCP server for AI assistant integration
- Generated CLI — complete CLI generated from your installer definition
- Monitoring — resource readiness checks and Helm test execution
Import Helmet and embed your installer resources:
app, _ := framework.NewAppFromTarball(appCtx, installerTarball, cwd)
app.Run()See Getting Started for a complete walkthrough.
go get github.com/redhat-appstudio/helmet/frameworkThe example/helmet-ex/ directory contains a complete
reference implementation demonstrating all framework features:
- Embedded installer tarball with overlay filesystem
- Standard and custom integrations (GitHub, GitLab, Quay, ACS, and more)
- MCP server with AI assistant instructions
- Multi-layer dependency topology (foundation → infrastructure → products)
- Build-time metadata injection via ldflags
See the example README for build instructions, command reference, and architecture details.
| Topic | Description |
|---|---|
| Getting Started | First installer, prerequisites, build and run |
| Architecture & Design | Component relationships, extension points, design principles |
| Installer Structure | Tarball layout, embedded resources, overlay filesystem |
| Configuration | config.yaml schema, ConfigMap persistence, product properties |
| Dependency Topology | Chart annotations, resolution algorithm, namespace assignment |
| Template Engine | values.yaml.tpl syntax, custom functions, cluster introspection |
| Integrations | Integration system, product coupling, CEL expressions, custom integrations |
| MCP Server | MCP tools, container image for Jobs, custom tools, instructions.md |
| Example Charts | Test chart reference, annotations, dependency graph |
| CLI Reference | Generated commands, flags, custom commands, SubCommand lifecycle |
Convention over configuration, interface-driven extensibility, API stability via functional options, Kubernetes-native, Helm-centric. See Architecture & Design for details.
See CONTRIBUTING.md for development setup, testing, and pull request guidelines.