Manifest
Source:
src/Kubernetes/Manifest.ts
Applies a raw Kubernetes manifest onto any cluster via server-side apply.
Any literal object is accepted — built-in kinds and custom resources
alike; unknown kinds are resolved through the Kubernetes API discovery
endpoint, so CRDs work without any registration. The target cluster
can be a managed cluster resource (e.g. AWS.EKS.Cluster) or any
cluster your kubeconfig can reach (Kubernetes.KubeConfig(...)).
Applying Manifests
Section titled “Applying Manifests”StatefulSet
const sts = yield* Kubernetes.Manifest("Cache", { cluster, manifest: { apiVersion: "apps/v1", kind: "StatefulSet", metadata: { name: "cache", namespace: "apps" }, spec: { serviceName: "cache", replicas: 3, selector: { matchLabels: { app: "cache" } }, template: { metadata: { labels: { app: "cache" } }, spec: { containers: [{ name: "redis", image: "redis:7" }] }, }, }, },});Custom resource (CRD)
const widget = yield* Kubernetes.Manifest("Widget", { cluster, manifest: { apiVersion: "acme.io/v1", kind: "Widget", metadata: { name: "w", namespace: "default" }, spec: { size: 3 }, },});Namespaces
Section titled “Namespaces”const ns = yield* Kubernetes.Manifest("AppsNamespace", { cluster, manifest: { apiVersion: "v1", kind: "Namespace", metadata: { name: "apps" }, },});Any Cluster
Section titled “Any Cluster”const local = Kubernetes.KubeConfig({ context: "kind-dev" });
const config = yield* Kubernetes.Manifest("AppConfig", { cluster: local, manifest: { apiVersion: "v1", kind: "ConfigMap", metadata: { name: "app-config", namespace: "default" }, data: { LOG_LEVEL: "info" }, },});