UNPKG

@provisioner/contracts

Version:

Contracts stuff for provisioners

62 lines (61 loc) 2.17 kB
import { Result, PatchOp } from '@c6o/kubeclient-contracts'; import { PersistentVolumeClaim } from '@c6o/kubeclient-resources/core/v1'; export interface PersistenceKit { attach(request: AttachRequest): Promise<Result>; copy(persisentvolumeClaimName: string, namespace: string, appId: string, targetVolumeName: string): Promise<Result>; delete(obj: DetachRequest): Promise<Result>; detach(obj: DetachRequest): Promise<Result>; expand(obj: ExpandRequest): Promise<Result>; expansionAllowed(obj: ExpansionAllowedRequest): Promise<boolean>; list(request: ListRequest): Promise<Result>; restore(volumeSnapshotName: string, namespace: string, appId: string, persisentvolumeClaimName: string): Promise<Result>; snapshot(obj: SnapshotRequest): Promise<Result>; snapshotAllowed(): Promise<boolean>; } export interface PersistenceRequest { targetDoc?: PersistentVolumeClaim; } export interface AttachRequest extends PersistenceRequest { namespace: string; appName: string; mountPoint?: string; volumeClaimName?: string; volumeType?: string; volumeName?: string; volumeSnapshotName?: string; volumeSize?: string; } export interface DeleteRequest extends PersistenceRequest { persistentVolumeName?: string; } export interface DetachRequest extends PersistenceRequest { persistentVolumeClaimName?: string; mountPath?: string; namespace: string; appName: string; } export interface ExpansionAllowedRequest extends PersistenceRequest { storageClassName?: string; } export interface ExpandRequest extends PersistenceRequest { persistentVolumeClaimName: string; namespace: string; newSize: number; capacityUnit?: 'Gi'; } export interface ListRequest extends PersistenceRequest { namespace: string; appName: string; } export interface PatchRequest extends PersistenceRequest, PatchOp { apiVersion: string; kind: string; name: string; namespace?: string; } export interface SnapshotRequest extends PersistenceRequest { persistentVolumeClaimName: string; namespace: string; volumeSnapshotClassName: string; volumeSnapshotName: string; }