@spinnaker/kubernetes 0.0.0-main-2

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 (286) hide show
  1. package/CHANGELOG.md +1663 -0
  2. package/LICENSE.txt +203 -0
  3. package/dist/help/kubernetes.help.d.ts +1 -0
  4. package/dist/index.d.ts +7 -0
  5. package/dist/index.js +6024 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/instance/details/details.controller.d.ts +1 -0
  8. package/dist/instance/index.d.ts +1 -0
  9. package/dist/interfaces/index.d.ts +1 -0
  10. package/dist/interfaces/infrastructure.types.d.ts +24 -0
  11. package/dist/kubernetes.module.d.ts +6 -0
  12. package/dist/loadBalancer/details/details.controller.d.ts +1 -0
  13. package/dist/loadBalancer/index.d.ts +1 -0
  14. package/dist/loadBalancer/transformer.d.ts +1 -0
  15. package/dist/manifest/IManifestCoordinates.d.ts +5 -0
  16. package/dist/manifest/ManifestImageDetails.d.ts +18 -0
  17. package/dist/manifest/ManifestKindSearch.d.ts +13 -0
  18. package/dist/manifest/ManifestLabels.d.ts +15 -0
  19. package/dist/manifest/ManifestQos.d.ts +15 -0
  20. package/dist/manifest/ManifestResources.d.ts +35 -0
  21. package/dist/manifest/ManifestSource.d.ts +4 -0
  22. package/dist/manifest/annotationCustomSections.component.d.ts +1 -0
  23. package/dist/manifest/artifact/artifact.component.d.ts +1 -0
  24. package/dist/manifest/delete/delete.controller.d.ts +12 -0
  25. package/dist/manifest/delete/deleteOptionsForm.component.d.ts +1 -0
  26. package/dist/manifest/editor/json/JsonEditor.d.ts +12 -0
  27. package/dist/manifest/editor/json/jsonEditor.component.d.ts +1 -0
  28. package/dist/manifest/index.d.ts +10 -0
  29. package/dist/manifest/manifest.service.d.ts +25 -0
  30. package/dist/manifest/manifestCommandBuilder.service.d.ts +30 -0
  31. package/dist/manifest/manifestEvents.component.d.ts +1 -0
  32. package/dist/manifest/manifestImageDetails.component.d.ts +1 -0
  33. package/dist/manifest/manifestLabels.component.d.ts +1 -0
  34. package/dist/manifest/manifestQos.component.d.ts +1 -0
  35. package/dist/manifest/manifestResources.component.d.ts +1 -0
  36. package/dist/manifest/rollout/RollingRestart.d.ts +1 -0
  37. package/dist/manifest/rollout/pause.controller.d.ts +1 -0
  38. package/dist/manifest/rollout/resume.controller.d.ts +1 -0
  39. package/dist/manifest/rollout/undo.controller.d.ts +1 -0
  40. package/dist/manifest/scale/ScaleSettingsForm.d.ts +10 -0
  41. package/dist/manifest/scale/scale.controller.d.ts +8 -0
  42. package/dist/manifest/scale/scaleSettingsForm.component.d.ts +1 -0
  43. package/dist/manifest/selector/IManifestLabelSelector.d.ts +9 -0
  44. package/dist/manifest/selector/IManifestSelector.d.ts +30 -0
  45. package/dist/manifest/selector/ManifestSelector.d.ts +46 -0
  46. package/dist/manifest/selector/labelEditor/LabelEditor.d.ts +15 -0
  47. package/dist/manifest/selector/selector.component.d.ts +1 -0
  48. package/dist/manifest/status/ManifestCondition.d.ts +13 -0
  49. package/dist/manifest/status/condition.component.d.ts +1 -0
  50. package/dist/manifest/status/status.component.d.ts +1 -0
  51. package/dist/manifest/traffic/ManifestTrafficService.d.ts +12 -0
  52. package/dist/manifest/wizard/BasicSettings.d.ts +17 -0
  53. package/dist/manifest/wizard/ManifestEntry.d.ts +16 -0
  54. package/dist/manifest/wizard/ManifestWizard.d.ts +22 -0
  55. package/dist/pipelines/stages/ManifestCoordinates.d.ts +31 -0
  56. package/dist/pipelines/stages/ManifestExecutionDetails.d.ts +69 -0
  57. package/dist/pipelines/stages/deleteManifest/DeleteManifestOptionsForm.d.ts +18 -0
  58. package/dist/pipelines/stages/deleteManifest/DeleteManifestStageConfig.d.ts +14 -0
  59. package/dist/pipelines/stages/deleteManifest/deleteManifestStage.d.ts +1 -0
  60. package/dist/pipelines/stages/deployManifest/CopyFromTemplateButton.d.ts +15 -0
  61. package/dist/pipelines/stages/deployManifest/DeployManifestStageConfig.d.ts +15 -0
  62. package/dist/pipelines/stages/deployManifest/DeployManifestStageForm.d.ts +31 -0
  63. package/dist/pipelines/stages/deployManifest/ManifestBindArtifactsSelector.d.ts +17 -0
  64. package/dist/pipelines/stages/deployManifest/ManifestCopier.d.ts +36 -0
  65. package/dist/pipelines/stages/deployManifest/ManifestDeploymentOptions.d.ts +34 -0
  66. package/dist/pipelines/stages/deployManifest/NamespaceSelector.d.ts +16 -0
  67. package/dist/pipelines/stages/deployManifest/deployManifest.validator.d.ts +2 -0
  68. package/dist/pipelines/stages/deployManifest/deployManifestStage.d.ts +1 -0
  69. package/dist/pipelines/stages/deployManifest/manifestStatus/DeployStatus.d.ts +23 -0
  70. package/dist/pipelines/stages/deployManifest/manifestStatus/DeployStatusPills.d.ts +8 -0
  71. package/dist/pipelines/stages/deployManifest/manifestStatus/ManifestDetailsLink.d.ts +20 -0
  72. package/dist/pipelines/stages/deployManifest/manifestStatus/ManifestEvents.d.ts +9 -0
  73. package/dist/pipelines/stages/deployManifest/manifestStatus/ManifestStatus.d.ts +8 -0
  74. package/dist/pipelines/stages/findArtifactsFromResource/FindArtifactsFromResourceConfig.d.ts +3 -0
  75. package/dist/pipelines/stages/findArtifactsFromResource/FindArtifactsFromResourceStageForm.d.ts +7 -0
  76. package/dist/pipelines/stages/findArtifactsFromResource/findArtifactsFromResourceStage.d.ts +1 -0
  77. package/dist/pipelines/stages/index.d.ts +8 -0
  78. package/dist/pipelines/stages/patchManifest/PatchManifestOptionsForm.d.ts +8 -0
  79. package/dist/pipelines/stages/patchManifest/PatchManifestStageConfig.d.ts +7 -0
  80. package/dist/pipelines/stages/patchManifest/PatchManifestStageForm.d.ts +21 -0
  81. package/dist/pipelines/stages/patchManifest/patchManifestStage.d.ts +4 -0
  82. package/dist/pipelines/stages/rolloutRestartManifest/RolloutRestartManifestStageConfig.d.ts +13 -0
  83. package/dist/pipelines/stages/rolloutRestartManifest/rolloutRestartManifestStage.d.ts +4 -0
  84. package/dist/pipelines/stages/runJob/KubernetesV2RunJobStageConfig.d.ts +31 -0
  85. package/dist/pipelines/stages/runJob/RunJobExecutionDetails.d.ts +7 -0
  86. package/dist/pipelines/stages/runJob/runJobStage.d.ts +1 -0
  87. package/dist/pipelines/stages/scaleManifest/ScaleManifestConfig.d.ts +3 -0
  88. package/dist/pipelines/stages/scaleManifest/ScaleManifestStageForm.d.ts +7 -0
  89. package/dist/pipelines/stages/scaleManifest/scaleManifestStage.d.ts +1 -0
  90. package/dist/pipelines/stages/traffic/ManifestTrafficStageConfig.d.ts +11 -0
  91. package/dist/pipelines/stages/traffic/disableManifest.stage.d.ts +1 -0
  92. package/dist/pipelines/stages/traffic/enableManifest.stage.d.ts +1 -0
  93. package/dist/pipelines/stages/undoRolloutManifest/UndoRolloutManifestConfig.d.ts +3 -0
  94. package/dist/pipelines/stages/undoRolloutManifest/UndoRolloutManifestStageForm.d.ts +7 -0
  95. package/dist/pipelines/stages/undoRolloutManifest/undoRolloutManifestStage.d.ts +1 -0
  96. package/dist/pipelines/stages/validators/manifestSelectorValidators.d.ts +2 -0
  97. package/dist/pipelines/validation/manifestSelector.validator.d.ts +8 -0
  98. package/dist/rawResource/component/K8sResources.d.ts +25 -0
  99. package/dist/rawResource/component/K8sResourcesFilters.d.ts +20 -0
  100. package/dist/rawResource/component/RawResourceUtils.d.ts +5 -0
  101. package/dist/rawResource/component/group/RawResouceGroup.d.ts +15 -0
  102. package/dist/rawResource/component/group/RawResource.d.ts +12 -0
  103. package/dist/rawResource/component/group/RawResourceDetails.d.ts +32 -0
  104. package/dist/rawResource/component/group/RawResourceGroups.d.ts +14 -0
  105. package/dist/rawResource/controller/FiltersPubSub.d.ts +12 -0
  106. package/dist/rawResource/index.d.ts +1 -0
  107. package/dist/rawResource/model/resource.d.ts +17 -0
  108. package/dist/rawResource/rawResource.dataSource.d.ts +2 -0
  109. package/dist/rawResource/rawResource.module.d.ts +1 -0
  110. package/dist/rawResource/rawResource.states.d.ts +6 -0
  111. package/dist/resources/ResourceDetails.d.ts +17 -0
  112. package/dist/resources/resources.state.d.ts +7 -0
  113. package/dist/rolloutStrategy/bluegreen.strategy.d.ts +2 -0
  114. package/dist/rolloutStrategy/highlander.strategy.d.ts +2 -0
  115. package/dist/rolloutStrategy/index.d.ts +1 -0
  116. package/dist/rolloutStrategy/none.strategy.d.ts +2 -0
  117. package/dist/rolloutStrategy/redblack.strategy.d.ts +2 -0
  118. package/dist/securityGroup/details/details.controller.d.ts +1 -0
  119. package/dist/securityGroup/index.d.ts +1 -0
  120. package/dist/securityGroup/securityGroup.reader.d.ts +4 -0
  121. package/dist/securityGroup/transformer.d.ts +1 -0
  122. package/dist/serverGroup/details/details.controller.d.ts +1 -0
  123. package/dist/serverGroup/details/resize/resize.controller.d.ts +1 -0
  124. package/dist/serverGroup/index.d.ts +4 -0
  125. package/dist/serverGroup/serverGroupCommandBuilder.service.d.ts +6 -0
  126. package/dist/serverGroup/serverGroupTransformer.service.d.ts +6 -0
  127. package/dist/serverGroupManager/details/details.controller.d.ts +1 -0
  128. package/dist/serverGroupManager/index.d.ts +1 -0
  129. package/dist/validation/applicationName.validator.d.ts +9 -0
  130. package/package.json +58 -0
  131. package/src/help/kubernetes.help.ts +236 -0
  132. package/src/index.ts +7 -0
  133. package/src/instance/details/details.controller.ts +186 -0
  134. package/src/instance/details/details.html +80 -0
  135. package/src/instance/index.ts +1 -0
  136. package/src/interfaces/index.ts +1 -0
  137. package/src/interfaces/infrastructure.types.ts +35 -0
  138. package/src/kubernetes.module.ts +144 -0
  139. package/src/loadBalancer/details/details.controller.ts +101 -0
  140. package/src/loadBalancer/details/details.html +187 -0
  141. package/src/loadBalancer/index.ts +1 -0
  142. package/src/loadBalancer/transformer.ts +60 -0
  143. package/src/logo/kubernetes.icon.svg +102 -0
  144. package/src/logo/kubernetes.logo.less +6 -0
  145. package/src/logo/kubernetes.logo.svg +1 -0
  146. package/src/manifest/IManifestCoordinates.ts +5 -0
  147. package/src/manifest/ManifestImageDetails.spec.tsx +76 -0
  148. package/src/manifest/ManifestImageDetails.tsx +64 -0
  149. package/src/manifest/ManifestKindSearch.tsx +31 -0
  150. package/src/manifest/ManifestLabels.tsx +31 -0
  151. package/src/manifest/ManifestQos.tsx +68 -0
  152. package/src/manifest/ManifestResources.tsx +69 -0
  153. package/src/manifest/ManifestSource.ts +4 -0
  154. package/src/manifest/annotationCustomSections.component.ts +114 -0
  155. package/src/manifest/artifact/artifact.component.ts +23 -0
  156. package/src/manifest/delete/delete.controller.ts +80 -0
  157. package/src/manifest/delete/delete.html +42 -0
  158. package/src/manifest/delete/deleteOptionsForm.component.ts +52 -0
  159. package/src/manifest/editor/json/JsonEditor.tsx +56 -0
  160. package/src/manifest/editor/json/jsonEditor.component.ts +12 -0
  161. package/src/manifest/index.ts +10 -0
  162. package/src/manifest/manifest.service.ts +90 -0
  163. package/src/manifest/manifestCommandBuilder.service.ts +126 -0
  164. package/src/manifest/manifestEvents.component.ts +12 -0
  165. package/src/manifest/manifestImageDetails.component.ts +12 -0
  166. package/src/manifest/manifestLabels.component.ts +12 -0
  167. package/src/manifest/manifestLabels.less +3 -0
  168. package/src/manifest/manifestQos.component.ts +12 -0
  169. package/src/manifest/manifestResources.component.ts +12 -0
  170. package/src/manifest/rollout/RollingRestart.tsx +54 -0
  171. package/src/manifest/rollout/pause.controller.ts +66 -0
  172. package/src/manifest/rollout/pause.html +28 -0
  173. package/src/manifest/rollout/resume.controller.ts +66 -0
  174. package/src/manifest/rollout/resume.html +28 -0
  175. package/src/manifest/rollout/undo.controller.ts +74 -0
  176. package/src/manifest/rollout/undo.html +44 -0
  177. package/src/manifest/scale/ScaleSettingsForm.tsx +43 -0
  178. package/src/manifest/scale/scale.controller.ts +75 -0
  179. package/src/manifest/scale/scale.html +32 -0
  180. package/src/manifest/scale/scaleSettingsForm.component.ts +11 -0
  181. package/src/manifest/selector/IManifestLabelSelector.ts +19 -0
  182. package/src/manifest/selector/IManifestSelector.ts +64 -0
  183. package/src/manifest/selector/ManifestSelector.spec.tsx +414 -0
  184. package/src/manifest/selector/ManifestSelector.tsx +424 -0
  185. package/src/manifest/selector/labelEditor/LabelEditor.spec.tsx +81 -0
  186. package/src/manifest/selector/labelEditor/LabelEditor.tsx +126 -0
  187. package/src/manifest/selector/labelEditor/labelEditor.less +3 -0
  188. package/src/manifest/selector/selector.component.ts +17 -0
  189. package/src/manifest/status/ManifestCondition.tsx +32 -0
  190. package/src/manifest/status/condition.component.ts +12 -0
  191. package/src/manifest/status/status.component.ts +36 -0
  192. package/src/manifest/traffic/ManifestTrafficService.spec.ts +30 -0
  193. package/src/manifest/traffic/ManifestTrafficService.ts +67 -0
  194. package/src/manifest/wizard/BasicSettings.tsx +57 -0
  195. package/src/manifest/wizard/ManifestEntry.tsx +46 -0
  196. package/src/manifest/wizard/ManifestWizard.tsx +94 -0
  197. package/src/pipelines/stages/ManifestCoordinates.spec.tsx +90 -0
  198. package/src/pipelines/stages/ManifestCoordinates.tsx +128 -0
  199. package/src/pipelines/stages/ManifestExecutionDetails.tsx +58 -0
  200. package/src/pipelines/stages/deleteManifest/DeleteManifestOptionsForm.spec.tsx +85 -0
  201. package/src/pipelines/stages/deleteManifest/DeleteManifestOptionsForm.tsx +87 -0
  202. package/src/pipelines/stages/deleteManifest/DeleteManifestStageConfig.tsx +62 -0
  203. package/src/pipelines/stages/deleteManifest/deleteManifestOptionsForm.less +9 -0
  204. package/src/pipelines/stages/deleteManifest/deleteManifestStage.ts +21 -0
  205. package/src/pipelines/stages/deployManifest/CopyFromTemplateButton.tsx +45 -0
  206. package/src/pipelines/stages/deployManifest/DeployManifestStageConfig.tsx +77 -0
  207. package/src/pipelines/stages/deployManifest/DeployManifestStageForm.tsx +265 -0
  208. package/src/pipelines/stages/deployManifest/ManifestBindArtifactsSelector.tsx +69 -0
  209. package/src/pipelines/stages/deployManifest/ManifestCopier.spec.ts +110 -0
  210. package/src/pipelines/stages/deployManifest/ManifestCopier.tsx +222 -0
  211. package/src/pipelines/stages/deployManifest/ManifestDeploymentOptions.spec.tsx +75 -0
  212. package/src/pipelines/stages/deployManifest/ManifestDeploymentOptions.tsx +203 -0
  213. package/src/pipelines/stages/deployManifest/NamespaceSelector.tsx +40 -0
  214. package/src/pipelines/stages/deployManifest/deployManifest.validator.ts +38 -0
  215. package/src/pipelines/stages/deployManifest/deployManifestStage.ts +28 -0
  216. package/src/pipelines/stages/deployManifest/manifestStatus/DeployStatus.less +11 -0
  217. package/src/pipelines/stages/deployManifest/manifestStatus/DeployStatus.tsx +120 -0
  218. package/src/pipelines/stages/deployManifest/manifestStatus/DeployStatusPills.tsx +47 -0
  219. package/src/pipelines/stages/deployManifest/manifestStatus/ManifestDetailsLink.tsx +92 -0
  220. package/src/pipelines/stages/deployManifest/manifestStatus/ManifestEvents.tsx +87 -0
  221. package/src/pipelines/stages/deployManifest/manifestStatus/ManifestStatus.less +24 -0
  222. package/src/pipelines/stages/deployManifest/manifestStatus/ManifestStatus.tsx +46 -0
  223. package/src/pipelines/stages/findArtifactsFromResource/FindArtifactsFromResourceConfig.tsx +35 -0
  224. package/src/pipelines/stages/findArtifactsFromResource/FindArtifactsFromResourceStageForm.tsx +37 -0
  225. package/src/pipelines/stages/findArtifactsFromResource/findArtifactsFromResourceStage.ts +21 -0
  226. package/src/pipelines/stages/index.ts +8 -0
  227. package/src/pipelines/stages/patchManifest/PatchManifestOptionsForm.tsx +35 -0
  228. package/src/pipelines/stages/patchManifest/PatchManifestStageConfig.tsx +57 -0
  229. package/src/pipelines/stages/patchManifest/PatchManifestStageForm.tsx +157 -0
  230. package/src/pipelines/stages/patchManifest/patchManifestStage.ts +30 -0
  231. package/src/pipelines/stages/rolloutRestartManifest/RolloutRestartManifestStageConfig.tsx +46 -0
  232. package/src/pipelines/stages/rolloutRestartManifest/rolloutRestartManifestStage.ts +20 -0
  233. package/src/pipelines/stages/runJob/KubernetesV2RunJobStageConfig.tsx +242 -0
  234. package/src/pipelines/stages/runJob/RunJobExecutionDetails.tsx +67 -0
  235. package/src/pipelines/stages/runJob/runJobStage.ts +39 -0
  236. package/src/pipelines/stages/scaleManifest/ScaleManifestConfig.tsx +38 -0
  237. package/src/pipelines/stages/scaleManifest/ScaleManifestStageForm.tsx +46 -0
  238. package/src/pipelines/stages/scaleManifest/scaleManifestStage.ts +24 -0
  239. package/src/pipelines/stages/traffic/ManifestTrafficStageConfig.tsx +44 -0
  240. package/src/pipelines/stages/traffic/disableManifest.stage.ts +26 -0
  241. package/src/pipelines/stages/traffic/enableManifest.stage.ts +26 -0
  242. package/src/pipelines/stages/undoRolloutManifest/UndoRolloutManifestConfig.tsx +37 -0
  243. package/src/pipelines/stages/undoRolloutManifest/UndoRolloutManifestStageForm.tsx +60 -0
  244. package/src/pipelines/stages/undoRolloutManifest/undoRolloutManifestStage.ts +21 -0
  245. package/src/pipelines/stages/validators/manifestSelectorValidators.ts +43 -0
  246. package/src/pipelines/validation/manifestSelector.validator.ts +36 -0
  247. package/src/rawResource/component/K8sResources.less +9 -0
  248. package/src/rawResource/component/K8sResources.tsx +112 -0
  249. package/src/rawResource/component/K8sResourcesFilters.tsx +112 -0
  250. package/src/rawResource/component/RawResourceUtils.ts +19 -0
  251. package/src/rawResource/component/group/RawResouceGroup.tsx +41 -0
  252. package/src/rawResource/component/group/RawResource.less +79 -0
  253. package/src/rawResource/component/group/RawResource.tsx +51 -0
  254. package/src/rawResource/component/group/RawResourceDetails.tsx +236 -0
  255. package/src/rawResource/component/group/RawResourceGroups.tsx +53 -0
  256. package/src/rawResource/controller/FiltersPubSub.ts +35 -0
  257. package/src/rawResource/index.ts +1 -0
  258. package/src/rawResource/model/resource.ts +18 -0
  259. package/src/rawResource/rawResource.dataSource.ts +39 -0
  260. package/src/rawResource/rawResource.module.ts +8 -0
  261. package/src/rawResource/rawResource.states.ts +64 -0
  262. package/src/resources/ResourceDetails.tsx +121 -0
  263. package/src/resources/resources.state.ts +45 -0
  264. package/src/rolloutStrategy/bluegreen.strategy.ts +7 -0
  265. package/src/rolloutStrategy/highlander.strategy.ts +7 -0
  266. package/src/rolloutStrategy/index.ts +6 -0
  267. package/src/rolloutStrategy/none.strategy.ts +8 -0
  268. package/src/rolloutStrategy/redblack.strategy.ts +7 -0
  269. package/src/securityGroup/details/details.controller.ts +118 -0
  270. package/src/securityGroup/details/details.html +91 -0
  271. package/src/securityGroup/index.ts +1 -0
  272. package/src/securityGroup/securityGroup.reader.ts +11 -0
  273. package/src/securityGroup/transformer.ts +19 -0
  274. package/src/serverGroup/details/details.controller.ts +207 -0
  275. package/src/serverGroup/details/details.html +153 -0
  276. package/src/serverGroup/details/resize/resize.controller.ts +73 -0
  277. package/src/serverGroup/details/resize/resize.html +57 -0
  278. package/src/serverGroup/index.ts +4 -0
  279. package/src/serverGroup/serverGroupCommandBuilder.service.ts +18 -0
  280. package/src/serverGroup/serverGroupTransformer.service.spec.ts +67 -0
  281. package/src/serverGroup/serverGroupTransformer.service.ts +34 -0
  282. package/src/serverGroupManager/details/details.controller.ts +191 -0
  283. package/src/serverGroupManager/details/details.html +136 -0
  284. package/src/serverGroupManager/index.ts +1 -0
  285. package/src/validation/applicationName.validator.spec.ts +19 -0
  286. package/src/validation/applicationName.validator.ts +44 -0
