Go port of
bitnami/readme-generator-for-helmDrop‑in replacement that keeps the same CLI and metadata syntax, but ships as a single statically‑linked Go binary.
- Autogenerates a Parameters table in your chart’s
README.mdfrom the metadata found invalues.yaml. - Optionally emits an OpenAPI v3 JSON schema that describes the structure of
values.yaml.
Both features behave exactly like the original Bitnami tool, so you can switch by merely replacing the binary in your pipeline.
The generator looks for Javadoc‑style comments inside values.yaml. It validates that every real key has corresponding metadata (and vice‑versa); if everything lines up it rewrites the ## Parameters section of README.md and/or writes an OpenAPI schema file. If mismatches are detected it prints a detailed error list and exits with a non‑zero status, making it CI‑friendly.
The table it injects has the familiar structure
## Parameters
### Section 1 title
| Name | Description | Default |
|:----------|:------------------------|:---------------|
| `value_1` | Description for value 1 | `defaultValue` |
| `value_2` | Description for value 2 | `defaultValue` |
### Section 2 title
| Name | Description | Default |
|:----------|:------------------------|:---------------|
| `value_a` | Description for value a | `defaultValue` |The top‑level heading (## Parameters, ### Parameters, …) is detected dynamically; its text can be customised via the configuration file.
- Go 1.22+ (any platform supported by Go)
go install github.com/cozystack/readme-generator-for-helm@latestThe binary lands in $(go env GOPATH)/bin (usually ~/go/bin). Make sure that directory is on your $PATH.
Head over to https://github.com/cozystack/readme-generator-for-helm/releases, grab the archive for your OS/arch, unpack it somewhere on your $PATH.
git clone https://github.com/cozystack/readme-generator-for-helm
cd readme-generator-for-helm
go build -o readme-generator-for-helmreadme-generator-for-helm [options]
Options:
-v, --values <file> Path to the values.yaml file (required)
-r, --readme <file> Path to the README.md file to update
-c, --config <file> Path to config.json (optional; built‑in defaults if omitted)
-s, --schema <file> Path for the generated OpenAPI Schema
--version Print program version and exit
-h, --help Show helpAt least one of --readme or --schema must be provided.
The comment syntax, tags and modifiers are preserved from the original project:
- Parameter:
## @param full.key.path [modifier1,modifier2] Description - Section:
## @section Section Title - Skip subtree:
## @skip full.key.path - Intermediate object description:
## @extra full.key.path Description
Supported modifiers (customisable via the config file):
| Modifier | Effect |
|---|---|
array |
Treat parameter as array, default [] |
object |
Treat parameter as object, default {} |
string |
Force empty string default "" |
nullable |
Parameter may be null; default stays as‑is |
default:VALUE |
Override default with given literal VALUE |
Important: Ordering of tags in the YAML file does not matter, except for
@section, which groups all subsequent@params until the next@section.
If you need to change comment delimiters, tag names, or add custom modifiers, provide a JSON file via --config:
{
"comments": { "format": "##" },
"tags": {
"param": "@param",
"section": "@section",
"descriptionStart": "@descriptionStart",
"descriptionEnd": "@descriptionEnd",
"skip": "@skip",
"extra": "@extra"
},
"modifiers": {
"array": "array",
"object": "object",
"string": "string",
"nullable": "nullable",
"default": "default"
},
"regexp": { "paramsSectionTitle": "Parameters" }
}Omit the flag entirely to use the built‑in defaults (same as above).
Apache License 2.0 © 2025 Cozystack. Portions of the code are adapted from the original Bitnami implementation.