Create changelogs for Helm Charts, based on git history

Overview

helm-changelog

Build Status Go Report Card

Create changelogs for Helm Charts, based on git history.

The application depends on the assumption that the helm chart is released on the first commit where the version number is bumped in the Chart.yaml file.

All sub-sequent commits are grouped as commits for the next release, until the version number is bumped again.

Features

The changelog contains the following things:

  • Commits are grouped by releases
  • Each release displays
    • Supported Helm version
    • Release date
    • App Version for the chart
    • Supported Kubernetes version
  • Changes in default helm values

Examples

This repository contains a set of example changelogs created for the github.com/prometheus-community/helm-charts charts.

Installation

All relevant commands are added to the Makefile

$ make help

Usage:
  make <target>

Targets:
  help                  Display this help
  test-unit             Run unit-tests
  test-integration      Run integration-tests
  build                 Build binary
  verify                tests and builds
  image                 build docker image
  clean                 clean up created files
  all                   Runs test, build and docker
  test-coverage         Generate test coverage report
  lint                  Generate static analysis report
  update-docs           Upgrade automatic documentations

Run Standalone

First build the standalone binary:

$ make build
go build -o ./bin/helm-changelog .

This results in a binary in ./bin/helm-changelog.

# See all cli options
$ ./bin/helm-changelog --help
Create changelogs for Helm Charts, based on git history

Usage:
  helm-changelog [flags]

