Skip to content
/ pkl-k8s Public

Templates for using Pkl with Kubernetes

License

Notifications You must be signed in to change notification settings

apple/pkl-k8s

Repository files navigation

pkl-k8s

pkl-lang

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.

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.

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!

Releasing a New Version

When releasing a new version, update the pklPackageVersion in build.gradle.kts and regenerate templates with ./gradlew generateTemplates to update the generated PklProject file.

CI builds publish templates to GitHub Releases.

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