@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,248 @@
1
+ <div class="details-panel">
2
+ <div class="header">
3
+ <instance-details-header
4
+ health-state="instance.healthState"
5
+ instance-id="instance ? instance.instanceId : instanceIdNotFound"
6
+ loading="state.loading"
7
+ standalone="state.standalone"
8
+ ></instance-details-header>
9
+ <div ng-if="!state.loading">
10
+ <div class="actions" ng-class="{ insights: instance.insightActions.length > 0 }" ng-if="instance.placement">
11
+ <div class="dropdown" uib-dropdown dropdown-append-to-body>
12
+ <button
13
+ type="button"
14
+ class="btn btn-sm btn-primary dropdown-toggle"
15
+ ng-disabled="disabled"
16
+ uib-dropdown-toggle
17
+ >
18
+ Instance Actions <span class="caret"></span>
19
+ </button>
20
+ <ul class="dropdown-menu" uib-dropdown-menu role="menu">
21
+ <li>
22
+ <a href ng-click="ctrl.enableInstanceInDiscovery()" ng-if="ctrl.canRegisterWithDiscovery()"
23
+ >Enable in Discovery</a
24
+ >
25
+ </li>
26
+ <li>
27
+ <a href ng-click="ctrl.disableInstanceInDiscovery()" ng-if="ctrl.hasHealthState('Discovery', 'Up')"
28
+ >Disable in Discovery</a
29
+ >
30
+ </li>
31
+ <li>
32
+ <a href ng-click="ctrl.registerInstanceWithLoadBalancer()" ng-if="ctrl.canRegisterWithLoadBalancer()"
33
+ >Register with Load Balancer</a
34
+ >
35
+ </li>
36
+ <li>
37
+ <a href ng-click="ctrl.deregisterInstanceFromLoadBalancer()" ng-if="ctrl.canDeregisterFromLoadBalancer()"
38
+ >Deregister from Load Balancer</a
39
+ >
40
+ </li>
41
+ <li role="presentation" class="divider" ng-if="ctrl.showInstanceActionsDivider()"></li>
42
+ <li><a href ng-click="ctrl.rebootInstance()">Reboot</a></li>
43
+ <li><a href ng-click="ctrl.terminateInstance()">Terminate</a></li>
44
+ <li>
45
+ <a href ng-click="ctrl.terminateInstanceAndShrinkServerGroup()" ng-if="instance.serverGroup"
46
+ >Terminate and Shrink Server Group</a
47
+ >
48
+ </li>
49
+ </ul>
50
+ </div>
51
+ <div class="dropdown" ng-if="instance.insightActions.length > 0" uib-dropdown dropdown-append-to-body>
52
+ <button type="button" class="btn btn-sm btn-default dropdown-toggle" uib-dropdown-toggle>
53
+ Insight <span class="caret"></span>
54
+ </button>
55
+ <ul class="dropdown-menu" uib-dropdown-menu role="menu">
56
+ <li ng-repeat="action in instance.insightActions">
57
+ <a target="_blank" href="{{action.url}}">{{action.label}}</a>
58
+ </li>
59
+ </ul>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ <div class="content" ng-if="!state.loading && instance">
65
+ <collapsible-section heading="Instance Information" expanded="true">
66
+ <dl class="dl-horizontal dl-narrow">
67
+ <dt>Launched</dt>
68
+ <dd ng-if="instance.launchTime">{{instance.launchTime | timestamp}}</dd>
69
+ <dd ng-if="!instance.launchTime">(Unknown)</dd>
70
+ <dt>In</dt>
71
+ <dd>
72
+ <account-tag account="instance.account" pad="right"></account-tag>
73
+ {{instance.placement.availabilityZone || '(Unknown)'}}
74
+ </dd>
75
+ <dt>Type</dt>
76
+ <dd>{{instance.instanceType || '(Unknown)' | customInstanceFilter}}</dd>
77
+ <dt>CPU Platform</dt>
78
+ <dd>{{instance.cpuPlatform}}</dd>
79
+ <dt ng-if="instance.serverGroup">Server Group</dt>
80
+ <dd ng-if="instance.serverGroup">
81
+ <a
82
+ ui-sref="^.serverGroup({region: instance.region,
83
+ accountId: instance.account,
84
+ serverGroup: instance.serverGroup,
85
+ provider: instance.provider})"
86
+ >{{instance.serverGroup}}</a
87
+ >
88
+ </dd>
89
+ <dt>Network</dt>
90
+ <dd>{{instance.network || '(Unknown)'}}</dd>
91
+ <dt ng-if="instance.subnet">Subnet</dt>
92
+ <dd ng-if="instance.subnet">{{instance.subnet}}</dd>
93
+ </dl>
94
+ </collapsible-section>
95
+ <collapsible-section heading="Status" expanded="true">
96
+ <p ng-if="instance.healthState !== 'Starting' && !healthMetrics.length">
97
+ No health metrics found for this instance
98
+ </p>
99
+ <p ng-if="instance.healthState === 'Starting' && !healthMetrics.length">
100
+ <span class="glyphicon glyphicon-Starting-triangle"></span> <strong>Starting</strong>
101
+ </p>
102
+
103
+ <dl class="horizontal-when-filters-collapsed">
104
+ <dt ng-repeat-start="metric in healthMetrics | orderBy: 'type'">{{metric.type | robotToHuman}}</dt>
105
+ <dd ng-repeat-end>
106
+ <div ng-if="metric.type !== 'LoadBalancer'">
107
+ <span
108
+ uib-tooltip="{{metric.state.toLowerCase() === 'down' ? metric.description : ''}}"
109
+ tooltip-placement="left"
110
+ >
111
+ <span class="glyphicon glyphicon-{{metric.state}}-triangle"></span>
112
+ {{metric.state | robotToHuman}}
113
+ </span>
114
+ <span class="pad-left small">
115
+ <a ng-if="metric.healthCheckUrl" target="_blank" href="{{metric.healthCheckUrl}}">Health Check</a>
116
+ <span ng-if="metric.healthCheckUrl && metric.statusPageUrl"> | </span>
117
+ <a ng-if="metric.statusPageUrl" target="_blank" href="{{metric.statusPageUrl}}">Status</a>
118
+ </span>
119
+ </div>
120
+ <div
121
+ ng-if="metric.type === 'LoadBalancer' && metric.loadBalancers.length"
122
+ ng-repeat="loadBalancer in metric.loadBalancers"
123
+ >
124
+ <instance-load-balancer-health load-balancer="loadBalancer"></instance-load-balancer-health>
125
+ </div>
126
+ </dd>
127
+ </dl>
128
+ </collapsible-section>
129
+ <collapsible-section heading="DNS">
130
+ <dl class="horizontal-when-filters-collapsed">
131
+ <dt ng-if="instance.internalDnsName">Internal DNS Name</dt>
132
+ <dd ng-if="instance.internalDnsName">
133
+ <a href="http://{{instance.internalDnsName}}" target="_blank">{{instance.internalDnsName}}</a>
134
+ <copy-to-clipboard
135
+ class="copy-to-clipboard copy-to-clipboard-sm"
136
+ text="instance.internalDnsName"
137
+ tool-tip="'Copy to clipboard'"
138
+ >
139
+ </copy-to-clipboard>
140
+ </dd>
141
+ <dt ng-if="instance.internalIpAddress">Internal IP Address</dt>
142
+ <dd ng-if="instance.internalIpAddress">
143
+ <a href="http://{{instance.internalIpAddress}}" target="_blank">{{instance.internalIpAddress}}</a>
144
+ <copy-to-clipboard
145
+ class="copy-to-clipboard copy-to-clipboard-sm"
146
+ text="instance.internalIpAddress"
147
+ tool-tip="'Copy to clipboard'"
148
+ >
149
+ </copy-to-clipboard>
150
+ </dd>
151
+ <dt ng-if="instance.externalIpAddress">External IP Address</dt>
152
+ <dd ng-if="instance.externalIpAddress">
153
+ <a href="http://{{instance.externalIpAddress}}" target="_blank">{{instance.externalIpAddress}}</a>
154
+ <copy-to-clipboard
155
+ class="copy-to-clipboard copy-to-clipboard-sm"
156
+ text="instance.externalIpAddress"
157
+ tool-tip="'Copy to clipboard'"
158
+ >
159
+ </copy-to-clipboard>
160
+ </dd>
161
+ </dl>
162
+ </collapsible-section>
163
+ <collapsible-section heading="{{firewallsLabel}}">
164
+ <ul>
165
+ <li ng-repeat="securityGroup in instance.securityGroups | orderBy:'groupName'">
166
+ <a
167
+ ui-sref="^.firewallDetails({name:securityGroup.groupName, accountId: instance.account, region: 'global', provider: instance.provider})"
168
+ >
169
+ {{securityGroup.groupName}}
170
+ </a>
171
+ </li>
172
+ </ul>
173
+ </collapsible-section>
174
+ <collapsible-section heading="Custom Metadata">
175
+ <div ng-if="!instance.metadata.items.length">No custom metadata associated with this instance</div>
176
+ <dl ng-if="instance.metadata.items.length">
177
+ <dt ng-repeat-start="metadata in instance.metadata.items">
178
+ {{metadata.key}}
179
+ <help-field key="gce.instance.customMetadata.{{metadata.key}}"></help-field>
180
+ </dt>
181
+ <dd ng-repeat-end>{{metadata.value.length > 90 ? metadata.value.substring(0, 90) + "..." : metadata.value}}</dd>
182
+ </dl>
183
+ </collapsible-section>
184
+ <collapsible-section heading="Tags">
185
+ <div ng-if="!instance.tags.items.length">No tags associated with this instance</div>
186
+ <dl ng-if="instance.tags.items.length">
187
+ <dd ng-repeat="tag in instance.tags.items">
188
+ {{tag}}
189
+ <help-field content="{{instance.tags.helpMap[tag]}}"></help-field>
190
+ </dd>
191
+ </dl>
192
+ </collapsible-section>
193
+ <collapsible-section heading="Labels">
194
+ <div ng-if="!instance.labels">No labels associated with this instance</div>
195
+ <dl ng-if="instance.labels">
196
+ <dt ng-repeat-start="(key, value) in instance.labels">
197
+ {{key}}
198
+ <help-field key="gce.instance.labels.{{key}}"></help-field>
199
+ </dt>
200
+ <dd ng-repeat-end>{{value}}</dd>
201
+ </dl>
202
+ </collapsible-section>
203
+ <collapsible-section heading="SSH" ng-if="!instance.notFound">
204
+ <dl>
205
+ <dt ng-if="instance.sshLink">SSH into this instance</dt>
206
+ <dd ng-if="instance.sshLink">
207
+ <a href="{{instance.sshLink}}" target="_blank">SSH</a>
208
+ <copy-to-clipboard
209
+ class="copy-to-clipboard copy-to-clipboard-sm"
210
+ text="instance.sshLink"
211
+ tool-tip="'Copy to clipboard'"
212
+ >
213
+ </copy-to-clipboard>
214
+ </dd>
215
+ </dl>
216
+ </collapsible-section>
217
+ <collapsible-section heading="Logs">
218
+ <ul>
219
+ <li ng-if="instance.logsLink">
220
+ <a href="{{instance.logsLink}}" target="_blank">Cloud Console Logs</a>
221
+ <copy-to-clipboard
222
+ class="copy-to-clipboard copy-to-clipboard-sm"
223
+ text="instance.logsLink"
224
+ tool-tip="'Copy to clipboard'"
225
+ >
226
+ </copy-to-clipboard>
227
+ </li>
228
+ <li>
229
+ <console-output-link instance="instance"></console-output-link>
230
+ </li>
231
+ </ul>
232
+ </collapsible-section>
233
+ <instance-links
234
+ address="baseIpAddress"
235
+ application="application"
236
+ instance="instance"
237
+ moniker="moniker"
238
+ environment="environment"
239
+ ></instance-links>
240
+ </div>
241
+ <div class="content" ng-if="!state.loading && !instance">
242
+ <div class="content-section">
243
+ <div class="content-body text-center">
244
+ <h3>Instance not found.</h3>
245
+ </div>
246
+ </div>
247
+ </div>
248
+ </div>
@@ -0,0 +1,432 @@
1
+ 'use strict';
2
+
3
+ import { module } from 'angular';
4
+ import _ from 'lodash';
5
+
6
+ import { AccountService, SETTINGS } from '@spinnaker/core';
7
+
8
+ import { GCE_INSTANCE_TYPE_DISK_DEFAULTS } from './gceInstanceTypeDisks';
9
+
10
+ export const GOOGLE_INSTANCE_GCEINSTANCETYPE_SERVICE = 'spinnaker.gce.instanceType.service';
11
+ export const name = GOOGLE_INSTANCE_GCEINSTANCETYPE_SERVICE; // for backwards compatibility
12
+ module(GOOGLE_INSTANCE_GCEINSTANCETYPE_SERVICE, []).factory('gceInstanceTypeService', [
13
+ '$q',
14
+ '$log',
15
+ function ($q, $log) {
16
+ const cachedResult = null;
17
+
18
+ const n1standard = {
19
+ type: 'n1-standard',
20
+ description:
21
+ 'This family provides a balance of compute, memory, and network resources, and it is a good choice for general purpose applications.',
22
+ storageType: 'SSD',
23
+ storageHelpFieldKey: 'gce.instance.storage',
24
+ instanceTypes: [
25
+ {
26
+ name: 'n1-standard-1',
27
+ label: 'Small',
28
+ cpu: 1,
29
+ memory: 3.75,
30
+ costFactor: 1,
31
+ },
32
+ {
33
+ name: 'n1-standard-2',
34
+ label: 'Medium',
35
+ cpu: 2,
36
+ memory: 7.5,
37
+ costFactor: 2,
38
+ },
39
+ {
40
+ name: 'n1-standard-4',
41
+ label: 'Large',
42
+ cpu: 4,
43
+ memory: 15,
44
+ costFactor: 2,
45
+ },
46
+ {
47
+ name: 'n1-standard-8',
48
+ label: 'XLarge',
49
+ cpu: 8,
50
+ memory: 30,
51
+ costFactor: 3,
52
+ },
53
+ {
54
+ name: 'n1-standard-16',
55
+ label: '2XLarge',
56
+ cpu: 16,
57
+ memory: 60,
58
+ costFactor: 3,
59
+ },
60
+ {
61
+ name: 'n1-standard-32',
62
+ label: '4XLarge',
63
+ cpu: 32,
64
+ memory: 120,
65
+ costFactor: 4,
66
+ },
67
+ {
68
+ name: 'n1-standard-64',
69
+ label: '8XLarge',
70
+ cpu: 64,
71
+ memory: 240,
72
+ costFactor: 4,
73
+ },
74
+ {
75
+ name: 'n1-standard-96',
76
+ label: '12XLarge',
77
+ cpu: 96,
78
+ memory: 360,
79
+ costFactor: 4,
80
+ },
81
+ ],
82
+ };
83
+
84
+ const f1micro = {
85
+ type: 'f1-micro bursting',
86
+ description:
87
+ 'This family of machine types is a good choice for small, non-resource intensive workloads that don’t use the full CPU often or consistently, but occasionally need to burst (e.g. web servers, developer environments and small databases).',
88
+ storageType: 'Std',
89
+ storageHelpFieldKey: 'gce.instance.storage',
90
+ instanceTypes: [
91
+ {
92
+ name: 'f1-micro',
93
+ label: 'Micro',
94
+ cpu: 1,
95
+ memory: 0.6,
96
+ costFactor: 1,
97
+ },
98
+ {
99
+ name: 'g1-small',
100
+ label: 'Small',
101
+ cpu: 1,
102
+ memory: 1.7,
103
+ costFactor: 1,
104
+ },
105
+ {
106
+ name: 'e2-micro',
107
+ label: 'E2 Micro',
108
+ cpu: 2,
109
+ memory: 1,
110
+ costFactor: 1,
111
+ },
112
+ {
113
+ name: 'e2-small',
114
+ label: 'E2 Small',
115
+ cpu: 2,
116
+ memory: 2,
117
+ costFactor: 2,
118
+ },
119
+ {
120
+ name: 'e2-medium',
121
+ label: 'E2 Medium',
122
+ cpu: 2,
123
+ memory: 4,
124
+ costFactor: 2,
125
+ },
126
+ ],
127
+ };
128
+
129
+ const n1highmem = {
130
+ type: 'n1-highmem',
131
+ description:
132
+ 'High memory machine types are ideal for tasks that require more memory relative to virtual cores. High memory machine types have 6.50GB of RAM per virtual core.',
133
+ storageType: 'SSD',
134
+ storageHelpFieldKey: 'gce.instance.storage',
135
+ instanceTypes: [
136
+ {
137
+ name: 'n1-highmem-2',
138
+ label: 'Medium',
139
+ cpu: 2,
140
+ memory: 13,
141
+ costFactor: 2,
142
+ },
143
+ {
144
+ name: 'n1-highmem-4',
145
+ label: 'Large',
146
+ cpu: 4,
147
+ memory: 26,
148
+ costFactor: 2,
149
+ },
150
+ {
151
+ name: 'n1-highmem-8',
152
+ label: 'XLarge',
153
+ cpu: 8,
154
+ memory: 52,
155
+ costFactor: 3,
156
+ },
157
+ {
158
+ name: 'n1-highmem-16',
159
+ label: '2XLarge',
160
+ cpu: 16,
161
+ memory: 104,
162
+ costFactor: 3,
163
+ },
164
+ {
165
+ name: 'n1-highmem-32',
166
+ label: '4XLarge',
167
+ cpu: 32,
168
+ memory: 208,
169
+ costFactor: 4,
170
+ },
171
+ {
172
+ name: 'n1-highmem-64',
173
+ label: '8XLarge',
174
+ cpu: 64,
175
+ memory: 416,
176
+ costFactor: 4,
177
+ },
178
+ {
179
+ name: 'n1-highmem-96',
180
+ label: '12XLarge',
181
+ cpu: 96,
182
+ memory: 624,
183
+ costFactor: 4,
184
+ },
185
+ ],
186
+ };
187
+
188
+ const n1highcpu = {
189
+ type: 'n1-highcpu',
190
+ description:
191
+ 'High CPU machine types are ideal for tasks that require more virtual cores relative to memory. High CPU machine types have one virtual core for every 0.90GB of RAM.',
192
+ storageType: 'SSD',
193
+ storageHelpFieldKey: 'gce.instance.storage',
194
+ instanceTypes: [
195
+ {
196
+ name: 'n1-highcpu-2',
197
+ label: 'Medium',
198
+ cpu: 2,
199
+ memory: 1.8,
200
+ costFactor: 1,
201
+ },
202
+ {
203
+ name: 'n1-highcpu-4',
204
+ label: 'Large',
205
+ cpu: 4,
206
+ memory: 3.6,
207
+ costFactor: 2,
208
+ },
209
+ {
210
+ name: 'n1-highcpu-8',
211
+ label: 'XLarge',
212
+ cpu: 8,
213
+ memory: 7.2,
214
+ costFactor: 2,
215
+ },
216
+ {
217
+ name: 'n1-highcpu-16',
218
+ label: '2XLarge',
219
+ cpu: 16,
220
+ memory: 14.4,
221
+ costFactor: 3,
222
+ },
223
+ {
224
+ name: 'n1-highcpu-32',
225
+ label: '4XLarge',
226
+ cpu: 32,
227
+ memory: 28.8,
228
+ costFactor: 4,
229
+ },
230
+ {
231
+ name: 'n1-highcpu-64',
232
+ label: '8XLarge',
233
+ cpu: 64,
234
+ memory: 57.6,
235
+ costFactor: 4,
236
+ },
237
+ {
238
+ name: 'n1-highcpu-96',
239
+ label: '12XLarge',
240
+ cpu: 96,
241
+ memory: 86.4,
242
+ costFactor: 4,
243
+ },
244
+ ],
245
+ };
246
+
247
+ const customMachine = {
248
+ type: 'buildCustom',
249
+ instanceTypes: [
250
+ {
251
+ name: 'n1buildCustom',
252
+ nameRegex: /custom-\d{1,2}-\d{4,6}/,
253
+ storage: {
254
+ localSSDSupported: true,
255
+ },
256
+ },
257
+ {
258
+ name: 'e2buildCustom',
259
+ nameRegex: /e2-custom-(\d{1,2})-(\d{3,6})/,
260
+ storage: {
261
+ localSSDSupported: false,
262
+ },
263
+ },
264
+ {
265
+ name: 'otherbuildCustom',
266
+ nameRegex: /(.*)-?custom-(\d{1,2})-(\d{3,6})/,
267
+ storage: {
268
+ localSSDSupported: true,
269
+ },
270
+ },
271
+ ],
272
+ };
273
+
274
+ const categories = [
275
+ {
276
+ type: 'general',
277
+ label: 'General Purpose',
278
+ families: [n1standard],
279
+ icon: 'hdd',
280
+ },
281
+ {
282
+ type: 'memory',
283
+ label: 'High Memory',
284
+ families: [n1highmem],
285
+ icon: 'hdd',
286
+ },
287
+ {
288
+ type: 'cpu',
289
+ label: 'High CPU',
290
+ families: [n1highcpu],
291
+ icon: 'hdd',
292
+ },
293
+ {
294
+ type: 'micro',
295
+ label: 'Micro Utility',
296
+ families: [f1micro],
297
+ icon: 'hdd',
298
+ },
299
+ {
300
+ type: 'custom',
301
+ label: 'Custom Type',
302
+ families: [],
303
+ icon: 'asterisk',
304
+ },
305
+ {
306
+ type: 'buildCustom',
307
+ label: 'Build Custom',
308
+ families: [customMachine],
309
+ icon: 'wrench',
310
+ },
311
+ ];
312
+
313
+ const getCategories = _.memoize(() => {
314
+ const initializedCategories = _.cloneDeep(categories);
315
+ return AccountService.getAllAccountDetailsForProvider('gce').then((accountDetails) => {
316
+ // All GCE accounts have the same instance type disk defaults, so we can pick the first one.
317
+ let instanceTypeDisks = _.get(accountDetails, '[0].instanceTypeDisks');
318
+ if (_.isEmpty(instanceTypeDisks)) {
319
+ instanceTypeDisks = GCE_INSTANCE_TYPE_DISK_DEFAULTS;
320
+ }
321
+ if (instanceTypeDisks) {
322
+ const families = _.flatten(initializedCategories.map((category) => category.families));
323
+ families.forEach((family) => {
324
+ family.instanceTypes.forEach((instanceType) => {
325
+ const diskDefaults = instanceTypeDisks.find(
326
+ (instanceTypeDisk) => instanceTypeDisk.instanceType === instanceType.name,
327
+ );
328
+ if (diskDefaults) {
329
+ const disks = diskDefaults.disks
330
+ .map((disk) => {
331
+ switch (disk.type) {
332
+ case 'PD_SSD':
333
+ return {
334
+ type: 'pd-ssd',
335
+ sizeGb: disk.sizeGb,
336
+ };
337
+ case 'PD_STANDARD':
338
+ return {
339
+ type: 'pd-standard',
340
+ sizeGb: disk.sizeGb,
341
+ };
342
+ case 'LOCAL_SSD':
343
+ return {
344
+ type: 'local-ssd',
345
+ sizeGb: 375,
346
+ };
347
+ default:
348
+ $log.warn(`Disk type '${disk.type}' not supported.`);
349
+ return null;
350
+ }
351
+ })
352
+ .filter((disk) => !!disk);
353
+
354
+ let size = 0;
355
+ let count = 0;
356
+ if (diskDefaults.supportsLocalSSD) {
357
+ count = disks.filter((disk) => disk.type === 'local-ssd').length;
358
+ size = 375;
359
+ } else {
360
+ // TODO(dpeach): This will render the disk defaults incorrectly for f1-micro and g1-small instance types
361
+ // if the disk defaults set in Clouddriver have different sizes. Fixing it will require updating
362
+ // the core instance type selector.
363
+ // This logic will render the count of the largest disk.
364
+ const persistentDisks = disks.filter((disk) => disk.type.startsWith('pd-'));
365
+ if (persistentDisks.length) {
366
+ size = persistentDisks.reduce((maxSizeGb, disk) => Math.max(maxSizeGb, disk.sizeGb), 0);
367
+ count = persistentDisks.filter((disk) => disk.sizeGb === size).length;
368
+ }
369
+ }
370
+
371
+ instanceType.storage = {
372
+ localSSDSupported: diskDefaults.supportsLocalSSD,
373
+ size: size,
374
+ count: count,
375
+ defaultSettings: { disks },
376
+ };
377
+ }
378
+ });
379
+ });
380
+ }
381
+ return initializedCategories;
382
+ });
383
+ });
384
+
385
+ function getAllTypesByRegion() {
386
+ if (cachedResult) {
387
+ return $q.when(cachedResult);
388
+ }
389
+
390
+ return getCategories().then((categories) => {
391
+ return _.chain(categories)
392
+ .map('families')
393
+ .flatten()
394
+ .map('instanceTypes')
395
+ .flatten()
396
+ .map('name')
397
+ .filter((name) => name !== 'n1buildCustom' && name !== 'e2buildCustom' && name !== 'otherbuildCustom')
398
+ .value();
399
+ });
400
+ }
401
+
402
+ function getAvailableTypesForLocations(locationToInstanceTypesMap, selectedLocations) {
403
+ if (!locationToInstanceTypesMap || !selectedLocations || selectedLocations.length === 0) {
404
+ console.error('Invalid input parameters');
405
+ return [];
406
+ }
407
+
408
+ const availableTypes = selectedLocations
409
+ .filter((location) => locationToInstanceTypesMap[location])
410
+ .flatMap((location) => locationToInstanceTypesMap[location].instanceTypes || []);
411
+
412
+ return availableTypes;
413
+ }
414
+
415
+ const getAvailableTypesForRegions = getAvailableTypesForLocations;
416
+
417
+ const resolveInstanceTypeDetails = (instanceType) => {
418
+ return {
419
+ name: instanceType,
420
+ storage: Object.assign({ isDefault: true }, SETTINGS.providers.gce.defaults.instanceTypeStorage),
421
+ };
422
+ };
423
+
424
+ return {
425
+ getCategories: getCategories,
426
+ getAvailableTypesForRegions: getAvailableTypesForRegions,
427
+ getAllTypesByRegion: getAllTypesByRegion,
428
+ getAvailableTypesForLocations: getAvailableTypesForLocations,
429
+ resolveInstanceTypeDetails: resolveInstanceTypeDetails,
430
+ };
431
+ },
432
+ ]);
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ describe('Service: gceInstanceTypeService', function () {
4
+ //NOTE: This is only testing the service dependencies. Please add more tests.
5
+
6
+ let gceInstanceTypeService;
7
+
8
+ beforeEach(window.module(require('./gceInstanceType.service').name));
9
+
10
+ beforeEach(
11
+ window.inject(function (_gceInstanceTypeService_) {
12
+ gceInstanceTypeService = _gceInstanceTypeService_;
13
+ }),
14
+ );
15
+
16
+ it('should instantiate the controller', function () {
17
+ expect(gceInstanceTypeService).toBeDefined();
18
+ });
19
+ });