@chimoney.io/iaas-k8s-deployment
Version:
Kubernetes Infrastructure as a Service deployment package for streamlined multi-cloud environments
59 lines • 2.59 kB
TypeScript
import { automation } from "@pulumi/pulumi";
import type { Logger, DeploymentStatus } from "../../types/index.js";
export declare function performRollback(stack: automation.Stack, logger: Logger, onProgress: (status: DeploymentStatus, message: string, metadata?: Record<string, any>) => void): Promise<void>;
interface ConfigurationSnapshot {
version: number;
timestamp: Date;
stackName: string;
config: Record<string, automation.ConfigValue>;
outputs?: Record<string, any>;
metadata?: Record<string, any>;
}
export declare class ConfigurationSnapshotManager {
private logger;
private snapshots;
private maxSnapshots;
constructor(logger: Logger, maxSnapshots?: number);
/**
* Store a configuration snapshot after a successful deployment
*/
storeSnapshot(stack: automation.Stack, version: number, outputs?: Record<string, any>, metadata?: Record<string, any>): Promise<void>;
/**
* Retrieve the most recent successful configuration snapshot
*/
getLatestSnapshot(stackName: string): ConfigurationSnapshot | undefined;
/**
* Retrieve a specific configuration snapshot by version
*/
getSnapshotByVersion(stackName: string, version: number): ConfigurationSnapshot | undefined;
/**
* Get all snapshots for a stack (most recent first)
*/
getAllSnapshots(stackName: string): ConfigurationSnapshot[];
/**
* Restore configuration from a snapshot
*/
restoreFromSnapshot(stack: automation.Stack, snapshot: ConfigurationSnapshot): Promise<boolean>;
/**
* Clean up old snapshots beyond the retention limit
*/
cleanupOldSnapshots(stackName: string): void;
}
export declare function getSnapshotManager(logger: Logger): ConfigurationSnapshotManager;
export declare function performEnhancedRollback(stack: automation.Stack, logger: Logger, onProgress: (status: DeploymentStatus, message: string, metadata?: Record<string, any>) => void, targetVersion?: number): Promise<void>;
/**
* Store a snapshot after a successful deployment
* This should be called after successful 'up' operations
*/
export declare function storeDeploymentSnapshot(stack: automation.Stack, logger: Logger, result: automation.UpResult, metadata?: Record<string, any>): Promise<void>;
/**
* List available rollback targets for a stack
*/
export declare function listRollbackTargets(stack: automation.Stack, logger: Logger): Promise<Array<{
version: number;
timestamp: Date;
result: string;
kind: string;
}>>;
export {};
//# sourceMappingURL=rollback-manager.d.ts.map