-
Notifications
You must be signed in to change notification settings - Fork 26
Labels
Description
Problem
Go templates which are used to generate Kubernetes manifests in Helm are difficult to write, read, debug and maintain. They have issues with performance, values mutability, template name collisions and others.
Solution (if you have one)
From what we know, Go templates cannot be improved much. We could add a few template functions to the library, the tooling can be improved, but not much else.
We should consider an alternative to Go templating in Nelm. This can be one of:
- General-purpose language (TypeScript, Python, ...)
- Specialized language (Cue, KCL, ...)
- Templating language
Another templating language won't solve much, so we left with general-purpose languages and specialized languages like Cue.
Additional information
Helm 3 has --post-renderer flag which allows usage of any other language to generate manifests, but it is rarely used due to:
- Chart developers can't enforce usage of specific post-renderer with a specific configuration for their chart. They must provide instructions to the chart consumers on how to manually set up the post-renderer and how to run it. Go templating works out-of-the box and requires no configuration.
- Ability to use any language results in chart consumers potentially required to learn many different languages just for Kubernetes manifest generation.
Reactions are currently unavailable