@spinnaker/ecs 2026.2.3 → 2026.3.0

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.
Files changed (209) hide show
  1. package/dist/ecs.module.d.ts +3 -1
  2. package/dist/ecsCluster/ecsCluster.read.service.d.ts +2 -3
  3. package/dist/iamRoles/iamRole.read.service.d.ts +1 -2
  4. package/dist/index.d.ts +5 -0
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/instance/details/EcsInstanceDetails.d.ts +50 -0
  8. package/dist/loadBalancer/loadBalancer.transformer.d.ts +1 -5
  9. package/dist/loadBalancer/targetGroup.states.d.ts +2 -1
  10. package/dist/metricAlarm/metricAlarm.read.service.d.ts +1 -2
  11. package/dist/pipeline/stages/cloneServerGroup/ecsCloneServerGroupStage.d.ts +1 -0
  12. package/dist/pipeline/stages/common/EcsServerGroupStepLabel.d.ts +7 -0
  13. package/dist/pipeline/stages/common/EcsStageConfigs.d.ts +11 -0
  14. package/dist/pipeline/stages/destroyAsg/ecsDestroyAsgStage.d.ts +1 -2
  15. package/dist/pipeline/stages/disableAsg/ecsDisableAsgStage.d.ts +1 -2
  16. package/dist/pipeline/stages/disableCluster/ecsDisableClusterStage.d.ts +1 -2
  17. package/dist/pipeline/stages/enableAsg/ecsEnableAsgStage.d.ts +1 -2
  18. package/dist/pipeline/stages/findImageFromTags/EcsFindImageFromTagsExecutionDetails.d.ts +5 -0
  19. package/dist/pipeline/stages/findImageFromTags/ecsFindImageFromTagStage.d.ts +1 -2
  20. package/dist/pipeline/stages/resizeAsg/ecsResizeAsgStage.d.ts +1 -2
  21. package/dist/pipeline/stages/scaleDownCluster/ecsScaleDownClusterStage.d.ts +1 -2
  22. package/dist/pipeline/stages/shrinkCluster/ecsShrinkClusterStage.d.ts +1 -2
  23. package/dist/placementStrategy/placementStrategy.service.d.ts +0 -1
  24. package/dist/secrets/secret.read.service.d.ts +1 -2
  25. package/dist/securityGroup/details/EcsSecurityGroupDetails.d.ts +45 -0
  26. package/dist/securityGroup/securityGroup.reader.d.ts +0 -1
  27. package/dist/securityGroup/securityGroup.transformer.d.ts +3 -2
  28. package/dist/serverGroup/configure/dockerImage.util.d.ts +3 -0
  29. package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +111 -2
  30. package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +13 -63
  31. package/dist/serverGroup/configure/wizard/EcsCloneServerGroupModal.d.ts +64 -0
  32. package/dist/serverGroup/configure/wizard/capacityProvider/CapacityProvider.d.ts +29 -4
  33. package/dist/serverGroup/configure/wizard/container/Container.d.ts +3 -3
  34. package/dist/serverGroup/configure/wizard/networking/Networking.d.ts +3 -3
  35. package/dist/serverGroup/configure/wizard/pages/AdvancedSettings.d.ts +3 -0
  36. package/dist/serverGroup/configure/wizard/pages/BasicSettings.d.ts +3 -0
  37. package/dist/serverGroup/configure/wizard/pages/ContainerSettings.d.ts +3 -0
  38. package/dist/serverGroup/configure/wizard/pages/HorizontalScalingSettings.d.ts +3 -0
  39. package/dist/serverGroup/configure/wizard/pages/LoggingSettings.d.ts +3 -0
  40. package/dist/serverGroup/configure/wizard/pages/NetworkingSettings.d.ts +3 -0
  41. package/dist/serverGroup/configure/wizard/pages/ServiceDiscoverySettings.d.ts +3 -0
  42. package/dist/serverGroup/configure/wizard/pages/TaskDefinitionSettings.d.ts +3 -0
  43. package/dist/serverGroup/configure/wizard/pages/common.d.ts +8 -0
  44. package/dist/serverGroup/configure/wizard/pages/validation.d.ts +22 -0
  45. package/dist/serverGroup/configure/wizard/serviceDiscovery/ServiceDiscovery.d.ts +5 -3
  46. package/dist/serverGroup/configure/wizard/taskDefinition/TaskDefinition.d.ts +3 -3
  47. package/dist/serverGroup/details/EcsServerGroupActions.d.ts +6 -0
  48. package/dist/serverGroup/details/ecsServerGroupDetailsGetter.d.ts +3 -0
  49. package/dist/serverGroup/details/resize/EcsResizeServerGroupModal.d.ts +43 -0
  50. package/dist/serverGroup/details/resize/index.d.ts +1 -0
  51. package/dist/serverGroup/details/rollback/EcsRollbackServerGroupModal.d.ts +46 -0
  52. package/dist/serverGroup/details/rollback/index.d.ts +1 -0
  53. package/dist/serverGroup/details/sections/EcsServerGroupDetailsSections.d.ts +9 -0
  54. package/dist/serverGroup/details/sections/EcsServerGroupEventsSection.d.ts +3 -0
  55. package/dist/serverGroup/details/sections/EcsServerGroupInformationSection.d.ts +3 -0
  56. package/dist/serverGroup/events/EcsServerGroupEventsModal.d.ts +22 -0
  57. package/dist/serverGroup/events/EventsLink.d.ts +2 -0
  58. package/dist/serverGroup/events/serverGroupEventsReader.service.d.ts +1 -1
  59. package/dist/serverGroup/serverGroup.transformer.d.ts +1 -2
  60. package/dist/serviceDiscovery/serviceDiscovery.read.service.d.ts +1 -1
  61. package/package.json +3 -9
  62. package/src/ecs.module.spec.ts +86 -0
  63. package/src/ecs.module.ts +68 -84
  64. package/src/ecsCluster/ecsCluster.read.service.ts +3 -9
  65. package/src/iamRoles/iamRole.read.service.ts +1 -7
  66. package/src/index.ts +6 -0
  67. package/src/instance/details/EcsInstanceDetails.spec.tsx +426 -0
  68. package/src/instance/details/EcsInstanceDetails.tsx +474 -0
  69. package/src/loadBalancer/details/loadBalancerDetails.tsx +1 -1
  70. package/src/loadBalancer/details/targetGroupDetails.tsx +1 -1
  71. package/src/loadBalancer/loadBalancer.transformer.ts +2 -7
  72. package/src/loadBalancer/targetGroup.states.ts +55 -53
  73. package/src/metricAlarm/metricAlarm.read.service.ts +1 -7
  74. package/src/pipeline/stages/cloneServerGroup/ecsCloneServerGroupStage.js +22 -94
  75. package/src/pipeline/stages/common/EcsServerGroupStepLabel.tsx +16 -0
  76. package/src/pipeline/stages/common/EcsStageConfigs.tsx +587 -0
  77. package/src/pipeline/stages/destroyAsg/ecsDestroyAsgStage.js +29 -65
  78. package/src/pipeline/stages/disableAsg/ecsDisableAsgStage.js +27 -70
  79. package/src/pipeline/stages/disableCluster/ecsDisableClusterStage.js +21 -84
  80. package/src/pipeline/stages/enableAsg/ecsEnableAsgStage.js +22 -73
  81. package/src/pipeline/stages/findImageFromTags/EcsFindImageFromTagsExecutionDetails.tsx +40 -0
  82. package/src/pipeline/stages/findImageFromTags/ecsFindImageFromTagStage.js +12 -24
  83. package/src/pipeline/stages/resizeAsg/ecsResizeAsgStage.js +30 -128
  84. package/src/pipeline/stages/scaleDownCluster/ecsScaleDownClusterStage.js +24 -78
  85. package/src/pipeline/stages/shrinkCluster/ecsShrinkClusterStage.js +19 -73
  86. package/src/placementStrategy/placementStrategy.service.ts +0 -6
  87. package/src/secrets/secret.read.service.ts +1 -7
  88. package/src/securityGroup/details/EcsSecurityGroupDetails.spec.tsx +245 -0
  89. package/src/securityGroup/details/EcsSecurityGroupDetails.tsx +285 -0
  90. package/src/securityGroup/securityGroup.reader.ts +0 -5
  91. package/src/securityGroup/securityGroup.transformer.js +5 -13
  92. package/src/serverGroup/configure/dockerImage.util.ts +29 -0
  93. package/src/serverGroup/configure/serverGroupCommandBuilder.service.js +215 -278
  94. package/src/serverGroup/configure/serverGroupCommandBuilder.service.spec.ts +83 -0
  95. package/src/serverGroup/configure/serverGroupConfiguration.service.ts +16 -633
  96. package/src/serverGroup/configure/wizard/EcsCloneServerGroupModal.spec.tsx +2078 -0
  97. package/src/serverGroup/configure/wizard/EcsCloneServerGroupModal.tsx +712 -0
  98. package/src/serverGroup/configure/wizard/capacityProvider/CapacityProvider.tsx +98 -49
  99. package/src/serverGroup/configure/wizard/container/Container.spec.tsx +20 -8
  100. package/src/serverGroup/configure/wizard/container/Container.tsx +53 -24
  101. package/src/serverGroup/configure/wizard/networking/Networking.tsx +60 -38
  102. package/src/serverGroup/configure/wizard/pages/AdvancedSettings.tsx +290 -0
  103. package/src/serverGroup/configure/wizard/pages/BasicSettings.tsx +101 -0
  104. package/src/serverGroup/configure/wizard/pages/ContainerSettings.tsx +10 -0
  105. package/src/serverGroup/configure/wizard/pages/HorizontalScalingSettings.tsx +137 -0
  106. package/src/serverGroup/configure/wizard/pages/LoggingSettings.tsx +60 -0
  107. package/src/serverGroup/configure/wizard/pages/NetworkingSettings.tsx +10 -0
  108. package/src/serverGroup/configure/wizard/pages/ServiceDiscoverySettings.tsx +10 -0
  109. package/src/serverGroup/configure/wizard/pages/TaskDefinitionSettings.tsx +59 -0
  110. package/src/serverGroup/configure/wizard/pages/common.ts +10 -0
  111. package/src/serverGroup/configure/wizard/pages/validation.tsx +190 -0
  112. package/src/serverGroup/configure/wizard/serviceDiscovery/ServiceDiscovery.tsx +83 -34
  113. package/src/serverGroup/configure/wizard/taskDefinition/TaskDefinition.spec.tsx +21 -8
  114. package/src/serverGroup/configure/wizard/taskDefinition/TaskDefinition.tsx +63 -33
  115. package/src/serverGroup/details/EcsServerGroupActions.spec.tsx +244 -0
  116. package/src/serverGroup/details/EcsServerGroupActions.tsx +152 -0
  117. package/src/serverGroup/details/ecsServerGroupDetailsGetter.spec.ts +110 -0
  118. package/src/serverGroup/details/ecsServerGroupDetailsGetter.ts +73 -0
  119. package/src/serverGroup/details/resize/EcsResizeServerGroupModal.spec.tsx +130 -0
  120. package/src/serverGroup/details/resize/EcsResizeServerGroupModal.tsx +263 -0
  121. package/src/serverGroup/details/resize/index.ts +1 -0
  122. package/src/serverGroup/details/rollback/EcsRollbackServerGroupModal.spec.tsx +173 -0
  123. package/src/serverGroup/details/rollback/EcsRollbackServerGroupModal.tsx +285 -0
  124. package/src/serverGroup/details/rollback/index.ts +1 -0
  125. package/src/serverGroup/details/sections/EcsServerGroupDetailsSections.spec.tsx +130 -0
  126. package/src/serverGroup/details/sections/EcsServerGroupDetailsSections.tsx +172 -0
  127. package/src/serverGroup/details/sections/EcsServerGroupEventsSection.tsx +14 -0
  128. package/src/serverGroup/details/sections/EcsServerGroupInformationSection.tsx +25 -0
  129. package/src/serverGroup/events/EcsServerGroupEventsModal.spec.tsx +109 -0
  130. package/src/serverGroup/events/EcsServerGroupEventsModal.tsx +112 -0
  131. package/src/serverGroup/events/EventsLink.tsx +18 -0
  132. package/src/serverGroup/events/serverGroupEventsReader.service.spec.ts +41 -0
  133. package/src/serverGroup/events/serverGroupEventsReader.service.ts +2 -8
  134. package/src/serverGroup/serverGroup.transformer.spec.ts +10 -24
  135. package/src/serverGroup/serverGroup.transformer.ts +1 -5
  136. package/src/serviceDiscovery/serviceDiscovery.read.service.ts +1 -1
  137. package/dist/common/common.module.d.ts +0 -1
  138. package/dist/common/footer.component.d.ts +0 -1
  139. package/dist/instance/details/instance.details.controller.d.ts +0 -2
  140. package/dist/securityGroup/details/securityGroupDetail.controller.d.ts +0 -2
  141. package/dist/securityGroup/securityGroup.module.d.ts +0 -1
  142. package/dist/serverGroup/configure/wizard/CloneServerGroup.ecs.controller.d.ts +0 -2
  143. package/dist/serverGroup/configure/wizard/advancedSettings/advancedSettings.component.d.ts +0 -2
  144. package/dist/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.component.d.ts +0 -2
  145. package/dist/serverGroup/configure/wizard/location/ServerGroupBasicSettings.controller.d.ts +0 -2
  146. package/dist/serverGroup/configure/wizard/logging/logging.component.d.ts +0 -1
  147. package/dist/serverGroup/details/resize/resizeCapacity.component.d.ts +0 -1
  148. package/dist/serverGroup/details/resize/resizeServerGroup.controller.d.ts +0 -2
  149. package/dist/serverGroup/details/rollback/rollbackServerGroup.controller.d.ts +0 -2
  150. package/dist/serverGroup/details/serverGroupDetails.ecs.controller.d.ts +0 -2
  151. package/dist/serverGroup/details/serverGroupDetails.module.d.ts +0 -1
  152. package/dist/serverGroup/events/events.component.d.ts +0 -3
  153. package/dist/serverGroup/events/events.controller.d.ts +0 -19
  154. package/dist/serverGroup/serverGroup.module.d.ts +0 -1
  155. package/src/common/common.module.ts +0 -6
  156. package/src/common/footer.component.ts +0 -29
  157. package/src/instance/details/instance.details.controller.js +0 -356
  158. package/src/instance/details/instanceDetails.html +0 -204
  159. package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStage.html +0 -101
  160. package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStepLabel.html +0 -1
  161. package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +0 -9
  162. package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +0 -1
  163. package/src/pipeline/stages/disableAsg/disableAsgStage.html +0 -11
  164. package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +0 -1
  165. package/src/pipeline/stages/disableCluster/disableClusterStage.html +0 -26
  166. package/src/pipeline/stages/enableAsg/enableAsgStage.html +0 -11
  167. package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +0 -1
  168. package/src/pipeline/stages/findImageFromTags/findImageFromTagsExecutionDetails.html +0 -36
  169. package/src/pipeline/stages/findImageFromTags/findImageFromTagsStage.html +0 -9
  170. package/src/pipeline/stages/resizeAsg/resizeAsgStage.html +0 -87
  171. package/src/pipeline/stages/resizeAsg/resizeAsgStepLabel.html +0 -1
  172. package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.html +0 -35
  173. package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +0 -34
  174. package/src/securityGroup/details/securityGroupDetail.controller.js +0 -147
  175. package/src/securityGroup/details/securityGroupDetail.html +0 -104
  176. package/src/securityGroup/securityGroup.module.ts +0 -12
  177. package/src/serverGroup/configure/wizard/CloneServerGroup.ecs.controller.js +0 -259
  178. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.component.html +0 -194
  179. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.component.js +0 -17
  180. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.html +0 -10
  181. package/src/serverGroup/configure/wizard/capacityProvider/capacityProvider.html +0 -11
  182. package/src/serverGroup/configure/wizard/container/container.html +0 -9
  183. package/src/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.component.html +0 -118
  184. package/src/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.component.js +0 -20
  185. package/src/serverGroup/configure/wizard/horizontalScaling/horizontalScaling.html +0 -13
  186. package/src/serverGroup/configure/wizard/location/ServerGroupBasicSettings.controller.js +0 -41
  187. package/src/serverGroup/configure/wizard/location/basicSettings.html +0 -137
  188. package/src/serverGroup/configure/wizard/logging/logging.component.html +0 -29
  189. package/src/serverGroup/configure/wizard/logging/logging.component.ts +0 -12
  190. package/src/serverGroup/configure/wizard/logging/logging.html +0 -7
  191. package/src/serverGroup/configure/wizard/networking/networking.html +0 -9
  192. package/src/serverGroup/configure/wizard/serverGroupWizard.html +0 -55
  193. package/src/serverGroup/configure/wizard/serviceDiscovery/serviceDiscovery.html +0 -11
  194. package/src/serverGroup/configure/wizard/taskDefinition/taskDefinition.html +0 -51
  195. package/src/serverGroup/configure/wizard/templateSelection/templateSelection.html +0 -9
  196. package/src/serverGroup/configure/wizard/verticalScaling/verticalScaling.html +0 -10
  197. package/src/serverGroup/details/resize/resizeCapacity.component.html +0 -94
  198. package/src/serverGroup/details/resize/resizeCapacity.component.ts +0 -14
  199. package/src/serverGroup/details/resize/resizeServerGroup.controller.js +0 -85
  200. package/src/serverGroup/details/resize/resizeServerGroup.html +0 -28
  201. package/src/serverGroup/details/rollback/rollbackServerGroup.controller.js +0 -97
  202. package/src/serverGroup/details/rollback/rollbackServerGroup.html +0 -67
  203. package/src/serverGroup/details/serverGroupDetails.ecs.controller.js +0 -366
  204. package/src/serverGroup/details/serverGroupDetails.html +0 -216
  205. package/src/serverGroup/details/serverGroupDetails.module.ts +0 -5
  206. package/src/serverGroup/events/events.component.ts +0 -35
  207. package/src/serverGroup/events/events.controller.ts +0 -45
  208. package/src/serverGroup/events/events.html +0 -36
  209. package/src/serverGroup/serverGroup.module.ts +0 -6
