k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
41 lines • 2.73 kB
TypeScript
import { Cron, Origin, type LiveRefable } from "@k8ts/instruments";
import { ConfigMap, DataMode, Deployment, HttpRoute, Namespace, PodTemplate, Pv, Pvc, Secret, Service } from "../resources";
import { K8tsCronJob, K8tsCronJobProps } from "../resources/cronjob";
import { AssemblyStage } from "../runner/exporter";
import type { FileOrigin } from "./origin";
export type Factory = Factory.Factory;
export declare namespace Factory {
type Factory = Cluster | Namespaced;
type FromScope<FScope extends FileOrigin.Scope> = FScope extends "cluster" ? Cluster : Namespaced;
class Base {
readonly origin: Origin;
constructor(origin: Origin);
protected _metaWithName(name: string): import("@k8ts/metadata/.").Meta.Meta;
}
class Cluster extends Base {
PersistentVolume<Name extends string, Mode extends DataMode = "Filesystem">(name: Name, props: Pv.Props<Mode>): LiveRefable<Pv.Pv<Mode>, Name>;
Namespace<Name extends string>(name: Name, props?: Namespace.Props): LiveRefable<Namespace, Name>;
}
class Namespaced extends Base {
Claim<Name extends string, Mode extends DataMode = "Filesystem">(name: Name, mode: Pvc.Props<Mode>): LiveRefable<Pvc.Pvc<Mode>, Name>;
CronJob<Name extends string, Cr extends Cron.Record>(name: Name, props: K8tsCronJobProps<Cr>): LiveRefable<K8tsCronJob<Cr>, Name>;
ConfigMap<Name extends string>(name: Name, props: ConfigMap.Props): LiveRefable<ConfigMap, Name>;
HttpRoute<Name extends string, Ports extends string>(name: Name, props: HttpRoute.Props<Ports>): LiveRefable<HttpRoute<Ports>, Name>;
Secret<Name extends string>(name: Name, props: Secret.Props): LiveRefable<Secret, Name>;
Service<Name extends string, DeployPorts extends string, ExposedPorts extends DeployPorts>(name: Name, props: Service.Props<DeployPorts, ExposedPorts>): LiveRefable<Service<ExposedPorts>, Name>;
Deployment<Name extends string>(name: Name, props: Deployment.NormalProps): {
Template(templateProps?: PodTemplate.PodProps): {
POD<Ports extends string>(producer: PodTemplate.PodContainerProducer<Ports>): LiveRefable<Deployment<Ports>, Name>;
};
};
DomainRoute<Name extends string, Ports extends string>(name: Name, props: HttpRoute.Props<Ports>): LiveRefable<HttpRoute<Ports>, Name>;
PodTemplate<Name extends string, Ports extends string>(name: Name, props: PodTemplate.Props<Ports> | PodTemplate.Props<Ports>["$POD"]): LiveRefable<PodTemplate<Ports>, Name>;
}
}
export declare class Stage {
private stage;
text: string;
constructor(stage: AssemblyStage);
private get _emoji();
}
//# sourceMappingURL=factory.d.ts.map