apple/pkl-k8s

Templates for using Pkl with Kubernetes

148

stars

66

commits

Pkl

primary language

Aug 25, 2026

updated

README

This repo contains Pkl templates for Kubernetes manifests based on Kubernetes' OpenAPI spec. For examples of how to use these templates, check the Pkl/K8s Examples Repo.

Packages are available at package://pkg.pkl-lang.org/pkl-k8s/k8s@<VERSION>.

Documentation for these templates can be found on the package docs website.

Project Setup

  • Install JDK 17

  • Install IntelliJ IDEA

To import the project into IntelliJ, go to File→Open and select the project’s root directory. If the project isn’t imported correctly, look for a popup in the lower right corner and click its "Import Gradle project" link.

Development

To update templates after a new K8s release, add the version to k8sVersions in build.gradle.kts. The SHA-256 hash of the api/openapi-spec/swagger.json file at that tag must be provided.

To change the base classes used by the generated templates, edit files in src/main/resources/org/pkl/k8s/templates.

To enrich type information of generated templates, edit src/main/kotlin/org/pkl/k8s/templates/Main.kt.

The generated-package directory is generated by Gradle task generateTemplates. Do not edit these files manually!

Contributors

dependabot[bot]

26 commits

bioball

20 commits

HT154

12 commits

mattsre

2 commits

apple/pkl-k8s

Templates for using Pkl with Kubernetes

148

stars

66

commits

Pkl

primary language

Aug 25, 2026

updated

README

This repo contains Pkl templates for Kubernetes manifests based on Kubernetes' OpenAPI spec. For examples of how to use these templates, check the Pkl/K8s Examples Repo.

Packages are available at package://pkg.pkl-lang.org/pkl-k8s/k8s@<VERSION>.

Documentation for these templates can be found on the package docs website.

Project Setup

  • Install JDK 17

  • Install IntelliJ IDEA

To import the project into IntelliJ, go to File→Open and select the project’s root directory. If the project isn’t imported correctly, look for a popup in the lower right corner and click its "Import Gradle project" link.

Development

To update templates after a new K8s release, add the version to k8sVersions in build.gradle.kts. The SHA-256 hash of the api/openapi-spec/swagger.json file at that tag must be provided.

To change the base classes used by the generated templates, edit files in src/main/resources/org/pkl/k8s/templates.

To enrich type information of generated templates, edit src/main/kotlin/org/pkl/k8s/templates/Main.kt.

The generated-package directory is generated by Gradle task generateTemplates. Do not edit these files manually!

Contributors

dependabot[bot]

26 commits

bioball

20 commits

HT154

12 commits

mattsre

2 commits

Languages

Pkl

97.0%

Kotlin

3.0%