@spinnaker/ecs 2026.2.4 → 2026.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ecs.module.d.ts +3 -1
- package/dist/ecsCluster/ecsCluster.read.service.d.ts +2 -3
- package/dist/iamRoles/iamRole.read.service.d.ts +1 -2
- package/dist/index.d.ts +5 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/instance/details/EcsInstanceDetails.d.ts +50 -0
- package/dist/loadBalancer/loadBalancer.transformer.d.ts +1 -5
- package/dist/loadBalancer/targetGroup.states.d.ts +2 -1
- package/dist/metricAlarm/metricAlarm.read.service.d.ts +1 -2
- package/dist/pipeline/stages/cloneServerGroup/ecsCloneServerGroupStage.d.ts +1 -0
- package/dist/pipeline/stages/common/EcsServerGroupStepLabel.d.ts +7 -0
- package/dist/pipeline/stages/common/EcsStageConfigs.d.ts +11 -0
- package/dist/pipeline/stages/destroyAsg/ecsDestroyAsgStage.d.ts +1 -2
- package/dist/pipeline/stages/disableAsg/ecsDisableAsgStage.d.ts +1 -2
- package/dist/pipeline/stages/disableCluster/ecsDisableClusterStage.d.ts +1 -2
- package/dist/pipeline/stages/enableAsg/ecsEnableAsgStage.d.ts +1 -2
- package/dist/pipeline/stages/findImageFromTags/EcsFindImageFromTagsExecutionDetails.d.ts +5 -0
- package/dist/pipeline/stages/findImageFromTags/ecsFindImageFromTagStage.d.ts +1 -2
- package/dist/pipeline/stages/resizeAsg/ecsResizeAsgStage.d.ts +1 -2
- package/dist/pipeline/stages/scaleDownCluster/ecsScaleDownClusterStage.d.ts +1 -2
- package/dist/pipeline/stages/shrinkCluster/ecsShrinkClusterStage.d.ts +1 -2
- package/dist/placementStrategy/placementStrategy.service.d.ts +0 -1
- package/dist/secrets/secret.read.service.d.ts +1 -2
- package/dist/securityGroup/details/EcsSecurityGroupDetails.d.ts +45 -0
- package/dist/securityGroup/securityGroup.reader.d.ts +0 -1
- package/dist/securityGroup/securityGroup.transformer.d.ts +3 -2
- package/dist/serverGroup/configure/dockerImage.util.d.ts +3 -0
- package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +111 -2
- package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +13 -63
- package/dist/serverGroup/configure/wizard/EcsCloneServerGroupModal.d.ts +64 -0
- package/dist/serverGroup/configure/wizard/capacityProvider/CapacityProvider.d.ts +29 -4
- package/dist/serverGroup/configure/wizard/container/Container.d.ts +3 -3
- package/dist/serverGroup/configure/wizard/networking/Networking.d.ts +3 -3
- package/dist/serverGroup/configure/wizard/pages/AdvancedSettings.d.ts +3 -0
- package/dist/serverGroup/configure/wizard/pages/BasicSettings.d.ts +3 -0
- package/dist/serverGroup/configure/wizard/pages/ContainerSettings.d.ts +3 -0
- package/dist/serverGroup/configure/wizard/pages/HorizontalScalingSettings.d.ts +3 -0
- package/dist/serverGroup/configure/wizard/pages/LoggingSettings.d.ts +3 -0
- package/dist/serverGroup/configure/wizard/pages/NetworkingSettings.d.ts +3 -0
- package/dist/serverGroup/configure/wizard/pages/ServiceDiscoverySettings.d.ts +3 -0
- package/dist/serverGroup/configure/wizard/pages/TaskDefinitionSettings.d.ts +3 -0
- package/dist/serverGroup/configure/wizard/pages/common.d.ts +8 -0
- package/dist/serverGroup/configure/wizard/pages/validation.d.ts +22 -0
- package/dist/serverGroup/configure/wizard/serviceDiscovery/ServiceDiscovery.d.ts +5 -3
- package/dist/serverGroup/configure/wizard/taskDefinition/TaskDefinition.d.ts +3 -3
- package/dist/serverGroup/details/EcsServerGroupActions.d.ts +6 -0
- package/dist/serverGroup/details/ecsServerGroupDetailsGetter.d.ts +3 -0
- package/dist/serverGroup/details/resize/EcsResizeServerGroupModal.d.ts +43 -0
- package/dist/serverGroup/details/resize/index.d.ts +1 -0
- package/dist/serverGroup/details/rollback/EcsRollbackServerGroupModal.d.ts +46 -0
- package/dist/serverGroup/details/rollback/index.d.ts +1 -0
- package/dist/serverGroup/details/sections/EcsServerGroupDetailsSections.d.ts +9 -0
- package/dist/serverGroup/details/sections/EcsServerGroupEventsSection.d.ts +3 -0
- package/dist/serverGroup/details/sections/EcsServerGroupInformationSection.d.ts +3 -0
- package/dist/serverGroup/events/EcsServerGroupEventsModal.d.ts +22 -0
- package/dist/serverGroup/events/EventsLink.d.ts +2 -0
- package/dist/serverGroup/events/serverGroupEventsReader.service.d.ts +1 -1
- package/dist/serverGroup/serverGroup.transformer.d.ts +1 -2
- package/dist/serviceDiscovery/serviceDiscovery.read.service.d.ts +1 -1
- package/package.json +3 -9
- package/src/ecs.module.spec.ts +86 -0
- package/src/ecs.module.ts +68 -84
- package/src/ecsCluster/ecsCluster.read.service.ts +3 -9
- package/src/iamRoles/iamRole.read.service.ts +1 -7
- package/src/index.ts +6 -0
- package/src/instance/details/EcsInstanceDetails.spec.tsx +426 -0
- package/src/instance/details/EcsInstanceDetails.tsx +474 -0
- package/src/loadBalancer/details/loadBalancerDetails.tsx +1 -1
- package/src/loadBalancer/details/targetGroupDetails.tsx +1 -1
- package/src/loadBalancer/loadBalancer.transformer.ts +2 -7
- package/src/loadBalancer/targetGroup.states.ts +55 -53
- package/src/metricAlarm/metricAlarm.read.service.ts +1 -7
- package/src/pipeline/stages/cloneServerGroup/ecsCloneServerGroupStage.js +22 -94
- package/src/pipeline/stages/common/EcsServerGroupStepLabel.tsx +16 -0
- package/src/pipeline/stages/common/EcsStageConfigs.tsx +587 -0
- package/src/pipeline/stages/destroyAsg/ecsDestroyAsgStage.js +29 -65
- package/src/pipeline/stages/disableAsg/ecsDisableAsgStage.js +27 -70
- package/src/pipeline/stages/disableCluster/ecsDisableClusterStage.js +21 -84
- package/src/pipeline/stages/enableAsg/ecsEnableAsgStage.js +22 -73
- package/src/pipeline/stages/findImageFromTags/EcsFindImageFromTagsExecutionDetails.tsx +40 -0
- package/src/pipeline/stages/findImageFromTags/ecsFindImageFromTagStage.js +12 -24
- package/src/pipeline/stages/resizeAsg/ecsResizeAsgStage.js +30 -128
- package/src/pipeline/stages/scaleDownCluster/ecsScaleDownClusterStage.js +24 -78
- package/src/pipeline/stages/shrinkCluster/ecsShrinkClusterStage.js +19 -73
- package/src/placementStrategy/placementStrategy.service.ts +0 -6
- package/src/secrets/secret.read.service.ts +1 -7
- package/src/securityGroup/details/EcsSecurityGroupDetails.spec.tsx +245 -0
- package/src/securityGroup/details/EcsSecurityGroupDetails.tsx +285 -0
- package/src/securityGroup/securityGroup.reader.ts +0 -5
- package/src/securityGroup/securityGroup.transformer.js +5 -13
- package/src/serverGroup/configure/dockerImage.util.ts +29 -0
- package/src/serverGroup/configure/serverGroupCommandBuilder.service.js +215 -278
- package/src/serverGroup/configure/serverGroupCommandBuilder.service.spec.ts +83 -0
- package/src/serverGroup/configure/serverGroupConfiguration.service.ts +16 -633
- package/src/serverGroup/configure/wizard/EcsCloneServerGroupModal.spec.tsx +2078 -0
- package/src/serverGroup/configure/wizard/EcsCloneServerGroupModal.tsx +712 -0
- package/src/serverGroup/configure/wizard/capacityProvider/CapacityProvider.tsx +98 -49
- package/src/serverGroup/configure/wizard/container/Container.spec.tsx +20 -8
- package/src/serverGroup/configure/wizard/container/Container.tsx +53 -24
- package/src/serverGroup/configure/wizard/networking/Networking.tsx +60 -38
- package/src/serverGroup/configure/wizard/pages/AdvancedSettings.tsx +290 -0
- package/src/serverGroup/configure/wizard/pages/BasicSettings.tsx +101 -0
- package/src/serverGroup/configure/wizard/pages/ContainerSettings.tsx +10 -0
- package/src/serverGroup/configure/wizard/pages/HorizontalScalingSettings.tsx +137 -0
- package/src/serverGroup/configure/wizard/pages/LoggingSettings.tsx +60 -0
- package/src/serverGroup/configure/wizard/pages/NetworkingSettings.tsx +10 -0
- package/src/serverGroup/configure/wizard/pages/ServiceDiscoverySettings.tsx +10 -0
- package/src/serverGroup/configure/wizard/pages/TaskDefinitionSettings.tsx +59 -0
- package/src/serverGroup/configure/wizard/pages/common.ts +10 -0
- package/src/serverGroup/configure/wizard/pages/validation.tsx +190 -0
- package/src/serverGroup/configure/wizard/serviceDiscovery/ServiceDiscovery.tsx +83 -34
- package/src/serverGroup/configure/wizard/taskDefinition/TaskDefinition.spec.tsx +21 -8
- package/src/serverGroup/configure/wizard/taskDefinition/TaskDefinition.tsx +63 -33
- package/src/serverGroup/details/EcsServerGroupActions.spec.tsx +244 -0
- package/src/serverGroup/details/EcsServerGroupActions.tsx +152 -0
- package/src/serverGroup/details/ecsServerGroupDetailsGetter.spec.ts +110 -0
- package/src/serverGroup/details/ecsServerGroupDetailsGetter.ts +73 -0
- package/src/serverGroup/details/resize/EcsResizeServerGroupModal.spec.tsx +130 -0
- package/src/serverGroup/details/resize/EcsResizeServerGroupModal.tsx +263 -0
- package/src/serverGroup/details/resize/index.ts +1 -0
- package/src/serverGroup/details/rollback/EcsRollbackServerGroupModal.spec.tsx +173 -0
- package/src/serverGroup/details/rollback/EcsRollbackServerGroupModal.tsx +285 -0
- package/src/serverGroup/details/rollback/index.ts +1 -0
- package/src/serverGroup/details/sections/EcsServerGroupDetailsSections.spec.tsx +130 -0
- package/src/serverGroup/details/sections/EcsServerGroupDetailsSections.tsx +172 -0
- package/src/serverGroup/details/sections/EcsServerGroupEventsSection.tsx +14 -0
- package/src/serverGroup/details/sections/EcsServerGroupInformationSection.tsx +25 -0
- package/src/serverGroup/events/EcsServerGroupEventsModal.spec.tsx +109 -0
- package/src/serverGroup/events/EcsServerGroupEventsModal.tsx +112 -0
- package/src/serverGroup/events/EventsLink.tsx +18 -0
- package/src/serverGroup/events/serverGroupEventsReader.service.spec.ts +41 -0
- package/src/serverGroup/events/serverGroupEventsReader.service.ts +2 -8
- package/src/serverGroup/serverGroup.transformer.spec.ts +10 -24
- package/src/serverGroup/serverGroup.transformer.ts +1 -5
- package/src/serviceDiscovery/serviceDiscovery.read.service.ts +1 -1
- package/dist/common/common.module.d.ts +0 -1
- package/dist/common/footer.component.d.ts +0 -1
- package/dist/instance/details/instance.details.controller.d.ts +0 -2
- package/dist/securityGroup/details/securityGroupDetail.controller.d.ts +0 -2
- package/dist/securityGroup/securityGroup.module.d.ts +0 -1
- package/dist/serverGroup/configure/wizard/CloneServerGroup.ecs.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/advancedSettings/advancedSettings.component.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.component.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/location/ServerGroupBasicSettings.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/logging/logging.component.d.ts +0 -1
- package/dist/serverGroup/details/resize/resizeCapacity.component.d.ts +0 -1
- package/dist/serverGroup/details/resize/resizeServerGroup.controller.d.ts +0 -2
- package/dist/serverGroup/details/rollback/rollbackServerGroup.controller.d.ts +0 -2
- package/dist/serverGroup/details/serverGroupDetails.ecs.controller.d.ts +0 -2
- package/dist/serverGroup/details/serverGroupDetails.module.d.ts +0 -1
- package/dist/serverGroup/events/events.component.d.ts +0 -3
- package/dist/serverGroup/events/events.controller.d.ts +0 -19
- package/dist/serverGroup/serverGroup.module.d.ts +0 -1
- package/src/common/common.module.ts +0 -6
- package/src/common/footer.component.ts +0 -29
- package/src/instance/details/instance.details.controller.js +0 -356
- package/src/instance/details/instanceDetails.html +0 -204
- package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStage.html +0 -101
- package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStepLabel.html +0 -1
- package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +0 -9
- package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +0 -1
- package/src/pipeline/stages/disableAsg/disableAsgStage.html +0 -11
- package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +0 -1
- package/src/pipeline/stages/disableCluster/disableClusterStage.html +0 -26
- package/src/pipeline/stages/enableAsg/enableAsgStage.html +0 -11
- package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +0 -1
- package/src/pipeline/stages/findImageFromTags/findImageFromTagsExecutionDetails.html +0 -36
- package/src/pipeline/stages/findImageFromTags/findImageFromTagsStage.html +0 -9
- package/src/pipeline/stages/resizeAsg/resizeAsgStage.html +0 -87
- package/src/pipeline/stages/resizeAsg/resizeAsgStepLabel.html +0 -1
- package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.html +0 -35
- package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +0 -34
- package/src/securityGroup/details/securityGroupDetail.controller.js +0 -147
- package/src/securityGroup/details/securityGroupDetail.html +0 -104
- package/src/securityGroup/securityGroup.module.ts +0 -12
- package/src/serverGroup/configure/wizard/CloneServerGroup.ecs.controller.js +0 -259
- package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.component.html +0 -194
- package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.component.js +0 -17
- package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.html +0 -10
- package/src/serverGroup/configure/wizard/capacityProvider/capacityProvider.html +0 -11
- package/src/serverGroup/configure/wizard/container/container.html +0 -9
- package/src/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.component.html +0 -118
- package/src/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.component.js +0 -20
- package/src/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.html +0 -13
- package/src/serverGroup/configure/wizard/location/ServerGroupBasicSettings.controller.js +0 -41
- package/src/serverGroup/configure/wizard/location/basicSettings.html +0 -137
- package/src/serverGroup/configure/wizard/logging/logging.component.html +0 -29
- package/src/serverGroup/configure/wizard/logging/logging.component.ts +0 -12
- package/src/serverGroup/configure/wizard/logging/logging.html +0 -7
- package/src/serverGroup/configure/wizard/networking/networking.html +0 -9
- package/src/serverGroup/configure/wizard/serverGroupWizard.html +0 -55
- package/src/serverGroup/configure/wizard/serviceDiscovery/serviceDiscovery.html +0 -11
- package/src/serverGroup/configure/wizard/taskDefinition/taskDefinition.html +0 -51
- package/src/serverGroup/configure/wizard/templateSelection/templateSelection.html +0 -9
- package/src/serverGroup/configure/wizard/verticalScaling/verticalScaling.html +0 -10
- package/src/serverGroup/details/resize/resizeCapacity.component.html +0 -94
- package/src/serverGroup/details/resize/resizeCapacity.component.ts +0 -14
- package/src/serverGroup/details/resize/resizeServerGroup.controller.js +0 -85
- package/src/serverGroup/details/resize/resizeServerGroup.html +0 -28
- package/src/serverGroup/details/rollback/rollbackServerGroup.controller.js +0 -97
- package/src/serverGroup/details/rollback/rollbackServerGroup.html +0 -67
- package/src/serverGroup/details/serverGroupDetails.ecs.controller.js +0 -366
- package/src/serverGroup/details/serverGroupDetails.html +0 -216
- package/src/serverGroup/details/serverGroupDetails.module.ts +0 -5
- package/src/serverGroup/events/events.component.ts +0 -35
- package/src/serverGroup/events/events.controller.ts +0 -45
- package/src/serverGroup/events/events.html +0 -36
- package/src/serverGroup/serverGroup.module.ts +0 -6
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Application } from '@spinnaker/core';
|
|
2
|
+
import type { IEcsServerGroupCommand } from '../../serverGroupConfiguration.service';
|
|
3
|
+
export interface IEcsWizardPageProps {
|
|
4
|
+
application: Application;
|
|
5
|
+
command: IEcsServerGroupCommand;
|
|
6
|
+
configureCommand: (query?: string) => Promise<void>;
|
|
7
|
+
onFieldChange: (field: string, value: any) => void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { IWizardPageComponent } from '@spinnaker/core';
|
|
3
|
+
import type { IEcsServerGroupCommand } from '../../serverGroupConfiguration.service';
|
|
4
|
+
type ValidationErrors = {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
};
|
|
7
|
+
type Validator = (values: IEcsServerGroupCommand) => ValidationErrors;
|
|
8
|
+
export declare const validateEcsBasicSettings: Validator;
|
|
9
|
+
export declare const validateEcsTaskDefinition: Validator;
|
|
10
|
+
export declare const validateEcsContainer: Validator;
|
|
11
|
+
export declare const validateEcsServiceDiscovery: Validator;
|
|
12
|
+
export declare const validateEcsCapacity: Validator;
|
|
13
|
+
export declare const validateEcsServerGroup: Validator;
|
|
14
|
+
interface IEcsWizardPageValidationProps {
|
|
15
|
+
children: React.ReactElement;
|
|
16
|
+
validator: Validator;
|
|
17
|
+
}
|
|
18
|
+
export declare class EcsWizardPageValidation extends React.Component<IEcsWizardPageValidationProps> implements IWizardPageComponent<IEcsServerGroupCommand> {
|
|
19
|
+
validate: (values: IEcsServerGroupCommand) => ValidationErrors;
|
|
20
|
+
render(): React.ReactElement<any, string | React.JSXElementConstructor<any>> | (React.ReactElement<any, string | React.JSXElementConstructor<any>> & string) | (React.ReactElement<any, string | React.JSXElementConstructor<any>> & number) | (React.ReactElement<any, string | React.JSXElementConstructor<any>> & false) | (React.ReactElement<any, string | React.JSXElementConstructor<any>> & true) | (React.ReactElement<any, string | React.JSXElementConstructor<any>> & React.ReactElement<any, string | React.JSXElementConstructor<any>>) | (React.ReactElement<any, string | React.JSXElementConstructor<any>> & React.ReactPortal);
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -2,8 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import type { IEcsServerGroupCommand, IEcsServiceDiscoveryRegistryAssociation } from '../../serverGroupConfiguration.service';
|
|
3
3
|
export interface IServiceDiscoveryProps {
|
|
4
4
|
command: IEcsServerGroupCommand;
|
|
5
|
-
|
|
6
|
-
configureCommand: (query: string) =>
|
|
5
|
+
onFieldChange: (key: string, value: any) => void;
|
|
6
|
+
configureCommand: (query: string) => Promise<void>;
|
|
7
7
|
}
|
|
8
8
|
export interface IEcsServiceDiscoveryRegistry {
|
|
9
9
|
account: string;
|
|
@@ -21,7 +21,10 @@ interface IServiceDiscoveryState {
|
|
|
21
21
|
export declare class ServiceDiscovery extends React.Component<IServiceDiscoveryProps, IServiceDiscoveryState> {
|
|
22
22
|
constructor(props: IServiceDiscoveryProps);
|
|
23
23
|
componentDidMount(): void;
|
|
24
|
+
componentDidUpdate(): void;
|
|
25
|
+
private normalizeContainerNames;
|
|
24
26
|
private getNameToRegistryMap;
|
|
27
|
+
private mergeRegistries;
|
|
25
28
|
private getEmptyRegistry;
|
|
26
29
|
private updateServiceDiscoveryRegistry;
|
|
27
30
|
private updateServiceDiscoveryPort;
|
|
@@ -30,5 +33,4 @@ export declare class ServiceDiscovery extends React.Component<IServiceDiscoveryP
|
|
|
30
33
|
private removeServiceDiscoveryAssociations;
|
|
31
34
|
render(): React.ReactElement<ServiceDiscovery>;
|
|
32
35
|
}
|
|
33
|
-
export declare const SERVICE_DISCOVERY_REACT = "spinnaker.ecs.serverGroup.configure.wizard.serviceDiscovery.react";
|
|
34
36
|
export {};
|
|
@@ -3,8 +3,8 @@ import type { IAccountDetails } from '@spinnaker/core';
|
|
|
3
3
|
import type { IEcsContainerMapping, IEcsDockerImage, IEcsServerGroupCommand, IEcsTargetGroupMapping, IEcsTaskDefinitionArtifact } from '../../serverGroupConfiguration.service';
|
|
4
4
|
export interface ITaskDefinitionProps {
|
|
5
5
|
command: IEcsServerGroupCommand;
|
|
6
|
-
|
|
7
|
-
configureCommand: (query: string) =>
|
|
6
|
+
onFieldChange: (key: string, value: any) => void;
|
|
7
|
+
configureCommand: (query: string) => Promise<void>;
|
|
8
8
|
}
|
|
9
9
|
interface ITaskDefinitionState {
|
|
10
10
|
taskDefArtifact: IEcsTaskDefinitionArtifact;
|
|
@@ -22,6 +22,7 @@ export declare class TaskDefinition extends React.Component<ITaskDefinitionProps
|
|
|
22
22
|
constructor(props: ITaskDefinitionProps);
|
|
23
23
|
componentDidMount(): void;
|
|
24
24
|
private updateDockerRegistryAccount;
|
|
25
|
+
componentDidUpdate(): void;
|
|
25
26
|
private getIdToImageMap;
|
|
26
27
|
private getEmptyImageDescription;
|
|
27
28
|
private excludedArtifactTypePatterns;
|
|
@@ -39,5 +40,4 @@ export declare class TaskDefinition extends React.Component<ITaskDefinitionProps
|
|
|
39
40
|
private updateEvaluateTaskDefArtifactFlag;
|
|
40
41
|
render(): React.ReactElement<TaskDefinition>;
|
|
41
42
|
}
|
|
42
|
-
export declare const TASK_DEFINITION_REACT = "spinnaker.ecs.serverGroup.configure.wizard.taskDefinition.react";
|
|
43
43
|
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { IRouterInjectedProps, IServerGroupActionsProps } from '@spinnaker/core';
|
|
3
|
+
export declare function EcsServerGroupActionsComponent({ app, serverGroup, stateService, }: IServerGroupActionsProps & IRouterInjectedProps): JSX.Element;
|
|
4
|
+
export declare const EcsServerGroupActions: React.ForwardRefExoticComponent<Omit<IServerGroupActionsProps & IRouterInjectedProps, keyof IRouterInjectedProps> & {
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
} & React.RefAttributes<any>>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Application, DeckRuntimeServices, IModalComponentProps, IServerGroup, IServerGroupJob } from '@spinnaker/core';
|
|
3
|
+
import { DeckRuntimeContext, TaskMonitor } from '@spinnaker/core';
|
|
4
|
+
export interface IEcsResizeServerGroupModalProps extends IModalComponentProps {
|
|
5
|
+
application: Application;
|
|
6
|
+
serverGroup: IServerGroup;
|
|
7
|
+
}
|
|
8
|
+
export interface IEcsResizeCapacity {
|
|
9
|
+
desired: number;
|
|
10
|
+
max: number;
|
|
11
|
+
min: number;
|
|
12
|
+
}
|
|
13
|
+
export interface IEcsResizeServerGroupValues {
|
|
14
|
+
capacity: IEcsResizeCapacity;
|
|
15
|
+
interestingHealthProviderNames?: string[];
|
|
16
|
+
reason?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface IEcsResizeServerGroupJob extends IServerGroupJob {
|
|
19
|
+
capacity: IEcsResizeCapacity;
|
|
20
|
+
interestingHealthProviderNames?: string[];
|
|
21
|
+
reason?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface IEcsResizeServerGroupErrors {
|
|
24
|
+
capacity?: Partial<Record<keyof IEcsResizeCapacity, string>>;
|
|
25
|
+
}
|
|
26
|
+
interface IEcsResizeServerGroupModalState {
|
|
27
|
+
initialValues: IEcsResizeServerGroupValues;
|
|
28
|
+
taskMonitor: TaskMonitor;
|
|
29
|
+
verified: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare function validateEcsResizeValues(values: IEcsResizeServerGroupValues): IEcsResizeServerGroupErrors;
|
|
32
|
+
export declare class EcsResizeServerGroupModal extends React.Component<IEcsResizeServerGroupModalProps, IEcsResizeServerGroupModalState> {
|
|
33
|
+
static contextType: React.Context<import("@spinnaker/core").DeckRuntimeContextValue>;
|
|
34
|
+
context: React.ContextType<typeof DeckRuntimeContext>;
|
|
35
|
+
static defaultProps: Partial<IEcsResizeServerGroupModalProps>;
|
|
36
|
+
static show(props: IEcsResizeServerGroupModalProps, runtimeServices: DeckRuntimeServices): Promise<IEcsResizeServerGroupJob>;
|
|
37
|
+
constructor(props: IEcsResizeServerGroupModalProps);
|
|
38
|
+
private close;
|
|
39
|
+
private submit;
|
|
40
|
+
private capacityError;
|
|
41
|
+
render(): JSX.Element;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './EcsResizeServerGroupModal';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Application, DeckRuntimeServices, IModalComponentProps, IServerGroup, IServerGroupJob } from '@spinnaker/core';
|
|
3
|
+
import { DeckRuntimeContext, TaskMonitor } from '@spinnaker/core';
|
|
4
|
+
export interface IEcsRollbackServerGroupModalProps extends IModalComponentProps {
|
|
5
|
+
application: Application;
|
|
6
|
+
serverGroup: IServerGroup;
|
|
7
|
+
}
|
|
8
|
+
export interface IEcsRollbackServerGroupValues {
|
|
9
|
+
interestingHealthProviderNames?: string[];
|
|
10
|
+
reason?: string;
|
|
11
|
+
restoreServerGroupName?: string;
|
|
12
|
+
targetHealthyRollbackPercentage: number;
|
|
13
|
+
}
|
|
14
|
+
export interface IEcsRollbackServerGroupJob extends IServerGroupJob {
|
|
15
|
+
interestingHealthProviderNames?: string[];
|
|
16
|
+
platformHealthOnlyShowOverride?: boolean;
|
|
17
|
+
reason?: string;
|
|
18
|
+
rollbackContext: {
|
|
19
|
+
restoreServerGroupName: string;
|
|
20
|
+
rollbackServerGroupName: string;
|
|
21
|
+
targetHealthyRollbackPercentage: number;
|
|
22
|
+
};
|
|
23
|
+
rollbackType: 'EXPLICIT';
|
|
24
|
+
}
|
|
25
|
+
export interface IEcsRollbackServerGroupErrors {
|
|
26
|
+
restoreServerGroupName?: string;
|
|
27
|
+
targetHealthyRollbackPercentage?: string;
|
|
28
|
+
}
|
|
29
|
+
interface IEcsRollbackServerGroupModalState {
|
|
30
|
+
initialValues: IEcsRollbackServerGroupValues;
|
|
31
|
+
taskMonitor: TaskMonitor;
|
|
32
|
+
verified: boolean;
|
|
33
|
+
}
|
|
34
|
+
export declare function getEcsRollbackTargets(application: Application, serverGroup: IServerGroup): IServerGroup[];
|
|
35
|
+
export declare function validateEcsRollbackValues(values: IEcsRollbackServerGroupValues, eligibleTargetNames?: string[]): IEcsRollbackServerGroupErrors;
|
|
36
|
+
export declare class EcsRollbackServerGroupModal extends React.Component<IEcsRollbackServerGroupModalProps, IEcsRollbackServerGroupModalState> {
|
|
37
|
+
static contextType: React.Context<import("@spinnaker/core").DeckRuntimeContextValue>;
|
|
38
|
+
context: React.ContextType<typeof DeckRuntimeContext>;
|
|
39
|
+
static defaultProps: Partial<IEcsRollbackServerGroupModalProps>;
|
|
40
|
+
static show(props: IEcsRollbackServerGroupModalProps, runtimeServices: DeckRuntimeServices): Promise<IEcsRollbackServerGroupJob>;
|
|
41
|
+
constructor(props: IEcsRollbackServerGroupModalProps);
|
|
42
|
+
private close;
|
|
43
|
+
private submit;
|
|
44
|
+
render(): JSX.Element;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './EcsRollbackServerGroupModal';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { IServerGroupDetailsSectionProps } from '@spinnaker/core';
|
|
3
|
+
export declare function EcsTaskDefinitionSection({ serverGroup }: IServerGroupDetailsSectionProps): JSX.Element;
|
|
4
|
+
export declare function EcsEnvironmentVariablesSection({ serverGroup }: IServerGroupDetailsSectionProps): JSX.Element;
|
|
5
|
+
export declare function EcsHealthSection({ serverGroup }: IServerGroupDetailsSectionProps): JSX.Element;
|
|
6
|
+
export declare function EcsFirewallsSection({ serverGroup }: IServerGroupDetailsSectionProps): JSX.Element;
|
|
7
|
+
export declare function EcsCapacitySection({ serverGroup }: IServerGroupDetailsSectionProps): JSX.Element;
|
|
8
|
+
export declare function EcsScalingPoliciesSection({ serverGroup }: IServerGroupDetailsSectionProps): JSX.Element;
|
|
9
|
+
export declare function EcsBuildInfoSection({ serverGroup }: IServerGroupDetailsSectionProps): JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { IModalComponentProps, IServerGroup } from '@spinnaker/core';
|
|
3
|
+
import type { IEventDescription } from './serverGroupEventsReader.service';
|
|
4
|
+
export interface IEcsServerGroupEventsModalProps extends IModalComponentProps {
|
|
5
|
+
serverGroup: IServerGroup;
|
|
6
|
+
}
|
|
7
|
+
interface IEcsServerGroupEventsModalState {
|
|
8
|
+
loading: boolean;
|
|
9
|
+
error: boolean;
|
|
10
|
+
events: IEventDescription[];
|
|
11
|
+
}
|
|
12
|
+
export declare class EcsServerGroupEventsModal extends React.Component<IEcsServerGroupEventsModalProps, IEcsServerGroupEventsModalState> {
|
|
13
|
+
state: IEcsServerGroupEventsModalState;
|
|
14
|
+
private mounted;
|
|
15
|
+
private requestId;
|
|
16
|
+
componentDidMount(): void;
|
|
17
|
+
componentDidUpdate(previousProps: IEcsServerGroupEventsModalProps): void;
|
|
18
|
+
componentWillUnmount(): void;
|
|
19
|
+
private loadEvents;
|
|
20
|
+
render(): JSX.Element;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import type { IServerGroup } from '@spinnaker/core';
|
|
2
3
|
export interface IViewScalingActivitiesLinkProps {
|
|
3
4
|
serverGroup: IServerGroup;
|
|
4
5
|
}
|
|
6
|
+
export declare function EventsLink({ serverGroup }: IViewScalingActivitiesLinkProps): JSX.Element;
|
|
@@ -4,8 +4,7 @@ export declare class EcsServerGroupTransformer {
|
|
|
4
4
|
private addAdjustmentAttributes;
|
|
5
5
|
private transformScalingPolicy;
|
|
6
6
|
normalizeServerGroupDetails(serverGroup: IAmazonServerGroup): IAmazonServerGroupView;
|
|
7
|
-
normalizeServerGroup(serverGroup: IAmazonServerGroup):
|
|
7
|
+
normalizeServerGroup(serverGroup: IAmazonServerGroup): Promise<IAmazonServerGroup>;
|
|
8
8
|
private addVpcNameToServerGroup;
|
|
9
9
|
convertServerGroupCommandToDeployConfiguration(base: any): any;
|
|
10
10
|
}
|
|
11
|
-
export declare const ECS_SERVER_GROUP_TRANSFORMER = "spinnaker.ecs.serverGroup.transformer";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { IServiceDiscoveryRegistryDescriptor } from './IServiceDiscovery';
|
|
2
2
|
export declare class ServiceDiscoveryReader {
|
|
3
|
-
static listServiceDiscoveryRegistries():
|
|
3
|
+
static listServiceDiscoveryRegistries(): Promise<IServiceDiscoveryRegistryDescriptor[]>;
|
|
4
4
|
}
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "https://github.com/spinnaker/spinnaker.git"
|
|
6
6
|
},
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
|
-
"version": "2026.
|
|
8
|
+
"version": "2026.3.1",
|
|
9
9
|
"module": "dist/index.js",
|
|
10
10
|
"typings": "dist/index.d.ts",
|
|
11
11
|
"publishConfig": {
|
|
@@ -24,22 +24,16 @@
|
|
|
24
24
|
"@spinnaker/amazon": "^0.14.5",
|
|
25
25
|
"@spinnaker/core": "^0.29.1",
|
|
26
26
|
"@spinnaker/docker": "^0.0.147",
|
|
27
|
-
"@uirouter/angularjs": "1.0.26",
|
|
28
27
|
"@uirouter/react": "1.0.7",
|
|
29
|
-
"angular": "1.8.3",
|
|
30
|
-
"angular-ui-bootstrap": "2.5.0",
|
|
31
28
|
"lodash": "4.18.1",
|
|
32
|
-
"ngimport": "0.6.1",
|
|
33
29
|
"react": "16.14.0",
|
|
34
30
|
"react-bootstrap": "0.32.1",
|
|
35
31
|
"react-select": "1.2.1",
|
|
36
|
-
"
|
|
32
|
+
"rxjs": "6.6.7"
|
|
37
33
|
},
|
|
38
34
|
"devDependencies": {
|
|
39
35
|
"@spinnaker/eslint-plugin": "^3.0.2",
|
|
40
36
|
"@spinnaker/scripts": "^0.4.0",
|
|
41
|
-
"@types/angular": "1.6.26",
|
|
42
|
-
"@types/angular-ui-bootstrap": "0.13.41",
|
|
43
37
|
"@types/lodash": "4.14.64",
|
|
44
38
|
"@types/react": "16.14.10",
|
|
45
39
|
"@types/react-bootstrap": "0.32.5",
|
|
@@ -47,5 +41,5 @@
|
|
|
47
41
|
"shx": "0.3.3",
|
|
48
42
|
"typescript": "5.0.4"
|
|
49
43
|
},
|
|
50
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "edb1aa9de446184eadee134ea51110609278929f"
|
|
51
45
|
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { CloudProviderRegistry, Registry } from '@spinnaker/core';
|
|
2
|
+
|
|
3
|
+
import { registerEcsPipelineStages } from './ecs.module';
|
|
4
|
+
import { EcsSecurityGroupReader } from './securityGroup/securityGroup.reader';
|
|
5
|
+
import { EcsSecurityGroupTransformer } from './securityGroup/securityGroup.transformer';
|
|
6
|
+
import { EcsServerGroupCommandBuilder } from './serverGroup/configure/serverGroupCommandBuilder.service';
|
|
7
|
+
import { EcsServerGroupActions } from './serverGroup/details/EcsServerGroupActions';
|
|
8
|
+
import { EcsServerGroupTransformer } from './serverGroup/serverGroup.transformer';
|
|
9
|
+
|
|
10
|
+
describe('ECS package registration', () => {
|
|
11
|
+
it('registers ECS through React components', () => {
|
|
12
|
+
expect(CloudProviderRegistry.getValue('ecs', 'serverGroup.transformer')).toBe(EcsServerGroupTransformer);
|
|
13
|
+
expect(CloudProviderRegistry.getValue('ecs', 'serverGroup.commandBuilder')).toBe(EcsServerGroupCommandBuilder);
|
|
14
|
+
expect(CloudProviderRegistry.getValue('ecs', 'serverGroup.detailsActions').displayName).toBe(
|
|
15
|
+
EcsServerGroupActions.displayName,
|
|
16
|
+
);
|
|
17
|
+
expect(CloudProviderRegistry.getValue('ecs', 'adHocInfrastructureWritesEnabled')).toBeTrue();
|
|
18
|
+
const detailsSections = CloudProviderRegistry.getValue('ecs', 'serverGroup.detailsSections');
|
|
19
|
+
expect(detailsSections.length).toBe(9);
|
|
20
|
+
expect(detailsSections.every((section: unknown) => typeof section === 'function')).toBeTrue();
|
|
21
|
+
expect(CloudProviderRegistry.getValue('ecs', 'securityGroup.reader')).toBe(EcsSecurityGroupReader);
|
|
22
|
+
expect(CloudProviderRegistry.getValue('ecs', 'securityGroup.transformer')).toBe(EcsSecurityGroupTransformer);
|
|
23
|
+
expect(
|
|
24
|
+
new (CloudProviderRegistry.getValue('ecs', 'serverGroup.commandBuilder') as any)().buildNewServerGroupCommand,
|
|
25
|
+
).toEqual(jasmine.any(Function));
|
|
26
|
+
expect(
|
|
27
|
+
new (CloudProviderRegistry.getValue('ecs', 'securityGroup.transformer') as any)().normalizeSecurityGroup,
|
|
28
|
+
).toEqual(jasmine.any(Function));
|
|
29
|
+
const controllerKey = 'Cont' + 'roller';
|
|
30
|
+
const templateUrlKey = 'Template' + 'Url';
|
|
31
|
+
expect(CloudProviderRegistry.getValue('ecs', `serverGroup.details${controllerKey}`)).toBeNull();
|
|
32
|
+
expect(CloudProviderRegistry.getValue('ecs', `serverGroup.details${templateUrlKey}`)).toBeNull();
|
|
33
|
+
expect(CloudProviderRegistry.getValue('ecs', `instance.details${controllerKey}`)).toBeNull();
|
|
34
|
+
expect(CloudProviderRegistry.getValue('ecs', `securityGroup.details${controllerKey}`)).toBeNull();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('registers ECS pipeline stages directly', () => {
|
|
38
|
+
Registry.reinitialize();
|
|
39
|
+
registerEcsPipelineStages();
|
|
40
|
+
const stages = Registry.pipeline.getStageTypes();
|
|
41
|
+
expect(stages.find((stage) => stage.cloudProvider === 'ecs' && stage.provides === 'destroyServerGroup')).toEqual(
|
|
42
|
+
jasmine.objectContaining({ cloudProvider: 'ecs', provides: 'destroyServerGroup' }),
|
|
43
|
+
);
|
|
44
|
+
expect(stages.find((stage) => stage.cloudProvider === 'ecs' && stage.provides === 'resizeServerGroup')).toEqual(
|
|
45
|
+
jasmine.objectContaining({ cloudProvider: 'ecs', provides: 'resizeServerGroup' }),
|
|
46
|
+
);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('ECS stage configs expose React components without legacy templates', () => {
|
|
50
|
+
Registry.reinitialize();
|
|
51
|
+
registerEcsPipelineStages();
|
|
52
|
+
const ecsStages = Registry.pipeline
|
|
53
|
+
.getStageTypes()
|
|
54
|
+
.filter((stage) => stage.cloudProvider === 'ecs' && stage.provides);
|
|
55
|
+
|
|
56
|
+
expect(ecsStages.map((stage) => stage.provides).sort()).toEqual([
|
|
57
|
+
'cloneServerGroup',
|
|
58
|
+
'destroyServerGroup',
|
|
59
|
+
'disableCluster',
|
|
60
|
+
'disableServerGroup',
|
|
61
|
+
'enableServerGroup',
|
|
62
|
+
'findImageFromTags',
|
|
63
|
+
'resizeServerGroup',
|
|
64
|
+
'scaleDownCluster',
|
|
65
|
+
'shrinkCluster',
|
|
66
|
+
]);
|
|
67
|
+
ecsStages.forEach((stage) => {
|
|
68
|
+
expect(stage.component).toEqual(jasmine.any(Function));
|
|
69
|
+
expect(stage.templateUrl).toBeUndefined();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('does not bundle ECS HTML templates', () => {
|
|
74
|
+
const ecsTemplates = require.context('./', true, /\.html$/).keys();
|
|
75
|
+
|
|
76
|
+
expect(ecsTemplates).toEqual([]);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('normalizes ECS security groups as resolved values', async () => {
|
|
80
|
+
const securityGroup = { name: 'sg-web' };
|
|
81
|
+
|
|
82
|
+
const normalized = await new EcsSecurityGroupTransformer().normalizeSecurityGroup(securityGroup);
|
|
83
|
+
|
|
84
|
+
expect(normalized).toBe(securityGroup);
|
|
85
|
+
});
|
|
86
|
+
});
|
package/src/ecs.module.ts
CHANGED
|
@@ -1,96 +1,68 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { module } from 'angular';
|
|
4
|
-
|
|
1
|
+
import { AWSProviderSettings } from '@spinnaker/amazon';
|
|
5
2
|
import { CloudProviderRegistry, DeploymentStrategyRegistry } from '@spinnaker/core';
|
|
6
3
|
|
|
7
|
-
import { COMMON_MODULE } from './common/common.module';
|
|
8
4
|
import './ecs.help';
|
|
9
5
|
import './ecs.settings';
|
|
10
|
-
import {
|
|
11
|
-
import { IAM_ROLE_READ_SERVICE } from './iamRoles/iamRole.read.service';
|
|
12
|
-
import { ECS_INSTANCE_DETAILS_INSTANCE_DETAILS_CONTROLLER } from './instance/details/instance.details.controller';
|
|
6
|
+
import { EcsInstanceDetails } from './instance/details/EcsInstanceDetails';
|
|
13
7
|
import { EcsLoadBalancerClusterContainer } from './loadBalancer/EcsLoadBalancerClusterContainer';
|
|
14
8
|
import { EcsLoadBalancerDetails } from './loadBalancer/details/loadBalancerDetails';
|
|
15
9
|
import { EcsTargetGroupDetails } from './loadBalancer/details/targetGroupDetails';
|
|
16
10
|
import { EcsLoadBalancerTransformer } from './loadBalancer/loadBalancer.transformer';
|
|
17
|
-
import
|
|
11
|
+
import './loadBalancer/targetGroup.states';
|
|
18
12
|
import ecsLogo from './logo/ecs.logo.svg';
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
import {
|
|
13
|
+
import { registerEcsCloneServerGroupStage } from './pipeline/stages/cloneServerGroup/ecsCloneServerGroupStage';
|
|
14
|
+
import { registerEcsDestroyServerGroupStage } from './pipeline/stages/destroyAsg/ecsDestroyAsgStage';
|
|
15
|
+
import { registerEcsDisableServerGroupStage } from './pipeline/stages/disableAsg/ecsDisableAsgStage';
|
|
16
|
+
import { registerEcsDisableClusterStage } from './pipeline/stages/disableCluster/ecsDisableClusterStage';
|
|
17
|
+
import { registerEcsEnableServerGroupStage } from './pipeline/stages/enableAsg/ecsEnableAsgStage';
|
|
18
|
+
import { registerEcsFindImageFromTagsStage } from './pipeline/stages/findImageFromTags/ecsFindImageFromTagStage';
|
|
19
|
+
import { registerEcsResizeServerGroupStage } from './pipeline/stages/resizeAsg/ecsResizeAsgStage';
|
|
20
|
+
import { registerEcsScaleDownClusterStage } from './pipeline/stages/scaleDownCluster/ecsScaleDownClusterStage';
|
|
21
|
+
import { registerEcsShrinkClusterStage } from './pipeline/stages/shrinkCluster/ecsShrinkClusterStage';
|
|
22
|
+
import { EcsSecurityGroupDetails } from './securityGroup/details/EcsSecurityGroupDetails';
|
|
23
|
+
import { EcsSecurityGroupReader } from './securityGroup/securityGroup.reader';
|
|
24
|
+
import { EcsSecurityGroupTransformer } from './securityGroup/securityGroup.transformer';
|
|
25
|
+
import { EcsServerGroupCommandBuilder } from './serverGroup/configure/serverGroupCommandBuilder.service';
|
|
26
|
+
import { EcsCloneServerGroupModal } from './serverGroup/configure/wizard/EcsCloneServerGroupModal';
|
|
27
|
+
import { EcsServerGroupActions } from './serverGroup/details/EcsServerGroupActions';
|
|
28
|
+
import { ecsServerGroupDetailsGetter } from './serverGroup/details/ecsServerGroupDetailsGetter';
|
|
29
|
+
import {
|
|
30
|
+
EcsBuildInfoSection,
|
|
31
|
+
EcsCapacitySection,
|
|
32
|
+
EcsEnvironmentVariablesSection,
|
|
33
|
+
EcsFirewallsSection,
|
|
34
|
+
EcsHealthSection,
|
|
35
|
+
EcsScalingPoliciesSection,
|
|
36
|
+
EcsTaskDefinitionSection,
|
|
37
|
+
} from './serverGroup/details/sections/EcsServerGroupDetailsSections';
|
|
38
|
+
import { EcsServerGroupEventsSection } from './serverGroup/details/sections/EcsServerGroupEventsSection';
|
|
39
|
+
import { EcsServerGroupInformationSection } from './serverGroup/details/sections/EcsServerGroupInformationSection';
|
|
40
|
+
import { EcsServerGroupTransformer } from './serverGroup/serverGroup.transformer';
|
|
45
41
|
|
|
46
42
|
import './logo/ecs.logo.less';
|
|
47
43
|
|
|
48
|
-
export
|
|
49
|
-
module(ECS_MODULE, [
|
|
50
|
-
ECS_SERVERGROUP_CONFIGURE_WIZARD_CLONESERVERGROUP_ECS_CONTROLLER,
|
|
51
|
-
SERVER_GROUP_DETAILS_MODULE,
|
|
52
|
-
IAM_ROLE_READ_SERVICE,
|
|
53
|
-
ECS_SERVER_GROUP_TRANSFORMER,
|
|
54
|
-
// require('./pipeline/stages/cloneServerGroup/ecsCloneServerGroupStage').name, // TODO(Bruno Carrier): We should enable this on Clouddriver before revealing this stage
|
|
55
|
-
ECS_SERVERGROUP_CONFIGURE_WIZARD_ADVANCEDSETTINGS_ADVANCEDSETTINGS_COMPONENT,
|
|
56
|
-
ECS_SERVERGROUP_CONFIGURE_WIZARD_HORIZONTALSCALING_HORIZONTALSCALING_COMPONENT,
|
|
57
|
-
TASK_DEFINITION_REACT,
|
|
58
|
-
CONTAINER_REACT,
|
|
59
|
-
ECS_NETWORKING_REACT,
|
|
60
|
-
SERVICE_DISCOVERY_REACT,
|
|
61
|
-
ECS_CAPACITY_PROVIDER_REACT,
|
|
62
|
-
ECS_SERVER_GROUP_LOGGING,
|
|
63
|
-
ECS_CLUSTER_READ_SERVICE,
|
|
64
|
-
ECS_SECRET_READ_SERVICE,
|
|
65
|
-
METRIC_ALARM_READ_SERVICE,
|
|
66
|
-
PLACEMENT_STRATEGY_SERVICE,
|
|
67
|
-
COMMON_MODULE,
|
|
68
|
-
ECS_SERVERGROUP_CONFIGURE_WIZARD_LOCATION_SERVERGROUPBASICSETTINGS_CONTROLLER,
|
|
69
|
-
ECS_SERVERGROUP_CONFIGURE_SERVERGROUPCOMMANDBUILDER_SERVICE,
|
|
70
|
-
ECS_INSTANCE_DETAILS_INSTANCE_DETAILS_CONTROLLER,
|
|
71
|
-
ECS_PIPELINE_STAGES_FINDIMAGEFROMTAGS_ECSFINDIMAGEFROMTAGSTAGE,
|
|
72
|
-
ECS_PIPELINE_STAGES_DESTROYASG_ECSDESTROYASGSTAGE,
|
|
73
|
-
ECS_PIPELINE_STAGES_DISABLEASG_ECSDISABLEASGSTAGE,
|
|
74
|
-
ECS_PIPELINE_STAGES_DISABLECLUSTER_ECSDISABLECLUSTERSTAGE,
|
|
75
|
-
ECS_PIPELINE_STAGES_ENABLEASG_ECSENABLEASGSTAGE,
|
|
76
|
-
ECS_PIPELINE_STAGES_RESIZEASG_ECSRESIZEASGSTAGE,
|
|
77
|
-
ECS_PIPELINE_STAGES_SCALEDOWNCLUSTER_ECSSCALEDOWNCLUSTERSTAGE,
|
|
78
|
-
ECS_PIPELINE_STAGES_SHRINKCLUSTER_ECSSHRINKCLUSTERSTAGE,
|
|
79
|
-
ECS_SECURITY_GROUP_MODULE,
|
|
80
|
-
ECS_SERVERGROUP_MODULE,
|
|
81
|
-
ECS_TARGET_GROUP_STATES,
|
|
82
|
-
]).config(function () {
|
|
44
|
+
export function registerEcsProvider(): void {
|
|
83
45
|
CloudProviderRegistry.registerProvider('ecs', {
|
|
84
46
|
name: 'EC2 Container Service',
|
|
47
|
+
adHocInfrastructureWritesEnabled: AWSProviderSettings.adHocInfraWritesEnabled,
|
|
85
48
|
logo: { path: ecsLogo },
|
|
86
49
|
serverGroup: {
|
|
87
|
-
transformer:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
50
|
+
transformer: EcsServerGroupTransformer,
|
|
51
|
+
detailsActions: EcsServerGroupActions,
|
|
52
|
+
detailsGetter: ecsServerGroupDetailsGetter,
|
|
53
|
+
detailsSections: [
|
|
54
|
+
EcsServerGroupInformationSection,
|
|
55
|
+
EcsTaskDefinitionSection,
|
|
56
|
+
EcsEnvironmentVariablesSection,
|
|
57
|
+
EcsHealthSection,
|
|
58
|
+
EcsFirewallsSection,
|
|
59
|
+
EcsCapacitySection,
|
|
60
|
+
EcsScalingPoliciesSection,
|
|
61
|
+
EcsBuildInfoSection,
|
|
62
|
+
EcsServerGroupEventsSection,
|
|
63
|
+
],
|
|
64
|
+
CloneServerGroupModal: EcsCloneServerGroupModal,
|
|
65
|
+
commandBuilder: EcsServerGroupCommandBuilder,
|
|
94
66
|
scalingActivitiesEnabled: false,
|
|
95
67
|
skipUpstreamStageCheck: true,
|
|
96
68
|
},
|
|
@@ -101,16 +73,28 @@ module(ECS_MODULE, [
|
|
|
101
73
|
details: EcsLoadBalancerDetails,
|
|
102
74
|
},
|
|
103
75
|
instance: {
|
|
104
|
-
|
|
105
|
-
detailsController: 'ecsInstanceDetailsCtrl',
|
|
76
|
+
details: EcsInstanceDetails,
|
|
106
77
|
},
|
|
107
78
|
securityGroup: {
|
|
108
|
-
transformer:
|
|
109
|
-
reader:
|
|
110
|
-
|
|
111
|
-
detailsController: 'ecsSecurityGroupDetailsCtrl',
|
|
79
|
+
transformer: EcsSecurityGroupTransformer,
|
|
80
|
+
reader: EcsSecurityGroupReader,
|
|
81
|
+
details: EcsSecurityGroupDetails,
|
|
112
82
|
},
|
|
113
83
|
});
|
|
114
|
-
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function registerEcsPipelineStages(): void {
|
|
87
|
+
registerEcsCloneServerGroupStage();
|
|
88
|
+
registerEcsDestroyServerGroupStage();
|
|
89
|
+
registerEcsDisableServerGroupStage();
|
|
90
|
+
registerEcsDisableClusterStage();
|
|
91
|
+
registerEcsEnableServerGroupStage();
|
|
92
|
+
registerEcsFindImageFromTagsStage();
|
|
93
|
+
registerEcsResizeServerGroupStage();
|
|
94
|
+
registerEcsScaleDownClusterStage();
|
|
95
|
+
registerEcsShrinkClusterStage();
|
|
96
|
+
}
|
|
115
97
|
|
|
98
|
+
registerEcsProvider();
|
|
99
|
+
registerEcsPipelineStages();
|
|
116
100
|
DeploymentStrategyRegistry.registerProvider('ecs', ['redblack']);
|
|
@@ -1,23 +1,17 @@
|
|
|
1
|
-
import { module } from 'angular';
|
|
2
|
-
|
|
3
1
|
import { REST } from '@spinnaker/core';
|
|
4
2
|
|
|
5
3
|
import type { IEcsCapacityProviderDetails } from './IEcsCapacityProviderDetails';
|
|
6
4
|
import type { IEcsClusterDescriptor } from './IEcsCluster';
|
|
7
5
|
|
|
8
6
|
export class EcsClusterReader {
|
|
9
|
-
public listClusters():
|
|
7
|
+
public listClusters(): Promise<IEcsClusterDescriptor[]> {
|
|
10
8
|
return REST('/ecs/ecsClusters').get();
|
|
11
9
|
}
|
|
12
10
|
|
|
13
|
-
public describeClusters(account: string, region: string):
|
|
11
|
+
public describeClusters(account: string, region: string): Promise<IEcsCapacityProviderDetails[]> {
|
|
14
12
|
if (account != null && region != null) {
|
|
15
13
|
return REST('/ecs/ecsClusterDescriptions').path(account).path(region).get();
|
|
16
14
|
}
|
|
17
|
-
return
|
|
15
|
+
return Promise.resolve([]);
|
|
18
16
|
}
|
|
19
17
|
}
|
|
20
|
-
|
|
21
|
-
export const ECS_CLUSTER_READ_SERVICE = 'spinnaker.ecs.ecsCluster.read.service';
|
|
22
|
-
|
|
23
|
-
module(ECS_CLUSTER_READ_SERVICE, []).service('ecsClusterReader', EcsClusterReader);
|