Skip to content

Manifest

Source: src/AWS/EKS/Manifest.ts

Applies a raw Kubernetes manifest onto an AWS.EKS.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.

StatefulSet

const sts = yield* AWS.EKS.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* AWS.EKS.Manifest("Widget", {
cluster,
manifest: {
apiVersion: "acme.io/v1",
kind: "Widget",
metadata: { name: "w", namespace: "default" },
spec: { size: 3 },
},
});
const ns = yield* AWS.EKS.Manifest("AppsNamespace", {
cluster,
manifest: {
apiVersion: "v1",
kind: "Namespace",
metadata: { name: "apps" },
},
});