helmet

module
v0.0.0-...-6bbd344 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2026 License: Apache-2.0

README

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL