Helmet
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).
Key Capabilities
- 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
Quick Start
Import Helmet and embed your installer resources:
app, _ := framework.NewAppFromTarball(appCtx, installerTarball, cwd)
app.Run()
See Getting Started for a complete walkthrough.
Installation
go get github.com/redhat-appstudio/helmet/framework
Example Implementation
The 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.
Documentation
| 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 |
Design Principles
Convention over configuration, interface-driven extensibility, API stability via
functional options, Kubernetes-native, Helm-centric. See
Architecture & Design for details.
Contributing
See CONTRIBUTING.md for development setup, testing, and pull
request guidelines.
Resources