UNPKG

k8ts

Version:

Powerful framework for building Kubernetes manifests in TypeScript.

51 lines 2.6 kB
import { Kinded, PortSet, ResourcesSpec, WritableDeep, type CmdBuilder, type InputPortSetRecord, type TaggedImage } from "@k8ts/instruments"; import type { CDK } from "../../../_imports"; import { type InputEnvMapping } from "../../../env"; import { api } from "../../../kinds"; import type { ManifestResource } from "../../../node"; import { SubResource } from "../../../node/sub-resource"; import { Mount as Mount_ } from "./mounts"; export type Container<Ports extends string = string> = Container.Container<Ports>; export declare namespace Container { export import Mount = Mount_; const container_ResourcesSpec: ResourcesSpec<{ readonly cpu: "m"; readonly memory: "M" | "G" | "T" | "K" | "Mi" | "Gi" | "Ki"; }>; type Resources = (typeof container_ResourcesSpec)["__INPUT__"]; type SomeMount = Kinded<api.v1_.Pod_.DeviceMount | api.v1_.Pod_.VolumeMount>; export type Mounts = { [key: string]: SomeMount; }; interface K8tsPropsClean<Ports extends string = never> { image: TaggedImage; ports?: InputPortSetRecord<Ports>; command?: CmdBuilder; mounts?: Mounts; env?: InputEnvMapping; resources?: Resources; } export type K8tsProps<Ports extends string = never> = { [key in keyof K8tsPropsClean<Ports> as `$${key}`]: K8tsPropsClean<Ports>[key]; }; export type Props<Ports extends string = never> = K8tsProps<Ports> & WritableDeep<Omit<CDK.Container, keyof K8tsPropsClean | "name">>; export class Container<Ports extends string = string> extends SubResource<Props<Ports>> { readonly subtype: "init" | "main"; readonly props: Props<Ports>; __PORTS__: Ports; readonly kind: import("@k8ts/instruments").Kind.SubKind<"Container", import("@k8ts/instruments").Kind.Kind<"Pod", import("@k8ts/instruments").Kind.Version<"v1", import("@k8ts/instruments").Kind.Group<"">>>>; get mounts(): { mount: Mount.ContainerVolumeMount | Mount.ContainerDeviceMount; path: string; }[]; get volumes(): (import("..").Device.PodDevice | import("..").Volume)[]; get ports(): PortSet<Ports>; submanifest(): CDK.Container; constructor(parent: ManifestResource, name: string, subtype: "init" | "main", props: Props<Ports>); private _groupedMounts; private _resources; } export function make<Ports extends string>(parent: ManifestResource, name: string, subtype: "init" | "main", props: Props<Ports>): Container<Ports>; export {}; } //# sourceMappingURL=container.d.ts.map