Flags:
  -h, --help               help for helm-changelog
  -v, --verbosity string   Log level (debug, info, warn, error, fatal, panic (default "warning")

# Run helm-changelog creator with default params
$ ./bin/helm-changelog

Run in Docker

The helm-changelog can alternatively be run in docker.

This is done in a multi-stage build, and does not require a working go development environment.

# Building the application and docker image
$ make image

# Run the resulting docker image
$ docker run -it --rm -v $(pwd):/data mogensen/helm-changelog:latest

The helm-changelog app is running as a non-root user. This is a security best-practice. If user 1000 does not have write access to the chart directory, you may need to run the container as an other user.

# Run docker image as current user
$ docker run --user $UID it --rm -v $(pwd):/data mogensen/helm-changelog:latest

Testing

Running Unit Tests

Unit tests are implemented with Go's standard test framework.

All tests are located in their own test-packages, enforcing that the tests only test the public interface of the go packages.

# Run unit tests and code coverage, including test for race conditions
$ make test-coverage
You might also like...
Automatic sync from IMDb to Trakt (watchlist, lists, ratings and history) using GitHub actions

imdb-trakt-sync GoLang app that can sync IMDb and Trakt user data - watchlist, ratings and lists. For its data needs, the app is communicating with th

A helm v3 plugin to get values from a previous release

helm-val helm-val is a helm plugin to fetch values from a previous release. Getting started Installation To install the plugin: $ helm plugin install

Render helm values-files from others

helm-plugin-render-values The Helm downloader plugin with rendering templated values files Install Use helm CLI to install this plugin: $ helm plugin

Plugin for Helm to integrate the sigstore ecosystem

helm-sigstore Plugin for Helm to integrate the sigstore ecosystem. Search, upload and verify signed Helm Charts in the Rekor Transparency Log. Info he

Creates Helm chart from Kubernetes yaml

Helmify CLI that creates Helm charts from kubernetes yamls. Helmify reads a list of supported k8s objects from stdin and converts it to a helm chart.

A best practices Go source project with unit-test and integration test, also use skaffold & helm to automate CI & CD at local to optimize development cycle

Dependencies Docker Go 1.17 MySQL 8.0.25 Bootstrap Run chmod +x start.sh if start.sh script does not have privileged to run Run ./start.sh --bootstrap

Katenary - Convert docker-compose to a configurable helm chart
Katenary - Convert docker-compose to a configurable helm chart

Katenary is a tool to help transforming docker-compose files to a working Helm C

Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates
Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates

Keel - automated Kubernetes deployments for the rest of us Website https://keel.sh Slack - kubernetes.slack.com look for channel #keel Keel is a tool

Write controller-runtime based k8s controllers that read/write to git, not k8s

Git Backed Controller The basic idea is to write a k8s controller that runs against git and not k8s apiserver. So the controller is reading and writin

Comments
  • QueryEscape markdown badge values for badge creation

    QueryEscape markdown badge values for badge creation

    This PR includes URL escaping for badge value creation.

    It was observed that Kubernetes badges were not properly escaped when containing comparative operators ( >= etc ), resulting in unrendered badges.

    This change was validated locally to overcome the badging issue.

    opened by jitterjuice 1
  • Notrailingspaces

    Notrailingspaces

    I removed trailling whitespaces generated at the end of titles and commit messages. Most linters and editors don't like spaces at the end of the line.

    opened by dwerder 1
  • :art: Improve helm-changelog output

    :art: Improve helm-changelog output

    This PR aims to improve helm-changelog output.

    • Remove trailing whitespace on commit message & release version
    • Remove Default Values changes block when there is no change
    • Put badges into Chart Version h2 for less lines and more readability
    opened by mloiseleur 0
  • Ability to change filename or output to stdout

    Ability to change filename or output to stdout

    Hi,

    It would be nice if there was the ability to change the default filename of Changelog.md to whatever. It might also be nice to support the option of stdout for previewing or debugging.

    Thanks!

    good first issue 
    opened by servo1x 1
Releases(v0.0.1)
Owner
Frederik Mogensen
Frederik Mogensen
Dredger is a utility to help convert helm charts to Terraform modules using kubernetes provider.

dredger Dredger is a utility to help convert helm charts to Terraform modules using kubernetes provider. Dredger is made of dark magic and cannot full

Synchronoss 14 Aug 25, 2022
Helm : a tool for managing Kubernetes charts

Helm Helm is a tool for managing Kubernetes charts. Charts are packages of pre-configured Kubernetes resources. Use Helm to: Find and use popular soft

null 0 Nov 30, 2021
A helm v3 plugin to adopt existing k8s resources into a new generated helm chart

helm-adopt Overview helm-adopt is a helm plugin to adopt existing k8s resources into a new generated helm chart, the idea behind the plugin was inspir

Hamza ZOUHAIR 32 Nov 15, 2022
helm-lint-ls is helm lint language server protocol LSP.

helm-lint-ls is helm lint language server protocol LSP.

MrJosh 20 Oct 19, 2022
The CLI tool glueing Git, Docker, Helm and Kubernetes with any CI system to implement CI/CD and Giterminism

___ werf is an Open Source CLI tool written in Go, designed to simplify and speed up the delivery of applications. To use it, you need to describe the

werf 3.4k Nov 21, 2022
sail is an operation framework based on Ansible/Helm. sail follows the principles of Infrastructure as Code (IaC), Operation as Code (OaC), and Everything as Code. So it is a tool for DevOps.

sail 中文文档 sail is an operation framework based on Ansible/Helm. sail follows the principles of Infrastructure as Code (IaC), Operation as Code (OaC),a

Bougou Nisou 10 Dec 16, 2021
Amplitude-exporter - Amplitude charts to prometheus exporter PoC

Amplitude exporter Amplitude charts to prometheus exporter PoC. Work in progress

Andrey S. Kolesnichenko 1 May 26, 2022
Git with a cup of tea, painless self-hosted git service

Gitea - Git with a cup of tea View the chinese version of this document Purpose The goal of this project is to make the easiest, fastest, and most pai

Gitea 33.4k Nov 21, 2022
Watchtower for Git: automatically keep local Git repositories up to date with their remotes

CrowsNest Watchtower for Git: automatically keep local Git repositories up to date with their remotes. Configuration Flags --run-once or -r: Normally

Simon 59 Oct 30, 2022
Download your Fitbit weight history and connect to InfluxDB and Grafana

WemonFit Weight monitoring for Fitbit, using InfluxDB and Grafana Generating a new certificate openssl req -new -newkey rsa:2048 -nodes -keyout lo

Eduardo Argollo 1 Oct 22, 2022