k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
46 lines • 1.73 kB
TypeScript
import { Ref2_Of, Resource_Top, type Resource_Ref_Full, type Unit } from "@k8ts/instruments";
import { CDK } from "@k8ts/sample-interfaces";
import { v1 } from "../../../kinds/default";
import { storage } from "../../../kinds/storage";
import { Access } from "../access-mode";
import type { Pv_VolumeMode } from "../block-mode";
export interface Pv_Backend_HostPath {
type: "HostPath";
hostpathType: string;
path: string;
}
export interface Pv_Backend_Local {
type: "Local";
path: string;
}
export interface Pv_Backend_Nfs {
type: "NFS";
server: string;
path: string;
}
export type Pv_Backend = Pv_Backend_HostPath | Pv_Backend_Local | Pv_Backend_Nfs;
export interface Pv_Props_K8ts<Mode extends Pv_VolumeMode = Pv_VolumeMode> {
$accessModes: Access;
$storageClass?: Resource_Ref_Full<storage.v1.StorageClass._>;
$mode?: Mode;
reclaimPolicy?: Reclaim;
$capacity: Unit.Data;
$backend?: Pv_Backend;
mountOptions?: string[];
nodeAffinity?: CDK.VolumeNodeAffinity;
}
export type Reclaim = "Retain" | "Delete" | "Recycle";
export type Pv_Ref<Mode extends Pv_VolumeMode = Pv_VolumeMode> = Ref2_Of<v1.PersistentVolume._> & {
__MODE__: Mode;
};
export declare class Pv<Mode extends Pv_VolumeMode = "Filesystem", Name extends string = string> extends Resource_Top<Name, Pv_Props_K8ts<Mode>> {
__MODE__: Mode;
get kind(): import("@k8ts/instruments").Kind.Kind<"", "v1", "PersistentVolume">;
protected __needs__(): {
storageClass: Resource_Ref_Full<import("@k8ts/instruments").Kind.Kind<"storage.k8s.io", "v1", "StorageClass">> | undefined;
};
protected body(): {
spec: CDK.PersistentVolumeSpec;
};
}
//# sourceMappingURL=pv.d.ts.map