@@ -0,0 +1,8 @@
1
+ import { module } from 'angular';
2
+
3
+ import { KUBERNETS_RAW_RESOURCE_DATA_SOURCE } from './rawResource.dataSource';
4
+ import { KUBERNETS_RAW_RESOURCE_STATES } from './rawResource.states';
5
+
6
+ export const KUBERNETS_RAW_RESOURCE_MODULE = 'spinnaker.kubernetes.rawresource';
7
+
8
+ module(KUBERNETS_RAW_RESOURCE_MODULE, [KUBERNETS_RAW_RESOURCE_DATA_SOURCE, KUBERNETS_RAW_RESOURCE_STATES]);
@@ -0,0 +1,64 @@
1
+ import { module } from 'angular';
2
+
3
+ //import { StateParams } from '@uirouter/angularjs';
4
+ import type { ApplicationStateProvider, INestedState } from '@spinnaker/core';
5
+ import { APPLICATION_STATE_PROVIDER } from '@spinnaker/core';
6
+
7
+ import { K8sResources } from './component/K8sResources';
8
+ import { K8sResourcesFilters } from './component/K8sResourcesFilters';
9
+ import { RawResourceDetails } from './component/group/RawResourceDetails';
10
+
11
+ export interface IKubernetesRawResourceStateParams {
12
+ account: string;
13
+ name: string;
14
+ region: string;
15
+ }
16
+
17
+ export const KUBERNETS_RAW_RESOURCE_STATES = 'spinnaker.kubernetes.rawresource.states';
18
+ module(KUBERNETS_RAW_RESOURCE_STATES, [APPLICATION_STATE_PROVIDER]).config([
19
+ 'applicationStateProvider',
20
+ (applicationStateProvider: ApplicationStateProvider) => {
21
+ const rawResourceDetails: INestedState = {
22
+ name: 'rawResourceDetails',
23
+ url: '/rawResourceDetails/:account/:region/:name',
24
+ views: {
25
+ 'detail@../insight': {
26
+ component: RawResourceDetails,
27
+ $type: 'react',
28
+ },
29
+ },
30
+ resolve: {
31
+ account: ['$stateParams', ($stateParams: IKubernetesRawResourceStateParams) => $stateParams.account],
32
+ name: ['$stateParams', ($stateParams: IKubernetesRawResourceStateParams) => $stateParams.name],
33
+ region: ['$stateParams', ($stateParams: IKubernetesRawResourceStateParams) => $stateParams.region],
34
+ },
35
+ data: {
36
+ pageTitleDetails: {
37
+ title: 'Raw Resource Details',
38
+ nameParam: 'name',
39
+ accountParam: 'account',
40
+ },
41
+ history: {
42
+ type: 'rawResources',
43
+ },
44
+ },
45
+ };
46
+ const kubernetes: INestedState = {
47
+ url: `/kubernetes`,
48
+ name: 'k8s',
49
+ views: {
50
+ nav: { component: K8sResourcesFilters, $type: 'react' },
51
+ master: { component: K8sResources, $type: 'react' },
52
+ },
53
+ data: {
54
+ pageTitleSection: {
55
+ title: 'Kubernetes',
56
+ },
57
+ },
58
+ children: [],
59
+ };
60
+
61
+ applicationStateProvider.addInsightState(kubernetes);
62
+ applicationStateProvider.addInsightDetailState(rawResourceDetails);
63
+ },
64
+ ]);
@@ -0,0 +1,121 @@
1
+ import { UISref } from '@uirouter/react';
2
+ import { get } from 'lodash';
3
+ import { DateTime } from 'luxon';
4
+ import React from 'react';
5
+
6
+ import type { IManifest } from '@spinnaker/core';
7
+ import { AccountTag, CloudProviderLogo, CollapsibleSection, Spinner, timestamp } from '@spinnaker/core';
8
+
9
+ import { ManifestLabels } from '../manifest/ManifestLabels';
10
+ import { KubernetesManifestService } from '../manifest/manifest.service';
11
+ import { ManifestCondition } from '../manifest/status/ManifestCondition';
12
+ import { ManifestEvents } from '../pipelines/stages/deployManifest/manifestStatus/ManifestEvents';
13
+
14
+ export interface IKubernetesResourceDetailsProps {
15
+ app: any;
16
+ kubernetesResource: any;
17
+ }
18
+
19
+ export interface IKubernetesResourceDetailsState {
20
+ manifest?: IManifest;
21
+ loading: boolean;
22
+ }
23
+
24
+ export class KubernetesResourceDetails extends React.Component<
25
+ IKubernetesResourceDetailsProps,
26
+ IKubernetesResourceDetailsState
27
+ > {
28
+ private unsubscribeManifest?: () => void;
29
+
30
+ constructor(props: IKubernetesResourceDetailsProps) {
31
+ super(props);
32
+ this.state = {
33
+ loading: true,
34
+ manifest: null,
35
+ };
36
+ }
37
+
38
+ public componentDidMount() {
39
+ const { kubernetesResource } = this.props;
40
+ const params = {
41
+ account: kubernetesResource.accountId,
42
+ location: kubernetesResource.region,
43
+ name: kubernetesResource.kubernetesResource,
44
+ };
45
+ this.unsubscribeManifest = KubernetesManifestService.subscribe(this.props.app, params, (manifest) => {
46
+ if (this.unsubscribeManifest != null) {
47
+ this.setState({ manifest, loading: false });
48
+ }
49
+ });
50
+ }
51
+
52
+ public componentWillUnmount() {
53
+ if (this.unsubscribeManifest) {
54
+ this.unsubscribeManifest();
55
+ this.unsubscribeManifest = null;
56
+ }
57
+ }
58
+
59
+ public render() {
60
+ const { manifest } = this.state;
61
+ const metadata = get(manifest, ['manifest', 'metadata'], null);
62
+ const creationUnixMs =
63
+ get(metadata, 'creationTimestamp') && DateTime.fromISO(metadata.creationTimestamp).toMillis();
64
+ return (
65
+ <div className="details-panel">
66
+ <div className="header">
67
+ <div className="close-button">
68
+ <a className="btn btn-link">
69
+ <UISref to="^">
70
+ <span className="glyphicon glyphicon-remove" />
71
+ </UISref>
72
+ </a>
73
+ </div>
74
+ {this.state.loading ? (
75
+ <div className="horizontal center middle">
76
+ <Spinner size="small" />
77
+ </div>
78
+ ) : (
79
+ <div className="header-text horizontal middle">
80
+ <CloudProviderLogo provider="kubernetes" height="36px" width="36px" />
81
+ <h3 className="horizontal middle space-between flex-1">{get(metadata, ['name'], '')}</h3>
82
+ </div>
83
+ )}
84
+ </div>
85
+ {!this.state.loading && (
86
+ <div className="content">
87
+ <CollapsibleSection heading="Information">
88
+ <dl className="dl-horizontal dl-narrow">
89
+ <dt>Created</dt>
90
+ <dd>{timestamp(creationUnixMs)}</dd>
91
+ <dt>Account</dt>
92
+ <dd>
93
+ <AccountTag account={get(manifest, ['account'], '')} />
94
+ </dd>
95
+ <dt>Namespace</dt>
96
+ <dd>{get(metadata, ['namespace'], '')}</dd>
97
+ <dt>Kind</dt>
98
+ <dd>{get(manifest, ['manifest', 'kind'], '')}</dd>
99
+ </dl>
100
+ </CollapsibleSection>
101
+ <CollapsibleSection key="status" heading="status" defaultExpanded={true}>
102
+ <ul>
103
+ {get(manifest, ['manifest', 'status', 'conditions'], []).map((condition) => (
104
+ <li key={condition.type + condition.lastTransitionTime} style={{ marginBottom: '10px' }}>
105
+ <ManifestCondition condition={condition} />
106
+ </li>
107
+ ))}
108
+ </ul>
109
+ </CollapsibleSection>
110
+ <CollapsibleSection key="events" heading="events" defaultExpanded={true}>
111
+ <ManifestEvents manifest={manifest} />
112
+ </CollapsibleSection>
113
+ <CollapsibleSection key="labels" heading="labels" defaultExpanded={true}>
114
+ <ManifestLabels manifest={get(manifest, ['manifest'], {})} />
115
+ </CollapsibleSection>
116
+ </div>
117
+ )}
118
+ </div>
119
+ );
120
+ }
121
+ }
@@ -0,0 +1,45 @@
1
+ import { module } from 'angular';
2
+ import type { ApplicationStateProvider, INestedState } from '@spinnaker/core';
3
+ import { APPLICATION_STATE_PROVIDER } from '@spinnaker/core';
4
+ import { KubernetesResourceDetails } from './ResourceDetails';
5
+
6
+ export interface IKubernetesResourceStateParams {
7
+ provider: string;
8
+ accountId: string;
9
+ region: string;
10
+ kubernetesResource: string;
11
+ }
12
+
13
+ export const KUBERNETES_RESOURCE_STATES = 'spinnaker.core.kubernetesResource.states';
14
+ module(KUBERNETES_RESOURCE_STATES, [APPLICATION_STATE_PROVIDER]).config([
15
+ 'applicationStateProvider',
16
+ (applicationStateProvider: ApplicationStateProvider) => {
17
+ const kubernetesResourceDetails: INestedState = {
18
+ name: 'kubernetesResource',
19
+ url: '/manifest/:provider/:accountId/:region/:kubernetesResource',
20
+ views: {
21
+ 'detail@../insight': {
22
+ component: KubernetesResourceDetails,
23
+ $type: 'react',
24
+ },
25
+ },
26
+ resolve: {
27
+ accountId: ['$stateParams', ($stateParams: IKubernetesResourceStateParams) => $stateParams.accountId],
28
+ kubernetesResource: ['$stateParams', ($stateParams: IKubernetesResourceStateParams) => $stateParams],
29
+ },
30
+ data: {
31
+ pageTitleDetails: {
32
+ title: 'Generic Kubernetes Resource Details',
33
+ nameParam: 'kubernetesResource',
34
+ accountParam: 'accountId',
35
+ regionParam: 'region',
36
+ },
37
+ history: {
38
+ type: 'kubernetesResource',
39
+ },
40
+ },
41
+ };
42
+
43
+ applicationStateProvider.addInsightDetailState(kubernetesResourceDetails);
44
+ },
45
+ ]);
@@ -0,0 +1,7 @@
1
+ import type { IDeploymentStrategy } from '@spinnaker/core';
2
+
3
+ export const strategyBlueGreen: IDeploymentStrategy = {
4
+ label: 'Blue/Green',
5
+ description: 'Disables <i>all</i> previous ReplicaSets in the cluster as soon as the new ReplicaSet is ready',
6
+ key: 'bluegreen',
7
+ };
@@ -0,0 +1,7 @@
1
+ import type { IDeploymentStrategy } from '@spinnaker/core';
2
+
3
+ export const strategyHighlander: IDeploymentStrategy = {
4
+ label: 'Highlander',
5
+ description: 'Destroys <i>all</i> previous ReplicaSets in the cluster as soon as the new ReplicaSet is ready',
6
+ key: 'highlander',
7
+ };
@@ -0,0 +1,6 @@
1
+ import { strategyBlueGreen } from './bluegreen.strategy';
2
+ import { strategyHighlander } from './highlander.strategy';
3
+ import { strategyNone } from './none.strategy';
4
+ import { strategyRedBlack } from './redblack.strategy';
5
+
6
+ export const rolloutStrategies = [strategyNone, strategyRedBlack, strategyHighlander, strategyBlueGreen];
@@ -0,0 +1,8 @@
1
+ import type { IDeploymentStrategy } from '@spinnaker/core';
2
+
3
+ export const strategyNone: IDeploymentStrategy = {
4
+ label: 'None',
5
+ description: 'Creates the new ReplicaSet with no impact on existing ReplicaSets in the cluster',
6
+ key: null,
7
+ providerRestricted: false,
8
+ };
@@ -0,0 +1,7 @@
1
+ import type { IDeploymentStrategy } from '@spinnaker/core';
2
+
3
+ export const strategyRedBlack: IDeploymentStrategy = {
4
+ label: 'Red/Black (Deprecated)',
5
+ description: 'Disables <i>all</i> previous ReplicaSets in the cluster as soon as the new ReplicaSet is ready',
6
+ key: 'redblack',
7
+ };
@@ -0,0 +1,118 @@
1
+ import type { StateService } from '@uirouter/angularjs';
2
+ import type { IController, IQService, IScope } from 'angular';
3
+ import { module } from 'angular';
4
+ import type { IModalService } from 'angular-ui-bootstrap';
5
+
6
+ import type { Application, IManifest, ISecurityGroupDetail, SecurityGroupReader } from '@spinnaker/core';
7
+ import { ManifestReader, SECURITY_GROUP_READER, SETTINGS } from '@spinnaker/core';
8
+
9
+ import type { IKubernetesSecurityGroup } from '../../interfaces';
10
+ import { KubernetesManifestCommandBuilder } from '../../manifest/manifestCommandBuilder.service';
11
+ import { ManifestWizard } from '../../manifest/wizard/ManifestWizard';
12
+
13
+ interface ISecurityGroupFromStateParams {
14
+ accountId: string;
15
+ region: string;
16
+ name: string;
17
+ }
18
+
19
+ class KubernetesSecurityGroupDetailsController implements IController {
20
+ public state = { loading: true };
21
+ public securityGroup: IKubernetesSecurityGroup;
22
+ public manifest: IManifest;
23
+
24
+ public static $inject = [
25
+ '$uibModal',
26
+ '$state',
27
+ '$scope',
28
+ 'securityGroupReader',
29
+ 'resolvedSecurityGroup',
30
+ 'app',
31
+ '$q',
32
+ ];
33
+ constructor(
34
+ private $uibModal: IModalService,
35
+ private $state: StateService,
36
+ private $scope: IScope,
37
+ private securityGroupReader: SecurityGroupReader,
38
+ resolvedSecurityGroup: ISecurityGroupFromStateParams,
39
+ private app: Application,
40
+ private $q: IQService,
41
+ ) {
42
+ const dataSource = app.getDataSource('securityGroups');
43
+ dataSource
44
+ .ready()
45
+ .then(() => {
46
+ this.extractSecurityGroup(resolvedSecurityGroup);
47
+ this.$scope.isDisabled = !SETTINGS.kubernetesAdHocInfraWritesEnabled;
48
+ dataSource.onRefresh(this.$scope, () => this.extractSecurityGroup(resolvedSecurityGroup));
49
+ })
50
+ .catch(() => this.autoClose());
51
+ }
52
+
53
+ public deleteSecurityGroup(): void {
54
+ this.$uibModal.open({
55
+ templateUrl: require('../../manifest/delete/delete.html'),
56
+ controller: 'kubernetesV2ManifestDeleteCtrl',
57
+ controllerAs: 'ctrl',
58
+ resolve: {
59
+ coordinates: {
60
+ name: this.securityGroup.name,
61
+ namespace: this.securityGroup.region,
62
+ account: this.securityGroup.account,
63
+ },
64
+ application: this.app,
65
+ manifestController: (): string => null,
66
+ },
67
+ });
68
+ }
69
+
70
+ public editSecurityGroup(): void {
71
+ KubernetesManifestCommandBuilder.buildNewManifestCommand(
72
+ this.app,
73
+ this.manifest.manifest,
74
+ this.securityGroup.moniker,
75
+ this.securityGroup.account,
76
+ ).then((builtCommand) => {
77
+ ManifestWizard.show({ title: 'Edit Manifest', application: this.app, command: builtCommand });
78
+ });
79
+ }
80
+
81
+ private extractSecurityGroup({ accountId, name, region }: ISecurityGroupFromStateParams): void {
82
+ this.$q
83
+ .all([
84
+ this.securityGroupReader.getSecurityGroupDetails(
85
+ this.app,
86
+ accountId,
87
+ 'kubernetes',
88
+ region,
89
+ '', // unused vpc id
90
+ name,
91
+ ),
92
+ ManifestReader.getManifest(accountId, region, name),
93
+ ])
94
+ .then(([securityGroup, manifest]: [ISecurityGroupDetail, IManifest]) => {
95
+ if (!securityGroup) {
96
+ return this.autoClose();
97
+ }
98
+ this.securityGroup = securityGroup as IKubernetesSecurityGroup;
99
+ this.manifest = manifest;
100
+ this.state.loading = false;
101
+ });
102
+ }
103
+
104
+ private autoClose(): void {
105
+ if (this.$scope.$$destroyed) {
106
+ return;
107
+ } else {
108
+ this.$state.params.allowModalToStayOpen = true;
109
+ this.$state.go('^', null, { location: 'replace' });
110
+ }
111
+ }
112
+ }
113
+
114
+ export const KUBERNETES_SECURITY_GROUP_DETAILS_CTRL = 'spinnaker.kubernetes.securityGroupDetails.controller';
115
+ module(KUBERNETES_SECURITY_GROUP_DETAILS_CTRL, [SECURITY_GROUP_READER]).controller(
116
+ 'kubernetesV2SecurityGroupDetailsCtrl',
117
+ KubernetesSecurityGroupDetailsController,
118
+ );
@@ -0,0 +1,91 @@
1
+ <div class="details-panel">
2
+ <div ng-if="ctrl.state.loading" class="header">
3
+ <div class="close-button">
4
+ <a class="btn btn-link" ui-sref="^">
5
+ <span class="glyphicon glyphicon-remove"></span>
6
+ </a>
7
+ </div>
8
+ <h4 class="text-center">
9
+ <span us-spinner="{radius:20, width:6, length: 12}"></span>
10
+ </h4>
11
+ </div>
12
+
13
+ <div class="header" ng-if="!ctrl.state.loading">
14
+ <div class="close-button">
15
+ <a class="btn btn-link" ui-sref="^">
16
+ <span class="glyphicon glyphicon-remove"></span>
17
+ </a>
18
+ </div>
19
+ <div class="header-text horizontal middle">
20
+ <cloud-provider-logo
21
+ provider="ctrl.securityGroup.cloudProvider"
22
+ height="'36px'"
23
+ width="'36px'"
24
+ ></cloud-provider-logo>
25
+ <h3 class="horizontal middle space-between flex-1" select-on-dbl-click>
26
+ {{ctrl.securityGroup.displayName}}
27
+
28
+ <render-if-feature feature="entityTags">
29
+ <entity-notifications
30
+ ng-if="!state.loading"
31
+ entity="ctrl.securityGroup"
32
+ application="ctrl.app"
33
+ placement="bottom"
34
+ h-offset-percent="90%"
35
+ entity-type="securityGroup"
36
+ page-location="details"
37
+ on-update="ctrl.app.securityGroups.refresh()"
38
+ ></entity-notifications>
39
+ </render-if-feature>
40
+ </h3>
41
+ </div>
42
+ <div class="actions">
43
+ <div class="dropdown" uib-dropdown dropdown-append-to-body>
44
+ <button type="button" class="btn btn-sm btn-primary dropdown-toggle" uib-dropdown-toggle ng-hide="isDisabled">
45
+ <firewall-label label="{{ctrl.securityGroup.kind | robotToHuman}}"></firewall-label> Actions
46
+ <span class="caret"></span>
47
+ </button>
48
+ <ul class="dropdown-menu" uib-dropdown-menu role="menu">
49
+ <li>
50
+ <a href ng-click="ctrl.deleteSecurityGroup()">Delete <firewall-label label="Firewall"></firewall-label></a>
51
+ </li>
52
+ <li>
53
+ <a href ng-click="ctrl.editSecurityGroup()">Edit <firewall-label label="Firewall"></firewall-label></a>
54
+ </li>
55
+ <render-if-feature feature="entityTags">
56
+ <add-entity-tag-links
57
+ component="ctrl.securityGroup"
58
+ application="ctrl.app"
59
+ entity-type="securityGroup"
60
+ on-update="ctrl.app.securityGroups.refresh"
61
+ ></add-entity-tag-links>
62
+ </render-if-feature>
63
+ </ul>
64
+ </div>
65
+ </div>
66
+ </div>
67
+
68
+ <div ng-if="!ctrl.state.loading" class="content">
69
+ <collapsible-section heading="Information" expanded="true">
70
+ <dl class="dl-horizontal dl-narrow">
71
+ <dt>Created</dt>
72
+ <dd>{{ctrl.securityGroup.createdTime | timestamp}}</dd>
73
+ <dt>Account</dt>
74
+ <dd><account-tag account="ctrl.securityGroup.account" pad="right"></account-tag></dd>
75
+ <dt>Namespace</dt>
76
+ <dd>{{ctrl.securityGroup.namespace}}</dd>
77
+ <dt>Kind</dt>
78
+ <dd>{{ctrl.securityGroup.kind}}</dd>
79
+ </dl>
80
+ </collapsible-section>
81
+
82
+ <kubernetes-annotation-custom-sections
83
+ manifest="ctrl.manifest.manifest"
84
+ resource="ctrl.securityGroup"
85
+ ></kubernetes-annotation-custom-sections>
86
+
87
+ <collapsible-section heading="Labels" expanded="true">
88
+ <kubernetes-manifest-labels manifest="ctrl.manifest.manifest"></kubernetes-manifest-labels>
89
+ </collapsible-section>
90
+ </div>
91
+ </div>
@@ -0,0 +1 @@
1
+ export * from './details/details.controller';
@@ -0,0 +1,11 @@
1
+ import type { ISecurityGroup, ISecurityGroupsByAccount } from '@spinnaker/core';
2
+
3
+ export class KubernetesSecurityGroupReader {
4
+ public resolveIndexedSecurityGroup(
5
+ indexedSecurityGroups: ISecurityGroupsByAccount,
6
+ container: ISecurityGroup,
7
+ securityGroupId: string,
8
+ ): ISecurityGroup {
9
+ return indexedSecurityGroups[container.account][container.region][securityGroupId];
10
+ }
11
+ }
@@ -0,0 +1,19 @@
1
+ import type { IQService } from 'angular';
2
+ import { module } from 'angular';
3
+
4
+ import type { ISecurityGroup } from '@spinnaker/core';
5
+
6
+ class KubernetesV2SecurityGroupTransformer {
7
+ public static $inject = ['$q'];
8
+ constructor(private $q: IQService) {}
9
+
10
+ public normalizeSecurityGroup(securityGroup: ISecurityGroup): PromiseLike<ISecurityGroup> {
11
+ return this.$q.resolve(securityGroup);
12
+ }
13
+ }
14
+
15
+ export const KUBERNETES_SECURITY_GROUP_TRANSFORMER = 'spinnaker.kubernetes.securityGroupTransformer';
16
+ module(KUBERNETES_SECURITY_GROUP_TRANSFORMER, []).service(
17
+ 'kubernetesV2SecurityGroupTransformer',
18
+ KubernetesV2SecurityGroupTransformer,
19
+ );