@spinnaker/amazon 2026.2.2 → 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 (404) hide show
  1. package/dist/aws.module.d.ts +2 -1
  2. package/dist/aws.services.d.ts +8 -0
  3. package/dist/certificates/AmazonCertificateReader.d.ts +1 -1
  4. package/dist/domain/IAmazonServerGroup.d.ts +10 -0
  5. package/dist/function/CreateLambdaFunction.d.ts +10 -5
  6. package/dist/function/configure/Network.d.ts +3 -0
  7. package/dist/function/details/FunctionActions.d.ts +3 -0
  8. package/dist/function/function.transformer.d.ts +1 -0
  9. package/dist/image/image.reader.d.ts +2 -2
  10. package/dist/index.d.ts +2 -2
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/instance/amazon.instance.write.service.d.ts +5 -5
  14. package/dist/instance/awsInstanceType.service.d.ts +13 -2
  15. package/dist/instance/details/AmazonInstanceDetails.d.ts +67 -0
  16. package/dist/instance/index.d.ts +1 -0
  17. package/dist/keyPairs/KeyPairsReader.d.ts +1 -1
  18. package/dist/loadBalancer/AmazonLoadBalancersTag.d.ts +7 -4
  19. package/dist/loadBalancer/OidcConfigReader.d.ts +1 -1
  20. package/dist/loadBalancer/TargetGroupDetails.d.ts +37 -3
  21. package/dist/loadBalancer/amazonLoadBalancerDataUtils.d.ts +1 -1
  22. package/dist/loadBalancer/configure/AmazonLoadBalancerChoiceModal.d.ts +6 -2
  23. package/dist/loadBalancer/configure/LoadBalancerTypes.d.ts +4 -4
  24. package/dist/loadBalancer/configure/application/CreateApplicationLoadBalancer.d.ts +10 -5
  25. package/dist/loadBalancer/configure/classic/CreateClassicLoadBalancer.d.ts +12 -7
  26. package/dist/loadBalancer/configure/common/SecurityGroups.d.ts +4 -0
  27. package/dist/loadBalancer/configure/network/CreateNetworkLoadBalancer.d.ts +10 -5
  28. package/dist/loadBalancer/details/LoadBalancerActions.d.ts +9 -2
  29. package/dist/loadBalancer/details/amazonLoadBalancerDetails.d.ts +22 -0
  30. package/dist/loadBalancer/index.d.ts +1 -0
  31. package/dist/loadBalancer/loadBalancer.transformer.d.ts +1 -1
  32. package/dist/pipeline/stages/AmazonStageConfig.d.ts +11 -0
  33. package/dist/pipeline/stages/bake/AwsBakeStageConfig.d.ts +66 -0
  34. package/dist/pipeline/stages/cloneServerGroup/AwsCloneServerGroupStageConfig.d.ts +20 -0
  35. package/dist/pipeline/stages/deleteLambda/index.d.ts +1 -1
  36. package/dist/pipeline/stages/deployCloudFormation/CloudFormationChangeSetInfo.d.ts +5 -4
  37. package/dist/pipeline/stages/deployCloudFormation/DeployCloudFormationStackStageConfig.d.ts +3 -0
  38. package/dist/pipeline/stages/deployCloudFormation/deployCloudFormationStackStage.d.ts +1 -1
  39. package/dist/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecution.service.d.ts +1 -3
  40. package/dist/pipeline/stages/deployLambda/index.d.ts +1 -1
  41. package/dist/pipeline/stages/destroyAsg/awsDestroyAsgStage.d.ts +26 -2
  42. package/dist/pipeline/stages/disableAsg/AwsDisableAsgStageConfig.d.ts +27 -0
  43. package/dist/pipeline/stages/disableCluster/AwsDisableClusterStageConfig.d.ts +19 -0
  44. package/dist/pipeline/stages/enableAsg/AwsEnableAsgStageConfig.d.ts +20 -0
  45. package/dist/pipeline/stages/findAmi/awsFindAmiStage.d.ts +17 -2
  46. package/dist/pipeline/stages/findImageFromTags/AwsFindImageFromTagsStageConfig.d.ts +3 -0
  47. package/dist/pipeline/stages/findImageFromTags/awsFindImageFromTagsStage.d.ts +12 -2
  48. package/dist/pipeline/stages/invokeLambda/index.d.ts +1 -1
  49. package/dist/pipeline/stages/modifyScalingProcess/ModifyScalingProcessStageConfig.d.ts +3 -0
  50. package/dist/pipeline/stages/modifyScalingProcess/modifyScalingProcessStage.d.ts +20 -2
  51. package/dist/pipeline/stages/modifyWarmPool/ModifyWarmPoolStageConfig.d.ts +3 -0
  52. package/dist/pipeline/stages/modifyWarmPool/modifyWarmPoolStage.d.ts +20 -0
  53. package/dist/pipeline/stages/resizeAsg/AwsResizeAsgStageConfig.d.ts +17 -0
  54. package/dist/pipeline/stages/resizeAsg/awsResizeAsgStage.d.ts +40 -2
  55. package/dist/pipeline/stages/rollbackCluster/AwsRollbackClusterStageConfig.d.ts +19 -0
  56. package/dist/pipeline/stages/routeLambda/index.d.ts +1 -1
  57. package/dist/pipeline/stages/scaleDownCluster/AwsScaleDownClusterStageConfig.d.ts +22 -0
  58. package/dist/pipeline/stages/shrinkCluster/AwsShrinkClusterStageConfig.d.ts +21 -0
  59. package/dist/pipeline/stages/tagImage/awsTagImageStage.d.ts +5 -2
  60. package/dist/pipeline/stages/updateCodeLambda/index.d.ts +1 -1
  61. package/dist/search/searchResultFormatter.d.ts +4 -2
  62. package/dist/securityGroup/configure/AmazonSecurityGroupModal.d.ts +43 -0
  63. package/dist/securityGroup/details/AmazonSecurityGroupDetails.d.ts +62 -0
  64. package/dist/securityGroup/details/index.d.ts +1 -0
  65. package/dist/securityGroup/index.d.ts +1 -0
  66. package/dist/securityGroup/securityGroup.reader.d.ts +0 -1
  67. package/dist/securityGroup/securityGroup.transformer.d.ts +11 -2
  68. package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +23 -7
  69. package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +17 -13
  70. package/dist/serverGroup/configure/wizard/AmazonCloneServerGroupModal.d.ts +16 -6
  71. package/dist/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.d.ts +6 -3
  72. package/dist/serverGroup/configure/wizard/pages/ServerGroupLoadBalancers.d.ts +3 -0
  73. package/dist/serverGroup/configure/wizard/securityGroups/SecurityGroupSelector.d.ts +4 -0
  74. package/dist/serverGroup/details/AmazonServerGroupActions.d.ts +10 -2
  75. package/dist/serverGroup/details/advancedSettings/EditAsgAdvancedSettingsModal.d.ts +17 -0
  76. package/dist/serverGroup/details/advancedSettings/index.d.ts +1 -0
  77. package/dist/serverGroup/details/resize/AmazonResizeServerGroupModal.d.ts +5 -3
  78. package/dist/serverGroup/details/rollback/AmazonRollbackServerGroupModal.d.ts +67 -0
  79. package/dist/serverGroup/details/rollback/index.d.ts +2 -0
  80. package/dist/serverGroup/details/rollback/rollbackServerGroupSelection.d.ts +9 -0
  81. package/dist/serverGroup/details/scalingPolicy/ScalingPolicyWriter.d.ts +2 -2
  82. package/dist/serverGroup/details/scalingPolicy/upsert/alarm/DimensionsEditor.d.ts +0 -1
  83. package/dist/serverGroup/details/scalingProcesses/ModifyScalingProcessesModal.d.ts +24 -0
  84. package/dist/serverGroup/details/scalingProcesses/index.d.ts +2 -0
  85. package/dist/serverGroup/details/scheduledActions/EditScheduledActionsModal.d.ts +31 -0
  86. package/dist/serverGroup/details/scheduledActions/index.d.ts +1 -0
  87. package/dist/serverGroup/details/sections/AdvancedSettingsDetailsSection.d.ts +3 -0
  88. package/dist/serverGroup/details/sections/AmazonCapacityDetailsSection.d.ts +3 -0
  89. package/dist/serverGroup/details/sections/ScalingProcessesDetailsSection.d.ts +1 -1
  90. package/dist/serverGroup/details/sections/ScheduledActionsDetailsSection.d.ts +1 -1
  91. package/dist/serverGroup/details/sections/SecurityGroupsDetailsSection.d.ts +4 -1
  92. package/dist/serverGroup/details/sections/WarmPoolDetailsSection.d.ts +6 -0
  93. package/dist/serverGroup/details/sections/index.d.ts +1 -0
  94. package/dist/serverGroup/details/securityGroups/EditSecurityGroupsModal.d.ts +32 -0
  95. package/dist/serverGroup/details/securityGroups/index.d.ts +1 -0
  96. package/dist/serverGroup/details/warmPool/ModifyWarmPoolModal.d.ts +26 -0
  97. package/dist/serverGroup/details/warmPool/WarmPoolService.d.ts +6 -0
  98. package/dist/serverGroup/details/warmPool/index.d.ts +2 -0
  99. package/dist/serverGroup/serverGroup.transformer.d.ts +1 -2
  100. package/dist/vpc/VpcReader.d.ts +2 -2
  101. package/dist/vpc/index.d.ts +1 -0
  102. package/package.json +3 -12
  103. package/src/aws.module.spec.ts +296 -0
  104. package/src/aws.module.ts +107 -112
  105. package/src/aws.services.ts +21 -0
  106. package/src/certificates/AmazonCertificateReader.ts +1 -1
  107. package/src/domain/IAmazonServerGroup.ts +9 -0
  108. package/src/function/CreateLambdaFunction.tsx +29 -16
  109. package/src/function/configure/Network.tsx +8 -4
  110. package/src/function/details/AmazonFunctionDetails.tsx +4 -5
  111. package/src/function/details/FunctionActions.tsx +5 -1
  112. package/src/function/function.transformer.ts +4 -0
  113. package/src/image/image.reader.ts +3 -5
  114. package/src/index.ts +2 -2
  115. package/src/instance/amazon.instance.write.service.ts +15 -4
  116. package/src/instance/awsInstanceType.service.spec.js +172 -136
  117. package/src/instance/awsInstanceType.service.ts +142 -154
  118. package/src/instance/details/AmazonInstanceDetails.spec.tsx +79 -0
  119. package/src/instance/details/AmazonInstanceDetails.tsx +644 -0
  120. package/src/instance/details/InstanceInformation.tsx +11 -14
  121. package/src/instance/details/InstanceSecurityGroups.tsx +20 -23
  122. package/src/instance/details/InstanceTags.tsx +5 -3
  123. package/src/instance/index.ts +1 -0
  124. package/src/keyPairs/KeyPairsReader.ts +1 -1
  125. package/src/loadBalancer/AmazonLoadBalancersTag.spec.tsx +39 -0
  126. package/src/loadBalancer/AmazonLoadBalancersTag.tsx +21 -14
  127. package/src/loadBalancer/OidcConfigReader.ts +1 -1
  128. package/src/loadBalancer/TargetGroupDetails.spec.tsx +113 -0
  129. package/src/loadBalancer/TargetGroupDetails.tsx +287 -7
  130. package/src/loadBalancer/amazonLoadBalancerDataUtils.ts +21 -21
  131. package/src/loadBalancer/configure/AmazonLoadBalancerChoiceModal.tsx +17 -4
  132. package/src/loadBalancer/configure/LoadBalancerTypes.ts +7 -4
  133. package/src/loadBalancer/configure/application/ALBListeners.tsx +1 -2
  134. package/src/loadBalancer/configure/application/CreateApplicationLoadBalancer.tsx +28 -18
  135. package/src/loadBalancer/configure/classic/CreateClassicLoadBalancer.tsx +29 -19
  136. package/src/loadBalancer/configure/common/LoadBalancerLocation.tsx +1 -1
  137. package/src/loadBalancer/configure/common/SecurityGroups.spec.tsx +27 -0
  138. package/src/loadBalancer/configure/common/SecurityGroups.tsx +11 -5
  139. package/src/loadBalancer/configure/network/CreateNetworkLoadBalancer.tsx +28 -18
  140. package/src/loadBalancer/details/LoadBalancerActions.tsx +19 -5
  141. package/src/loadBalancer/details/amazonLoadBalancerDetails.spec.tsx +141 -0
  142. package/src/loadBalancer/details/amazonLoadBalancerDetails.tsx +599 -0
  143. package/src/loadBalancer/index.ts +1 -0
  144. package/src/loadBalancer/loadBalancer.transformer.ts +3 -4
  145. package/src/pipeline/stages/AmazonStageConfig.spec.tsx +103 -0
  146. package/src/pipeline/stages/AmazonStageConfig.tsx +259 -0
  147. package/src/pipeline/stages/bake/AwsBakeStageConfig.tsx +708 -0
  148. package/src/pipeline/stages/cloneServerGroup/AwsCloneServerGroupStageConfig.tsx +275 -0
  149. package/src/pipeline/stages/deleteLambda/index.ts +2 -6
  150. package/src/pipeline/stages/deployCloudFormation/CloudFormationChangeSetInfo.tsx +14 -33
  151. package/src/pipeline/stages/deployCloudFormation/DeployCloudFormationStackStageConfig.tsx +264 -0
  152. package/src/pipeline/stages/deployCloudFormation/deployCloudFormationStackStage.spec.tsx +403 -0
  153. package/src/pipeline/stages/deployCloudFormation/deployCloudFormationStackStage.ts +21 -29
  154. package/src/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecution.service.ts +1 -11
  155. package/src/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecutionApproval.tsx +4 -3
  156. package/src/pipeline/stages/deployLambda/components/NetworkForm.tsx +3 -6
  157. package/src/pipeline/stages/deployLambda/index.ts +2 -6
  158. package/src/pipeline/stages/destroyAsg/awsDestroyAsgStage.js +28 -65
  159. package/src/pipeline/stages/disableAsg/AwsDisableAsgStageConfig.tsx +103 -0
  160. package/src/pipeline/stages/disableCluster/AwsDisableClusterStageConfig.tsx +119 -0
  161. package/src/pipeline/stages/enableAsg/AwsEnableAsgStageConfig.tsx +98 -0
  162. package/src/pipeline/stages/findAmi/awsFindAmiStage.js +22 -79
  163. package/src/pipeline/stages/findImageFromTags/AwsFindImageFromTagsStageConfig.spec.tsx +122 -0
  164. package/src/pipeline/stages/findImageFromTags/AwsFindImageFromTagsStageConfig.tsx +71 -0
  165. package/src/pipeline/stages/findImageFromTags/awsFindImageFromTagsStage.js +17 -32
  166. package/src/pipeline/stages/invokeLambda/index.ts +2 -6
  167. package/src/pipeline/stages/modifyScalingProcess/ModifyScalingProcessStageConfig.tsx +146 -0
  168. package/src/pipeline/stages/modifyScalingProcess/modifyScalingProcessStage.js +27 -98
  169. package/src/pipeline/stages/modifyScalingProcess/modifyScalingProcessStage.spec.tsx +167 -0
  170. package/src/pipeline/stages/modifyWarmPool/ModifyWarmPoolStageConfig.tsx +157 -0
  171. package/src/pipeline/stages/modifyWarmPool/modifyWarmPoolStage.js +26 -0
  172. package/src/pipeline/stages/modifyWarmPool/modifyWarmPoolStage.spec.tsx +89 -0
  173. package/src/pipeline/stages/resizeAsg/AwsResizeAsgStageConfig.spec.tsx +617 -0
  174. package/src/pipeline/stages/resizeAsg/AwsResizeAsgStageConfig.tsx +340 -0
  175. package/src/pipeline/stages/resizeAsg/awsResizeAsgStage.js +34 -125
  176. package/src/pipeline/stages/rollbackCluster/AwsRollbackClusterStageConfig.tsx +129 -0
  177. package/src/pipeline/stages/routeLambda/index.ts +2 -6
  178. package/src/pipeline/stages/scaleDownCluster/AwsScaleDownClusterStageConfig.tsx +121 -0
  179. package/src/pipeline/stages/shrinkCluster/AwsShrinkClusterStageConfig.tsx +136 -0
  180. package/src/pipeline/stages/tagImage/awsTagImageStage.spec.tsx +167 -0
  181. package/src/pipeline/stages/tagImage/awsTagImageStage.tsx +94 -0
  182. package/src/pipeline/stages/updateCodeLambda/index.ts +2 -6
  183. package/src/routerConsumers.spec.tsx +207 -0
  184. package/src/search/searchResultFormatter.ts +9 -16
  185. package/src/securityGroup/configure/AmazonSecurityGroupModal.spec.tsx +170 -0
  186. package/src/securityGroup/configure/AmazonSecurityGroupModal.tsx +440 -0
  187. package/src/securityGroup/details/AmazonSecurityGroupDetails.spec.tsx +62 -0
  188. package/src/securityGroup/details/AmazonSecurityGroupDetails.tsx +444 -0
  189. package/src/securityGroup/details/IPRangeRules.tsx +1 -1
  190. package/src/securityGroup/details/index.ts +1 -0
  191. package/src/securityGroup/index.ts +1 -0
  192. package/src/securityGroup/securityGroup.reader.ts +0 -5
  193. package/src/securityGroup/securityGroup.transformer.ts +35 -0
  194. package/src/serverGroup/configure/AmazonImageSelectInput.spec.tsx +104 -80
  195. package/src/serverGroup/configure/AmazonImageSelectInput.tsx +37 -18
  196. package/src/serverGroup/configure/serverGroupCommandBuilder.aws.service.spec.js +28 -66
  197. package/src/serverGroup/configure/serverGroupCommandBuilder.service.ts +476 -465
  198. package/src/serverGroup/configure/serverGroupCommandBuilder.spec.js +76 -124
  199. package/src/serverGroup/configure/serverGroupConfiguration.service.ts +106 -103
  200. package/src/serverGroup/configure/wizard/AmazonCloneServerGroupModal.tsx +65 -25
  201. package/src/serverGroup/configure/wizard/instanceType/CpuCreditsToggle.tsx +3 -3
  202. package/src/serverGroup/configure/wizard/instanceType/advancedMode/AdvancedModeSelector.tsx +2 -2
  203. package/src/serverGroup/configure/wizard/instanceType/simpleMode/SimpleModeSelector.spec.tsx +105 -0
  204. package/src/serverGroup/configure/wizard/instanceType/simpleMode/SimpleModeSelector.tsx +20 -6
  205. package/src/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.spec.tsx +39 -0
  206. package/src/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.tsx +10 -9
  207. package/src/serverGroup/configure/wizard/pages/ServerGroupInstanceType.tsx +2 -2
  208. package/src/serverGroup/configure/wizard/pages/ServerGroupLoadBalancers.tsx +5 -2
  209. package/src/serverGroup/configure/wizard/pages/advancedSettings/ServerGroupAdvancedSettingsCommon.spec.tsx +53 -0
  210. package/src/serverGroup/configure/wizard/pages/advancedSettings/ServerGroupAdvancedSettingsCommon.tsx +35 -33
  211. package/src/serverGroup/configure/wizard/securityGroups/SecurityGroupSelector.spec.tsx +20 -0
  212. package/src/serverGroup/configure/wizard/securityGroups/SecurityGroupSelector.tsx +9 -4
  213. package/src/serverGroup/details/AmazonServerGroupActions.spec.tsx +186 -0
  214. package/src/serverGroup/details/AmazonServerGroupActions.tsx +37 -87
  215. package/src/serverGroup/details/advancedSettings/EditAsgAdvancedSettingsModal.spec.tsx +110 -0
  216. package/src/serverGroup/details/advancedSettings/EditAsgAdvancedSettingsModal.tsx +117 -0
  217. package/src/serverGroup/details/advancedSettings/index.ts +1 -0
  218. package/src/serverGroup/details/amazonServerGroupDetailsGetter.ts +4 -4
  219. package/src/serverGroup/details/resize/AmazonResizeServerGroupModal.tsx +16 -6
  220. package/src/serverGroup/details/rollback/AmazonRollbackServerGroupModal.spec.tsx +285 -0
  221. package/src/serverGroup/details/rollback/AmazonRollbackServerGroupModal.tsx +449 -0
  222. package/src/serverGroup/details/rollback/index.ts +2 -0
  223. package/src/serverGroup/details/rollback/rollbackServerGroupSelection.spec.ts +101 -0
  224. package/src/serverGroup/details/rollback/rollbackServerGroupSelection.ts +81 -0
  225. package/src/serverGroup/details/scalingPolicy/CreateScalingPolicyButton.tsx +4 -4
  226. package/src/serverGroup/details/scalingPolicy/ScalingPolicyWriter.ts +2 -5
  227. package/src/serverGroup/details/scalingPolicy/upsert/alarm/DimensionsEditor.tsx +0 -2
  228. package/src/serverGroup/details/scalingProcesses/ModifyScalingProcessesModal.spec.tsx +74 -0
  229. package/src/serverGroup/details/scalingProcesses/ModifyScalingProcessesModal.tsx +140 -0
  230. package/src/serverGroup/details/scalingProcesses/index.ts +2 -0
  231. package/src/serverGroup/details/scheduledActions/EditScheduledActionsModal.spec.tsx +115 -0
  232. package/src/serverGroup/details/scheduledActions/EditScheduledActionsModal.tsx +205 -0
  233. package/src/serverGroup/details/scheduledActions/index.ts +1 -0
  234. package/src/serverGroup/details/sections/AdvancedSettingsDetailsSection.tsx +7 -14
  235. package/src/serverGroup/details/sections/AmazonCapacityDetailsSection.tsx +14 -2
  236. package/src/serverGroup/details/sections/AmazonServerGroupMaintenanceActions.spec.tsx +148 -0
  237. package/src/serverGroup/details/sections/InstancesDistributionDetailsSection.spec.tsx +1 -5
  238. package/src/serverGroup/details/sections/LaunchTemplateDetailsSection.spec.tsx +1 -5
  239. package/src/serverGroup/details/sections/ScalingProcessesDetailsSection.tsx +8 -20
  240. package/src/serverGroup/details/sections/ScheduledActionsDetailsSection.tsx +7 -12
  241. package/src/serverGroup/details/sections/SecurityGroupsDetailsSection.tsx +14 -19
  242. package/src/serverGroup/details/sections/WarmPoolDetailsSection.tsx +44 -0
  243. package/src/serverGroup/details/sections/index.ts +1 -0
  244. package/src/serverGroup/details/securityGroups/EditSecurityGroupsModal.spec.tsx +161 -0
  245. package/src/serverGroup/details/securityGroups/EditSecurityGroupsModal.tsx +177 -0
  246. package/src/serverGroup/details/securityGroups/index.ts +1 -0
  247. package/src/serverGroup/details/warmPool/ModifyWarmPoolModal.spec.tsx +69 -0
  248. package/src/serverGroup/details/warmPool/ModifyWarmPoolModal.tsx +191 -0
  249. package/src/serverGroup/details/warmPool/WarmPoolService.spec.ts +30 -0
  250. package/src/serverGroup/details/warmPool/WarmPoolService.ts +15 -0
  251. package/src/serverGroup/details/warmPool/index.ts +2 -0
  252. package/src/serverGroup/serverGroup.transformer.ts +1 -6
  253. package/src/vpc/VpcReader.ts +2 -2
  254. package/src/vpc/index.ts +1 -0
  255. package/dist/common/common.module.d.ts +0 -1
  256. package/dist/common/footer.component.d.ts +0 -1
  257. package/dist/function/function.module.d.ts +0 -1
  258. package/dist/instance/details/amazonInstanceInformation.component.d.ts +0 -1
  259. package/dist/instance/details/instance.details.controller.d.ts +0 -2
  260. package/dist/instance/details/instanceDns.component.d.ts +0 -1
  261. package/dist/instance/details/instanceSecurityGroups.component.d.ts +0 -1
  262. package/dist/instance/details/instanceStatus.component.d.ts +0 -1
  263. package/dist/instance/details/instanceTags.component.d.ts +0 -1
  264. package/dist/loadBalancer/details/loadBalancerActions.component.d.ts +0 -1
  265. package/dist/loadBalancer/details/loadBalancerDetails.controller.d.ts +0 -41
  266. package/dist/loadBalancer/details/targetGroupDetails.controller.d.ts +0 -30
  267. package/dist/loadBalancer/loadBalancer.module.d.ts +0 -1
  268. package/dist/loadBalancer/targetGroup.states.d.ts +0 -1
  269. package/dist/pipeline/stages/bake/awsBakeStage.d.ts +0 -2
  270. package/dist/pipeline/stages/bake/bakeExecutionDetails.controller.d.ts +0 -2
  271. package/dist/pipeline/stages/cloneServerGroup/awsCloneServerGroupStage.d.ts +0 -2
  272. package/dist/pipeline/stages/deployCloudFormation/cloudFormationTemplateEntry.component.d.ts +0 -1
  273. package/dist/pipeline/stages/deployCloudFormation/deployCloudFormationStackConfig.controller.d.ts +0 -25
  274. package/dist/pipeline/stages/disableAsg/awsDisableAsgStage.d.ts +0 -2
  275. package/dist/pipeline/stages/disableCluster/awsDisableClusterStage.d.ts +0 -2
  276. package/dist/pipeline/stages/enableAsg/awsEnableAsgStage.d.ts +0 -2
  277. package/dist/pipeline/stages/rollbackCluster/awsRollbackClusterStage.d.ts +0 -2
  278. package/dist/pipeline/stages/scaleDownCluster/awsScaleDownClusterStage.d.ts +0 -2
  279. package/dist/pipeline/stages/shrinkCluster/awsShrinkClusterStage.d.ts +0 -2
  280. package/dist/reactShims/aws.react.injector.d.ts +0 -18
  281. package/dist/reactShims/aws.react.module.d.ts +0 -1
  282. package/dist/reactShims/index.d.ts +0 -1
  283. package/dist/securityGroup/clone/cloneSecurityGroup.controller.d.ts +0 -2
  284. package/dist/securityGroup/configure/CreateSecurityGroupCtrl.d.ts +0 -2
  285. package/dist/securityGroup/configure/EditSecurityGroupCtrl.d.ts +0 -2
  286. package/dist/securityGroup/configure/configSecurityGroup.mixin.controller.d.ts +0 -2
  287. package/dist/securityGroup/configure/ingressRuleGroupSelector.component.d.ts +0 -1
  288. package/dist/securityGroup/configure/securityGroupDetailsCustom.component.d.ts +0 -1
  289. package/dist/securityGroup/configure/securityGroupDetailsCustom.d.ts +0 -10
  290. package/dist/securityGroup/details/securityGroupDetail.controller.d.ts +0 -2
  291. package/dist/securityGroup/details/securityGroupIpRangeRules.component.d.ts +0 -1
  292. package/dist/securityGroup/securityGroup.module.d.ts +0 -1
  293. package/dist/serverGroup/details/advancedSettings/editAsgAdvancedSettings.modal.controller.d.ts +0 -2
  294. package/dist/serverGroup/details/rollback/rollbackServerGroup.controller.d.ts +0 -2
  295. package/dist/serverGroup/details/scalingPolicy/createScalingPolicyButton.component.d.ts +0 -1
  296. package/dist/serverGroup/details/scalingPolicy/scalingPolicy.module.d.ts +0 -1
  297. package/dist/serverGroup/details/scalingPolicy/scalingPolicySummary.component.d.ts +0 -1
  298. package/dist/serverGroup/details/scalingProcesses/modifyScalingProcesses.controller.d.ts +0 -2
  299. package/dist/serverGroup/details/scheduledAction/editScheduledActions.modal.controller.d.ts +0 -2
  300. package/dist/serverGroup/details/securityGroup/editSecurityGroups.modal.controller.d.ts +0 -2
  301. package/dist/serverGroup/details/serverGroupDetails.module.d.ts +0 -1
  302. package/dist/subnet/subnet.renderer.d.ts +0 -5
  303. package/dist/vpc/vpc.module.d.ts +0 -1
  304. package/src/applicationProviderFields/awsFields.html +0 -13
  305. package/src/common/common.module.ts +0 -6
  306. package/src/common/footer.component.ts +0 -29
  307. package/src/function/function.module.ts +0 -5
  308. package/src/image/image.reader.spec.ts +0 -75
  309. package/src/instance/details/amazonInstanceInformation.component.ts +0 -13
  310. package/src/instance/details/instance.details.controller.js +0 -586
  311. package/src/instance/details/instance.details.controller.spec.js +0 -133
  312. package/src/instance/details/instanceDetails.html +0 -65
  313. package/src/instance/details/instanceDns.component.ts +0 -21
  314. package/src/instance/details/instanceSecurityGroups.component.ts +0 -13
  315. package/src/instance/details/instanceStatus.component.ts +0 -19
  316. package/src/instance/details/instanceTags.component.ts +0 -13
  317. package/src/loadBalancer/details/loadBalancerActions.component.ts +0 -16
  318. package/src/loadBalancer/details/loadBalancerDetails.controller.spec.ts +0 -76
  319. package/src/loadBalancer/details/loadBalancerDetails.controller.ts +0 -240
  320. package/src/loadBalancer/details/loadBalancerDetails.html +0 -266
  321. package/src/loadBalancer/details/targetGroupDetails.controller.ts +0 -95
  322. package/src/loadBalancer/details/targetGroupDetails.html +0 -138
  323. package/src/loadBalancer/loadBalancer.module.ts +0 -15
  324. package/src/loadBalancer/targetGroup.states.ts +0 -55
  325. package/src/pipeline/stages/bake/awsBakeStage.js +0 -219
  326. package/src/pipeline/stages/bake/bakeExecutionDetails.controller.js +0 -43
  327. package/src/pipeline/stages/bake/bakeExecutionDetails.html +0 -65
  328. package/src/pipeline/stages/bake/bakeStage.html +0 -205
  329. package/src/pipeline/stages/cloneServerGroup/awsCloneServerGroupStage.js +0 -143
  330. package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStage.html +0 -143
  331. package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStepLabel.html +0 -1
  332. package/src/pipeline/stages/deployCloudFormation/cloudFormationTemplateEntry.component.ts +0 -46
  333. package/src/pipeline/stages/deployCloudFormation/deployCloudFormationStackConfig.controller.ts +0 -84
  334. package/src/pipeline/stages/deployCloudFormation/deployCloudFormationStackConfig.html +0 -84
  335. package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +0 -9
  336. package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +0 -1
  337. package/src/pipeline/stages/disableAsg/awsDisableAsgStage.js +0 -69
  338. package/src/pipeline/stages/disableAsg/disableAsgStage.html +0 -11
  339. package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +0 -1
  340. package/src/pipeline/stages/disableCluster/awsDisableClusterStage.js +0 -84
  341. package/src/pipeline/stages/disableCluster/disableClusterStage.html +0 -26
  342. package/src/pipeline/stages/enableAsg/awsEnableAsgStage.js +0 -73
  343. package/src/pipeline/stages/enableAsg/enableAsgStage.html +0 -11
  344. package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +0 -1
  345. package/src/pipeline/stages/findAmi/findAmiStage.html +0 -24
  346. package/src/pipeline/stages/findImageFromTags/findImageFromTagsExecutionDetails.html +0 -44
  347. package/src/pipeline/stages/findImageFromTags/findImageFromTagsStage.html +0 -11
  348. package/src/pipeline/stages/modifyScalingProcess/modifyScalingProcessExecutionDetails.html +0 -36
  349. package/src/pipeline/stages/modifyScalingProcess/modifyScalingProcessStage.html +0 -24
  350. package/src/pipeline/stages/resizeAsg/resizeAsgStage.html +0 -90
  351. package/src/pipeline/stages/resizeAsg/resizeAsgStepLabel.html +0 -4
  352. package/src/pipeline/stages/rollbackCluster/awsRollbackClusterStage.js +0 -66
  353. package/src/pipeline/stages/rollbackCluster/rollbackClusterStage.html +0 -43
  354. package/src/pipeline/stages/scaleDownCluster/awsScaleDownClusterStage.js +0 -78
  355. package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.html +0 -35
  356. package/src/pipeline/stages/shrinkCluster/awsShrinkClusterStage.js +0 -73
  357. package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +0 -34
  358. package/src/pipeline/stages/tagImage/awsTagImageStage.js +0 -34
  359. package/src/pipeline/stages/tagImage/tagImageExecutionDetails.html +0 -38
  360. package/src/pipeline/stages/tagImage/tagImageStage.html +0 -10
  361. package/src/reactShims/aws.react.injector.ts +0 -25
  362. package/src/reactShims/aws.react.module.ts +0 -12
  363. package/src/reactShims/index.ts +0 -1
  364. package/src/securityGroup/clone/cloneSecurityGroup.controller.js +0 -106
  365. package/src/securityGroup/clone/cloneSecurityGroup.html +0 -19
  366. package/src/securityGroup/configure/CreateSecurityGroup.controller.spec.js +0 -307
  367. package/src/securityGroup/configure/CreateSecurityGroupCtrl.js +0 -47
  368. package/src/securityGroup/configure/EditSecurityGroupCtrl.js +0 -115
  369. package/src/securityGroup/configure/configSecurityGroup.mixin.controller.js +0 -366
  370. package/src/securityGroup/configure/createSecurityGroup.html +0 -19
  371. package/src/securityGroup/configure/createSecurityGroupIngress.html +0 -100
  372. package/src/securityGroup/configure/createSecurityGroupProperties.html +0 -123
  373. package/src/securityGroup/configure/editSecurityGroup.html +0 -20
  374. package/src/securityGroup/configure/ingressRuleGroupSelector.component.html +0 -77
  375. package/src/securityGroup/configure/ingressRuleGroupSelector.component.less +0 -6
  376. package/src/securityGroup/configure/ingressRuleGroupSelector.component.ts +0 -190
  377. package/src/securityGroup/configure/securityGroupDetailsCustom.component.ts +0 -16
  378. package/src/securityGroup/configure/securityGroupDetailsCustom.tsx +0 -16
  379. package/src/securityGroup/details/securityGroupDetail.controller.js +0 -249
  380. package/src/securityGroup/details/securityGroupDetail.html +0 -114
  381. package/src/securityGroup/details/securityGroupIpRangeRules.component.ts +0 -12
  382. package/src/securityGroup/securityGroup.module.ts +0 -26
  383. package/src/securityGroup/securityGroup.transformer.js +0 -48
  384. package/src/serverGroup/configure/serverGroupConfiguration.service.spec.ts +0 -478
  385. package/src/serverGroup/details/advancedSettings/editAsgAdvancedSettings.modal.controller.js +0 -47
  386. package/src/serverGroup/details/advancedSettings/editAsgAdvancedSettings.modal.html +0 -79
  387. package/src/serverGroup/details/rollback/rollbackServerGroup.controller.js +0 -146
  388. package/src/serverGroup/details/rollback/rollbackServerGroup.html +0 -139
  389. package/src/serverGroup/details/scalingPolicy/createScalingPolicyButton.component.ts +0 -15
  390. package/src/serverGroup/details/scalingPolicy/scalingPolicy.module.ts +0 -6
  391. package/src/serverGroup/details/scalingPolicy/scalingPolicySummary.component.ts +0 -14
  392. package/src/serverGroup/details/scalingPolicy/upsert/alarm/dimensionsEditor.less +0 -18
  393. package/src/serverGroup/details/scalingProcesses/modifyScalingProcesses.controller.js +0 -95
  394. package/src/serverGroup/details/scalingProcesses/modifyScalingProcesses.controller.spec.js +0 -106
  395. package/src/serverGroup/details/scalingProcesses/modifyScalingProcesses.html +0 -30
  396. package/src/serverGroup/details/scheduledAction/editScheduledActions.modal.controller.js +0 -70
  397. package/src/serverGroup/details/scheduledAction/editScheduledActions.modal.html +0 -89
  398. package/src/serverGroup/details/securityGroup/editSecurityGroups.modal.controller.js +0 -95
  399. package/src/serverGroup/details/securityGroup/editSecurityGroups.modal.html +0 -40
  400. package/src/serverGroup/details/serverGroupDetails.module.ts +0 -18
  401. package/src/serverGroup/serverGroup.transformer.spec.ts +0 -185
  402. package/src/subnet/SubnetSelectInput.spec.tsx +0 -91
  403. package/src/subnet/subnet.renderer.ts +0 -12
  404. package/src/vpc/vpc.module.ts +0 -9
