k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
51 lines • 2.6 kB
TypeScript
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