Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adopt Pkl #12780

Open
dperetti opened this issue Feb 6, 2024 · 6 comments
Open

Adopt Pkl #12780

dperetti opened this issue Feb 6, 2024 · 6 comments
Labels

Comments

@dperetti
Copy link

dperetti commented Feb 6, 2024

Shiny and new ! https://pkl-lang.org/index.html

Pkl — pronounced Pickle — is an embeddable configuration language which provides rich support for data templating and validation. It can be used from the command line, integrated in a build pipeline, or embedded in a program. Pkl scales from small to large, simple to complex, ad-hoc to repetitive configuration tasks.

Can't wait to see Chart.pkl files everywhere!

@dperetti
Copy link
Author

dperetti commented Feb 6, 2024

See also https://github.com/apple/pkl-k8s-examples

@gjenkins8
Copy link
Contributor

Thanks for the suggestion! I also saw the pkl announcement and wondered how it could be used with Helm. From previous discussions I've had personally, I don't think anyone is anchored on yaml, nor particularly gotemplate / templating to implement the parameterization of Kubernetes resources that charts (generally) require.

(In fact, Helm's renderer used to allow parameterization of the "engine" used to generate Kubernetes objects. But this was removed for simplicity circa Helm 3 in favor of a direct gotemplate implentation for simplicity, as nothing took advantage of that interface)

To move forward here, I suspect a HIP would be warranted. As there are probably many nuances of how Helm might implement alternative chart rendering/parametrization and non-yaml chart/values formats.

@heruan
Copy link

heruan commented Feb 27, 2024

This would be life changing! Most of the maintenance issues we have with charts are due to Go templates dealing with YAML indentation. Pkl looks like a solid and reliable alternative 💪

@MarkSRobinson
Copy link

I decided to play around with Pkl and I implemented the Pkl equivalent of a chart. It's pretty awesome. That chart is smaller and easier to read. Extending it also super easy and doesn't require editing the core helm chart.

Check it out at https://github.com/MarkSRobinson/nginx-pkl

@bvalyou
Copy link

bvalyou commented Apr 23, 2024

This is a pretty exciting possibility for me - my team is looking at using Pkl as a partial replacement for Helm but we've acknowledged that Helm will remain part of our workflow for the foreseeable future. If they were compatible it would be beneficial all around. Unit and integration tests are the biggest game changer IMO so an integration that includes that feature would be a big deal.

@dperetti
Copy link
Author

Actually if you are creating your own chart, you are free to create it using pkl and export it yaml right before deploying with helm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants