Skip to content

Jsonnet Kubernetes library

The Jsonnet Kubernetes library is a generated with k8s from the OpenAPI specification (swagger.json) of the Kubernetes API.

Currently, artifacts for the following Kubernetes versions are provided:

FAQ

What is this?

This is a Jsonnet library that helps the Jsonnet user create Kubernetes objects such as Deployment as concisely as possible.

For example, this YAML:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: foo
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: name
    spec:
      containers:
        - image: foo/bar
          name: foo

can be rendered with this jsonnet:

{
  local k = (import "github.com/jsonnet-libs/k8s-libsonnet/1.18/main.libsonnet"),
  foo: k.apps.v1.deployment.new(name="foo", containers=[
    k.core.v1.container.new(name="foo", image="foo/bar")
  ])
}

This library works particularly well with Grafana Tanka, as Tanka is designed to ease the use of Jsonnet with Kubernetes clusters.

Relationship to ksonnet-lib

ksonnet-lib was a similar library to this. However, as a part of the now deprecated ksonnet project, it has not seen much love in recent days.

To continue the success story, community members (especially teams of Grafana Labs and RedHat OpenShift) decided to pick up the challenge of creating this fresh, more modern and future proof replacement for ksonnet-lib.