kubernetes-fluent-client
Version:
A @kubernetes/client-node fluent API wrapper that leverages K8s Server Side Apply.
33 lines • 1.47 kB
TypeScript
import { KubernetesObject } from "@kubernetes/client-node";
import { GenericClass } from "../types.js";
import { K8sInit } from "./types.js";
import { Filters } from "./shared-types.js";
type FinalizeOperation = "add" | "remove";
/**
* Kubernetes fluent API inspired by Kubectl. Pass in a model, then call filters and actions on it.
*
* @param model - the model to use for the API
* @param filters - (optional) filter overrides, can also be chained
* @returns a fluent API for the model
*/
export declare function K8s<T extends GenericClass, K extends KubernetesObject = InstanceType<T>>(model: T, filters?: Filters): K8sInit<T, K>;
/**
*
* Remove controller fields from the Kubernetes object.
* This is necessary for ensuring that the object can be applied without conflicts.
*
* @param object - the Kubernetes object to remove controller fields from
*/
export declare function removeControllerFields(object: KubernetesObject): void;
/**
* Mutates the finalizers list based on the operation.
* Throws or returns early if no update is necessary.
*
* @param operation - "add" or "remove"
* @param finalizer - The finalizer to add/remove
* @param object - The Kubernetes resource object
* @returns The updated finalizers list or `null` if no update is needed
*/
export declare function updateFinalizersOrSkip(operation: FinalizeOperation, finalizer: string, object: KubernetesObject): string[] | null;
export {};
//# sourceMappingURL=index.d.ts.map