EdgeAIG's picture
download
raw
3.49 kB
/**
* 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.
*
* @since 4.0.0
*/
import type * as v1 from "kubernetes-types/core/v1.d.ts";
import * as Context from "../../Context.ts";
import * as Effect from "../../Effect.ts";
import * as FileSystem from "../../FileSystem.ts";
import * as Layer from "../../Layer.ts";
import * as Schema from "../../Schema.ts";
import * as HttpClient from "../http/HttpClient.ts";
import * as HttpClientError from "../http/HttpClientError.ts";
declare const K8sHttpClient_base: Context.ServiceClass<K8sHttpClient, "effect/cluster/K8sHttpClient", HttpClient.HttpClient>;
/**
* Service tag for the HTTP client used to call the Kubernetes API.
*
* @category services
* @since 4.0.0
*/
export declare class K8sHttpClient extends K8sHttpClient_base {
}
/**
* 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.
*
* @category layers
* @since 4.0.0
*/
export declare const layer: Layer.Layer<K8sHttpClient, never, HttpClient.HttpClient | FileSystem.FileSystem>;
/**
* 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.
*
* @category constructors
* @since 4.0.0
*/
export declare const makeGetPods: (options?: {
readonly namespace?: string | undefined;
readonly labelSelector?: string | undefined;
} | undefined) => Effect.Effect<Effect.Effect<Map<string, Pod>, HttpClientError.HttpClientError | Schema.SchemaError, never>, never, K8sHttpClient>;
/**
* Creates a scoped function that ensures a Kubernetes pod exists and waits until
* it is ready.
*
* **Details**
*
* The pod defaults to the `default` namespace and is deleted when the surrounding
* scope closes.
*
* @category constructors
* @since 4.0.0
*/
export declare const makeCreatePod: Effect.Effect<(spec: v1.Pod) => Effect.Effect<PodStatus, never, import("../../Scope.ts").Scope>, never, K8sHttpClient>;
declare const PodStatus_base: Schema.Class<PodStatus, Schema.Struct<{
readonly phase: Schema.String;
readonly conditions: Schema.$Array<Schema.Struct<{
readonly type: Schema.String;
readonly status: Schema.String;
readonly lastTransitionTime: Schema.NullOr<Schema.String>;
}>>;
readonly podIP: Schema.String;
readonly hostIP: Schema.String;
}>, {}>;
/**
* Schema for the subset of Kubernetes Pod status used by cluster helpers.
*
* @category schemas
* @since 4.0.0
*/
export declare class PodStatus extends PodStatus_base {
}
declare const Pod_base: Schema.Class<Pod, Schema.Struct<{
readonly status: typeof PodStatus;
}>, {}>;
/**
* Schema for Kubernetes Pod values used by cluster helpers.
*
* **Details**
*
* The model exposes readiness helpers derived from the pod status conditions.
*
* @category schemas
* @since 4.0.0
*/
export declare class Pod extends Pod_base {
get isReady(): boolean;
get isReadyOrInitializing(): boolean;
}
export {};
//# sourceMappingURL=K8sHttpClient.d.ts.map

Xet Storage Details

Size:
3.49 kB
·
Xet hash:
aaecb74403f14a7249f78d7ace86ef521584f4cc8bcdd24a74a4797ea59d22ff

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.