@spinnaker/google 0.0.0-2025.1-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 (438) hide show
  1. package/CHANGELOG.md +1198 -0
  2. package/LICENSE.txt +203 -0
  3. package/dist/address/address.reader.d.ts +15 -0
  4. package/dist/autoscalingPolicy/GceAutoScalingFieldLayout.d.ts +4 -0
  5. package/dist/autoscalingPolicy/IGceAutoscalingPolicy.d.ts +19 -0
  6. package/dist/autoscalingPolicy/autoscalingPolicy.write.service.d.ts +2 -0
  7. package/dist/autoscalingPolicy/components/basicSettings/basicSettings.component.d.ts +2 -0
  8. package/dist/autoscalingPolicy/components/metricSettings/GcePredictiveAutoscaling.d.ts +1 -0
  9. package/dist/autoscalingPolicy/components/metricSettings/metricSettings.component.d.ts +2 -0
  10. package/dist/autoscalingPolicy/components/scalingSchedules/scalingSchedules.component.d.ts +2 -0
  11. package/dist/autoscalingPolicy/components/scalingSchedules/timeZoneSelect.d.ts +13 -0
  12. package/dist/autoscalingPolicy/index.d.ts +2 -0
  13. package/dist/backendService/backendService.reader.d.ts +2 -0
  14. package/dist/cache/cacheConfigurer.service.d.ts +2 -0
  15. package/dist/cache/cacheRefresh.component.d.ts +1 -0
  16. package/dist/certificate/certificate.reader.d.ts +10 -0
  17. package/dist/common/footer.directive.d.ts +2 -0
  18. package/dist/common/xpnNaming.gce.service.d.ts +2 -0
  19. package/dist/domain/autoHealingPolicy.d.ts +12 -0
  20. package/dist/domain/backendService.d.ts +13 -0
  21. package/dist/domain/disk.d.ts +10 -0
  22. package/dist/domain/healthCheck.d.ts +18 -0
  23. package/dist/domain/index.d.ts +8 -0
  24. package/dist/domain/loadBalancer.d.ts +42 -0
  25. package/dist/domain/network.d.ts +10 -0
  26. package/dist/domain/serverGroup.d.ts +5 -0
  27. package/dist/domain/subnet.d.ts +12 -0
  28. package/dist/gce.logo2ae85d8704b1d6b8.png +0 -0
  29. package/dist/gce.module.d.ts +3 -0
  30. package/dist/gce.settings.d.ts +14 -0
  31. package/dist/gceNetworkSelectField.directive.d.ts +2 -0
  32. package/dist/gceRegionSelectField.directive.d.ts +2 -0
  33. package/dist/healthCheck/healthCheck.read.service.d.ts +5 -0
  34. package/dist/healthCheck/healthCheckUtils.d.ts +13 -0
  35. package/dist/help/gce.help.d.ts +1 -0
  36. package/dist/image/ImageSelect.d.ts +14 -0
  37. package/dist/image/image.reader.d.ts +11 -0
  38. package/dist/image/index.d.ts +2 -0
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.js +17717 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/instance/custom/customInstance.filter.d.ts +2 -0
  43. package/dist/instance/custom/customInstanceBuilder.gce.service.d.ts +2 -0
  44. package/dist/instance/details/instance.details.controller.d.ts +2 -0
  45. package/dist/instance/gceInstanceType.service.d.ts +2 -0
  46. package/dist/instance/gceInstanceTypeDisks.d.ts +15 -0
  47. package/dist/instance/gceMultiInstanceTask.transformer.d.ts +2 -0
  48. package/dist/interceptors/iap.interceptor.d.ts +8 -0
  49. package/dist/loadBalancer/configure/choice/gceLoadBalancerChoice.modal.d.ts +1 -0
  50. package/dist/loadBalancer/configure/choice/loadBalancerTypeToWizardMap.constant.d.ts +10 -0
  51. package/dist/loadBalancer/configure/common/addressSelector.component.d.ts +1 -0
  52. package/dist/loadBalancer/configure/common/commonLoadBalancer.controller.d.ts +17 -0
  53. package/dist/loadBalancer/configure/common/commonLoadBalancerCommandBuilder.service.d.ts +23 -0
  54. package/dist/loadBalancer/configure/common/healthCheck.component.d.ts +1 -0
  55. package/dist/loadBalancer/configure/common/sessionAffinityNameMaps.d.ts +5 -0
  56. package/dist/loadBalancer/configure/http/backendService/backendService.component.d.ts +2 -0
  57. package/dist/loadBalancer/configure/http/basicSettings/basicSettings.component.d.ts +2 -0
  58. package/dist/loadBalancer/configure/http/commandBuilder.service.d.ts +2 -0
  59. package/dist/loadBalancer/configure/http/createHttpLoadBalancer.controller.d.ts +2 -0
  60. package/dist/loadBalancer/configure/http/healthCheck/healthCheck.component.d.ts +2 -0
  61. package/dist/loadBalancer/configure/http/hostRule/hostRule.component.d.ts +2 -0
  62. package/dist/loadBalancer/configure/http/httpLoadBalancer.write.service.d.ts +2 -0
  63. package/dist/loadBalancer/configure/http/listeners/listener.component.d.ts +2 -0
  64. package/dist/loadBalancer/configure/http/pathRule/pathRule.component.d.ts +2 -0
  65. package/dist/loadBalancer/configure/http/templates.d.ts +42 -0
  66. package/dist/loadBalancer/configure/http/transformer.service.d.ts +2 -0
  67. package/dist/loadBalancer/configure/internal/gceCreateInternalLoadBalancer.controller.d.ts +1 -0
  68. package/dist/loadBalancer/configure/internalhttp/createInternalHttpLoadBalancer.controller.d.ts +3 -0
  69. package/dist/loadBalancer/configure/network/createLoadBalancer.controller.d.ts +2 -0
  70. package/dist/loadBalancer/configure/ssl/gceCreateSslLoadBalancer.controller.d.ts +1 -0
  71. package/dist/loadBalancer/configure/tcp/gceCreateTcpLoadBalancer.controller.d.ts +1 -0
  72. package/dist/loadBalancer/details/backendService/backendService.component.d.ts +1 -0
  73. package/dist/loadBalancer/details/backendService/sessionAffinity.filter.d.ts +1 -0
  74. package/dist/loadBalancer/details/deleteModal/deleteModal.controller.d.ts +1 -0
  75. package/dist/loadBalancer/details/healthCheck/healthCheck.component.d.ts +2 -0
  76. package/dist/loadBalancer/details/hostAndPathRules/hostAndPathRules.controller.d.ts +2 -0
  77. package/dist/loadBalancer/details/hostAndPathRules/hostAndPathRules.service.d.ts +2 -0
  78. package/dist/loadBalancer/details/hostAndPathRules/hostAndPathRulesButton.component.d.ts +2 -0
  79. package/dist/loadBalancer/details/loadBalancerDetail.controller.d.ts +2 -0
  80. package/dist/loadBalancer/details/loadBalancerType/loadBalancerType.component.d.ts +2 -0
  81. package/dist/loadBalancer/httpLoadBalancerUtils.service.d.ts +7 -0
  82. package/dist/loadBalancer/loadBalancer.setTransformer.d.ts +11 -0
  83. package/dist/loadBalancer/loadBalancer.transformer.d.ts +2 -0
  84. package/dist/pipeline/stages/bake/bakeExecutionDetails.controller.d.ts +2 -0
  85. package/dist/pipeline/stages/bake/gceBakeStage.d.ts +2 -0
  86. package/dist/pipeline/stages/cloneServerGroup/gceCloneServerGroupStage.d.ts +2 -0
  87. package/dist/pipeline/stages/destroyAsg/gceDestroyAsgStage.d.ts +2 -0
  88. package/dist/pipeline/stages/disableAsg/gceDisableAsgStage.d.ts +2 -0
  89. package/dist/pipeline/stages/disableCluster/gceDisableClusterStage.d.ts +2 -0
  90. package/dist/pipeline/stages/enableAsg/gceEnableAsgStage.d.ts +2 -0
  91. package/dist/pipeline/stages/findAmi/gceFindAmiStage.d.ts +2 -0
  92. package/dist/pipeline/stages/findImageFromTags/gceFindImageFromTagsStage.d.ts +2 -0
  93. package/dist/pipeline/stages/resizeAsg/gceResizeAsgStage.d.ts +2 -0
  94. package/dist/pipeline/stages/scaleDownCluster/gceScaleDownClusterStage.d.ts +2 -0
  95. package/dist/pipeline/stages/shrinkCluster/gceShrinkClusterStage.d.ts +2 -0
  96. package/dist/pipeline/stages/tagImage/gceTagImageStage.d.ts +2 -0
  97. package/dist/securityGroup/clone/cloneSecurityGroup.controller.d.ts +2 -0
  98. package/dist/securityGroup/configure/ConfigSecurityGroupMixin.controller.d.ts +2 -0
  99. package/dist/securityGroup/configure/createSecurityGroup.controller.d.ts +2 -0
  100. package/dist/securityGroup/configure/editSecurityGroup.controller.d.ts +2 -0
  101. package/dist/securityGroup/details/securityGroupDetail.controller.d.ts +2 -0
  102. package/dist/securityGroup/securityGroup.reader.d.ts +2 -0
  103. package/dist/securityGroup/securityGroup.transformer.d.ts +2 -0
  104. package/dist/securityGroup/securityGroupHelpText.service.d.ts +13 -0
  105. package/dist/serverGroup/configure/serverGroup.configure.gce.module.d.ts +2 -0
  106. package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +2 -0
  107. package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +2 -0
  108. package/dist/serverGroup/configure/wizard/advancedSettings/GceAcceleratorConfigurer.d.ts +16 -0
  109. package/dist/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.d.ts +2 -0
  110. package/dist/serverGroup/configure/wizard/advancedSettings/diskConfigurer.component.d.ts +1 -0
  111. package/dist/serverGroup/configure/wizard/advancedSettings/gceAccelerator.service.d.ts +25 -0
  112. package/dist/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicySelector.component.d.ts +1 -0
  113. package/dist/serverGroup/configure/wizard/autoScalingPolicy/autoScalingPolicySelector.component.d.ts +1 -0
  114. package/dist/serverGroup/configure/wizard/capacity/advancedCapacitySelector.component.d.ts +2 -0
  115. package/dist/serverGroup/configure/wizard/capacity/simpleCapacitySelector.component.d.ts +2 -0
  116. package/dist/serverGroup/configure/wizard/cloneServerGroup.gce.controller.d.ts +2 -0
  117. package/dist/serverGroup/configure/wizard/customInstance/CustomInstanceConfigurer.d.ts +26 -0
  118. package/dist/serverGroup/configure/wizard/customInstance/customInstanceConfigurer.component.d.ts +1 -0
  119. package/dist/serverGroup/configure/wizard/hiddenMetadataKeys.value.d.ts +2 -0
  120. package/dist/serverGroup/configure/wizard/loadBalancers/elSevenOptions/backendServiceSelector.component.d.ts +2 -0
  121. package/dist/serverGroup/configure/wizard/loadBalancers/elSevenOptions/elSevenOptionsGenerator.component.d.ts +2 -0
  122. package/dist/serverGroup/configure/wizard/loadBalancers/loadBalancerSelector.directive.d.ts +2 -0
  123. package/dist/serverGroup/configure/wizard/loadBalancingPolicy/loadBalancingPolicySelector.component.d.ts +2 -0
  124. package/dist/serverGroup/configure/wizard/location/basicSettings.controller.d.ts +2 -0
  125. package/dist/serverGroup/configure/wizard/securityGroups/securityGroupSelector.directive.d.ts +2 -0
  126. package/dist/serverGroup/configure/wizard/securityGroups/securityGroupsRemoved.directive.d.ts +2 -0
  127. package/dist/serverGroup/configure/wizard/securityGroups/tagManager.service.d.ts +2 -0
  128. package/dist/serverGroup/configure/wizard/securityGroups/tagSelector.component.d.ts +2 -0
  129. package/dist/serverGroup/configure/wizard/securityGroups/tagSelectorGenerator.component.d.ts +2 -0
  130. package/dist/serverGroup/configure/wizard/zones/regionalSelector.directive.d.ts +2 -0
  131. package/dist/serverGroup/configure/wizard/zones/targetShapeSelector.directive.d.ts +1 -0
  132. package/dist/serverGroup/configure/wizard/zones/zoneSelector.directive.d.ts +2 -0
  133. package/dist/serverGroup/details/ServerGroupDiskDescriptions.d.ts +1 -0
  134. package/dist/serverGroup/details/autoHealingPolicy/addAutoHealingPolicyButton.component.d.ts +1 -0
  135. package/dist/serverGroup/details/autoHealingPolicy/autoHealingPolicy.component.d.ts +1 -0
  136. package/dist/serverGroup/details/autoHealingPolicy/modal/upsertAutoHealingPolicy.modal.controller.d.ts +2 -0
  137. package/dist/serverGroup/details/autoscalingPolicy/addAutoscalingPolicyButton.component.d.ts +2 -0
  138. package/dist/serverGroup/details/autoscalingPolicy/autoscalingPolicy.directive.d.ts +2 -0
  139. package/dist/serverGroup/details/autoscalingPolicy/modal/GceScaleInControls.d.ts +1 -0
  140. package/dist/serverGroup/details/autoscalingPolicy/modal/upsertAutoscalingPolicy.modal.controller.d.ts +2 -0
  141. package/dist/serverGroup/details/resize/resizeAutoscalingPolicy.component.d.ts +2 -0
  142. package/dist/serverGroup/details/resize/resizeCapacity.component.d.ts +2 -0
  143. package/dist/serverGroup/details/resize/resizeServerGroup.controller.d.ts +2 -0
  144. package/dist/serverGroup/details/rollback/rollbackServerGroup.controller.d.ts +2 -0
  145. package/dist/serverGroup/details/serverGroup.details.gce.module.d.ts +2 -0
  146. package/dist/serverGroup/details/serverGroupDetails.gce.controller.d.ts +2 -0
  147. package/dist/serverGroup/details/stateful/MarkDiskStatefulButton.d.ts +10 -0
  148. package/dist/serverGroup/details/stateful/StatefulMIGService.d.ts +7 -0
  149. package/dist/serverGroup/details/stateful/UpdateBootImageButton.d.ts +10 -0
  150. package/dist/serverGroup/serverGroup.transformer.d.ts +2 -0
  151. package/dist/subnet/subnet.renderer.d.ts +2 -0
  152. package/dist/subnet/subnetSelectField.directive.d.ts +2 -0
  153. package/dist/validation/applicationName.validator.d.ts +2 -0
  154. package/package.json +45 -0
  155. package/src/address/address.reader.ts +61 -0
  156. package/src/applicationProviderFields/gceFields.html +13 -0
  157. package/src/autoscalingPolicy/GceAutoScalingFieldLayout.tsx +31 -0
  158. package/src/autoscalingPolicy/IGceAutoscalingPolicy.ts +22 -0
  159. package/src/autoscalingPolicy/autoscalingPolicy.write.service.js +83 -0
  160. package/src/autoscalingPolicy/components/basicSettings/basicSettings.component.html +71 -0
  161. package/src/autoscalingPolicy/components/basicSettings/basicSettings.component.js +20 -0
  162. package/src/autoscalingPolicy/components/metricSettings/GcePredictiveAutoscaling.tsx +54 -0
  163. package/src/autoscalingPolicy/components/metricSettings/metricSettings.component.html +208 -0
  164. package/src/autoscalingPolicy/components/metricSettings/metricSettings.component.js +108 -0
  165. package/src/autoscalingPolicy/components/scalingSchedules/scalingSchedules.component.html +84 -0
  166. package/src/autoscalingPolicy/components/scalingSchedules/scalingSchedules.component.js +61 -0
  167. package/src/autoscalingPolicy/components/scalingSchedules/standardTimezone.json +596 -0
  168. package/src/autoscalingPolicy/components/scalingSchedules/timeZoneSelect.tsx +63 -0
  169. package/src/autoscalingPolicy/gceAutoscalingFieldLayout.less +7 -0
  170. package/src/autoscalingPolicy/index.ts +2 -0
  171. package/src/backendService/backendService.reader.js +28 -0
  172. package/src/cache/cacheConfigurer.service.js +41 -0
  173. package/src/cache/cacheRefresh.component.html +17 -0
  174. package/src/cache/cacheRefresh.component.ts +53 -0
  175. package/src/cache/cacheRefreshTooltip.html +3 -0
  176. package/src/certificate/certificate.reader.ts +31 -0
  177. package/src/common/footer.directive.html +7 -0
  178. package/src/common/footer.directive.js +22 -0
  179. package/src/common/xpnNaming.gce.service.js +35 -0
  180. package/src/domain/autoHealingPolicy.ts +14 -0
  181. package/src/domain/backendService.ts +15 -0
  182. package/src/domain/disk.ts +10 -0
  183. package/src/domain/healthCheck.ts +19 -0
  184. package/src/domain/index.ts +8 -0
  185. package/src/domain/loadBalancer.ts +49 -0
  186. package/src/domain/network.ts +10 -0
  187. package/src/domain/serverGroup.ts +8 -0
  188. package/src/domain/subnet.ts +12 -0
  189. package/src/gce.module.ts +155 -0
  190. package/src/gce.settings.ts +23 -0
  191. package/src/gceNetworkSelectField.directive.js +22 -0
  192. package/src/gceRegionSelectField.directive.js +22 -0
  193. package/src/healthCheck/healthCheck.read.service.ts +55 -0
  194. package/src/healthCheck/healthCheckUtils.spec.ts +80 -0
  195. package/src/healthCheck/healthCheckUtils.ts +47 -0
  196. package/src/help/gce.help.ts +225 -0
  197. package/src/image/ImageSelect.tsx +66 -0
  198. package/src/image/image.reader.ts +19 -0
  199. package/src/image/index.ts +2 -0
  200. package/src/index.ts +1 -0
  201. package/src/instance/custom/customInstance.filter.js +26 -0
  202. package/src/instance/custom/customInstanceBuilder.gce.service.js +153 -0
  203. package/src/instance/details/instance.details.controller.js +518 -0
  204. package/src/instance/details/instance.details.controller.spec.js +27 -0
  205. package/src/instance/details/instanceDetails.html +248 -0
  206. package/src/instance/gceInstanceType.service.js +432 -0
  207. package/src/instance/gceInstanceType.service.spec.js +19 -0
  208. package/src/instance/gceInstanceTypeDisks.ts +261 -0
  209. package/src/instance/gceMultiInstanceTask.transformer.js +32 -0
  210. package/src/interceptors/iap.interceptor.ts +36 -0
  211. package/src/loadBalancer/configure/choice/gceLoadBalancerChoice.modal.html +33 -0
  212. package/src/loadBalancer/configure/choice/gceLoadBalancerChoice.modal.ts +49 -0
  213. package/src/loadBalancer/configure/choice/loadBalancerTypeToWizardMap.constant.ts +58 -0
  214. package/src/loadBalancer/configure/common/addressSelector.component.ts +47 -0
  215. package/src/loadBalancer/configure/common/commonAdvancedSettingsPage.html +32 -0
  216. package/src/loadBalancer/configure/common/commonCreateLoadBalancer.html +41 -0
  217. package/src/loadBalancer/configure/common/commonEditLoadBalancer.html +38 -0
  218. package/src/loadBalancer/configure/common/commonHealthCheckPage.html +16 -0
  219. package/src/loadBalancer/configure/common/commonLoadBalancer.controller.ts +56 -0
  220. package/src/loadBalancer/configure/common/commonLoadBalancerCommandBuilder.service.ts +87 -0
  221. package/src/loadBalancer/configure/common/healthCheck.component.html +164 -0
  222. package/src/loadBalancer/configure/common/healthCheck.component.ts +82 -0
  223. package/src/loadBalancer/configure/common/sessionAffinityNameMaps.ts +18 -0
  224. package/src/loadBalancer/configure/http/backendService/backendService.component.html +157 -0
  225. package/src/loadBalancer/configure/http/backendService/backendService.component.js +80 -0
  226. package/src/loadBalancer/configure/http/backendService/backendServices.html +57 -0
  227. package/src/loadBalancer/configure/http/basicSettings/basicSettings.component.html +105 -0
  228. package/src/loadBalancer/configure/http/basicSettings/basicSettings.component.js +46 -0
  229. package/src/loadBalancer/configure/http/basicSettings/basicSettings.html +6 -0
  230. package/src/loadBalancer/configure/http/commandBuilder.service.js +404 -0
  231. package/src/loadBalancer/configure/http/createHttpLoadBalancer.controller.js +162 -0
  232. package/src/loadBalancer/configure/http/createHttpLoadBalancer.html +39 -0
  233. package/src/loadBalancer/configure/http/defaultService/defaultService.html +24 -0
  234. package/src/loadBalancer/configure/http/editHttpLoadBalancer.html +36 -0
  235. package/src/loadBalancer/configure/http/healthCheck/healthCheck.component.html +169 -0
  236. package/src/loadBalancer/configure/http/healthCheck/healthCheck.component.js +69 -0
  237. package/src/loadBalancer/configure/http/healthCheck/healthChecks.html +55 -0
  238. package/src/loadBalancer/configure/http/hostRule/hostRule.component.html +60 -0
  239. package/src/loadBalancer/configure/http/hostRule/hostRule.component.js +35 -0
  240. package/src/loadBalancer/configure/http/hostRule/hostRules.html +16 -0
  241. package/src/loadBalancer/configure/http/httpLoadBalancer.write.service.js +56 -0
  242. package/src/loadBalancer/configure/http/httpLoadBalancerWizard.component.less +24 -0
  243. package/src/loadBalancer/configure/http/listeners/listener.component.html +190 -0
  244. package/src/loadBalancer/configure/http/listeners/listener.component.js +82 -0
  245. package/src/loadBalancer/configure/http/listeners/listeners.html +17 -0
  246. package/src/loadBalancer/configure/http/pathRule/pathRule.component.html +51 -0
  247. package/src/loadBalancer/configure/http/pathRule/pathRule.component.js +16 -0
  248. package/src/loadBalancer/configure/http/templates.ts +48 -0
  249. package/src/loadBalancer/configure/http/transformer.service.js +176 -0
  250. package/src/loadBalancer/configure/internal/createLoadBalancerProperties.html +98 -0
  251. package/src/loadBalancer/configure/internal/gceCreateInternalLoadBalancer.controller.ts +276 -0
  252. package/src/loadBalancer/configure/internal/listener.html +41 -0
  253. package/src/loadBalancer/configure/internalhttp/createInternalHttpLoadBalancer.controller.ts +173 -0
  254. package/src/loadBalancer/configure/network/advancedSettings.html +54 -0
  255. package/src/loadBalancer/configure/network/createLoadBalancer.controller.js +224 -0
  256. package/src/loadBalancer/configure/network/createLoadBalancer.controller.spec.js +76 -0
  257. package/src/loadBalancer/configure/network/createLoadBalancer.html +25 -0
  258. package/src/loadBalancer/configure/network/createLoadBalancerProperties.html +86 -0
  259. package/src/loadBalancer/configure/network/editLoadBalancer.html +29 -0
  260. package/src/loadBalancer/configure/network/healthCheck.html +36 -0
  261. package/src/loadBalancer/configure/network/listeners.html +55 -0
  262. package/src/loadBalancer/configure/ssl/backendService.html +31 -0
  263. package/src/loadBalancer/configure/ssl/createLoadBalancerProperties.html +86 -0
  264. package/src/loadBalancer/configure/ssl/gceCreateSslLoadBalancer.controller.ts +236 -0
  265. package/src/loadBalancer/configure/ssl/listener.html +43 -0
  266. package/src/loadBalancer/configure/tcp/backendService.html +31 -0
  267. package/src/loadBalancer/configure/tcp/createLoadBalancerProperties.html +86 -0
  268. package/src/loadBalancer/configure/tcp/gceCreateTcpLoadBalancer.controller.ts +226 -0
  269. package/src/loadBalancer/configure/tcp/listener.html +15 -0
  270. package/src/loadBalancer/details/backendService/backendService.component.ts +23 -0
  271. package/src/loadBalancer/details/backendService/sessionAffinity.filter.ts +11 -0
  272. package/src/loadBalancer/details/deleteModal/deleteModal.controller.ts +105 -0
  273. package/src/loadBalancer/details/deleteModal/deleteModal.html +31 -0
  274. package/src/loadBalancer/details/healthCheck/healthCheck.component.html +14 -0
  275. package/src/loadBalancer/details/healthCheck/healthCheck.component.js +13 -0
  276. package/src/loadBalancer/details/hostAndPathRules/hostAndPathRules.controller.js +23 -0
  277. package/src/loadBalancer/details/hostAndPathRules/hostAndPathRules.modal.html +40 -0
  278. package/src/loadBalancer/details/hostAndPathRules/hostAndPathRules.service.js +41 -0
  279. package/src/loadBalancer/details/hostAndPathRules/hostAndPathRulesButton.component.js +39 -0
  280. package/src/loadBalancer/details/loadBalancerDetail.controller.js +260 -0
  281. package/src/loadBalancer/details/loadBalancerDetail.controller.spec.js +41 -0
  282. package/src/loadBalancer/details/loadBalancerDetails.html +202 -0
  283. package/src/loadBalancer/details/loadBalancerType/loadBalancerType.component.js +29 -0
  284. package/src/loadBalancer/httpLoadBalancerUtils.service.ts +42 -0
  285. package/src/loadBalancer/loadBalancer.setTransformer.ts +55 -0
  286. package/src/loadBalancer/loadBalancer.transformer.js +168 -0
  287. package/src/logo/gce.logo.less +6 -0
  288. package/src/logo/gce.logo.png +0 -0
  289. package/src/logo/gce.logo.svg +30 -0
  290. package/src/networkSelectField.directive.html +14 -0
  291. package/src/pipeline/stages/bake/bakeExecutionDetails.controller.js +40 -0
  292. package/src/pipeline/stages/bake/bakeExecutionDetails.html +60 -0
  293. package/src/pipeline/stages/bake/bakeStage.html +117 -0
  294. package/src/pipeline/stages/bake/gceBakeStage.js +171 -0
  295. package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStage.html +99 -0
  296. package/src/pipeline/stages/cloneServerGroup/cloneServerGroupStepLabel.html +1 -0
  297. package/src/pipeline/stages/cloneServerGroup/gceCloneServerGroupStage.js +83 -0
  298. package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +9 -0
  299. package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +1 -0
  300. package/src/pipeline/stages/destroyAsg/gceDestroyAsgStage.js +62 -0
  301. package/src/pipeline/stages/disableAsg/disableAsgStage.html +11 -0
  302. package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +1 -0
  303. package/src/pipeline/stages/disableAsg/gceDisableAsgStage.js +68 -0
  304. package/src/pipeline/stages/disableCluster/disableClusterStage.html +26 -0
  305. package/src/pipeline/stages/disableCluster/gceDisableClusterStage.js +79 -0
  306. package/src/pipeline/stages/enableAsg/enableAsgStage.html +11 -0
  307. package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +1 -0
  308. package/src/pipeline/stages/enableAsg/gceEnableAsgStage.js +65 -0
  309. package/src/pipeline/stages/findAmi/findAmiStage.html +20 -0
  310. package/src/pipeline/stages/findAmi/gceFindAmiStage.js +79 -0
  311. package/src/pipeline/stages/findImageFromTags/findImageFromTagsExecutionDetails.html +40 -0
  312. package/src/pipeline/stages/findImageFromTags/findImageFromTagsStage.html +8 -0
  313. package/src/pipeline/stages/findImageFromTags/gceFindImageFromTagsStage.js +35 -0
  314. package/src/pipeline/stages/resizeAsg/gceResizeAsgStage.js +125 -0
  315. package/src/pipeline/stages/resizeAsg/resizeAsgStage.html +97 -0
  316. package/src/pipeline/stages/resizeAsg/resizeAsgStepLabel.html +1 -0
  317. package/src/pipeline/stages/scaleDownCluster/gceScaleDownClusterStage.js +78 -0
  318. package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.html +35 -0
  319. package/src/pipeline/stages/shrinkCluster/gceShrinkClusterStage.js +73 -0
  320. package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +34 -0
  321. package/src/pipeline/stages/tagImage/gceTagImageStage.js +36 -0
  322. package/src/pipeline/stages/tagImage/tagImageExecutionDetails.html +39 -0
  323. package/src/pipeline/stages/tagImage/tagImageStage.html +14 -0
  324. package/src/regionSelectField.directive.html +18 -0
  325. package/src/securityGroup/clone/cloneSecurityGroup.controller.js +85 -0
  326. package/src/securityGroup/clone/cloneSecurityGroup.html +25 -0
  327. package/src/securityGroup/configure/ConfigSecurityGroupMixin.controller.js +318 -0
  328. package/src/securityGroup/configure/createSecurityGroup.controller.js +62 -0
  329. package/src/securityGroup/configure/createSecurityGroup.html +25 -0
  330. package/src/securityGroup/configure/createSecurityGroupIngress.html +81 -0
  331. package/src/securityGroup/configure/createSecurityGroupProperties.html +70 -0
  332. package/src/securityGroup/configure/createSecurityGroupSourceFilters.html +56 -0
  333. package/src/securityGroup/configure/createSecurityGroupTargets.html +43 -0
  334. package/src/securityGroup/configure/editSecurityGroup.controller.js +132 -0
  335. package/src/securityGroup/configure/editSecurityGroup.html +26 -0
  336. package/src/securityGroup/configure/securityGroup.configure.less +22 -0
  337. package/src/securityGroup/details/securityGroupDetail.controller.js +258 -0
  338. package/src/securityGroup/details/securityGroupDetail.html +171 -0
  339. package/src/securityGroup/securityGroup.reader.js +15 -0
  340. package/src/securityGroup/securityGroup.transformer.js +18 -0
  341. package/src/securityGroup/securityGroupHelpText.service.spec.ts +102 -0
  342. package/src/securityGroup/securityGroupHelpText.service.ts +83 -0
  343. package/src/serverGroup/configure/serverGroup.configure.gce.module.js +59 -0
  344. package/src/serverGroup/configure/serverGroupCommandBuilder.service.js +620 -0
  345. package/src/serverGroup/configure/serverGroupConfiguration.service.js +781 -0
  346. package/src/serverGroup/configure/wizard/advancedSettings/GceAcceleratorConfigurer.tsx +222 -0
  347. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.directive.html +277 -0
  348. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.html +9 -0
  349. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.js +71 -0
  350. package/src/serverGroup/configure/wizard/advancedSettings/advancedSettingsSelector.directive.spec.js +58 -0
  351. package/src/serverGroup/configure/wizard/advancedSettings/diskConfigurer.component.ts +199 -0
  352. package/src/serverGroup/configure/wizard/advancedSettings/gceAccelerator.service.spec.ts +108 -0
  353. package/src/serverGroup/configure/wizard/advancedSettings/gceAccelerator.service.ts +74 -0
  354. package/src/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicy.html +20 -0
  355. package/src/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicySelector.component.html +90 -0
  356. package/src/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicySelector.component.ts +70 -0
  357. package/src/serverGroup/configure/wizard/autoScalingPolicy/autoScalingPolicy.html +20 -0
  358. package/src/serverGroup/configure/wizard/autoScalingPolicy/autoScalingPolicySelector.component.html +21 -0
  359. package/src/serverGroup/configure/wizard/autoScalingPolicy/autoScalingPolicySelector.component.js +47 -0
  360. package/src/serverGroup/configure/wizard/autoScalingPolicy/autoScalingPolicySelector.less +15 -0
  361. package/src/serverGroup/configure/wizard/capacity/advancedCapacitySelector.component.html +42 -0
  362. package/src/serverGroup/configure/wizard/capacity/advancedCapacitySelector.component.js +16 -0
  363. package/src/serverGroup/configure/wizard/capacity/capacity.html +16 -0
  364. package/src/serverGroup/configure/wizard/capacity/simpleCapacitySelector.component.html +14 -0
  365. package/src/serverGroup/configure/wizard/capacity/simpleCapacitySelector.component.js +22 -0
  366. package/src/serverGroup/configure/wizard/capacity/simpleCapacitySelector.component.spec.js +31 -0
  367. package/src/serverGroup/configure/wizard/capacity/zones.html +7 -0
  368. package/src/serverGroup/configure/wizard/cloneServerGroup.gce.controller.js +476 -0
  369. package/src/serverGroup/configure/wizard/customInstance/CustomInstanceConfigurer.tsx +166 -0
  370. package/src/serverGroup/configure/wizard/customInstance/customInstanceBuilder.html +13 -0
  371. package/src/serverGroup/configure/wizard/customInstance/customInstanceConfigurer.component.less +9 -0
  372. package/src/serverGroup/configure/wizard/customInstance/customInstanceConfigurer.component.ts +21 -0
  373. package/src/serverGroup/configure/wizard/hiddenMetadataKeys.value.js +15 -0
  374. package/src/serverGroup/configure/wizard/instanceType/instanceType.html +11 -0
  375. package/src/serverGroup/configure/wizard/loadBalancers/elSevenOptions/backendServiceSelector.component.html +21 -0
  376. package/src/serverGroup/configure/wizard/loadBalancers/elSevenOptions/backendServiceSelector.component.js +33 -0
  377. package/src/serverGroup/configure/wizard/loadBalancers/elSevenOptions/elSevenOptionsGenerator.component.js +42 -0
  378. package/src/serverGroup/configure/wizard/loadBalancers/loadBalancerSelector.directive.html +53 -0
  379. package/src/serverGroup/configure/wizard/loadBalancers/loadBalancerSelector.directive.js +55 -0
  380. package/src/serverGroup/configure/wizard/loadBalancers/loadBalancers.html +5 -0
  381. package/src/serverGroup/configure/wizard/loadBalancingPolicy/loadBalancingPolicySelector.component.html +182 -0
  382. package/src/serverGroup/configure/wizard/loadBalancingPolicy/loadBalancingPolicySelector.component.less +11 -0
  383. package/src/serverGroup/configure/wizard/loadBalancingPolicy/loadBalancingPolicySelector.component.ts +149 -0
  384. package/src/serverGroup/configure/wizard/location/basicSettings.controller.js +139 -0
  385. package/src/serverGroup/configure/wizard/location/basicSettings.html +167 -0
  386. package/src/serverGroup/configure/wizard/securityGroups/securityGroupSelector.directive.html +66 -0
  387. package/src/serverGroup/configure/wizard/securityGroups/securityGroupSelector.directive.js +48 -0
  388. package/src/serverGroup/configure/wizard/securityGroups/securityGroups.html +4 -0
  389. package/src/serverGroup/configure/wizard/securityGroups/securityGroupsRemoved.directive.html +14 -0
  390. package/src/serverGroup/configure/wizard/securityGroups/securityGroupsRemoved.directive.js +25 -0
  391. package/src/serverGroup/configure/wizard/securityGroups/tagManager.service.js +208 -0
  392. package/src/serverGroup/configure/wizard/securityGroups/tagSelector.component.html +26 -0
  393. package/src/serverGroup/configure/wizard/securityGroups/tagSelector.component.js +31 -0
  394. package/src/serverGroup/configure/wizard/securityGroups/tagSelectorGenerator.component.js +44 -0
  395. package/src/serverGroup/configure/wizard/serverGroupWizard.html +52 -0
  396. package/src/serverGroup/configure/wizard/templateSelection/templateSelection.html +9 -0
  397. package/src/serverGroup/configure/wizard/zones/regionalSelector.directive.html +13 -0
  398. package/src/serverGroup/configure/wizard/zones/regionalSelector.directive.js +21 -0
  399. package/src/serverGroup/configure/wizard/zones/targetShapeSelector.directive.html +13 -0
  400. package/src/serverGroup/configure/wizard/zones/targetShapeSelector.directive.ts +20 -0
  401. package/src/serverGroup/configure/wizard/zones/zoneSelector.directive.html +24 -0
  402. package/src/serverGroup/configure/wizard/zones/zoneSelector.directive.js +21 -0
  403. package/src/serverGroup/details/ServerGroupDiskDescriptions.tsx +97 -0
  404. package/src/serverGroup/details/autoHealingPolicy/addAutoHealingPolicyButton.component.ts +38 -0
  405. package/src/serverGroup/details/autoHealingPolicy/autoHealingPolicy.component.ts +73 -0
  406. package/src/serverGroup/details/autoHealingPolicy/modal/upsertAutoHealingPolicy.modal.controller.ts +88 -0
  407. package/src/serverGroup/details/autoHealingPolicy/modal/upsertAutoHealingPolicy.modal.html +29 -0
  408. package/src/serverGroup/details/autoHealingPolicy/modal/upsertAutoHealingPolicy.modal.less +13 -0
  409. package/src/serverGroup/details/autoscalingPolicy/addAutoscalingPolicyButton.component.js +38 -0
  410. package/src/serverGroup/details/autoscalingPolicy/autoscalingPolicy.directive.html +49 -0
  411. package/src/serverGroup/details/autoscalingPolicy/autoscalingPolicy.directive.js +138 -0
  412. package/src/serverGroup/details/autoscalingPolicy/modal/GceScaleInControls.tsx +137 -0
  413. package/src/serverGroup/details/autoscalingPolicy/modal/upsertAutoscalingPolicy.modal.controller.js +56 -0
  414. package/src/serverGroup/details/autoscalingPolicy/modal/upsertAutoscalingPolicy.modal.html +38 -0
  415. package/src/serverGroup/details/autoscalingPolicy/modal/upsertAutoscalingPolicy.modal.less +17 -0
  416. package/src/serverGroup/details/resize/resizeAutoscalingPolicy.component.html +55 -0
  417. package/src/serverGroup/details/resize/resizeAutoscalingPolicy.component.js +60 -0
  418. package/src/serverGroup/details/resize/resizeCapacity.component.html +36 -0
  419. package/src/serverGroup/details/resize/resizeCapacity.component.js +46 -0
  420. package/src/serverGroup/details/resize/resizeServerGroup.controller.js +64 -0
  421. package/src/serverGroup/details/resize/resizeServerGroup.controller.spec.js +119 -0
  422. package/src/serverGroup/details/resize/resizeServerGroup.html +41 -0
  423. package/src/serverGroup/details/rollback/rollbackServerGroup.controller.js +73 -0
  424. package/src/serverGroup/details/rollback/rollbackServerGroup.html +43 -0
  425. package/src/serverGroup/details/serverGroup.details.gce.module.js +17 -0
  426. package/src/serverGroup/details/serverGroupDetails.gce.controller.js +511 -0
  427. package/src/serverGroup/details/serverGroupDetails.gce.controller.spec.js +26 -0
  428. package/src/serverGroup/details/serverGroupDetails.html +359 -0
  429. package/src/serverGroup/details/serverGroupDetails.less +3 -0
  430. package/src/serverGroup/details/stateful/MarkDiskStatefulButton.tsx +41 -0
  431. package/src/serverGroup/details/stateful/StatefulMIGService.ts +49 -0
  432. package/src/serverGroup/details/stateful/UpdateBootImageButton.tsx +108 -0
  433. package/src/serverGroup/serverGroup.transformer.js +64 -0
  434. package/src/serverGroup/serverGroup.transformer.spec.js +59 -0
  435. package/src/subnet/subnet.renderer.js +34 -0
  436. package/src/subnet/subnetSelectField.directive.html +21 -0
  437. package/src/subnet/subnetSelectField.directive.js +24 -0
  438. package/src/validation/applicationName.validator.js +114 -0