@@ -0,0 +1,296 @@
1
+ import type { IStageTypeConfig } from '@spinnaker/core';
2
+ import { CloudProviderRegistry, Registry } from '@spinnaker/core';
3
+
4
+ import './index';
5
+ import { AwsFunctionTransformer } from './function/function.transformer';
6
+ import { AwsImageReader } from './image';
7
+ import { AwsInstanceTypeService } from './instance/awsInstanceType.service';
8
+ import { AwsLoadBalancerTransformer } from './loadBalancer';
9
+ import { AmazonStageConfig, getAmazonStageFields } from './pipeline/stages/AmazonStageConfig';
10
+ import { awsBakeStage, AwsBakeStageConfig } from './pipeline/stages/bake/AwsBakeStageConfig';
11
+ import { AwsCloneServerGroupStageConfig } from './pipeline/stages/cloneServerGroup/AwsCloneServerGroupStageConfig';
12
+ import { DeployCloudFormationStackStageConfig } from './pipeline/stages/deployCloudFormation/DeployCloudFormationStackStageConfig';
13
+ import { AwsDisableAsgStageConfig } from './pipeline/stages/disableAsg/AwsDisableAsgStageConfig';
14
+ import { AwsDisableClusterStageConfig } from './pipeline/stages/disableCluster/AwsDisableClusterStageConfig';
15
+ import { AwsEnableAsgStageConfig } from './pipeline/stages/enableAsg/AwsEnableAsgStageConfig';
16
+ import { AwsFindImageFromTagsStageConfig } from './pipeline/stages/findImageFromTags/AwsFindImageFromTagsStageConfig';
17
+ import { ModifyScalingProcessStageConfig } from './pipeline/stages/modifyScalingProcess/ModifyScalingProcessStageConfig';
18
+ import { AwsResizeAsgStageConfig } from './pipeline/stages/resizeAsg/AwsResizeAsgStageConfig';
19
+ import { AwsRollbackClusterStageConfig } from './pipeline/stages/rollbackCluster/AwsRollbackClusterStageConfig';
20
+ import { AwsScaleDownClusterStageConfig } from './pipeline/stages/scaleDownCluster/AwsScaleDownClusterStageConfig';
21
+ import { AwsShrinkClusterStageConfig } from './pipeline/stages/shrinkCluster/AwsShrinkClusterStageConfig';
22
+ import { AwsTagImageStageConfig } from './pipeline/stages/tagImage/awsTagImageStage';
23
+ import { registerAmazonPipelineStages } from './aws.module';
24
+ import { AwsSecurityGroupReader } from './securityGroup/securityGroup.reader';
25
+ import { AwsSecurityGroupTransformer } from './securityGroup/securityGroup.transformer';
26
+ import { AwsServerGroupCommandBuilder } from './serverGroup/configure/serverGroupCommandBuilder.service';
27
+ import {
28
+ AwsServerGroupConfigurationService,
29
+ AwsServerGroupConfigurationServiceDelegate,
30
+ } from './serverGroup/configure/serverGroupConfiguration.service';
31
+ import { AwsServerGroupTransformer } from './serverGroup/serverGroup.transformer';
32
+
33
+ describe('Amazon package registration', () => {
34
+ function expectRegistered(path: string): void {
35
+ expect(CloudProviderRegistry.getValue('aws', path)).withContext(path).not.toBeNull();
36
+ }
37
+
38
+ function expectNonEmptyRegistration(path: string): void {
39
+ const value = CloudProviderRegistry.getValue('aws', path);
40
+ const entries = Array.isArray(value) ? value : [];
41
+ expect(Array.isArray(value)).withContext(path).toBe(true);
42
+ expect(entries.length).withContext(path).toBeGreaterThan(0);
43
+ }
44
+
45
+ it('does not register function details as a provider override', () => {
46
+ const overrideValue = spyOn(CloudProviderRegistry, 'overrideValue');
47
+ const functionDetailsModule = require.resolve('./function/details/AmazonFunctionDetails');
48
+ delete require.cache[functionDetailsModule];
49
+
50
+ require('./function/details/AmazonFunctionDetails');
51
+
52
+ expect(overrideValue).not.toHaveBeenCalled();
53
+ });
54
+
55
+ it('registers AWS provider values', () => {
56
+ expect(CloudProviderRegistry.getValue('aws', 'image.reader')).toBe(AwsImageReader);
57
+ expect(CloudProviderRegistry.getValue('aws', 'serverGroup.transformer')).toBe(AwsServerGroupTransformer);
58
+ expect(CloudProviderRegistry.getValue('aws', 'serverGroup.commandBuilder')).toBe(AwsServerGroupCommandBuilder);
59
+ expect(CloudProviderRegistry.getValue('aws', 'serverGroup.configurationService')).toBe(
60
+ AwsServerGroupConfigurationServiceDelegate,
61
+ );
62
+ expect(CloudProviderRegistry.getValue('aws', 'instance.instanceTypeService')).toBe(AwsInstanceTypeService);
63
+ expect(CloudProviderRegistry.getValue('aws', 'loadBalancer.transformer')).toBe(AwsLoadBalancerTransformer);
64
+ expect(CloudProviderRegistry.getValue('aws', 'function.transformer')).toBe(AwsFunctionTransformer);
65
+ expect(CloudProviderRegistry.getValue('aws', 'function.setTransformer')).toBe(AwsFunctionTransformer);
66
+ expect(CloudProviderRegistry.getValue('aws', 'securityGroup.reader')).toBe(AwsSecurityGroupReader);
67
+ expect(CloudProviderRegistry.getValue('aws', 'securityGroup.transformer')).toBe(AwsSecurityGroupTransformer);
68
+ expect(CloudProviderRegistry.getValue('aws', 'applicationProviderFields')).toEqual([
69
+ {
70
+ field: 'useAmiBlockDeviceMappings',
71
+ label: 'Prefer AMI Block Device Mappings',
72
+ type: 'boolean',
73
+ },
74
+ ]);
75
+
76
+ expectRegistered('serverGroup.CloneServerGroupModal');
77
+ expectRegistered('serverGroup.detailsGetter');
78
+ expectRegistered('serverGroup.detailsActions');
79
+ expectNonEmptyRegistration('serverGroup.detailsSections');
80
+ expectRegistered('instance.details');
81
+ expectRegistered('loadBalancer.CreateLoadBalancerModal');
82
+ expectRegistered('loadBalancer.useDetailsHook');
83
+ expectRegistered('loadBalancer.detailsActions');
84
+ expectNonEmptyRegistration('loadBalancer.detailsSections');
85
+ expectRegistered('loadBalancer.targetGroupDetails');
86
+ expectRegistered('function.details');
87
+ expectRegistered('function.CreateFunctionModal');
88
+ expectRegistered('securityGroup.CreateSecurityGroupModal');
89
+ expectRegistered('securityGroup.details');
90
+ });
91
+
92
+ it('registers AWS provider delegates as direct constructors', () => {
93
+ expect(typeof CloudProviderRegistry.getValue('aws', 'serverGroup.transformer')).toBe('function');
94
+ expect(typeof CloudProviderRegistry.getValue('aws', 'serverGroup.commandBuilder')).toBe('function');
95
+ expect(typeof CloudProviderRegistry.getValue('aws', 'serverGroup.configurationService')).toBe('function');
96
+ expect(typeof CloudProviderRegistry.getValue('aws', 'instance.instanceTypeService')).toBe('function');
97
+ expect(typeof CloudProviderRegistry.getValue('aws', 'loadBalancer.transformer')).toBe('function');
98
+ expect(typeof CloudProviderRegistry.getValue('aws', 'function.transformer')).toBe('function');
99
+ expect(typeof CloudProviderRegistry.getValue('aws', 'function.setTransformer')).toBe('function');
100
+ expect(typeof CloudProviderRegistry.getValue('aws', 'securityGroup.reader')).toBe('function');
101
+ expect(typeof CloudProviderRegistry.getValue('aws', 'securityGroup.transformer')).toBe('function');
102
+ });
103
+
104
+ it('constructs the server group configuration service with explicit dependencies', () => {
105
+ const securityGroupReader = { getAllSecurityGroups: jasmine.createSpy('getAllSecurityGroups') };
106
+ const cacheInitializer = {
107
+ refreshCache: jasmine.createSpy('refreshCache'),
108
+ };
109
+
110
+ const service = new AwsServerGroupConfigurationService(
111
+ securityGroupReader as any,
112
+ new AwsInstanceTypeService(),
113
+ cacheInitializer as any,
114
+ );
115
+
116
+ expect((service as any).securityGroupReader).toBe(securityGroupReader);
117
+ expect(() => service.applyOverrides('beforeConfiguration', {} as any)).not.toThrow();
118
+
119
+ const command = {
120
+ region: 'us-east-1',
121
+ virtualizationType: 'hvm',
122
+ vpcId: 'vpc-1',
123
+ amiArchitecture: 'x86_64',
124
+ backingData: {
125
+ instanceTypesInfo: {
126
+ 'us-east-1': [
127
+ {
128
+ name: 'm5.large',
129
+ supportedVirtualizationTypes: ['hvm'],
130
+ supportedArchitectures: ['x86_64'],
131
+ },
132
+ ],
133
+ },
134
+ filtered: {},
135
+ },
136
+ launchTemplateOverridesForInstanceType: [],
137
+ viewState: { dirty: {} },
138
+ } as any;
139
+
140
+ expect(() => service.configureInstanceTypes(command)).not.toThrow();
141
+ expect(command.backingData.filtered.instanceTypes).toEqual(['m5.large']);
142
+ });
143
+
144
+ it('registers AWS pipeline stages with React components', () => {
145
+ const previousPipeline = Registry.pipeline;
146
+ const previousUrlBuilder = Registry.urlBuilder;
147
+
148
+ Registry.reinitialize();
149
+ try {
150
+ registerAmazonPipelineStages();
151
+
152
+ const stages = Registry.pipeline.getStageTypes();
153
+
154
+ const awsStages = stages.filter((stage) => stage.cloudProvider === 'aws');
155
+ const expectedStages = [
156
+ 'bake',
157
+ 'cloneServerGroup',
158
+ 'deployCloudFormation',
159
+ 'destroyServerGroup',
160
+ 'disableCluster',
161
+ 'disableServerGroup',
162
+ 'enableServerGroup',
163
+ 'findImage',
164
+ 'findImageFromTags',
165
+ 'modifyAwsScalingProcess',
166
+ 'resizeServerGroup',
167
+ 'rollbackCluster',
168
+ 'scaleDownCluster',
169
+ 'shrinkCluster',
170
+ 'upsertImageTags',
171
+ ];
172
+
173
+ expectedStages.forEach((provides) => {
174
+ const stage = awsStages.find((candidate) => (candidate.provides || candidate.key) === provides);
175
+ expect(stage).withContext(`aws ${provides} stage`).toBeDefined();
176
+ expect(stage?.component).withContext(`aws ${provides} stage component`).toBeDefined();
177
+ });
178
+
179
+ const structuredStages: Array<{
180
+ component: IStageTypeConfig['component'];
181
+ key: string;
182
+ }> = [
183
+ {
184
+ key: 'bake',
185
+ component: AwsBakeStageConfig,
186
+ },
187
+ {
188
+ key: 'cloneServerGroup',
189
+ component: AwsCloneServerGroupStageConfig,
190
+ },
191
+ {
192
+ key: 'deployCloudFormation',
193
+ component: DeployCloudFormationStackStageConfig,
194
+ },
195
+ {
196
+ key: 'disableServerGroup',
197
+ component: AwsDisableAsgStageConfig,
198
+ },
199
+ {
200
+ key: 'disableCluster',
201
+ component: AwsDisableClusterStageConfig,
202
+ },
203
+ {
204
+ key: 'enableServerGroup',
205
+ component: AwsEnableAsgStageConfig,
206
+ },
207
+ {
208
+ key: 'upsertImageTags',
209
+ component: AwsTagImageStageConfig,
210
+ },
211
+ {
212
+ key: 'findImageFromTags',
213
+ component: AwsFindImageFromTagsStageConfig,
214
+ },
215
+ {
216
+ key: 'resizeServerGroup',
217
+ component: AwsResizeAsgStageConfig,
218
+ },
219
+ {
220
+ key: 'rollbackCluster',
221
+ component: AwsRollbackClusterStageConfig,
222
+ },
223
+ {
224
+ key: 'scaleDownCluster',
225
+ component: AwsScaleDownClusterStageConfig,
226
+ },
227
+ {
228
+ key: 'shrinkCluster',
229
+ component: AwsShrinkClusterStageConfig,
230
+ },
231
+ {
232
+ key: 'modifyAwsScalingProcess',
233
+ component: ModifyScalingProcessStageConfig,
234
+ },
235
+ ];
236
+
237
+ structuredStages.forEach(({ component, key }) => {
238
+ const stage = awsStages.find((candidate) => (candidate.key || candidate.provides) === key);
239
+ expect(stage).withContext(`aws ${key} structured stage`).toBeDefined();
240
+ expect(stage?.key).withContext(`aws ${key} stage key`).toBe(key);
241
+ expect(stage?.cloudProvider).withContext(`aws ${key} cloud provider`).toBe('aws');
242
+ expect(stage?.component).withContext(`aws ${key} config component`).toBe(component);
243
+ });
244
+
245
+ const deployCloudFormation = awsStages.find((stage) => stage.key === 'deployCloudFormation');
246
+ expect(deployCloudFormation?.executionDetailsSections?.length)
247
+ .withContext('aws deployCloudFormation React execution details')
248
+ .toBeGreaterThan(0);
249
+
250
+ ['destroyServerGroup', 'findImage'].forEach((key) => {
251
+ const stage = awsStages.find((candidate) => (candidate.key || candidate.provides) === key);
252
+ expect(stage?.component).withContext(`aws ${key} generic stage component`).toBe(AmazonStageConfig);
253
+ });
254
+ } finally {
255
+ Registry.pipeline = previousPipeline;
256
+ Registry.urlBuilder = previousUrlBuilder;
257
+ }
258
+ });
259
+
260
+ it('does not duplicate AWS pipeline stages on module import', () => {
261
+ const awsStages = Registry.pipeline.getStageTypes().filter((stage) => stage.cloudProvider === 'aws');
262
+ const expectedStages = [
263
+ 'bake',
264
+ 'cloneServerGroup',
265
+ 'deployCloudFormation',
266
+ 'destroyServerGroup',
267
+ 'disableCluster',
268
+ 'disableServerGroup',
269
+ 'enableServerGroup',
270
+ 'findImage',
271
+ 'findImageFromTags',
272
+ 'modifyAwsScalingProcess',
273
+ 'resizeServerGroup',
274
+ 'rollbackCluster',
275
+ 'scaleDownCluster',
276
+ 'shrinkCluster',
277
+ 'upsertImageTags',
278
+ ];
279
+
280
+ expectedStages.forEach((provides) => {
281
+ const registrations = awsStages.filter((stage) => (stage.provides || stage.key) === provides);
282
+ expect(registrations.length).withContext(`aws ${provides} registration count`).toBe(1);
283
+ });
284
+ });
285
+
286
+ it('renders required AWS stage-specific config fields', () => {
287
+ expect(awsBakeStage.validators.map((validator: any) => validator.fieldName)).toContain('package');
288
+ expect(getAmazonStageFields({ type: 'findImage' } as any).map((field) => field.fieldName)).toEqual([
289
+ 'credentials',
290
+ 'regions',
291
+ 'cluster',
292
+ 'selectionStrategy',
293
+ 'onlyEnabled',
294
+ ]);
295
+ });
296
+ });
package/src/aws.module.ts CHANGED
@@ -1,55 +1,52 @@
1
- import { module } from 'angular';
2
-
3
- import { CloudProviderRegistry, DeploymentStrategyRegistry } from '@spinnaker/core';
1
+ import { CloudProviderRegistry, DeploymentStrategyRegistry, Registry } from '@spinnaker/core';
4
2
 
