Skip to content

Kubernetes

The Kubernetes lexicon provides typed constructors for Kubernetes resource manifests. It covers Deployments, Services, ConfigMaps, StatefulSets, Jobs, Ingress, RBAC, and 147 resources and 50 property types.

New? Start with the Getting Started guide.

Install it with:

Terminal window
npm install --save-dev @intentius/chant-lexicon-k8s
import { Deployment, Service, Container, Probe } from "@intentius/chant-lexicon-k8s";
export const deployment = new Deployment({
metadata: { name: "my-app", labels: { "app.kubernetes.io/name": "my-app" } },
spec: {
replicas: 2,
selector: { matchLabels: { "app.kubernetes.io/name": "my-app" } },
template: {
metadata: { labels: { "app.kubernetes.io/name": "my-app" } },
spec: {
containers: [
new Container({
name: "app",
image: "my-app:1.0",
ports: [{ containerPort: 8080, name: "http" }],
livenessProbe: new Probe({ httpGet: { path: "/healthz", port: 8080 } }),
readinessProbe: new Probe({ httpGet: { path: "/readyz", port: 8080 } }),
}),
],
},
},
},
});
export const service = new Service({
metadata: { name: "my-app" },
spec: {
selector: { "app.kubernetes.io/name": "my-app" },
ports: [{ port: 80, targetPort: 8080, name: "http" }],
},
});

The lexicon provides 147 resource types (Deployment, Service, ConfigMap, StatefulSet, and more), 50 property types (Container, Probe, Volume, SecurityContext, etc.), and composites (WebApp, StatefulApp, CronWorkload, AutoscaledService, WorkerPool, NamespaceEnv, NodeAgent) for common patterns.

MetricCount
Resources150
Property types70
Services22
Intrinsic functions0
Pseudo-parameters0
Lint rules29

Lexicon version: 0.1.5
Namespace: K8s