K8sHttpClient
HTTP client support for talking to the Kubernetes API from code running inside a cluster. The module builds a K8sHttpClient service on top of the shared HTTP client, points requests at the in-cluster API endpoint, and uses the mounted service-account token when one is available.
Constructors
makeCreatePod
Signature
declare const makeCreatePod: Effect<(...args: [spec: Pod]) => Effect, never, K8sHttpClient>;makeGetPods
Creates a cached effect that fetches running Kubernetes pods.
Details
The request can be limited by namespace and label selector, and the result is a map keyed by pod IP address.
Signature
declare const makeGetPods: (options?: {
readonly labelSelector?: string;
readonly namespace?: string;
}) => Effect.Effect<
Effect.Effect<Map<string, Pod>, HttpClientError.HttpClientError | Schema.SchemaError, never>,
never,
K8sHttpClient
>;Layers
Layer that configures K8sHttpClient for the in-cluster Kubernetes API.
Details
It targets https://kubernetes.default.svc/api, adds the service-account bearer token when available, requires successful HTTP statuses, and retries transient failures.
Signature
declare const layer: Layer.Layer<
K8sHttpClient,
never,
HttpClient.HttpClient | FileSystem.FileSystem
>;Schemas
Schema for Kubernetes Pod values used by cluster helpers.
Details
The model exposes readiness helpers derived from the pod status conditions.
Signature
declare class Pod extends {
readonly status: PodStatus;
} {
constructor(...args: [props: {
readonly status: PodStatus;
}, options?: MakeOptions]);
isReady: boolean;
isReadyOrInitializing: boolean;
}Schema for the subset of Kubernetes Pod status used by cluster helpers.
Signature
declare class PodStatus extends {
readonly conditions: readonly Array<{
readonly lastTransitionTime: string | null;
readonly status: string;
readonly type: string;
}>;
readonly hostIP: string;
readonly phase: string;
readonly podIP: string;
} {
constructor(...args: [props: {
readonly conditions: readonly Array<{
readonly lastTransitionTime: string | null;
readonly status: string;
readonly type: string;
}>;
readonly hostIP: string;
readonly phase: string;
readonly podIP: string;
}, options?: MakeOptions]);
}Services
K8sHttpClient
Service tag for the HTTP client used to call the Kubernetes API.
Signature
declare class K8sHttpClient extends Shape<"effect/cluster/K8sHttpClient", HttpClient, this> {
constructor(_: never);
}
Creates a scoped function that ensures a Kubernetes pod exists and waits until it is ready.
Details
The pod defaults to the
defaultnamespace and is deleted when the surrounding scope closes.