5
3
  import { AWSProviderSettings } from './aws.settings';
6
- import { COMMON_MODULE } from './common/common.module';
7
4
  import './deploymentStrategy/rollingPush.strategy';
8
5
  import { AmazonFunctionDetails } from './function';
9
6
  import { CreateLambdaFunction } from './function';
10
7
  import { AwsFunctionTransformer } from './function';
11
- import { AWS_FUNCTION_MODULE } from './function/function.module';
12
8
  import './help/amazon.help';
13
9
  import { AwsImageReader } from './image';
14
- import { AMAZON_INSTANCE_AWSINSTANCETYPE_SERVICE } from './instance/awsInstanceType.service';
15
- import { AMAZON_INSTANCE_INFORMATION_COMPONENT } from './instance/details/amazonInstanceInformation.component';
16
- import { AMAZON_INSTANCE_DETAILS_INSTANCE_DETAILS_CONTROLLER } from './instance/details/instance.details.controller';
17
- import { INSTANCE_DNS_COMPONENT } from './instance/details/instanceDns.component';
18
- import { INSTANCE_SECURITY_GROUPS_COMPONENT } from './instance/details/instanceSecurityGroups.component';
19
- import { INSTANCE_STATUS_COMPONENT } from './instance/details/instanceStatus.component';
20
- import { INSTANCE_TAGS_COMPONENT } from './instance/details/instanceTags.component';
10
+ import { AwsInstanceTypeService } from './instance/awsInstanceType.service';
11
+ import { AmazonInstanceDetails } from './instance/details/AmazonInstanceDetails';
21
12
  import { AmazonLoadBalancerClusterContainer } from './loadBalancer';
