Skip to content

🚀 Effortlessly template, validate, and publish Helm charts for your Kubernetes apps. Chartpress streamlines CI/CD for cloud-native deployments—fast, flexible, and built for modern DevOps.

Notifications You must be signed in to change notification settings

kriipke/chartpress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chartpress

License Top Language Repo Size

Effortlessly template, validate, and publish Helm charts for your Kubernetes apps. Chartpress streamlines CI/CD for cloud-native deployments—fast, flexible, and built for modern DevOps.

Features

  • Render Helm charts with dynamic values

  • Validate chart syntax and structure before deployment

  • Publish charts to remote registries

  • Integrate seamlessly with CI/CD pipelines

  • Written in Go, Smarty, and JavaScript for speed and flexibility

Getting Started

Prerequisites

  • Go (1.18+ recommended)

  • Helm (v3+)

  • Docker (for containerized workflows; optional)

Installation

Clone using Git
git clone [email protected]:kriipke/chartpress.git
cd chartpress
Build the binary
go build -o chartpress ./cmd/chartpress
Run using Docker (optional)
docker build -t chartpress .
docker run --rm -v $(pwd):/work chartpress [command] [options]

Usage

Render a Helm Chart

./chartpress render --chart=./charts/my-app --values=./values/dev.yaml

Validate a Chart

./chartpress validate --chart=./charts/my-app

Publish a Chart

./chartpress publish --chart=./charts/my-app --version=1.2.3 --registry=https://my-helm-registry.example.com

List Templates

./chartpress list-templates

Configuration

Chartpress can be configured via command-line flags or environment variables. See ./chartpress --help for all options.

Example CI/CD Integration

For GitHub Actions:

- name: Render Helm Chart
  run: ./chartpress render --chart=./charts/my-app --values=./values/ci.yaml

- name: Validate Helm Chart
  run: ./chartpress validate --chart=./charts/my-app

- name: Publish Helm Chart
  run: ./chartpress publish --chart=./charts/my-app --version=${GITHUB_SHA}

Architecture Overview

@startuml
actor User
participant "chartpress CLI" as CLI
participant "Helm CLI" as Helm
participant "Registry (optional)" as Registry

User -> CLI : Run chartpress command
CLI -> Helm : Render/validate chart
CLI -> Registry : Publish chart (if requested)
@enduml

Development

  • Go code in cmd/ and pkg/

  • Templating with Smarty

  • JavaScript for any web or UI components

  • Makefile for common tasks

Running Tests

make test

Contributing

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/my-feature)

  3. Commit your changes (git commit -am 'Add some feature')

  4. Push to the branch (git push origin feature/my-feature)

  5. Create a new Pull Request

See CONTRIBUTING.adoc for more details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Authors & Acknowledgements

  • @kriipke - creator and primary maintainer

Security

If you discover any security-related issues, please email [email protected] instead of using the issue tracker.

Changelog

See CHANGELOG.adoc for recent changes.

About

🚀 Effortlessly template, validate, and publish Helm charts for your Kubernetes apps. Chartpress streamlines CI/CD for cloud-native deployments—fast, flexible, and built for modern DevOps.

Resources

Stars

Watchers

Forks

Packages