@kinvolk/headlamp-plugin
Version:
The needed infrastructure for building Headlamp plugins.
37 lines (36 loc) • 1.48 kB
TypeScript
import { KubeObject } from '../../../lib/k8s/KubeObject';
import type { RevisionInfo, RollbackResult } from '../../../lib/k8s/rollback';
import { ButtonStyle } from '../ActionButton';
/**
* Interface for resources that support rollback.
*/
export interface RollbackableResource extends KubeObject {
rollback: (toRevision?: number) => Promise<RollbackResult>;
getRevisionHistory: () => Promise<RevisionInfo[]>;
}
/**
* Type guard to check if a KubeObject is a resource that supports rollback.
* Currently supports Deployment, DaemonSet, and StatefulSet.
*/
export declare function isRollbackableResource(item: KubeObject): item is RollbackableResource;
export interface RollbackButtonProps {
/** The Kubernetes resource to rollback */
item: KubeObject;
/** Optional button style override */
buttonStyle?: ButtonStyle;
/** Optional callback after user confirms the rollback */
afterConfirm?: () => void;
}
/**
* RollbackButton component for rolling back Workloads to a selected revision.
*
* This component provides a button that, when clicked, shows a revision selection
* dialog where the user can pick a specific revision to rollback to.
*
* Supported Resources:
* - Deployment (via ReplicaSets)
* - DaemonSet (via ControllerRevisions)
* - StatefulSet (via ControllerRevisions)
*/
export declare function RollbackButton(props: RollbackButtonProps): import("react/jsx-runtime").JSX.Element | null;
export default RollbackButton;