22
13
  import { AmazonLoadBalancersTag } from './loadBalancer';
23
14
  import { AmazonLoadBalancerChoiceModal } from './loadBalancer';
24
15
  import { AwsLoadBalancerTransformer } from './loadBalancer';
25
- import { AWS_LOAD_BALANCER_MODULE } from './loadBalancer/loadBalancer.module';
16
+ import {
17
+ AmazonLoadBalancerActions,
18
+ amazonLoadBalancerDetailsSections,
19
+ TargetGroupDetails,
20
+ useAmazonLoadBalancerDetails,
21
+ } from './loadBalancer';
26
22
  import amazonLogo from './logo/amazon.logo.svg';
27
- import { AMAZON_PIPELINE_STAGES_BAKE_AWSBAKESTAGE } from './pipeline/stages/bake/awsBakeStage';
28
- import { AMAZON_PIPELINE_STAGES_CLONESERVERGROUP_AWSCLONESERVERGROUPSTAGE } from './pipeline/stages/cloneServerGroup/awsCloneServerGroupStage';
29
- import { AMAZON_PIPELINE_STAGES_LAMBDA_DELETE } from './pipeline/stages/deleteLambda';
30
- import { CLOUD_FORMATION_CHANGE_SET_INFO } from './pipeline/stages/deployCloudFormation/CloudFormationChangeSetInfo';
31
- import { CLOUDFORMATION_TEMPLATE_ENTRY } from './pipeline/stages/deployCloudFormation/cloudFormationTemplateEntry.component';
32
- import { DEPLOY_CLOUDFORMATION_STACK_STAGE } from './pipeline/stages/deployCloudFormation/deployCloudFormationStackStage';
33
- import { AWS_EVALUATE_CLOUD_FORMATION_CHANGE_SET_EXECUTION_SERVICE } from './pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecution.service';
34
- import { AMAZON_PIPELINE_STAGES_LAMBDA_DEPLOY } from './pipeline/stages/deployLambda';
35
- import { AMAZON_PIPELINE_STAGES_DESTROYASG_AWSDESTROYASGSTAGE } from './pipeline/stages/destroyAsg/awsDestroyAsgStage';
36
- import { AMAZON_PIPELINE_STAGES_DISABLEASG_AWSDISABLEASGSTAGE } from './pipeline/stages/disableAsg/awsDisableAsgStage';
37
- import { AMAZON_PIPELINE_STAGES_DISABLECLUSTER_AWSDISABLECLUSTERSTAGE } from './pipeline/stages/disableCluster/awsDisableClusterStage';
38
- import { AMAZON_PIPELINE_STAGES_ENABLEASG_AWSENABLEASGSTAGE } from './pipeline/stages/enableAsg/awsEnableAsgStage';
39
- import { AMAZON_PIPELINE_STAGES_FINDAMI_AWSFINDAMISTAGE } from './pipeline/stages/findAmi/awsFindAmiStage';
40
- import { AMAZON_PIPELINE_STAGES_FINDIMAGEFROMTAGS_AWSFINDIMAGEFROMTAGSSTAGE } from './pipeline/stages/findImageFromTags/awsFindImageFromTagsStage';
41
- import { AMAZON_PIPELINE_STAGES_LAMBDA_INVOKE } from './pipeline/stages/invokeLambda';
42
- import { AMAZON_PIPELINE_STAGES_MODIFYSCALINGPROCESS_MODIFYSCALINGPROCESSSTAGE } from './pipeline/stages/modifyScalingProcess/modifyScalingProcessStage';
43
- import { AMAZON_PIPELINE_STAGES_RESIZEASG_AWSRESIZEASGSTAGE } from './pipeline/stages/resizeAsg/awsResizeAsgStage';
44
- import { AMAZON_PIPELINE_STAGES_ROLLBACKCLUSTER_AWSROLLBACKCLUSTERSTAGE } from './pipeline/stages/rollbackCluster/awsRollbackClusterStage';
45
- import { AMAZON_PIPELINE_STAGES_LAMBDA_ROUTE } from './pipeline/stages/routeLambda';
46
- import { AMAZON_PIPELINE_STAGES_SCALEDOWNCLUSTER_AWSSCALEDOWNCLUSTERSTAGE } from './pipeline/stages/scaleDownCluster/awsScaleDownClusterStage';
47
- import { AMAZON_PIPELINE_STAGES_SHRINKCLUSTER_AWSSHRINKCLUSTERSTAGE } from './pipeline/stages/shrinkCluster/awsShrinkClusterStage';
48
- import { AMAZON_PIPELINE_STAGES_TAGIMAGE_AWSTAGIMAGESTAGE } from './pipeline/stages/tagImage/awsTagImageStage';
49
- import { AMAZON_PIPELINE_STAGES_LAMBDA_UPDATE } from './pipeline/stages/updateCodeLambda';
50
- import { AWS_REACT_MODULE } from './reactShims/aws.react.module';
51
- import { AMAZON_SEARCH_SEARCHRESULTFORMATTER } from './search/searchResultFormatter';
52
- import { AWS_SECURITY_GROUP_MODULE } from './securityGroup/securityGroup.module';
23
+ import { registerAwsBakeStage } from './pipeline/stages/bake/AwsBakeStageConfig';
24
+ import { registerAwsCloneServerGroupStage } from './pipeline/stages/cloneServerGroup/AwsCloneServerGroupStageConfig';
25
+ import { registerLambdaDeleteStage } from './pipeline/stages/deleteLambda';
26
+ import { registerDeployCloudFormationStackStage } from './pipeline/stages/deployCloudFormation/deployCloudFormationStackStage';
27
+ import { registerLambdaDeployStage } from './pipeline/stages/deployLambda';
28
+ import { registerAwsDestroyAsgStage } from './pipeline/stages/destroyAsg/awsDestroyAsgStage';
29
+ import { registerAwsDisableAsgStage } from './pipeline/stages/disableAsg/AwsDisableAsgStageConfig';
30
+ import { registerAwsDisableClusterStage } from './pipeline/stages/disableCluster/AwsDisableClusterStageConfig';
31
+ import { registerAwsEnableAsgStage } from './pipeline/stages/enableAsg/AwsEnableAsgStageConfig';
32
+ import { registerAwsFindAmiStage } from './pipeline/stages/findAmi/awsFindAmiStage';
33
+ import { registerAwsFindImageFromTagsStage } from './pipeline/stages/findImageFromTags/awsFindImageFromTagsStage';
34
+ import { registerLambdaInvokeStage } from './pipeline/stages/invokeLambda';
35
+ import { registerAwsModifyScalingProcessStage } from './pipeline/stages/modifyScalingProcess/modifyScalingProcessStage';
36
+ import { registerAwsModifyWarmPoolStage } from './pipeline/stages/modifyWarmPool/modifyWarmPoolStage';
37
+ import { registerAwsResizeAsgStage } from './pipeline/stages/resizeAsg/awsResizeAsgStage';
38
+ import { registerAwsRollbackClusterStage } from './pipeline/stages/rollbackCluster/AwsRollbackClusterStageConfig';
39
+ import { registerLambdaRouteStage } from './pipeline/stages/routeLambda';
40
+ import { registerAwsScaleDownClusterStage } from './pipeline/stages/scaleDownCluster/AwsScaleDownClusterStageConfig';
41
+ import { registerAwsShrinkClusterStage } from './pipeline/stages/shrinkCluster/AwsShrinkClusterStageConfig';
42
+ import { registerAwsTagImageStage } from './pipeline/stages/tagImage/awsTagImageStage';
43
+ import { registerLambdaUpdateStage } from './pipeline/stages/updateCodeLambda';
44
+ import { AmazonSecurityGroupModal } from './securityGroup/configure/AmazonSecurityGroupModal';
45
+ import { AmazonSecurityGroupDetails } from './securityGroup/details/AmazonSecurityGroupDetails';
46
+ import { AwsSecurityGroupReader } from './securityGroup/securityGroup.reader';
47
+ import { AwsSecurityGroupTransformer } from './securityGroup/securityGroup.transformer';
48
+ import { AwsServerGroupCommandBuilder } from './serverGroup/configure/serverGroupCommandBuilder.service';
49
+ import { AwsServerGroupConfigurationServiceDelegate } from './serverGroup/configure/serverGroupConfiguration.service';
53
50
  import { AmazonCloneServerGroupModal } from './serverGroup/configure/wizard/AmazonCloneServerGroupModal';
