@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,11 +0,0 @@
1
- <div ng-controller="ecsDisableAsgStageCtrl as disableAsgStageCtrl" class="form-horizontal">
2
- <div ng-if="!pipeline.strategy">
3
- <account-region-cluster-selector application="application" component="stage" accounts="accounts">
4
- </account-region-cluster-selector>
5
- </div>
6
- <stage-config-field label="Target">
7
- <target-select model="stage" options="targets"></target-select>
8
- </stage-config-field>
9
- <stage-platform-health-override application="application" stage="stage" platform-health-type="'Ecs'">
10
- </stage-platform-health-override>
11
- </div>
@@ -1 +0,0 @@
1
- <span class="task-label"> Disable Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
@@ -1,26 +0,0 @@
1
- <div ng-controller="ecsDisableClusterStageCtrl as disableClusterStageCtrl" class="form-horizontal">
2
- <div ng-if="!pipeline.strategy">
3
- <account-region-cluster-selector application="application" component="stage" accounts="accounts">
4
- </account-region-cluster-selector>
5
- </div>
6
- <stage-config-field label="Disable Options">
7
- <div class="form-inline">
8
- Keep the
9
- <input
10
- type="number"
11
- min="0"
12
- required
13
- ng-model="stage.remainingEnabledServerGroups"
14
- class="form-control input-sm"
15
- style="width: 50px"
16
- />
17
- <select class="form-control input-sm" ng-model="stage.preferLargerOverNewer" style="width: 100px">
18
- <option value="true">largest</option>
19
- <option value="false">newest</option>
20
- </select>
21
- {{disableClusterStageCtrl.pluralize('server group', stage.remainingEnabledServerGroups)}} enabled.
22
- </div>
23
- </stage-config-field>
24
- <stage-platform-health-override application="application" stage="stage" platform-health-type="'Ecs'">
25
- </stage-platform-health-override>
26
- </div>
@@ -1,11 +0,0 @@
1
- <div ng-controller="ecsEnableAsgStageCtrl as enableAsgStageCtrl" class="form-horizontal">
2
- <div ng-if="!pipeline.strategy">
3
- <account-region-cluster-selector application="application" component="stage" accounts="accounts">
4
- </account-region-cluster-selector>
5
- </div>
6
- <stage-config-field label="Target">
7
- <target-select model="stage" options="targets"></target-select>
8
- </stage-config-field>
9
- <stage-platform-health-override application="application" stage="stage" platform-health-type="'Ecs'">
10
- </stage-platform-health-override>
11
- </div>
@@ -1 +0,0 @@
1
- <span class="task-label"> Enable Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
@@ -1,36 +0,0 @@
1
- <div ng-controller="BaseExecutionDetailsCtrl">
2
- <execution-details-section-nav sections="configSections"></execution-details-section-nav>
3
- <div class="step-section-details" ng-if="detailsSection === 'findImageConfig'">
4
- <div class="row">
5
- <div class="col-md-12">
6
- <dl class="dl-narrow dl-horizontal">
7
- <dt if-multiple-providers>Provider</dt>
8
- <dd if-multiple-providers>ECS</dd>
9
- </dl>
10
- </div>
11
- </div>
12
- <stage-failure-message stage="stage" message="stage.failureMessage"></stage-failure-message>
13
-
14
- <div class="row" ng-if="stage.context.amiDetails">
15
- <div class="col-md-12">
16
- <div class="well alert alert-info">
17
- <h4>Results</h4>
18
- <dl ng-repeat="image in stage.context.amiDetails" class="dl-narrow dl-horizontal">
19
- <dt>Region</dt>
20
- <dd>{{image.region}}</dd>
21
- <dt>Image ID</dt>
22
- <dd>{{image.imageId}}</dd>
23
- <dt>Unique ID</dt>
24
- <dd>{{image.imageName}}</dd>
25
- </dl>
26
- </div>
27
- </div>
28
- </div>
29
- </div>
30
-
31
- <div class="step-section-details" ng-if="detailsSection === 'taskStatus'">
32
- <div class="row">
33
- <execution-step-details item="stage"></execution-step-details>
34
- </div>
35
- </div>
36
- </div>
@@ -1,9 +0,0 @@
1
- <div ng-controller="ecsFindImageFromTagsStageCtrl as findImageFromTagsCtrl" class="form-horizontal">
2
- <stage-config-field label="Full Docker Image path (label or SHA-256)">
3
- <input type="text" class="form-control input-sm" ng-model="stage.imageLabelOrSha" />
4
- </stage-config-field>
5
- </div>
6
-
7
- <div>
8
- <h5>Example value: <i>12345678901.dkr.ecr.us-west-2.amazonaws.com/continuous-delivery:latest</i></h5>
9
- </div>
@@ -1,87 +0,0 @@
1
- <div ng-controller="ecsResizeAsgStageCtrl as resizeAsgStageCtrl">
2
- <div ng-if="!pipeline.strategy">
3
- <div ng-if="!viewState.accountsLoaded">
4
- <h4 class="text-center">
5
- <span us-spinner="{radius:20, width:6, length: 12}"></span>
6
- </h4>
7
- </div>
8
- <div ng-if="viewState.accountsLoaded">
9
- <account-region-cluster-selector application="application" component="stage" accounts="accounts">
10
- </account-region-cluster-selector>
11
- </div>
12
- </div>
13
- <stage-config-field label="Target">
14
- <target-select model="stage" options="resizeTargets"></target-select>
15
- </stage-config-field>
16
- <stage-config-field label="Action" help-key="pipeline.config.resizeAsg.action">
17
- <select
18
- class="form-control input-sm"
19
- required
20
- ng-model="stage.action"
21
- ng-change="resizeAsgStageCtrl.updateResizeType()"
22
- ng-options="a.val as a.label for a in scaleActions"
23
- >
24
- <option>Select an action...</option>
25
- </select>
26
- </stage-config-field>
27
- <div ng-if="stage.action !== 'scale_exact'">
28
- <stage-config-field label="{{stage.action === 'scale_to_cluster' ? 'Additional Capacity' : 'Type'}}">
29
- <select
30
- class="form-control input-sm"
31
- required
32
- ng-model="stage.resizeType"
33
- ng-change="resizeAsgStageCtrl.updateResizeType()"
34
- ng-options="t.val as t.label for t in resizeTypes"
35
- >
36
- <option>Select an action...</option>
37
- </select>
38
- </stage-config-field>
39
- <div ng-if="stage.resizeType === 'pct'">
40
- <stage-config-field label="Resize Percentage">
41
- <input type="number" min="0" ng-model="stage.scalePct" class="form-control input-sm" style="width: 80px" />
42
- <div>
43
- <em class="subinput-note"
44
- >This is the percentage by which the target server group's capacity will be increased</em
45
- >
46
- </div>
47
- </stage-config-field>
48
- </div>
49
- <div ng-if="stage.resizeType === 'incr'">
50
- <stage-config-field label="Resize-by Amount">
51
- <input type="number" min="0" ng-model="stage.scaleNum" class="form-control input-sm" style="width: 80px" />
52
- <div>
53
- <em class="subinput-note"
54
- >This is the exact amount by which the target server group's capacity will be increased</em
55
- >
56
- </div>
57
- </stage-config-field>
58
- </div>
59
- </div>
60
- <div ng-if="stage.action === 'scale_exact'">
61
- <stage-config-field class="small">
62
- <div class="row">
63
- <div class="col-md-3">Min</div>
64
- <div class="col-md-3">Max</div>
65
- <div class="col-md-3">Desired</div>
66
- </div>
67
- </stage-config-field>
68
- <stage-config-field label="Match Capacity">
69
- <div class="row">
70
- <div class="col-md-3">
71
- <input type="number" ng-model="stage.capacity.min" class="form-control input-sm" />
72
- </div>
73
- <div class="col-md-3">
74
- <input type="number" ng-model="stage.capacity.max" class="form-control input-sm" />
75
- </div>
76
- <div class="col-md-3">
77
- <input type="number" ng-model="stage.capacity.desired" class="form-control input-sm" />
78
- </div>
79
- </div>
80
- </stage-config-field>
81
- <stage-config-field>
82
- <em class="subinput-note">This is the exact amount to which the target server group will be scaled</em>
83
- </stage-config-field>
84
- </div>
85
- <stage-platform-health-override application="application" stage="stage" platform-health-type="'Ecs'">
86
- </stage-platform-health-override>
87
- </div>
@@ -1 +0,0 @@
1
- <span class="task-label"> Resize Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
@@ -1,35 +0,0 @@
1
- <div ng-controller="ecsScaleDownClusterStageCtrl as scaleDownClusterStageCtrl" class="form-horizontal">
2
- <div ng-if="!pipeline.strategy">
3
- <account-region-cluster-selector application="application" component="stage" accounts="accounts">
4
- </account-region-cluster-selector>
5
- </div>
6
- <stage-config-field label="Scale Down Options">
7
- <div class="form-inline">
8
- <p>
9
- Keep the
10
- <input
11
- type="number"
12
- min="0"
13
- required
14
- ng-model="stage.remainingFullSizeServerGroups"
15
- class="form-control input-sm"
16
- style="width: 50px"
17
- />
18
- <select class="form-control input-sm" ng-model="stage.preferLargerOverNewer" style="width: 100px">
19
- <option value="true">largest</option>
20
- <option value="false">newest</option>
21
- </select>
22
- {{scaleDownClusterStageCtrl.pluralize('server group', stage.remainingFullSizeServerGroups)}} at current size.
23
- </p>
24
- <p>The remaining server groups will be scaled down to zero instances.</p>
25
- </div>
26
- </stage-config-field>
27
- <div class="form-group">
28
- <div class="col-md-offset-3 col-md-6 checkbox">
29
- <label>
30
- <input type="checkbox" ng-model="stage.allowScaleDownActive" />
31
- Allow scale down of active server groups
32
- </label>
33
- </div>
34
- </div>
35
- </div>
@@ -1,34 +0,0 @@
1
- <div ng-controller="ecsShrinkClusterStageCtrl as shrinkClusterStageCtrl" class="form-horizontal">
2
- <div ng-if="!pipeline.strategy">
3
- <account-region-cluster-selector application="application" component="stage" accounts="accounts">
4
- </account-region-cluster-selector>
5
- </div>
6
- <stage-config-field label="Shrink Options">
7
- <div class="form-inline">
8
- Shrink to
9
- <input
10
- type="number"
11
- min="0"
12
- required
13
- ng-model="stage.shrinkToSize"
14
- class="form-control input-sm"
15
- style="width: 50px"
16
- />
17
- {{shrinkClusterStageCtrl.pluralize('server group', stage.shrinkToSize)}}, keeping the
18
- <select class="form-control input-sm" ng-model="stage.retainLargerOverNewer" style="width: 100px">
19
- <option value="true">largest</option>
20
- <option value="false">newest</option>
21
- </select>
22
- </div>
23
- </stage-config-field>
24
- <div class="form-group">
25
- <div class="col-md-offset-3 col-md-6 checkbox">
26
- <label>
27
- <input type="checkbox" ng-model="stage.allowDeleteActive" />
28
- Allow deletion of active server groups
29
- </label>
30
- </div>
31
- </div>
32
- <stage-platform-health-override application="application" stage="stage" platform-health-type="'Ecs'">
33
- </stage-platform-health-override>
34
- </div>
@@ -1,147 +0,0 @@
1
- 'use strict';
2
-
3
- import UIROUTER_ANGULARJS from '@uirouter/angularjs';
4
- import * as angular from 'angular';
5
- import _ from 'lodash';
6
-
7
- import { VpcReader } from '@spinnaker/amazon';
8
- import {
9
- CloudProviderRegistry,
10
- FirewallLabels,
11
- MANAGED_RESOURCE_DETAILS_INDICATOR,
12
- RecentHistoryService,
13
- SECURITY_GROUP_READER,
14
- } from '@spinnaker/core';
15
-
16
- export const ECS_SECURITYGROUP_DETAILS_SECURITYGROUPDETAIL_CONTROLLER =
17
- 'spinnaker.ecs.securityGroup.details.controller';
18
- export const name = ECS_SECURITYGROUP_DETAILS_SECURITYGROUPDETAIL_CONTROLLER; // for backwards compatibility
19
- angular
20
- .module(ECS_SECURITYGROUP_DETAILS_SECURITYGROUPDETAIL_CONTROLLER, [
21
- UIROUTER_ANGULARJS,
22
- SECURITY_GROUP_READER,
23
- MANAGED_RESOURCE_DETAILS_INDICATOR,
24
- ])
25
- .controller('ecsSecurityGroupDetailsCtrl', [
26
- '$scope',
27
- '$state',
28
- 'resolvedSecurityGroup',
29
- 'app',
30
- 'securityGroupReader',
31
- function ($scope, $state, resolvedSecurityGroup, app, securityGroupReader) {
32
- this.application = app;
33
- const application = app;
34
- const securityGroup = resolvedSecurityGroup;
35
- this.firewallLabel = FirewallLabels.get('Firewall');
36
-
37
- // needed for standalone instances
38
- $scope.detailsTemplateUrl = CloudProviderRegistry.getValue('ecs', 'securityGroup.detailsTemplateUrl');
39
-
40
- $scope.state = {
41
- loading: true,
42
- standalone: app.isStandalone,
43
- };
44
-
45
- function extractSecurityGroup() {
46
- return securityGroupReader
47
- .getSecurityGroupDetails(
48
- application,
49
- securityGroup.accountId,
50
- securityGroup.provider,
51
- securityGroup.region,
52
- securityGroup.vpcId,
53
- securityGroup.name,
54
- )
55
- .then(function (details) {
56
- return VpcReader.getVpcName(details.vpcId).then((name) => {
57
- details.vpcName = name;
58
- return details;
59
- });
60
- })
61
- .then(function (details) {
62
- $scope.state.loading = false;
63
-
64
- if (!details || _.isEmpty(details)) {
65
- fourOhFour();
66
- } else {
67
- const applicationSecurityGroup = securityGroupReader.getApplicationSecurityGroup(
68
- application,
69
- securityGroup.accountId,
70
- securityGroup.region,
71
- securityGroup.name,
72
- );
73
-
74
- angular.extend(securityGroup, applicationSecurityGroup, details);
75
- $scope.securityGroup = securityGroup;
76
- $scope.ipRules = buildIpRulesModel(securityGroup);
77
- $scope.securityGroupRules = buildSecurityGroupRulesModel(securityGroup);
78
- }
79
- }, fourOhFour);
80
- }
81
-
82
- function buildIpRulesModel(details) {
83
- const groupedRangeRules = _.groupBy(details.ipRangeRules, (rule) => rule.range.ip + rule.range.cidr);
84
- return Object.keys(groupedRangeRules)
85
- .map((addr) => {
86
- return {
87
- address: addr,
88
- rules: buildRuleModel(groupedRangeRules, addr),
89
- };
90
- })
91
- .filter((rule) => rule.rules.length);
92
- }
93
-
94
- function buildSecurityGroupRulesModel(details) {
95
- const groupedRangeRules = _.groupBy(details.securityGroupRules, (rule) => rule.securityGroup.id);
96
- return Object.keys(groupedRangeRules)
97
- .map((addr) => {
98
- return {
99
- securityGroup: groupedRangeRules[addr][0].securityGroup,
100
- rules: buildRuleModel(groupedRangeRules, addr),
101
- };
102
- })
103
- .filter((rule) => rule.rules.length);
104
- }
105
-
106
- function buildRuleModel(groupedRangeRules, addr) {
107
- const rules = [];
108
- groupedRangeRules[addr].forEach((rule) => {
109
- (rule.portRanges || []).forEach((range) => {
110
- if (rule.protocol === '-1' || (range.startPort !== undefined && range.endPort !== undefined)) {
111
- rules.push({ startPort: range.startPort, endPort: range.endPort, protocol: rule.protocol });
112
- }
113
- });
114
- });
115
- return rules;
116
- }
117
-
118
- function fourOhFour() {
119
- if ($scope.$$destroyed) {
120
- return;
121
- }
122
- if (app.isStandalone) {
123
- $scope.group = securityGroup.name;
124
- $scope.state.notFound = true;
125
- $scope.state.loading = false;
126
- RecentHistoryService.removeLastItem('securityGroups');
127
- } else {
128
- $state.go('^', { allowModalToStayOpen: true }, { location: 'replace' });
129
- }
130
- }
131
-
132
- extractSecurityGroup().then(() => {
133
- // If the user navigates away from the view before the initial extractSecurityGroup call completes,
134
- // do not bother subscribing to the refresh
135
- if (!$scope.$$destroyed && !app.isStandalone) {
136
- app.securityGroups.onRefresh($scope, extractSecurityGroup);
137
- }
138
- });
139
-
140
- if (app.isStandalone) {
141
- // we still want the edit to refresh the firewall details when the modal closes
142
- app.securityGroups = {
143
- refresh: extractSecurityGroup,
144
- };
145
- }
146
- },
147
- ]);
@@ -1,104 +0,0 @@
1
- <div class="text-center" ng-if="state.notFound">
2
- <h3>Could not find <firewall-label label="firewall"></firewall-label> {{group}}.</h3>
3
- <a ui-sref="home.infrastructure">Back to search results</a>
4
- </div>
5
- <div class="details-panel" ng-if="!state.notFound">
6
- <div class="header">
7
- <div class="close-button" ng-if="!state.standalone">
8
- <a class="btn btn-link" ui-sref="^">
9
- <span class="glyphicon glyphicon-remove"></span>
10
- </a>
11
- </div>
12
- <div ng-if="state.loading" class="horizontal center middle">
13
- <loading-spinner size="'small'"></loading-spinner>
14
- </div>
15
- <div class="header-text horizontal middle" ng-if="!state.loading">
16
- <span class="glyphicon glyphicon-transfer"></span>
17
- <h3 class="horizontal middle space-between flex-1" select-on-dbl-click>
18
- {{securityGroup.name || '(not found)'}}
19
- <render-if-feature feature="entityTags">
20
- <entity-notifications
21
- entity="securityGroup"
22
- application="ctrl.application"
23
- placement="bottom"
24
- h-offset-percent="90%"
25
- entity-type="securityGroup"
26
- page-location="details"
27
- on-update="ctrl.application.securityGroups.refresh()"
28
- ></entity-notifications>
29
- </render-if-feature>
30
- </h3>
31
- </div>
32
- </div>
33
- <div class="content" ng-if="!state.loading">
34
- <collapsible-section heading="{{ctrl.firewallLabel}} Details" expanded="true">
35
- <dl class="dl-horizontal dl-medium">
36
- <dt>ID</dt>
37
- <dd>{{securityGroup.id}}</dd>
38
- <dt>Account</dt>
39
- <dd>
40
- <account-tag account="securityGroup.accountName"></account-tag>
41
- </dd>
42
- <dt>Region</dt>
43
- <dd>{{securityGroup.region}}</dd>
44
- <dt>VPC</dt>
45
- <dd>
46
- <vpc-tag vpc-id="securityGroup.vpcId"></vpc-tag>
47
- </dd>
48
- <dt>Description</dt>
49
- <dd>{{securityGroup.description}}</dd>
50
- </dl>
51
- </collapsible-section>
52
- <collapsible-section heading="IP Range Rules ({{ipRules.length}})" expanded="{{ipRules.length > 0}}">
53
- <div ng-if="!ipRules.length">None</div>
54
-
55
- <dl
56
- ng-class="insightCtrl.vm.filtersExpanded ? '' : 'dl-horizontal dl-medium'"
57
- ng-repeat="ipRangeRule in ipRules | orderBy: 'range.address'"
58
- >
59
- <dt>IP Range</dt>
60
- <dd>{{ipRangeRule.address}}</dd>
61
- <dt>Port Ranges</dt>
62
- <dd ng-repeat="rule in ipRangeRule.rules">
63
- <span ng-if="rule.protocol === '-1'">
64
- All ports and protocols
65
- <div ng-if="ipRangeRule.rules.length > 1">
66
- <em>Additional port ranges are specified, but redundant:</em>
67
- </div>
68
- </span>
69
- <span ng-if="rule.protocol !== '-1'"> {{rule.protocol}}: {{rule.startPort}} &rarr; {{rule.endPort}} </span>
70
- </dd>
71
- </dl>
72
- </collapsible-section>
73
- <collapsible-section
74
- heading="{{ctrl.firewallLabel}} Rules ({{securityGroupRules.length || 0}})"
75
- expanded="{{securityGroupRules.length > 0}}"
76
- >
77
- <div ng-if="!securityGroupRules.length">None</div>
78
-
79
- <dl
80
- ng-class="insightCtrl.vm.filtersExpanded ? '' : 'dl-horizontal dl-medium'"
81
- ng-repeat="rule in securityGroupRules | orderBy: 'securityGroup.name' "
82
- >
83
- <dt>
84
- <firewall-label label="Firewall"></firewall-label>
85
- </dt>
86
- <dd ng-if="rule.securityGroup.name">
87
- <a
88
- ui-sref="^.firewallDetails({name: rule.securityGroup.name, accountId: rule.securityGroup.accountName, region: rule.securityGroup.region, vpcId: rule.securityGroup.vpcId, provider: 'ecs'})"
89
- >
90
- <account-tag
91
- account="rule.securityGroup.accountName || rule.securityGroup.accountId"
92
- ng-if="rule.securityGroup.accountName !== securityGroup.accountName"
93
- ></account-tag>
94
- {{rule.securityGroup.name}} ({{rule.securityGroup.id}})
95
- </a>
96
- </dd>
97
- <dt>Port Ranges</dt>
98
- <dd ng-repeat="portRange in rule.rules">
99
- {{portRange.protocol}}: {{portRange.startPort}} &rarr; {{portRange.endPort}}
100
- </dd>
101
- </dl>
102
- </collapsible-section>
103
- </div>
104
- </div>
@@ -1,12 +0,0 @@
1
- import { module } from 'angular';
2
-
3
- import { ECS_SECURITYGROUP_DETAILS_SECURITYGROUPDETAIL_CONTROLLER } from './details/securityGroupDetail.controller';
4
- import { ECS_SECURITY_GROUP_READER } from './securityGroup.reader';
5
- import { ECS_SECURITYGROUP_SECURITYGROUP_TRANSFORMER } from './securityGroup.transformer';
6
-
7
- export const ECS_SECURITY_GROUP_MODULE = 'spinnaker.ecs.securityGroup';
8
- module(ECS_SECURITY_GROUP_MODULE, [
9
- ECS_SECURITY_GROUP_READER,
10
- ECS_SECURITYGROUP_SECURITYGROUP_TRANSFORMER,
11
- ECS_SECURITYGROUP_DETAILS_SECURITYGROUPDETAIL_CONTROLLER,
12
- ]);