hull helm-compat report
hull helm-compat report analyses a Helm chart and reports how much
Go-template logic it contains, so you can gauge the work of moving it to hull.
When to use it
Run it before migrate to size the job. A chart with few
{{ ... }} blocks converts with little effort; one packed with them will need
more review after translation. The report is read-only — it inspects the chart
but produces no hull package.
What happens
- hull walks the
templates/directory of<chart-path>, visiting every.yaml,.yml, and.tplfile. - It counts the template files and, in each, the number of Go-template
blocks (occurrences of
{{). - For every file that contains at least one block it adds a note with that file’s block count.
- It recommends running
hull migratewhen any blocks are present, and notes how sub-charts are handled. - It prints the whole report to stdout as JSON.
Usage
hull helm-compat report <chart-path> [flags]
Flags
Inherits the global flags.
Worked example
Report on a vendored PostgreSQL chart:
hull helm-compat report ./vendor/postgresql
Output:
{
"chart": "postgresql",
"templates": 12,
"goTemplateBlocks": 348,
"notes": [
"statefulset.yaml: 96 Go-template blocks (run 'hull migrate' to translate)",
"secrets.yaml: 41 Go-template blocks (run 'hull migrate' to translate)"
],
"recommendations": [
"Run 'hull migrate ./vendor/postgresql' to translate go-template blocks to hull's ${...} syntax",
"Sub-charts: drop them under <hull-pkg>/charts/ unchanged; hull layer-resolves them via dependencies in hull.yaml"
]
}
Read it back to the chart: the {{ ... }} blocks in templates/statefulset.yaml
produce the statefulset.yaml: 96 Go-template blocks note, and the 348 across
all 12 files is the total translation surface. Because that total is above
zero, the first recommendation tells you the exact hull migrate command to
run next.
See also
helm-compathelm-compat exportmigrate— actually translate the chart to a hull packagetemplate— render a hull package to manifests