iop
Version:
Ship Docker Anywhere
37 lines (36 loc) • 1.47 kB
TypeScript
import { ServiceEntry, IopSecrets } from '../config/types';
export interface ServiceFingerprint {
type: 'built' | 'external';
runtimeHash: string;
localImageHash?: string;
serverImageHash?: string;
imageReference?: string;
}
export interface RedeploymentDecision {
shouldRedeploy: boolean;
reason: string;
priority: 'critical' | 'normal' | 'optional';
changeType: 'image' | 'runtime' | 'first-deployment';
needsImageTransfer: boolean;
}
/**
* Creates a runtime hash combining configuration and secrets
* This determines if containers need to be recreated (but not if image needs transfer)
*/
export declare function createRuntimeHash(serviceEntry: ServiceEntry, secrets: IopSecrets): string;
/**
* Gets the Docker image hash for a locally built image
*/
export declare function getLocalImageHash(imageName: string): Promise<string | null>;
/**
* Determines if a service is built locally or uses external image
*/
export declare function isBuiltService(serviceEntry: ServiceEntry): boolean;
/**
* Creates a service fingerprint based on service type
*/
export declare function createServiceFingerprint(serviceEntry: ServiceEntry, secrets: IopSecrets, projectName?: string): Promise<ServiceFingerprint>;
/**
* Determines if a service should be redeployed based on fingerprint comparison
*/
export declare function shouldRedeploy(current: ServiceFingerprint | null, desired: ServiceFingerprint): RedeploymentDecision;