@@ -1,70 +1,27 @@
1
- 'use strict';
2
-
3
- import { module } from 'angular';
4
-
5
- import { AccountService, PipelineTemplates, Registry, StageConstants } from '@spinnaker/core';
6
-
7
- export const ECS_PIPELINE_STAGES_DISABLEASG_ECSDISABLEASGSTAGE = 'spinnaker.ecs.pipeline.stage.disableAsgStage';
8
- export const name = ECS_PIPELINE_STAGES_DISABLEASG_ECSDISABLEASGSTAGE; // for backwards compatibility
9
- module(ECS_PIPELINE_STAGES_DISABLEASG_ECSDISABLEASGSTAGE, [])
10
- .config(function () {
11
- Registry.pipeline.registerStage({
12
- provides: 'disableServerGroup',
13
- alias: 'disableAsg',
14
- cloudProvider: 'ecs',
15
- templateUrl: require('./disableAsgStage.html'),
16
- executionDetailsUrl: PipelineTemplates.disableAsgExecutionDetails,
17
- executionStepLabelUrl: require('./disableAsgStepLabel.html'),
18
- validators: [
19
- {
20
- type: 'targetImpedance',
21
- message:
22
- 'This pipeline will attempt to disable a server group without deploying a new version into the same cluster.',
23
- },
24
- { type: 'requiredField', fieldName: 'cluster' },
25
- { type: 'requiredField', fieldName: 'target' },
26
- { type: 'requiredField', fieldName: 'regions' },
27
- { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
28
- ],
29
- });
30
- })
31
- .controller('ecsDisableAsgStageCtrl', [
32
- '$scope',
33
- function ($scope) {
34
- const stage = $scope.stage;
35
-
36
- $scope.state = {
37
- accounts: false,
38
- regionsLoaded: false,
39
- };
40
-
41
- AccountService.listAccounts('ecs').then(function (accounts) {
42
- $scope.accounts = accounts;
43
- $scope.state.accounts = true;
44
- });
45
-
46
- $scope.targets = StageConstants.TARGET_LIST;
47
-
48
- stage.regions = stage.regions || [];
49
- stage.cloudProvider = 'ecs';
50
-
51
- if (
52
- stage.isNew &&
53
- $scope.application.attributes.platformHealthOnlyShowOverride &&
54
- $scope.application.attributes.platformHealthOnly
55
- ) {
56
- stage.interestingHealthProviderNames = ['Ecs'];
57
- }
58
-
59
- if (!stage.credentials && $scope.application.defaultCredentials.ecs) {
60
- stage.credentials = $scope.application.defaultCredentials.ecs;
61
- }
62
- if (!stage.regions.length && $scope.application.defaultRegions.ecs) {
63
- stage.regions.push($scope.application.defaultRegions.ecs);
64
- }
65
-
66
- if (!stage.target) {
67
- stage.target = $scope.targets[0].val;
68
- }
69
- },
70
- ]);
1
+ import React from 'react';
2
+ import { Registry } from '@spinnaker/core';
3
+
4
+ import { EcsServerGroupStepLabel } from '../common/EcsServerGroupStepLabel';
5
+ import { EcsDisableAsgStageConfig } from '../common/EcsStageConfigs';
6
+
7
+ export function registerEcsDisableServerGroupStage() {
8
+ Registry.pipeline.registerStage({
9
+ provides: 'disableServerGroup',
10
+ alias: 'disableAsg',
11
+ cloudProvider: 'ecs',
12
+ component: EcsDisableAsgStageConfig,
13
+ executionStepLabelComponent: (props) =>
14
+ React.createElement(EcsServerGroupStepLabel, { action: 'Disable Server Group', ...props }),
15
+ validators: [
16
+ {
17
+ type: 'targetImpedance',
18
+ message:
19
+ 'This pipeline will attempt to disable a server group without deploying a new version into the same cluster.',
20
+ },
21
+ { type: 'requiredField', fieldName: 'cluster' },
22
+ { type: 'requiredField', fieldName: 'target' },
23
+ { type: 'requiredField', fieldName: 'regions' },
24
+ { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
25
+ ],
26
+ });
27
+ }
@@ -1,84 +1,21 @@
1
- 'use strict';
2
-
3
- import { module } from 'angular';
4
-
5
- import { AccountService, Registry } from '@spinnaker/core';
6
-
7
- export const ECS_PIPELINE_STAGES_DISABLECLUSTER_ECSDISABLECLUSTERSTAGE =
8
- 'spinnaker.ecs.pipeline.stage.disableClusterStage';
9
- export const name = ECS_PIPELINE_STAGES_DISABLECLUSTER_ECSDISABLECLUSTERSTAGE; // for backwards compatibility
10
- module(ECS_PIPELINE_STAGES_DISABLECLUSTER_ECSDISABLECLUSTERSTAGE, [])
11
- .config(function () {
12
- Registry.pipeline.registerStage({
13
- provides: 'disableCluster',
14
- cloudProvider: 'ecs',
15
- templateUrl: require('./disableClusterStage.html'),
16
- validators: [
17
- { type: 'requiredField', fieldName: 'cluster' },
18
- {
19
- type: 'requiredField',
20
- fieldName: 'remainingEnabledServerGroups',
21
- fieldLabel: 'Keep [X] enabled Server Groups',
22
- },
23
- { type: 'requiredField', fieldName: 'regions' },
24
- { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
25
- ],
26
- });
27
- })
28
- .controller('ecsDisableClusterStageCtrl', [
29
- '$scope',
30
- function ($scope) {
31
- const ctrl = this;
32
-
33
- const stage = $scope.stage;
34
-
35
- $scope.state = {
36
- accounts: false,
37
- regionsLoaded: false,
38
- };
39
-
40
- AccountService.listAccounts('ecs').then(function (accounts) {
41
- $scope.accounts = accounts;
42
- $scope.state.accounts = true;
43
- });
44
-
45
- ctrl.reset = () => {
46
- ctrl.accountUpdated();
47
- ctrl.resetSelectedCluster();
48
- };
49
-
50
- stage.regions = stage.regions || [];
51
- stage.cloudProvider = 'ecs';
52
-
53
- if (
54
- stage.isNew &&
55
- $scope.application.attributes.platformHealthOnlyShowOverride &&
56
- $scope.application.attributes.platformHealthOnly
57
- ) {
58
- stage.interestingHealthProviderNames = ['Ecs'];
59
- }
60
-
61
- if (!stage.credentials && $scope.application.defaultCredentials.ecs) {
62
- stage.credentials = $scope.application.defaultCredentials.ecs;
63
- }
64
- if (!stage.regions.length && $scope.application.defaultRegions.ecs) {
65
- stage.regions.push($scope.application.defaultRegions.ecs);
66
- }
67
-
68
- if (stage.remainingEnabledServerGroups === undefined) {
69
- stage.remainingEnabledServerGroups = 1;
70
- }
71
-
72
- ctrl.pluralize = function (str, val) {
73
- if (val === 1) {
74
- return str;
75
- }
76
- return str + 's';
77
- };
78
-
79
- if (stage.preferLargerOverNewer === undefined) {
80
- stage.preferLargerOverNewer = 'false';
81
- }
82
- stage.preferLargerOverNewer = stage.preferLargerOverNewer.toString();
83
- },
84
- ]);
1
+ import { Registry } from '@spinnaker/core';
2
+
3
+ import { EcsDisableClusterStageConfig } from '../common/EcsStageConfigs';
4
+
5
+ export function registerEcsDisableClusterStage() {
6
+ Registry.pipeline.registerStage({
7
+ provides: 'disableCluster',
8
+ cloudProvider: 'ecs',
9
+ component: EcsDisableClusterStageConfig,
10
+ validators: [
11
+ { type: 'requiredField', fieldName: 'cluster' },
12
+ {
13
+ type: 'requiredField',
14
+ fieldName: 'remainingEnabledServerGroups',
15
+ fieldLabel: 'Keep [X] enabled Server Groups',
16
+ },
17
+ { type: 'requiredField', fieldName: 'regions' },
18
+ { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
19
+ ],
20
+ });
21
+ }
@@ -1,73 +1,22 @@
1
- 'use strict';
2
-
3
- import { module } from 'angular';
4
-
5
- import { AccountService, Registry, StageConstants } from '@spinnaker/core';
6
-
7
- export const ECS_PIPELINE_STAGES_ENABLEASG_ECSENABLEASGSTAGE = 'spinnaker.ecs.pipeline.stage.enableAsgStage';
8
- export const name = ECS_PIPELINE_STAGES_ENABLEASG_ECSENABLEASGSTAGE; // for backwards compatibility
9
- module(ECS_PIPELINE_STAGES_ENABLEASG_ECSENABLEASGSTAGE, [])
10
- .config(function () {
11
- Registry.pipeline.registerStage({
12
- provides: 'enableServerGroup',
13
- alias: 'enableAsg',
14
- cloudProvider: 'ecs',
15
- templateUrl: require('./enableAsgStage.html'),
16
- executionStepLabelUrl: require('./enableAsgStepLabel.html'),
17
- validators: [
18
- { type: 'requiredField', fieldName: 'cluster' },
19
- { type: 'requiredField', fieldName: 'target' },
20
- { type: 'requiredField', fieldName: 'regions' },
21
- { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
22
- ],
23
- });
24
- })
25
- .controller('ecsEnableAsgStageCtrl', [
26
- '$scope',
27
- function ($scope) {
28
- const ctrl = this;
29
-
30
- const stage = $scope.stage;
31
-
32
- $scope.state = {
33
- accounts: false,
34
- regionsLoaded: false,
35
- };
36
-
37
- AccountService.listAccounts('ecs').then(function (accounts) {
38
- $scope.accounts = accounts;
39
- $scope.state.accounts = true;
40
- });
41
-
42
- ctrl.reset = () => {
43
- ctrl.accountUpdated();
44
- ctrl.resetSelectedCluster();
45
- };
46
-
47
- $scope.targets = StageConstants.TARGET_LIST;
48
-
49
- stage.regions = stage.regions || [];
50
- stage.cloudProvider = 'ecs';
51
-
52
- if (
53
- stage.isNew &&
54
- $scope.application.attributes.platformHealthOnlyShowOverride &&
55
- $scope.application.attributes.platformHealthOnly
56
- ) {
57
- stage.interestingHealthProviderNames = ['Ecs'];
58
- }
59
-
60
- if (!stage.credentials && $scope.application.defaultCredentials.ecs) {
61
- stage.credentials = $scope.application.defaultCredentials.ecs;
62
- }
63
- if (!stage.regions.length && $scope.application.defaultRegions.ecs) {
64
- stage.regions.push($scope.application.defaultRegions.ecs);
65
- }
66
-
67
- if (!stage.target) {
68
- stage.target = $scope.targets[0].val;
69
- }
70
-
71
- $scope.$watch('stage.credentials', $scope.accountUpdated);
72
- },
73
- ]);
1
+ import React from 'react';
2
+ import { Registry } from '@spinnaker/core';
3
+
4
+ import { EcsServerGroupStepLabel } from '../common/EcsServerGroupStepLabel';
5
+ import { EcsEnableAsgStageConfig } from '../common/EcsStageConfigs';
6
+
7
+ export function registerEcsEnableServerGroupStage() {
8
+ Registry.pipeline.registerStage({
9
+ provides: 'enableServerGroup',
10
+ alias: 'enableAsg',
11
+ cloudProvider: 'ecs',
12
+ component: EcsEnableAsgStageConfig,
13
+ executionStepLabelComponent: (props) =>
14
+ React.createElement(EcsServerGroupStepLabel, { action: 'Enable Server Group', ...props }),
15
+ validators: [
16
+ { type: 'requiredField', fieldName: 'cluster' },
17
+ { type: 'requiredField', fieldName: 'target' },
18
+ { type: 'requiredField', fieldName: 'regions' },
19
+ { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
20
+ ],
21
+ });
22
+ }
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { ExecutionDetailsSection, StageFailureMessage } from '@spinnaker/core';
3
+
4
+ export function EcsFindImageFromTagsExecutionDetails(props: any) {
5
+ const { stage } = props;
6
+ return (
7
+ <ExecutionDetailsSection name={props.name} current={props.current}>
8
+ <div className="row">
9
+ <div className="col-md-12">
10
+ <dl className="dl-narrow dl-horizontal">
11
+ <dt>Provider</dt>
12
+ <dd>ECS</dd>
13
+ </dl>
14
+ </div>
15
+ </div>
16
+ <StageFailureMessage stage={stage} message={stage.failureMessage} />
17
+ {stage.context?.amiDetails && (
18
+ <div className="row">
19
+ <div className="col-md-12">
20
+ <div className="well alert alert-info">
21
+ <h4>Results</h4>
22
+ {stage.context.amiDetails.map((image: any, index: number) => (
23
+ <dl key={index} className="dl-narrow dl-horizontal">
24
+ <dt>Region</dt>
25
+ <dd>{image.region}</dd>
26
+ <dt>Image ID</dt>
27
+ <dd>{image.imageId}</dd>
28
+ <dt>Unique ID</dt>
29
+ <dd>{image.imageName}</dd>
30
+ </dl>
31
+ ))}
32
+ </div>
33
+ </div>
34
+ </div>
35
+ )}
36
+ </ExecutionDetailsSection>
37
+ );
38
+ }
39
+
40
+ EcsFindImageFromTagsExecutionDetails.title = 'findImageConfig';
@@ -1,26 +1,14 @@
1
- 'use strict';
1
+ import { ExecutionDetailsTasks, Registry } from '@spinnaker/core';
2
2
 
3
- import { module } from 'angular';
3
+ import { EcsFindImageFromTagsExecutionDetails } from './EcsFindImageFromTagsExecutionDetails';
4
+ import { EcsFindImageFromTagsStageConfig } from '../common/EcsStageConfigs';
4
5
 
5
- import { Registry } from '@spinnaker/core';
6
-
7
- export const ECS_PIPELINE_STAGES_FINDIMAGEFROMTAGS_ECSFINDIMAGEFROMTAGSTAGE =
8
- 'spinnaker.ecs.pipeline.stage.findImageFromTagsStage';
9
- export const name = ECS_PIPELINE_STAGES_FINDIMAGEFROMTAGS_ECSFINDIMAGEFROMTAGSTAGE; // for backwards compatibility
10
- module(ECS_PIPELINE_STAGES_FINDIMAGEFROMTAGS_ECSFINDIMAGEFROMTAGSTAGE, [])
11
- .config(function () {
12
- Registry.pipeline.registerStage({
13
- provides: 'findImageFromTags',
14
- cloudProvider: 'ecs',
15
- templateUrl: require('./findImageFromTagsStage.html'),
16
- executionDetailsUrl: require('./findImageFromTagsExecutionDetails.html'),
17
- executionConfigSections: ['findImageConfig', 'taskStatus'],
18
- validators: [{ type: 'requiredField', fieldName: 'imageLabelOrSha' }],
19
- });
20
- })
21
- .controller('ecsFindImageFromTagsStageCtrl', [
22
- '$scope',
23
- function ($scope) {
24
- $scope.stage.cloudProvider = $scope.stage.cloudProvider || 'ecs';
25
- },
26
- ]);
6
+ export function registerEcsFindImageFromTagsStage() {
7
+ Registry.pipeline.registerStage({
8
+ provides: 'findImageFromTags',
9
+ cloudProvider: 'ecs',
10
+ component: EcsFindImageFromTagsStageConfig,
11
+ executionDetailsSections: [EcsFindImageFromTagsExecutionDetails, ExecutionDetailsTasks],
12
+ validators: [{ type: 'requiredField', fieldName: 'imageLabelOrSha' }],
13
+ });
14
+ }
@@ -1,128 +1,30 @@
1
- 'use strict';
2
-
3
- import { module } from 'angular';
4
-
5
- import { AccountService, Registry, StageConstants } from '@spinnaker/core';
6
-
7
- export const ECS_PIPELINE_STAGES_RESIZEASG_ECSRESIZEASGSTAGE = 'spinnaker.ecs.pipeline.stage.ecs.resizeAsgStage';
8
- export const name = ECS_PIPELINE_STAGES_RESIZEASG_ECSRESIZEASGSTAGE; // for backwards compatibility
9
- module(ECS_PIPELINE_STAGES_RESIZEASG_ECSRESIZEASGSTAGE, [])
10
- .config(function () {
11
- Registry.pipeline.registerStage({
12
- provides: 'resizeServerGroup',
13
- alias: 'resizeAsg',
14
- cloudProvider: 'ecs',
15
- templateUrl: require('./resizeAsgStage.html'),
16
- executionConfigSections: ['resizeServerGroupConfig', 'taskStatus'],
17
- executionStepLabelUrl: require('./resizeAsgStepLabel.html'),
18
- accountExtractor: (stage) => [stage.context.credentials],
19
- configAccountExtractor: (stage) => [stage.credentials],
20
- validators: [
21
- {
22
- type: 'targetImpedance',
23
- message:
24
- 'This pipeline will attempt to resize a server group without deploying a new version into the same cluster.',
25
- },
26
- { type: 'requiredField', fieldName: 'target' },
27
- { type: 'requiredField', fieldName: 'action' },
28
- { type: 'requiredField', fieldName: 'regions' },
29
- { type: 'requiredField', fieldName: 'cluster' },
30
- { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
31
- ],
32
- });
33
- })
34
- .controller('ecsResizeAsgStageCtrl', [
35
- '$scope',
36
- function ($scope) {
37
- const ctrl = this;
38
-
39
- const stage = $scope.stage;
40
-
41
- $scope.viewState = {
42
- accountsLoaded: false,
43
- regionsLoaded: false,
44
- };
45
-
46
- AccountService.listAccounts('ecs').then(function (accounts) {
47
- $scope.accounts = accounts;
48
- $scope.viewState.accountsLoaded = true;
49
- });
50
-
51
- $scope.resizeTargets = StageConstants.TARGET_LIST;
52
-
53
- $scope.scaleActions = [
54
- {
55
- label: 'Scale Up',
56
- val: 'scale_up',
57
- },
58
- {
59
- label: 'Scale Down',
60
- val: 'scale_down',
61
- },
62
- {
63
- label: 'Scale to Cluster Size',
64
- val: 'scale_to_cluster',
65
- },
66
- {
67
- label: 'Scale to Exact Size',
68
- val: 'scale_exact',
69
- },
70
- ];
71
-
72
- $scope.resizeTypes = [
73
- {
74
- label: 'Percentage',
75
- val: 'pct',
76
- },
77
- {
78
- label: 'Incremental',
79
- val: 'incr',
80
- },
81
- ];
82
-
83
- stage.capacity = stage.capacity || {};
84
- stage.regions = stage.regions || [];
85
- stage.target = stage.target || $scope.resizeTargets[0].val;
86
- stage.action = stage.action || $scope.scaleActions[0].val;
87
- stage.resizeType = stage.resizeType || $scope.resizeTypes[0].val;
88
- if (stage.targetHealthyDeployPercentage === undefined) {
89
- stage.targetHealthyDeployPercentage = 100;
90
- }
91
- if (!stage.action && stage.resizeType === 'exact') {
92
- stage.action = 'scale_exact';
93
- }
94
- stage.cloudProvider = 'ecs';
95
-
96
- if (
97
- stage.isNew &&
98
- $scope.application.attributes.platformHealthOnlyShowOverride &&
99
- $scope.application.attributes.platformHealthOnly
100
- ) {
101
- stage.interestingHealthProviderNames = ['Ecs'];
102
- }
103
-
104
- if (!stage.credentials && $scope.application.defaultCredentials.ecs) {
105
- stage.credentials = $scope.application.defaultCredentials.ecs;
106
- }
107
- if (!stage.regions.length && $scope.application.defaultRegions.ecs) {
108
- stage.regions.push($scope.application.defaultRegions.ecs);
109
- }
110
-
111
- ctrl.updateResizeType = function () {
112
- if (stage.action === 'scale_exact') {
113
- stage.resizeType = 'exact';
114
- delete stage.scalePct;
115
- delete stage.scaleNum;
116
- } else {
117
- stage.capacity = {};
118
- if (stage.resizeType === 'pct') {
119
- delete stage.scaleNum;
120
- } else {
121
- stage.resizeType = 'incr';
122
- delete stage.scalePct;
123
- stage.scaleNum = stage.scaleNum || 0;
124
- }
125
- }
126
- };
127
- },
128
- ]);
1
+ import React from 'react';
2
+ import { Registry } from '@spinnaker/core';
3
+
4
+ import { EcsServerGroupStepLabel } from '../common/EcsServerGroupStepLabel';
5
+ import { EcsResizeAsgStageConfig } from '../common/EcsStageConfigs';
6
+
7
+ export function registerEcsResizeServerGroupStage() {
8
+ Registry.pipeline.registerStage({
9
+ provides: 'resizeServerGroup',
10
+ alias: 'resizeAsg',
11
+ cloudProvider: 'ecs',
12
+ component: EcsResizeAsgStageConfig,
13
+ executionStepLabelComponent: (props) =>
14
+ React.createElement(EcsServerGroupStepLabel, { action: 'Resize Server Group', ...props }),
15
+ accountExtractor: (stage) => [stage.context.credentials],
16
+ configAccountExtractor: (stage) => [stage.credentials],
17
+ validators: [
18
+ {
19
+ type: 'targetImpedance',
20
+ message:
21
+ 'This pipeline will attempt to resize a server group without deploying a new version into the same cluster.',
22
+ },
23
+ { type: 'requiredField', fieldName: 'target' },
24
+ { type: 'requiredField', fieldName: 'action' },
25
+ { type: 'requiredField', fieldName: 'regions' },
26
+ { type: 'requiredField', fieldName: 'cluster' },
27
+ { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
28
+ ],
29
+ });
30
+ }
@@ -1,78 +1,24 @@
1
- 'use strict';
2
-
3
- import { module } from 'angular';
4
-
5
- import { AccountService, Registry } from '@spinnaker/core';
6
-
7
- export const ECS_PIPELINE_STAGES_SCALEDOWNCLUSTER_ECSSCALEDOWNCLUSTERSTAGE =
8
- 'spinnaker.ecs.pipeline.stage.scaleDownClusterStage';
9
- export const name = ECS_PIPELINE_STAGES_SCALEDOWNCLUSTER_ECSSCALEDOWNCLUSTERSTAGE; // for backwards compatibility
10
- module(ECS_PIPELINE_STAGES_SCALEDOWNCLUSTER_ECSSCALEDOWNCLUSTERSTAGE, [])
11
- .config(function () {
12
- Registry.pipeline.registerStage({
13
- provides: 'scaleDownCluster',
14
- cloudProvider: 'ecs',
15
- templateUrl: require('./scaleDownClusterStage.html'),
16
- accountExtractor: (stage) => [stage.context.credentials],
17
- configAccountExtractor: (stage) => [stage.credentials],
18
- validators: [
19
- { type: 'requiredField', fieldName: 'cluster' },
20
- {
21
- type: 'requiredField',
22
- fieldName: 'remainingFullSizeServerGroups',
23
- fieldLabel: 'Keep [X] full size Server Groups',
24
- },
25
- { type: 'requiredField', fieldName: 'regions' },
26
- { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
27
- ],
28
- strategy: true,
29
- });
30
- })
31
- .controller('ecsScaleDownClusterStageCtrl', [
32
- '$scope',
33
- function ($scope) {
34
- const ctrl = this;
35
-
36
- const stage = $scope.stage;
37
-
38
- $scope.state = {
39
- accounts: false,
40
- regionsLoaded: false,
41
- };
42
-
43
- AccountService.listAccounts('ecs').then(function (accounts) {
44
- $scope.accounts = accounts;
45
- $scope.state.accounts = true;
46
- });
47
-
48
- stage.regions = stage.regions || [];
49
- stage.cloudProvider = 'ecs';
50
-
51
- if (!stage.credentials && $scope.application.defaultCredentials.ecs) {
52
- stage.credentials = $scope.application.defaultCredentials.ecs;
53
- }
54
- if (!stage.regions.length && $scope.application.defaultRegions.ecs) {
55
- stage.regions.push($scope.application.defaultRegions.ecs);
56
- }
57
-
58
- if (stage.remainingFullSizeServerGroups === undefined) {
59
- stage.remainingFullSizeServerGroups = 1;
60
- }
61
-
62
- if (stage.allowScaleDownActive === undefined) {
63
- stage.allowScaleDownActive = false;
64
- }
65
-
66
- ctrl.pluralize = function (str, val) {
67
- if (val === 1) {
68
- return str;
69
- }
70
- return str + 's';
71
- };
72
-
73
- if (stage.preferLargerOverNewer === undefined) {
74
- stage.preferLargerOverNewer = 'false';
75
- }
76
- stage.preferLargerOverNewer = stage.preferLargerOverNewer.toString();
77
- },
78
- ]);
1
+ import { Registry } from '@spinnaker/core';
2
+
3
+ import { EcsScaleDownClusterStageConfig } from '../common/EcsStageConfigs';
4
+
5
+ export function registerEcsScaleDownClusterStage() {
6
+ Registry.pipeline.registerStage({
7
+ provides: 'scaleDownCluster',
8
+ cloudProvider: 'ecs',
9
+ component: EcsScaleDownClusterStageConfig,
10
+ accountExtractor: (stage) => [stage.context.credentials],
11
+ configAccountExtractor: (stage) => [stage.credentials],
12
+ validators: [
13
+ { type: 'requiredField', fieldName: 'cluster' },
14
+ {
15
+ type: 'requiredField',
16
+ fieldName: 'remainingFullSizeServerGroups',
17
+ fieldLabel: 'Keep [X] full size Server Groups',
18
+ },
19
+ { type: 'requiredField', fieldName: 'regions' },
20
+ { type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
21
+ ],
22
+ strategy: true,
23
+ });
24
+ }