/
IAmazonServerGroup.ts
63 lines (55 loc) · 1.87 KB
/
IAmazonServerGroup.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import type { IAccountDetails, IAsg, IServerGroup } from '@spinnaker/core';
import type { IAmazonLaunchTemplate } from './IAmazonLaunchTemplate';
import type { IScalingPolicyView } from './IAmazonScalingPolicy';
import type { IScalingPolicy } from './IScalingPolicy';
import type { ISuspendedProcess } from './IScalingProcess';
export interface IAmazonAsg extends IAsg {
availabilityZones: string[];
defaultCooldown: number;
healthCheckType: string;
healthCheckGracePeriod: number;
terminationPolicies: string[];
enabledMetrics: Array<{ metric: string }>;
vpczoneIdentifier?: string;
suspendedProcesses?: ISuspendedProcess[];
capacityRebalance?: boolean;
}
export interface IAmazonServerGroup extends IServerGroup {
image?: any;
scalingPolicies?: IScalingPolicy[];
targetGroups?: string[];
asg: IAmazonAsg;
awsAccount?: string;
launchTemplate?: IAmazonLaunchTemplate;
mixedInstancesPolicy?: IAmazonMixedInstancesPolicy;
}
export interface IScheduledAction {
recurrence: number;
minSize: number;
maxSize: number;
desiredCapacity: number;
}
export interface IAmazonMixedInstancesPolicy {
allowedInstanceTypes: string[];
instancesDistribution: IAmazonInstancesDistribution;
launchTemplates: IAmazonLaunchTemplate[];
launchTemplateOverridesForInstanceType: IAmazonLaunchTemplateOverrides[];
}
export interface IAmazonInstancesDistribution {
onDemandAllocationStrategy: string;
onDemandBaseCapacity: number;
onDemandPercentageAboveBaseCapacity: number;
spotAllocationStrategy: string;
spotInstancePools?: number;
spotMaxPrice: string;
}
export interface IAmazonLaunchTemplateOverrides {
instanceType: string;
weightedCapacity?: string;
priority?: number;
}
export interface IAmazonServerGroupView extends IAmazonServerGroup {
accountDetails?: IAccountDetails;
scalingPolicies: IScalingPolicyView[];
scheduledActions?: IScheduledAction[];
}