https://platformengineering.org logo
Title
d

dat

03/28/2023, 4:51 PM
Hey, looking for some advice - we use kustomize to manage patches, resources of k8s deployments across envs. Currently looking for popular open-source/freemium solutions or strategies folks use to quasi-automate generating yaml config files? The short term approach that’s evolved is a combination of kustomize and scripting. E.g. consuming properties files to generate configmaps or secret key names to yield secret provider class specs. This isn’t ideal/sustainable as the complexity is trending upwards in order to accommodate the variety of deployments.
a

Alexander Block

03/28/2023, 9:32 PM
I’d suggest to look into Kluctl (https://kluctl.io / https://github.com/kluctl/kluctl/) which I created after I’ve gone the way of Helm -> Kustomize -> Kustomize+Scripting and finally realised that this needs a dedicated tool so that no scripting is required anymore. Here is hands-on introduction:

https://www.youtube.com/watch?v=9LoYLjDjOdg

d

dat

03/28/2023, 9:38 PM
Thanks! Going to take a look and watch. Was also pointed to https://kubevela.io/docs/getting-started/core-concept We were considering a DIY app manifest template engine so to speak if nothing was found/fit our needs
a

Andre Marcelo-Tanner

03/29/2023, 12:50 PM
What would be the goal in generating YAML? Helm, Kustomize, Cue are all abstractions but you end up needing abstractions on top of that and you start with scripting it. Eventually the logic is complex enough you need tests and expertise in the templating tool. You can either stay at the abstraction level or put another one on top. Which solution depends on your users. Is it a platform that end users use or a more testable and flexible program like an operator. Right now we are expecting our teams to learn helm + k8s but we’d rather create an operator and Go and then have teams learn k8s so they know what it creates and how to observe it. Kubevela is an alternative to creating an operator but you have to use all its specific constraints which is the tradeoff of a platform