54
51
  import { AmazonServerGroupActions } from './serverGroup/details/AmazonServerGroupActions';
55
52
  import { amazonServerGroupDetailsGetter } from './serverGroup/details/amazonServerGroupDetailsGetter';
@@ -73,69 +70,32 @@ import {
73
70
  ScheduledActionsDetailsSection,
74
71
  SecurityGroupsDetailsSection,
75
72
  TagsDetailsSection,
73
+ WarmPoolDetailsSection,
76
74
  } from './serverGroup/details/sections';
77
- import { SERVER_GROUP_DETAILS_MODULE } from './serverGroup/details/serverGroupDetails.module';
78
- import { AWS_SERVER_GROUP_TRANSFORMER } from './serverGroup/serverGroup.transformer';
79
- import { SUBNET_RENDERER } from './subnet/subnet.renderer';
75
+ import { AwsServerGroupTransformer } from './serverGroup/serverGroup.transformer';
80
76
  import './validation/ApplicationNameValidator';
81
- import { VPC_MODULE } from './vpc/vpc.module';
82
77
 
83
78
  import './logo/aws.logo.less';
84
79
 
85
- export const AMAZON_MODULE = 'spinnaker.amazon';
86
- module(AMAZON_MODULE, [
87
- AWS_REACT_MODULE,
88
- AMAZON_PIPELINE_STAGES_BAKE_AWSBAKESTAGE,
89
- AMAZON_PIPELINE_STAGES_CLONESERVERGROUP_AWSCLONESERVERGROUPSTAGE,
90
- AMAZON_PIPELINE_STAGES_DESTROYASG_AWSDESTROYASGSTAGE,
91
- AMAZON_PIPELINE_STAGES_DISABLEASG_AWSDISABLEASGSTAGE,
92
- AMAZON_PIPELINE_STAGES_DISABLECLUSTER_AWSDISABLECLUSTERSTAGE,
93
- AMAZON_PIPELINE_STAGES_ROLLBACKCLUSTER_AWSROLLBACKCLUSTERSTAGE,
94
- AMAZON_PIPELINE_STAGES_ENABLEASG_AWSENABLEASGSTAGE,
95
- AMAZON_PIPELINE_STAGES_FINDAMI_AWSFINDAMISTAGE,
96
- AMAZON_PIPELINE_STAGES_FINDIMAGEFROMTAGS_AWSFINDIMAGEFROMTAGSSTAGE,
97
- AMAZON_PIPELINE_STAGES_MODIFYSCALINGPROCESS_MODIFYSCALINGPROCESSSTAGE,
98
- AMAZON_PIPELINE_STAGES_RESIZEASG_AWSRESIZEASGSTAGE,
99
- AMAZON_PIPELINE_STAGES_SCALEDOWNCLUSTER_AWSSCALEDOWNCLUSTERSTAGE,
100
- AMAZON_PIPELINE_STAGES_SHRINKCLUSTER_AWSSHRINKCLUSTERSTAGE,
101
- AMAZON_PIPELINE_STAGES_TAGIMAGE_AWSTAGIMAGESTAGE,
102
- SERVER_GROUP_DETAILS_MODULE,
103
- COMMON_MODULE,
104
- AWS_SERVER_GROUP_TRANSFORMER,
105
- AMAZON_INSTANCE_AWSINSTANCETYPE_SERVICE,
106
- AWS_LOAD_BALANCER_MODULE,
107
- AWS_FUNCTION_MODULE,
108
- AMAZON_INSTANCE_DETAILS_INSTANCE_DETAILS_CONTROLLER,
109
- AWS_SECURITY_GROUP_MODULE,
110
- SUBNET_RENDERER,
111
- VPC_MODULE,
112
- AMAZON_SEARCH_SEARCHRESULTFORMATTER,
113
- DEPLOY_CLOUDFORMATION_STACK_STAGE,
114
- CLOUDFORMATION_TEMPLATE_ENTRY,
115
- CLOUD_FORMATION_CHANGE_SET_INFO,
116
- AWS_EVALUATE_CLOUD_FORMATION_CHANGE_SET_EXECUTION_SERVICE,
117
- INSTANCE_STATUS_COMPONENT,
118
- INSTANCE_TAGS_COMPONENT,
119
- INSTANCE_SECURITY_GROUPS_COMPONENT,
120
- INSTANCE_DNS_COMPONENT,
121
- AMAZON_INSTANCE_INFORMATION_COMPONENT,
122
- AMAZON_PIPELINE_STAGES_LAMBDA_DELETE,
123
- AMAZON_PIPELINE_STAGES_LAMBDA_DEPLOY,
124
- AMAZON_PIPELINE_STAGES_LAMBDA_INVOKE,
125
- AMAZON_PIPELINE_STAGES_LAMBDA_UPDATE,
126
- AMAZON_PIPELINE_STAGES_LAMBDA_ROUTE,
127
- ]).config(() => {
80
+ export function registerAmazonProvider(): void {
128
81
  CloudProviderRegistry.registerProvider('aws', {
129
82
  name: 'Amazon',
130
83
  adHocInfrastructureWritesEnabled: AWSProviderSettings.adHocInfraWritesEnabled,
131
84
  logo: {
132
85
  path: amazonLogo,
133
86
  },
87
+ applicationProviderFields: [
88
+ {
89
+ field: 'useAmiBlockDeviceMappings',
90
+ label: 'Prefer AMI Block Device Mappings',
91
+ type: 'boolean',
92
+ },
93
+ ],
134
94
  image: {
135
95
  reader: AwsImageReader,
136
96
  },
137
97
  serverGroup: {
138
- transformer: 'awsServerGroupTransformer',
98
+ transformer: AwsServerGroupTransformer,
139
99
  detailsActions: AmazonServerGroupActions,
140
100
  detailsGetter: amazonServerGroupDetailsGetter,
141
101
  detailsSections: [
@@ -149,58 +109,93 @@ module(AMAZON_MODULE, [
149
109
  ScalingProcessesDetailsSection,
150
110
  ScalingPoliciesDetailsSection,
151
111
  ScheduledActionsDetailsSection,
112
+ WarmPoolDetailsSection,
152
113
  TagsDetailsSection,
153
114
  PackageDetailsSection,
154
115
  AdvancedSettingsDetailsSection,
155
116
  LogsDetailsSection,
156
117
  ],
157
118
  CloneServerGroupModal: AmazonCloneServerGroupModal,
158
- commandBuilder: 'awsServerGroupCommandBuilder',
159
- configurationService: 'awsServerGroupConfigurationService',
119
+ commandBuilder: AwsServerGroupCommandBuilder,
120
+ configurationService: AwsServerGroupConfigurationServiceDelegate,
121
+ instanceTypeService: AwsInstanceTypeService,
160
122
  scalingActivitiesEnabled: true,
161
123
  TargetTrackingChart,
162
124
  UpsertStepPolicyModal: AmazonUpsertScalingPolicyModal,
163
125
  UpsertTargetTrackingModal: AmazonUpsertTargetTrackingModal,
164
126
  },
165
127
  instance: {
166
- instanceTypeService: 'awsInstanceTypeService',
167
- detailsTemplateUrl: require('./instance/details/instanceDetails.html'),
168
- detailsController: 'awsInstanceDetailsCtrl',
128
+ instanceTypeService: AwsInstanceTypeService,
129
+ details: AmazonInstanceDetails,
169
130
  },
170
131
  loadBalancer: {
171
132
  transformer: AwsLoadBalancerTransformer,
172
- detailsTemplateUrl: require('./loadBalancer/details/loadBalancerDetails.html'),
173
- detailsController: 'awsLoadBalancerDetailsCtrl',
174
133
  CreateLoadBalancerModal: AmazonLoadBalancerChoiceModal,
175
- targetGroupDetailsTemplateUrl: require('./loadBalancer/details/targetGroupDetails.html'),
176
- targetGroupDetailsController: 'awsTargetGroupDetailsCtrl',
134
+ useDetailsHook: useAmazonLoadBalancerDetails,
135
+ detailsActions: AmazonLoadBalancerActions,
136
+ detailsSections: amazonLoadBalancerDetailsSections,
137
+ targetGroupDetails: TargetGroupDetails,
177
138
  ClusterContainer: AmazonLoadBalancerClusterContainer,
178
139
  LoadBalancersTag: AmazonLoadBalancersTag,
179
140
  },
180
141
  function: {
181
142
  details: AmazonFunctionDetails,
182
143
  CreateFunctionModal: CreateLambdaFunction,
144
+ setTransformer: AwsFunctionTransformer,
183
145
  transformer: AwsFunctionTransformer,
184
146
  },
185
147
  securityGroup: {
186
- transformer: 'awsSecurityGroupTransformer',
187
- reader: 'awsSecurityGroupReader',
188
- detailsTemplateUrl: require('./securityGroup/details/securityGroupDetail.html'),
189
- detailsController: 'awsSecurityGroupDetailsCtrl',
190
- createSecurityGroupTemplateUrl: require('./securityGroup/configure/createSecurityGroup.html'),
191
- createSecurityGroupController: 'awsCreateSecurityGroupCtrl',
192
- },
193
- subnet: {
194
- renderer: 'awsSubnetRenderer',
195
- },
196
- search: {
197
- resultFormatter: 'awsSearchResultFormatter',
198
- },
199
- applicationProviderFields: {
200
- templateUrl: require('./applicationProviderFields/awsFields.html'),
148
+ transformer: AwsSecurityGroupTransformer,
149
+ reader: AwsSecurityGroupReader,
150
+ CreateSecurityGroupModal: AmazonSecurityGroupModal,
151
+ details: AmazonSecurityGroupDetails,
201
152
  },
202
153
  });
203
- });
154
+ }
155
+
156
+ function registerPipelineStageOnce(
157
+ stageKey: string,
158
+ registerStage: () => void,
159
+ cloudProvider: string | null = 'aws',
160
+ ): void {
161
+ const isRegistered = Registry.pipeline.getStageTypes().some((stage) => {
162
+ const registeredStageKey = stage.provides || stage.key;
163
+ const cloudProviderMatches = cloudProvider === null || stage.cloudProvider === cloudProvider;
164
+
165
+ return registeredStageKey === stageKey && cloudProviderMatches;
166
+ });
167
+
168
+ if (!isRegistered) {
169
+ registerStage();
170
+ }
171
+ }
172
+
173
+ export function registerAmazonPipelineStages(): void {
174
+ registerPipelineStageOnce('bake', registerAwsBakeStage);
175
+ registerPipelineStageOnce('cloneServerGroup', registerAwsCloneServerGroupStage);
176
+ registerPipelineStageOnce('deployCloudFormation', registerDeployCloudFormationStackStage);
177
+ registerPipelineStageOnce('destroyServerGroup', registerAwsDestroyAsgStage);
178
+ registerPipelineStageOnce('disableServerGroup', registerAwsDisableAsgStage);
179
+ registerPipelineStageOnce('disableCluster', registerAwsDisableClusterStage);
180
+ registerPipelineStageOnce('enableServerGroup', registerAwsEnableAsgStage);
181
+ registerPipelineStageOnce('findImage', registerAwsFindAmiStage);
182
+ registerPipelineStageOnce('findImageFromTags', registerAwsFindImageFromTagsStage);
183
+ registerPipelineStageOnce('Aws.LambdaDeleteStage', registerLambdaDeleteStage, null);
184
+ registerPipelineStageOnce('Aws.LambdaDeploymentStage', registerLambdaDeployStage, null);
185
+ registerPipelineStageOnce('Aws.LambdaInvokeStage', registerLambdaInvokeStage, null);
186
+ registerPipelineStageOnce('modifyAwsScalingProcess', registerAwsModifyScalingProcessStage);
187
+ registerPipelineStageOnce('modifyWarmPool', registerAwsModifyWarmPoolStage);
188
+ registerPipelineStageOnce('resizeServerGroup', registerAwsResizeAsgStage);
189
+ registerPipelineStageOnce('rollbackCluster', registerAwsRollbackClusterStage);
190
+ registerPipelineStageOnce('Aws.LambdaUpdateCodeStage', registerLambdaUpdateStage, null);
191
+ registerPipelineStageOnce('Aws.LambdaTrafficRoutingStage', registerLambdaRouteStage, null);
192
+ registerPipelineStageOnce('scaleDownCluster', registerAwsScaleDownClusterStage);
193
+ registerPipelineStageOnce('shrinkCluster', registerAwsShrinkClusterStage);
194
+ registerPipelineStageOnce('upsertImageTags', registerAwsTagImageStage);
195
+ }
196
+
197
+ registerAmazonProvider();
198
+ registerAmazonPipelineStages();
204
199
 
205
200
  DeploymentStrategyRegistry.registerProvider('aws', [
206
201
  'custom',
@@ -0,0 +1,21 @@
1
+ import { FunctionReader } from '@spinnaker/core';
2
+
3
+ import { AwsFunctionTransformer } from './function';
4
+ import { AwsInstanceTypeService } from './instance/awsInstanceType.service';
5
+ import { AwsServerGroupTransformer } from './serverGroup/serverGroup.transformer';
6
+
7
+ let awsInstanceTypeService: AwsInstanceTypeService;
8
+ let awsServerGroupTransformer: AwsServerGroupTransformer;
9
+ let functionReader: FunctionReader;
10
+
11
+ export const AwsServices = {
12
+ get awsInstanceTypeService() {
13
+ return (awsInstanceTypeService = awsInstanceTypeService || new AwsInstanceTypeService());
14
+ },
15
+ get awsServerGroupTransformer() {
16
+ return (awsServerGroupTransformer = awsServerGroupTransformer || new AwsServerGroupTransformer());
17
+ },
18
+ get functionReader() {
19
+ return (functionReader = functionReader || new FunctionReader(new AwsFunctionTransformer()));
20
+ },
21
+ };
@@ -4,7 +4,7 @@ import { AccountService, CertificateReader } from '@spinnaker/core';
4
4
  import type { IAmazonCertificate } from '../domain';
5
5
 
6
6
  export class AmazonCertificateReader {
7
- public static listCertificates(): PromiseLike<{ [accountId: string]: IAmazonCertificate[] }> {
7
+ public static listCertificates(): Promise<{ [accountId: string]: IAmazonCertificate[] }> {
8
8
  return CertificateReader.listCertificatesByProvider('aws').then((certificates: IAmazonCertificate[]) => {
9
9
  // This account grouping should really go into clouddriver but since it's not, put it here for now.
10
10
  return AccountService.listAllAccounts('aws').then((allAccountDetails) => {
@@ -13,6 +13,14 @@ export interface IAmazonAsgTag {
13
13
  resourceType: string;
14
14
  }
15
15
 
16
+ export interface IAmazonWarmPoolConfiguration {
17
+ minSize?: number;
18
+ maxGroupPreparedCapacity?: number;
19
+ poolState?: 'Stopped' | 'Running' | 'Hibernated';
20
+ instanceReusePolicy?: { reuseOnScaleIn?: boolean };
21
+ status?: string;
22
+ }
23
+
16
24
  export interface IAmazonAsg extends IAsg {
17
25
  availabilityZones: string[];
18
26
  autoScalingGroupName: string;
@@ -26,6 +34,7 @@ export interface IAmazonAsg extends IAsg {
26
34
  suspendedProcesses?: ISuspendedProcess[];
27
35
  capacityRebalance?: boolean;
28
36
  tags: IAmazonAsgTag[];
37
+ warmPoolConfiguration?: IAmazonWarmPoolConfiguration;
29
38
  }
30
39
 
31
40
  export interface IAmazonServerGroup extends IServerGroup {