@@ -0,0 +1,149 @@
1
+ import type { IComponentOptions, IController } from 'angular';
2
+ import { module } from 'angular';
3
+ import { chain, get, has, intersection, set, without } from 'lodash';
4
+
5
+ import type { IGceBackendService, INamedPort } from '../../../../domain';
6
+
7
+ import './loadBalancingPolicySelector.component.less';
8
+
9
+ class GceLoadBalancingPolicySelectorController implements IController {
10
+ public maxPort = 65535;
11
+ public command: any;
12
+ [key: string]: any;
13
+ public globalBackendServices: IGceBackendService[];
14
+
15
+ public static $inject = ['gceBackendServiceReader'];
16
+ constructor(private gceBackendServiceReader: any) {}
17
+
18
+ public setModel(propertyName: string, viewValue: number): void {
19
+ set(this, propertyName, viewValue / 100);
20
+ }
21
+
22
+ public setView(propertyName: string, modelValue: number): void {
23
+ this[propertyName] = this.decimalToPercent(modelValue);
24
+ }
25
+
26
+ public onBalancingModeChange(mode: string): void {
27
+ const keys: string[] = ['maxUtilization', 'maxRatePerInstance', 'maxConnectionsPerInstance'];
28
+ let toDelete: string[] = [];
29
+ switch (mode) {
30
+ case 'RATE':
31
+ toDelete = without(keys, 'maxRatePerInstance');
32
+ break;
33
+ case 'UTILIZATION':
34
+ toDelete = without(keys, 'maxUtilization');
35
+ break;
36
+ case 'CONNECTION':
37
+ toDelete = without(keys, 'maxConnectionsPerInstance');
38
+ break;
39
+ default:
40
+ break;
41
+ }
42
+
43
+ toDelete.forEach((key) => delete this.command.loadBalancingPolicy[key]);
44
+ }
45
+
46
+ public getBalancingModes(): string[] {
47
+ let balancingModes: string[] = [];
48
+ /*
49
+ * Three cases:
50
+ * - If we have only HTTP(S) load balancers, our balancing mode can be RATE or UTILIZATION.
51
+ * - If we have only SSL/TCP load balancers, our balancing mode can be CONNECTION or UTILIZATION.
52
+ * - If we have both, only UTILIZATION.
53
+ * */
54
+ if (has(this, 'command.backingData.filtered.loadBalancerIndex')) {
55
+ const index = this.command.backingData.filtered.loadBalancerIndex;
56
+ const selected = this.command.loadBalancers;
57
+
58
+ const hasSsl = selected.find((loadBalancer: any) => get(index[loadBalancer], 'loadBalancerType') === 'SSL');
59
+ const hasTcp = selected.find((loadBalancer: any) => get(index[loadBalancer], 'loadBalancerType') === 'TCP');
60
+ const hasHttp = selected.find((loadBalancer: any) => get(index[loadBalancer], 'loadBalancerType') === 'HTTP');
61
+
62
+ if ((hasSsl || hasTcp) && hasHttp) {
63
+ balancingModes = ['UTILIZATION'];
64
+ } else if (hasSsl || hasTcp) {
65
+ balancingModes = ['CONNECTION', 'UTILIZATION'];
66
+ } else {
67
+ balancingModes = ['RATE', 'UTILIZATION'];
68
+ }
69
+ }
70
+
71
+ if (!balancingModes.includes(get(this.command, 'loadBalancingPolicy.balancingMode') as string)) {
72
+ set(this.command, 'loadBalancingPolicy.balancingMode', balancingModes[0]);
73
+ }
74
+ return balancingModes;
75
+ }
76
+
77
+ public $onInit(): void {
78
+ this.gceBackendServiceReader.listBackendServices('globalBackendService').then((services: IGceBackendService[]) => {
79
+ this.globalBackendServices = services;
80
+ });
81
+ }
82
+
83
+ public $onDestroy(): void {
84
+ delete this.command.loadBalancingPolicy;
85
+ }
86
+
87
+ public addNamedPort() {
88
+ if (!get(this.command, 'loadBalancingPolicy.namedPorts')) {
89
+ set(this.command, 'loadBalancingPolicy.namedPorts', []);
90
+ }
91
+
92
+ this.command.loadBalancingPolicy.namedPorts.push({ name: '', port: 80 });
93
+ }
94
+
95
+ public removeNamedPort(index: number) {
96
+ this.command.loadBalancingPolicy.namedPorts.splice(index, 1);
97
+ }
98
+
99
+ public getPortNames(): string[] {
100
+ const index = this.command.backingData.filtered.loadBalancerIndex;
101
+ const selected = this.command.loadBalancers;
102
+ const inUsePortNames = this.command.loadBalancingPolicy.namedPorts.map((namedPort: INamedPort) => namedPort.name);
103
+
104
+ const getThem = (globalBackendServices: IGceBackendService[], loadBalancer: string): string[] => {
105
+ switch (get(index[loadBalancer], 'loadBalancerType')) {
106
+ case 'SSL':
107
+ case 'TCP':
108
+ case 'HTTP': {
109
+ const lbBackendServices: string[] = get(index[loadBalancer], 'backendServices');
110
+ const filteredBackendServices = globalBackendServices.filter((service: IGceBackendService) =>
111
+ lbBackendServices.includes(service.name),
112
+ );
113
+ const portNames = filteredBackendServices.map((service: IGceBackendService) => service.portName);
114
+ const portNameIntersection = intersection(portNames, inUsePortNames);
115
+ return portNames.filter((portName) => !portNameIntersection.includes(portName));
116
+ }
117
+ default:
118
+ return [];
119
+ }
120
+ };
121
+
122
+ return chain(selected)
123
+ .flatMap((lbName: string) => getThem(this.globalBackendServices, lbName))
124
+ .uniq()
125
+ .value();
126
+ }
127
+
128
+ private decimalToPercent(value: number): number {
129
+ if (value === 0) {
130
+ return 0;
131
+ }
132
+ return value ? Math.round(value * 100) : undefined;
133
+ }
134
+ }
135
+
136
+ const gceLoadBalancingPolicySelectorComponent: IComponentOptions = {
137
+ bindings: {
138
+ command: '=',
139
+ },
140
+ controller: GceLoadBalancingPolicySelectorController,
141
+ templateUrl: require('./loadBalancingPolicySelector.component.html'),
142
+ };
143
+
144
+ export const GCE_LOAD_BALANCING_POLICY_SELECTOR = 'spinnaker.gce.loadBalancingPolicy.selector.component';
145
+
146
+ module(GCE_LOAD_BALANCING_POLICY_SELECTOR, []).component(
147
+ 'gceLoadBalancingPolicySelector',
148
+ gceLoadBalancingPolicySelectorComponent,
149
+ );
@@ -0,0 +1,139 @@
1
+ 'use strict';
2
+
3
+ import UIROUTER_ANGULARJS from '@uirouter/angularjs';
4
+ import * as angular from 'angular';
5
+ import ANGULAR_UI_BOOTSTRAP from 'angular-ui-bootstrap';
6
+ import { from as observableFrom, Subject } from 'rxjs';
7
+ import { switchMap } from 'rxjs/operators';
8
+
9
+ import {
10
+ ArtifactTypePatterns,
11
+ excludeAllTypesExcept,
12
+ ExpectedArtifactSelectorViewController,
13
+ IMAGE_READER,
14
+ NgGCEImageArtifactDelegate,
15
+ } from '@spinnaker/core';
16
+
17
+ import { GOOGLE_GCENETWORKSELECTFIELD_DIRECTIVE } from '../../../../gceNetworkSelectField.directive';
18
+ import { GOOGLE_GCEREGIONSELECTFIELD_DIRECTIVE } from '../../../../gceRegionSelectField.directive';
19
+ import { GceImageReader } from '../../../../image';
20
+ import { GOOGLE_SUBNET_SUBNETSELECTFIELD_DIRECTIVE } from '../../../../subnet/subnetSelectField.directive';
21
+
22
+ export const GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_LOCATION_BASICSETTINGS_CONTROLLER =
23
+ 'spinnaker.google.serverGroup.configure.wizard.basicSettings.controller';
24
+ export const name = GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_LOCATION_BASICSETTINGS_CONTROLLER; // for backwards compatibility
25
+ angular
26
+ .module(GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_LOCATION_BASICSETTINGS_CONTROLLER, [
27
+ UIROUTER_ANGULARJS,
28
+ ANGULAR_UI_BOOTSTRAP,
29
+ IMAGE_READER,
30
+ GOOGLE_GCEREGIONSELECTFIELD_DIRECTIVE,
31
+ GOOGLE_GCENETWORKSELECTFIELD_DIRECTIVE,
32
+ GOOGLE_SUBNET_SUBNETSELECTFIELD_DIRECTIVE,
33
+ ])
34
+ .controller('gceServerGroupBasicSettingsCtrl', [
35
+ '$scope',
36
+ '$controller',
37
+ '$uibModalStack',
38
+ '$state',
39
+ function ($scope, $controller, $uibModalStack, $state) {
40
+ function fetchImagesForAccount() {
41
+ return observableFrom(
42
+ GceImageReader.findImages({
43
+ account: $scope.command.credentials,
44
+ provider: $scope.command.selectedProvider,
45
+ q: '*',
46
+ }),
47
+ );
48
+ }
49
+
50
+ const imageSearchResultsStream = new Subject();
51
+ imageSearchResultsStream.pipe(switchMap(fetchImagesForAccount)).subscribe((images) => {
52
+ $scope.command.backingData.allImages = images;
53
+ });
54
+
55
+ this.accountUpdated = () => {
56
+ imageSearchResultsStream.next();
57
+ };
58
+
59
+ this.selectImage = (image) => {
60
+ // called from a React component
61
+ $scope.$apply(() => {
62
+ $scope.command.image = image;
63
+ });
64
+ };
65
+
66
+ angular.extend(
67
+ this,
68
+ $controller('BasicSettingsMixin', {
69
+ $scope: $scope,
70
+ imageReader: GceImageReader,
71
+ $uibModalStack: $uibModalStack,
72
+ $state: $state,
73
+ }),
74
+ );
75
+
76
+ this.stackPattern = {
77
+ test: function (stack) {
78
+ const pattern = $scope.command.viewState.templatingEnabled ? /^([a-zA-Z0-9]*(\${.+})*)*$/ : /^[a-zA-Z0-9]*$/;
79
+ return pattern.test(stack);
80
+ },
81
+ };
82
+
83
+ this.detailPattern = {
84
+ test: function (detail) {
85
+ const pattern = $scope.command.viewState.templatingEnabled
86
+ ? /^([a-zA-Z0-9-]*(\${.+})*)*$/
87
+ : /^[a-zA-Z0-9-]*$/;
88
+ return pattern.test(detail);
89
+ },
90
+ };
91
+
92
+ this.getSubnetPlaceholder = () => {
93
+ if (!$scope.command.region) {
94
+ return '(Select an account)';
95
+ } else if ($scope.command.viewState.autoCreateSubnets) {
96
+ return '(Subnet will be automatically selected)';
97
+ } else if ($scope.command.viewState.autoCreateSubnets === null) {
98
+ return '(Subnets not supported)';
99
+ } else {
100
+ return null;
101
+ }
102
+ };
103
+
104
+ this.imageSources = ['artifact', 'priorStage'];
105
+
106
+ this.excludedImageArtifactTypes = excludeAllTypesExcept(ArtifactTypePatterns.CUSTOM_OBJECT);
107
+
108
+ this.onImageArtifactEdited = (artifact) => {
109
+ $scope.$applyAsync(() => {
110
+ $scope.command.imageArtifactId = null;
111
+ $scope.command.imageArtifact = artifact;
112
+ });
113
+ };
114
+
115
+ this.onImageArtifactSelected = (expectedArtifact) => {
116
+ this.onChangeImageArtifactId(expectedArtifact.id);
117
+ };
118
+
119
+ this.onChangeImageArtifactId = (artifactId) => {
120
+ $scope.$applyAsync(() => {
121
+ $scope.command.imageArtifactId = artifactId;
122
+ $scope.command.imageArtifact = null;
123
+ });
124
+ };
125
+
126
+ this.onImageArtifactAccountSelected = (accountName) => {
127
+ $scope.$applyAsync(() => {
128
+ $scope.command.imageAccountName = accountName;
129
+ });
130
+ };
131
+
132
+ const gceImageDelegate = new NgGCEImageArtifactDelegate($scope);
133
+ $scope.gceImageArtifact = {
134
+ showCreateArtifactForm: false,
135
+ delegate: gceImageDelegate,
136
+ controller: new ExpectedArtifactSelectorViewController(gceImageDelegate),
137
+ };
138
+ },
139
+ ]);
@@ -0,0 +1,167 @@
1
+ <div class="container-fluid form-horizontal" ng-controller="gceServerGroupBasicSettingsCtrl as basicSettingsCtrl">
2
+ <ng-form name="basicSettings">
3
+ <div class="form-group">
4
+ <div class="col-md-3 sm-label-right">Account</div>
5
+ <div class="col-md-7">
6
+ <account-select-field
7
+ component="command"
8
+ field="credentials"
9
+ accounts="command.backingData.accounts"
10
+ provider="'gce'"
11
+ on-change="basicSettingsCtrl.accountUpdated()"
12
+ ></account-select-field>
13
+ </div>
14
+ </div>
15
+ <gce-region-select-field
16
+ label-columns="3"
17
+ component="command"
18
+ field="region"
19
+ account="command.credentials"
20
+ regions="command.backingData.filtered.regions"
21
+ ></gce-region-select-field>
22
+ <gce-network-select-field
23
+ label-columns="3"
24
+ component="command"
25
+ field="network"
26
+ account="command.credentials"
27
+ networks="command.backingData.filtered.networks"
28
+ ></gce-network-select-field>
29
+ <gce-subnet-select-field
30
+ label-columns="3"
31
+ help-key="gce.serverGroup.subnet"
32
+ component="command"
33
+ field="subnet"
34
+ account="command.credentials"
35
+ region="command.region"
36
+ subnets="command.backingData.filtered.subnets"
37
+ subnet-placeholder="basicSettingsCtrl.getSubnetPlaceholder()"
38
+ auto-create-subnets="command.viewState.autoCreateSubnets"
39
+ >
40
+ </gce-subnet-select-field>
41
+ <div class="form-group">
42
+ <div class="col-md-3 sm-label-right">
43
+ Stack
44
+ <help-field key="aws.serverGroup.stack"></help-field>
45
+ </div>
46
+ <div class="col-md-7">
47
+ <input
48
+ type="text"
49
+ class="form-control input-sm"
50
+ ng-pattern="basicSettingsCtrl.stackPattern"
51
+ name="stack"
52
+ ng-model="command.stack"
53
+ />
54
+ </div>
55
+ </div>
56
+ <div class="form-group row slide-in" ng-if="basicSettings.stack.$error.pattern">
57
+ <div class="col-sm-9 col-sm-offset-2 error-message">
58
+ <span>Stack can only contain letters and numbers.</span>
59
+ </div>
60
+ </div>
61
+ <div class="form-group">
62
+ <div class="col-md-3 sm-label-right">
63
+ Detail
64
+ <help-field key="aws.serverGroup.detail"></help-field>
65
+ </div>
66
+ <div class="col-md-7">
67
+ <input
68
+ type="text"
69
+ class="form-control input-sm"
70
+ ng-pattern="basicSettingsCtrl.detailPattern"
71
+ name="details"
72
+ ng-model="command.freeFormDetails"
73
+ />
74
+ </div>
75
+ </div>
76
+ <div class="form-group row slide-in" ng-if="basicSettings.details.$error.pattern">
77
+ <div class="col-sm-9 col-sm-offset-2 error-message">
78
+ <span>Detail can only contain letters, numbers, and dashes(-).</span>
79
+ </div>
80
+ </div>
81
+ <div ng-if="command.viewState.showImageSourceSelector">
82
+ <image-source-selector
83
+ command="command"
84
+ id-field="imageSource"
85
+ image-sources="basicSettingsCtrl.imageSources"
86
+ image-source-text="command.viewState.imageSourceText"
87
+ help-field-key="gce.image.source"
88
+ >
89
+ </image-source-selector>
90
+ <stage-artifact-selector-delegate
91
+ ng-if="command.imageSource === 'artifact'"
92
+ artifact="command.imageArtifact"
93
+ excluded-artifact-type-patterns="basicSettingsCtrl.excludedImageArtifactTypes"
94
+ expected-artifact-id="command.imageArtifactId"
95
+ field-columns="7"
96
+ help-key="'gce.image.artifact'"
97
+ label="'Expected Artifact'"
98
+ on-artifact-edited="basicSettingsCtrl.onImageArtifactEdited"
99
+ on-expected-artifact-selected="basicSettingsCtrl.onImageArtifactSelected"
100
+ pipeline="command.viewState.pipeline"
101
+ stage="command.viewState.stage"
102
+ >
103
+ </stage-artifact-selector-delegate>
104
+ </div>
105
+ <div class="form-group" ng-if="!command.viewState.disableImageSelection">
106
+ <div class="col-md-3 sm-label-right">
107
+ Image
108
+ <help-field key="gce.serverGroup.imageName"></help-field>
109
+ </div>
110
+ <div class="col-md-7">
111
+ <gce-image-select
112
+ available-images="command.backingData.allImages"
113
+ selected-image="command.image"
114
+ select-image="basicSettingsCtrl.selectImage"
115
+ ></gce-image-select>
116
+ </div>
117
+ </div>
118
+ <div class="form-group">
119
+ <div class="col-md-3 sm-label-right">Traffic <help-field key="gce.serverGroup.traffic"></help-field></div>
120
+ <div class="col-md-9 checkbox">
121
+ <label>
122
+ <input type="checkbox" ng-model="command.enableTraffic" />
123
+ Send client requests to new instances
124
+ </label>
125
+ </div>
126
+ </div>
127
+ <deployment-strategy-selector
128
+ ng-if="!command.viewState.disableStrategySelection && command.selectedProvider"
129
+ command="command"
130
+ ></deployment-strategy-selector>
131
+ <div class="form-group" ng-if="!command.viewState.hideClusterNamePreview">
132
+ <div class="col-md-12">
133
+ <div class="well-compact" ng-class="basicSettingsCtrl.showPreviewAsWarning() ? 'alert alert-warning' : 'well'">
134
+ <h5 class="text-center">
135
+ <p>Your server group will be in the cluster:</p>
136
+ <p>
137
+ <strong>
138
+ {{basicSettingsCtrl.getNamePreview()}}
139
+ <span ng-if="basicSettingsCtrl.createsNewCluster()"> (new cluster)</span>
140
+ </strong>
141
+ </p>
142
+ <div
143
+ class="text-left"
144
+ ng-if="!basicSettingsCtrl.createsNewCluster() && command.viewState.mode === 'create' && latestServerGroup"
145
+ >
146
+ <p>There is already a server group in this cluster. Do you want to clone it?</p>
147
+ <p>
148
+ Cloning copies the entire configuration from the selected server group, allowing you to modify whichever
149
+ fields (e.g. image) you need to change in the new server group.
150
+ </p>
151
+ <p>
152
+ To clone a server group, select "Clone" from the "Server Group Actions" menu in the details view of the
153
+ server group.
154
+ </p>
155
+ <p>
156
+ <a href ng-click="basicSettingsCtrl.navigateToLatestServerGroup()">
157
+ Go to details for {{latestServerGroup.name}}
158
+ </a>
159
+ </p>
160
+ </div>
161
+ </h5>
162
+ </div>
163
+ </div>
164
+ </div>
165
+ </ng-form>
166
+ <task-reason command="command"></task-reason>
167
+ </div>
@@ -0,0 +1,66 @@
1
+ <div class="form-group">
2
+ <div class="col-md-3 sm-label-right">
3
+ <b><firewall-label label="Firewalls"></firewall-label></b>
4
+ </div>
5
+ <div class="col-md-9">
6
+ <ui-select
7
+ ng-if="vm.command.backingData.filtered.securityGroups.length"
8
+ multiple
9
+ on-remove="vm.onRemove($item.id)"
10
+ ng-model="vm.command.securityGroups"
11
+ class="form-control input-sm"
12
+ >
13
+ <ui-select-match
14
+ >{{$item.name}}
15
+ <gce-tag-selector-generator security-group-id="$item.id" command="vm.command"> </gce-tag-selector-generator>
16
+ </ui-select-match>
17
+ <ui-select-choices
18
+ repeat="securityGroup.id as securityGroup in vm.command.backingData.filtered.securityGroups | anyFieldFilter: {name: $select.search, id: $select.search}"
19
+ >
20
+ <span ng-bind-html="securityGroup.name | highlight: $select.search"></span>
21
+ (<span ng-bind-html="securityGroup.id | highlight: $select.search"></span>)
22
+ </ui-select-choices>
23
+ </ui-select>
24
+ </div>
25
+ </div>
26
+
27
+ <div class="form-group small" style="margin-top: 20px">
28
+ <div class="col-md-9 col-md-offset-3 checkbox">
29
+ <p>
30
+ <label
31
+ ><input type="checkbox" ng-model="vm.command.viewState.listImplicitSecurityGroups" /> Show Implicit
32
+ <firewall-label label="Firewalls"></firewall-label>
33
+ </label>
34
+ <help-field key="gce.serverGroup.securityGroups.implicit"></help-field>
35
+ </p>
36
+ </div>
37
+ </div>
38
+
39
+ <div class="form-group" ng-if="vm.command.viewState.listImplicitSecurityGroups">
40
+ <div class="col-md-3 sm-label-right">
41
+ <b>Implicit <firewall-label label="Firewalls"></firewall-label></b>
42
+ </div>
43
+ <div class="col-md-9">
44
+ <ul ng-if="vm.command.implicitSecurityGroups.length" style="margin-top: 10px; list-style-type: none">
45
+ <li ng-repeat="securityGroup in vm.command.implicitSecurityGroups">{{securityGroup.name}}</li>
46
+ </ul>
47
+ <ul ng-if="!vm.command.implicitSecurityGroups.length" style="margin-top: 10px; list-style-type: none">
48
+ <li>None</li>
49
+ </ul>
50
+ </div>
51
+ </div>
52
+
53
+ <div class="form-group small" style="margin-top: 20px">
54
+ <div class="col-md-9 col-md-offset-3">
55
+ <p>
56
+ <span ng-if="refreshing"><span class="fa fa-sync-alt fa-spin"></span></span>
57
+ <firewall-label label="Firewalls"></firewall-label>
58
+ <span ng-if="!refreshing">last refreshed {{ vm.getSecurityGroupRefreshTime() | timestamp }}</span>
59
+ <span ng-if="refreshing"> refreshing...</span>
60
+ </p>
61
+ <p>
62
+ If you're not finding a <firewall-label label="firewall"></firewall-label> that was recently added,
63
+ <a href ng-click="vm.refreshSecurityGroups()">click here</a> to refresh the list.
64
+ </p>
65
+ </div>
66
+ </div>
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ import { module } from 'angular';
4
+
5
+ import { InfrastructureCaches } from '@spinnaker/core';
6
+
7
+ import { GOOGLE_SERVERGROUP_CONFIGURE_SERVERGROUPCONFIGURATION_SERVICE } from '../../serverGroupConfiguration.service';
8
+ import { GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_TAGMANAGER_SERVICE } from './tagManager.service';
9
+ import { GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_TAGSELECTORGENERATOR_COMPONENT } from './tagSelectorGenerator.component';
10
+
11
+ export const GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_SECURITYGROUPSELECTOR_DIRECTIVE =
12
+ 'spinnaker.google.serverGroup.configure.wizard.securityGroups.selector.directive';
13
+ export const name = GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_SECURITYGROUPSELECTOR_DIRECTIVE; // for backwards compatibility
14
+ module(GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_SECURITYGROUPSELECTOR_DIRECTIVE, [
15
+ GOOGLE_SERVERGROUP_CONFIGURE_SERVERGROUPCONFIGURATION_SERVICE,
16
+ GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_TAGSELECTORGENERATOR_COMPONENT,
17
+ GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_TAGMANAGER_SERVICE,
18
+ ])
19
+ .directive('gceServerGroupSecurityGroupSelector', function () {
20
+ return {
21
+ restrict: 'E',
22
+ templateUrl: require('./securityGroupSelector.directive.html'),
23
+ scope: {},
24
+ bindToController: {
25
+ command: '=',
26
+ },
27
+ controllerAs: 'vm',
28
+ controller: 'gceServerGroupSecurityGroupsSelectorCtrl',
29
+ };
30
+ })
31
+ .controller('gceServerGroupSecurityGroupsSelectorCtrl', [
32
+ 'gceServerGroupConfigurationService',
33
+ 'gceTagManager',
34
+ function (gceServerGroupConfigurationService, gceTagManager) {
35
+ this.getSecurityGroupRefreshTime = () => {
36
+ return InfrastructureCaches.get('securityGroups').getStats().ageMax;
37
+ };
38
+
39
+ this.refreshSecurityGroups = () => {
40
+ this.refreshing = true;
41
+ gceServerGroupConfigurationService.refreshSecurityGroups(this.command).then(() => {
42
+ this.refreshing = false;
43
+ });
44
+ };
45
+
46
+ this.onRemove = gceTagManager.removeSecurityGroup;
47
+ },
48
+ ]);
@@ -0,0 +1,4 @@
1
+ <div class="row">
2
+ <gce-server-group-security-groups-removed command="command"></gce-server-group-security-groups-removed>
3
+ <gce-server-group-security-group-selector command="command"></gce-server-group-security-group-selector>
4
+ </div>
@@ -0,0 +1,14 @@
1
+ <div class="col-md-12" ng-if="vm.command.viewState.dirty.securityGroups">
2
+ <div class="alert alert-warning">
3
+ <p>
4
+ <i class="fa fa-exclamation-triangle"></i> The following <firewall-label label="firewalls"></firewall-label> could
5
+ not be found in the selected account/network and were removed:
6
+ </p>
7
+ <ul>
8
+ <li ng-repeat="securityGroup in vm.command.viewState.dirty.securityGroups">{{securityGroup}}</li>
9
+ </ul>
10
+ <p class="text-right">
11
+ <a class="btn btn-sm btn-default dirty-flag-dismiss" href ng-click="vm.acknowledgeSecurityGroupRemoval()">Okay</a>
12
+ </p>
13
+ </div>
14
+ </div>
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ import { module } from 'angular';
4
+
5
+ export const GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_SECURITYGROUPSREMOVED_DIRECTIVE =
6
+ 'spinnaker.google.serverGroup.configure.wizard.securityGroups.removed.directive';
7
+ export const name = GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_SECURITYGROUPSREMOVED_DIRECTIVE; // for backwards compatibility
8
+ module(GOOGLE_SERVERGROUP_CONFIGURE_WIZARD_SECURITYGROUPS_SECURITYGROUPSREMOVED_DIRECTIVE, [])
9
+ .directive('gceServerGroupSecurityGroupsRemoved', function () {
10
+ return {
11
+ restrict: 'E',
12
+ templateUrl: require('./securityGroupsRemoved.directive.html'),
13
+ scope: {},
14
+ bindToController: {
15
+ command: '=',
16
+ },
17
+ controllerAs: 'vm',
18
+ controller: 'gceServerGroupSecurityGroupsRemovedCtrl',
19
+ };
20
+ })
21
+ .controller('gceServerGroupSecurityGroupsRemovedCtrl', function () {
22
+ this.acknowledgeSecurityGroupRemoval = () => {
23
+ this.command.viewState.dirty.securityGroups = null;
24
+ };
25
+ });