@kubernetes-models/argo-rollouts
Version:
101 lines (100 loc) • 5.24 kB
TypeScript
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata } from "./PodTemplateMetadata.js";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity } from "./AntiAffinity.js";
import { IIoK8sApimachineryPkgUtilIntstrIntOrString } from "@kubernetes-models/apimachinery/util/intstr/IntOrString";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis } from "./RolloutAnalysis.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
* BlueGreenStrategy defines parameters for Blue Green deployment
*/
export interface IBlueGreenStrategy {
/**
* AbortScaleDownDelaySeconds adds a delay in second before scaling down the preview replicaset
* if update is aborted. 0 means not to scale down.
* Default is 30 second
*/
"abortScaleDownDelaySeconds"?: number;
/**
* ActiveMetadata specify labels and annotations which will be attached to the active pods for
* the duration which they act as a active pod, and will be removed after
*/
"activeMetadata"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata;
/**
* Name of the service that the rollout modifies as the active service.
*/
"activeService": string;
/**
* AntiAffinity enables anti-affinity rules for Blue Green deployment
*/
"antiAffinity"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity;
/**
* AutoPromotionEnabled indicates if the rollout should automatically promote the new ReplicaSet
* to the active service or enter a paused state. If not specified, the default value is true.
*/
"autoPromotionEnabled"?: boolean;
/**
* AutoPromotionSeconds is a duration in seconds in which to delay auto-promotion (default: 0).
* The countdown begins after the preview ReplicaSet have reached full availability.
* This option is ignored if autoPromotionEnabled is set to false.
*/
"autoPromotionSeconds"?: number;
/**
* MaxUnavailable The maximum number of pods that can be unavailable during a restart operation.
* Defaults to 25% of total replicas.
*/
"maxUnavailable"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
/**
* PostPromotionAnalysis configuration to run analysis after a selector switch
*/
"postPromotionAnalysis"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis;
/**
* PrePromotionAnalysis configuration to run analysis before a selector switch
*/
"prePromotionAnalysis"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis;
/**
* PreviewMetadata specify labels and annotations which will be attached to the preview pods for
* the duration which they act as a preview pod, and will be removed after
*/
"previewMetadata"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata;
/**
* PreviewReplicaCount is the number of replicas to run for the preview stack before the
* switchover. Once the rollout is resumed the desired replicaset will be full scaled up before the switch occurs
*/
"previewReplicaCount"?: number;
/**
* Name of the service that the rollout modifies as the preview service.
*/
"previewService"?: string;
/**
* ScaleDownDelayRevisionLimit limits the number of old RS that can run at one time before getting scaled down
*/
"scaleDownDelayRevisionLimit"?: number;
/**
* ScaleDownDelaySeconds adds a delay before scaling down the previous replicaset.
* If omitted, the Rollout waits 30 seconds before scaling down the previous ReplicaSet.
* A minimum of 30 seconds is recommended to ensure IP table propagation across the nodes in
* a cluster. See https://github.com/argoproj/argo-rollouts/issues/19#issuecomment-476329960 for
* more information
*/
"scaleDownDelaySeconds"?: number;
}
/**
* BlueGreenStrategy defines parameters for Blue Green deployment
*/
export declare class BlueGreenStrategy extends Model<IBlueGreenStrategy> implements IBlueGreenStrategy {
"abortScaleDownDelaySeconds"?: number;
"activeMetadata"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata;
"activeService": string;
"antiAffinity"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity;
"autoPromotionEnabled"?: boolean;
"autoPromotionSeconds"?: number;
"maxUnavailable"?: IIoK8sApimachineryPkgUtilIntstrIntOrString;
"postPromotionAnalysis"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis;
"prePromotionAnalysis"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis;
"previewMetadata"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata;
"previewReplicaCount"?: number;
"previewService"?: string;
"scaleDownDelayRevisionLimit"?: number;
"scaleDownDelaySeconds"?: number;
constructor(data?: ModelData<IBlueGreenStrategy>);
}
export type { IBlueGreenStrategy as IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy, BlueGreenStrategy as ComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy };