@spinnaker/kubernetes 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.
- package/CHANGELOG.md +1663 -0
- package/LICENSE.txt +203 -0
- package/dist/help/kubernetes.help.d.ts +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +6561 -0
- package/dist/index.js.map +1 -0
- package/dist/instance/details/details.controller.d.ts +1 -0
- package/dist/instance/index.d.ts +1 -0
- package/dist/interfaces/index.d.ts +1 -0
- package/dist/interfaces/infrastructure.types.d.ts +27 -0
- package/dist/kubernetes.module.d.ts +6 -0
- package/dist/loadBalancer/details/details.controller.d.ts +1 -0
- package/dist/loadBalancer/index.d.ts +1 -0
- package/dist/loadBalancer/transformer.d.ts +1 -0
- package/dist/manifest/AnnotationCustomSections.d.ts +5 -0
- package/dist/manifest/IManifestCoordinates.d.ts +5 -0
- package/dist/manifest/ManifestImageDetails.d.ts +18 -0
- package/dist/manifest/ManifestKindSearch.d.ts +13 -0
- package/dist/manifest/ManifestLabels.d.ts +15 -0
- package/dist/manifest/ManifestQos.d.ts +15 -0
- package/dist/manifest/ManifestResources.d.ts +35 -0
- package/dist/manifest/ManifestSource.d.ts +4 -0
- package/dist/manifest/annotationCustomSections.component.d.ts +3 -0
- package/dist/manifest/artifact/ManifestArtifact.d.ts +6 -0
- package/dist/manifest/delete/delete.controller.d.ts +12 -0
- package/dist/manifest/delete/deleteOptionsForm.component.d.ts +1 -0
- package/dist/manifest/editor/json/JsonEditor.d.ts +12 -0
- package/dist/manifest/editor/json/jsonEditor.component.d.ts +1 -0
- package/dist/manifest/index.d.ts +10 -0
- package/dist/manifest/manifest.service.d.ts +25 -0
- package/dist/manifest/manifestCommandBuilder.service.d.ts +30 -0
- package/dist/manifest/manifestEvents.component.d.ts +1 -0
- package/dist/manifest/manifestImageDetails.component.d.ts +1 -0
- package/dist/manifest/manifestLabels.component.d.ts +1 -0
- package/dist/manifest/manifestQos.component.d.ts +1 -0
- package/dist/manifest/manifestResources.component.d.ts +1 -0
- package/dist/manifest/rollout/RollingRestart.d.ts +9 -0
- package/dist/manifest/rollout/pause.controller.d.ts +1 -0
- package/dist/manifest/rollout/resume.controller.d.ts +1 -0
- package/dist/manifest/rollout/undo.controller.d.ts +1 -0
- package/dist/manifest/scale/ScaleSettingsForm.d.ts +10 -0
- package/dist/manifest/scale/scale.controller.d.ts +8 -0
- package/dist/manifest/scale/scaleSettingsForm.component.d.ts +1 -0
- package/dist/manifest/selector/IManifestLabelSelector.d.ts +9 -0
- package/dist/manifest/selector/IManifestSelector.d.ts +30 -0
- package/dist/manifest/selector/ManifestSelector.d.ts +46 -0
- package/dist/manifest/selector/labelEditor/LabelEditor.d.ts +15 -0
- package/dist/manifest/selector/selector.component.d.ts +1 -0
- package/dist/manifest/status/ManifestCondition.d.ts +13 -0
- package/dist/manifest/status/ManifestStatus.d.ts +8 -0
- package/dist/manifest/status/condition.component.d.ts +1 -0
- package/dist/manifest/status/status.component.d.ts +1 -0
- package/dist/manifest/traffic/ManifestTrafficService.d.ts +12 -0
- package/dist/manifest/wizard/BasicSettings.d.ts +17 -0
- package/dist/manifest/wizard/ManifestEntry.d.ts +16 -0
- package/dist/manifest/wizard/ManifestWizard.d.ts +22 -0
- package/dist/pipelines/stages/ManifestCoordinates.d.ts +31 -0
- package/dist/pipelines/stages/ManifestExecutionDetails.d.ts +69 -0
- package/dist/pipelines/stages/deleteManifest/DeleteManifestOptionsForm.d.ts +18 -0
- package/dist/pipelines/stages/deleteManifest/DeleteManifestStageConfig.d.ts +14 -0
- package/dist/pipelines/stages/deleteManifest/deleteManifestStage.d.ts +1 -0
- package/dist/pipelines/stages/deployManifest/CopyFromTemplateButton.d.ts +15 -0
- package/dist/pipelines/stages/deployManifest/DeployManifestStageConfig.d.ts +15 -0
- package/dist/pipelines/stages/deployManifest/DeployManifestStageForm.d.ts +31 -0
- package/dist/pipelines/stages/deployManifest/ManifestBindArtifactsSelector.d.ts +17 -0
- package/dist/pipelines/stages/deployManifest/ManifestCopier.d.ts +36 -0
- package/dist/pipelines/stages/deployManifest/ManifestDeploymentOptions.d.ts +34 -0
- package/dist/pipelines/stages/deployManifest/NamespaceSelector.d.ts +16 -0
- package/dist/pipelines/stages/deployManifest/deployManifest.validator.d.ts +2 -0
- package/dist/pipelines/stages/deployManifest/deployManifestStage.d.ts +1 -0
- package/dist/pipelines/stages/deployManifest/manifestStatus/DeployStatus.d.ts +23 -0
- package/dist/pipelines/stages/deployManifest/manifestStatus/DeployStatusPills.d.ts +8 -0
- package/dist/pipelines/stages/deployManifest/manifestStatus/ManifestDetailsLink.d.ts +20 -0
- package/dist/pipelines/stages/deployManifest/manifestStatus/ManifestEvents.d.ts +9 -0
- package/dist/pipelines/stages/deployManifest/manifestStatus/ManifestStatus.d.ts +8 -0
- package/dist/pipelines/stages/findArtifactsFromResource/FindArtifactsFromResourceConfig.d.ts +3 -0
- package/dist/pipelines/stages/findArtifactsFromResource/FindArtifactsFromResourceStageForm.d.ts +7 -0
- package/dist/pipelines/stages/findArtifactsFromResource/findArtifactsFromResourceStage.d.ts +1 -0
- package/dist/pipelines/stages/index.d.ts +8 -0
- package/dist/pipelines/stages/patchManifest/PatchManifestOptionsForm.d.ts +8 -0
- package/dist/pipelines/stages/patchManifest/PatchManifestStageConfig.d.ts +7 -0
- package/dist/pipelines/stages/patchManifest/PatchManifestStageForm.d.ts +21 -0
- package/dist/pipelines/stages/patchManifest/patchManifestStage.d.ts +4 -0
- package/dist/pipelines/stages/rolloutRestartManifest/RolloutRestartManifestStageConfig.d.ts +13 -0
- package/dist/pipelines/stages/rolloutRestartManifest/rolloutRestartManifestStage.d.ts +4 -0
- package/dist/pipelines/stages/runJob/KubernetesV2RunJobStageConfig.d.ts +31 -0
- package/dist/pipelines/stages/runJob/RunJobExecutionDetails.d.ts +7 -0
- package/dist/pipelines/stages/runJob/runJobStage.d.ts +1 -0
- package/dist/pipelines/stages/scaleManifest/ScaleManifestConfig.d.ts +3 -0
- package/dist/pipelines/stages/scaleManifest/ScaleManifestStageForm.d.ts +7 -0
- package/dist/pipelines/stages/scaleManifest/scaleManifestStage.d.ts +1 -0
- package/dist/pipelines/stages/traffic/ManifestTrafficStageConfig.d.ts +11 -0
- package/dist/pipelines/stages/traffic/disableManifest.stage.d.ts +1 -0
- package/dist/pipelines/stages/traffic/enableManifest.stage.d.ts +1 -0
- package/dist/pipelines/stages/undoRolloutManifest/UndoRolloutManifestConfig.d.ts +3 -0
- package/dist/pipelines/stages/undoRolloutManifest/UndoRolloutManifestStageForm.d.ts +7 -0
- package/dist/pipelines/stages/undoRolloutManifest/undoRolloutManifestStage.d.ts +1 -0
- package/dist/pipelines/stages/validators/manifestSelectorValidators.d.ts +2 -0
- package/dist/pipelines/validation/manifestSelector.validator.d.ts +8 -0
- package/dist/rawResource/component/K8sResources.d.ts +25 -0
- package/dist/rawResource/component/K8sResourcesFilters.d.ts +20 -0
- package/dist/rawResource/component/RawResourceUtils.d.ts +5 -0
- package/dist/rawResource/component/group/RawResouceGroup.d.ts +15 -0
- package/dist/rawResource/component/group/RawResource.d.ts +12 -0
- package/dist/rawResource/component/group/RawResourceDetails.d.ts +32 -0
- package/dist/rawResource/component/group/RawResourceGroups.d.ts +14 -0
- package/dist/rawResource/controller/FiltersPubSub.d.ts +12 -0
- package/dist/rawResource/index.d.ts +1 -0
- package/dist/rawResource/model/resource.d.ts +17 -0
- package/dist/rawResource/rawResource.dataSource.d.ts +2 -0
- package/dist/rawResource/rawResource.module.d.ts +1 -0
- package/dist/rawResource/rawResource.states.d.ts +6 -0
- package/dist/reactShims/index.d.ts +1 -0
- package/dist/reactShims/kubernetes.react.injector.d.ts +11 -0
- package/dist/reactShims/kubernetes.react.module.d.ts +1 -0
- package/dist/resources/ResourceDetails.d.ts +17 -0
- package/dist/resources/resources.state.d.ts +7 -0
- package/dist/rolloutStrategy/bluegreen.strategy.d.ts +2 -0
- package/dist/rolloutStrategy/highlander.strategy.d.ts +2 -0
- package/dist/rolloutStrategy/index.d.ts +1 -0
- package/dist/rolloutStrategy/none.strategy.d.ts +2 -0
- package/dist/rolloutStrategy/redblack.strategy.d.ts +2 -0
- package/dist/securityGroup/details/details.controller.d.ts +1 -0
- package/dist/securityGroup/index.d.ts +1 -0
- package/dist/securityGroup/securityGroup.reader.d.ts +4 -0
- package/dist/securityGroup/transformer.d.ts +1 -0
- package/dist/serverGroup/details/KubernetesServerGroupActions.d.ts +7 -0
- package/dist/serverGroup/details/kubernetesServerGroupDetailsGetter.d.ts +4 -0
- package/dist/serverGroup/details/sections/IKubernetesServerGroupDetailsSectionProps.d.ts +5 -0
- package/dist/serverGroup/details/sections/ServerGroupAnnotationCustomSection.d.ts +3 -0
- package/dist/serverGroup/details/sections/ServerGroupEventsSection.d.ts +3 -0
- package/dist/serverGroup/details/sections/ServerGroupHealthSection.d.ts +3 -0
- package/dist/serverGroup/details/sections/ServerGroupImagesSection.d.ts +3 -0
- package/dist/serverGroup/details/sections/ServerGroupInformationSection.d.ts +3 -0
- package/dist/serverGroup/details/sections/ServerGroupLabelsSection.d.ts +3 -0
- package/dist/serverGroup/details/sections/ServerGroupManifestStatusSection.d.ts +3 -0
- package/dist/serverGroup/details/sections/ServerGroupSizeSection.d.ts +3 -0
- package/dist/serverGroup/details/sections/index.d.ts +9 -0
- package/dist/serverGroup/details/useManifest.d.ts +8 -0
- package/dist/serverGroup/index.d.ts +3 -0
- package/dist/serverGroup/serverGroupCommandBuilder.d.ts +5 -0
- package/dist/serverGroup/serverGroupTransformer.d.ts +5 -0
- package/dist/serverGroupManager/details/ServerGroupManagerActions.d.ts +9 -0
- package/dist/serverGroupManager/details/ServerGroupManagerDetails.d.ts +7 -0
- package/dist/serverGroupManager/details/sections/IKubernetesServerGroupManagerDetailsSectionProps.d.ts +6 -0
- package/dist/serverGroupManager/details/sections/ServerGroupManagerAnnotationCustomSection.d.ts +3 -0
- package/dist/serverGroupManager/details/sections/ServerGroupManagerArtifactsSection.d.ts +3 -0
- package/dist/serverGroupManager/details/sections/ServerGroupManagerEventsSection.d.ts +3 -0
- package/dist/serverGroupManager/details/sections/ServerGroupManagerInformationSection.d.ts +3 -0
- package/dist/serverGroupManager/details/sections/ServerGroupManagerLabelsSection.d.ts +3 -0
- package/dist/serverGroupManager/details/sections/ServerGroupManagerManifestConditionSection.d.ts +3 -0
- package/dist/serverGroupManager/details/sections/ServerGroupManagerManifestStatusSection.d.ts +3 -0
- package/dist/serverGroupManager/details/sections/index.d.ts +8 -0
- package/dist/serverGroupManager/details/useKubernetesServerGroupManagerDetails.d.ts +4 -0
- package/dist/serverGroupManager/index.d.ts +1 -0
- package/dist/validation/applicationName.validator.d.ts +9 -0
- package/package.json +58 -0
- package/src/help/kubernetes.help.ts +236 -0
- package/src/index.ts +8 -0
- package/src/instance/details/details.controller.ts +186 -0
- package/src/instance/details/details.html +80 -0
- package/src/instance/index.ts +1 -0
- package/src/interfaces/index.ts +1 -0
- package/src/interfaces/infrastructure.types.ts +40 -0
- package/src/kubernetes.module.ts +155 -0
- package/src/loadBalancer/details/details.controller.ts +101 -0
- package/src/loadBalancer/details/details.html +187 -0
- package/src/loadBalancer/index.ts +1 -0
- package/src/loadBalancer/transformer.ts +60 -0
- package/src/logo/kubernetes.icon.svg +102 -0
- package/src/logo/kubernetes.logo.less +6 -0
- package/src/logo/kubernetes.logo.svg +1 -0
- package/src/manifest/AnnotationCustomSections.tsx +6 -0
- package/src/manifest/IManifestCoordinates.ts +5 -0
- package/src/manifest/ManifestImageDetails.spec.tsx +76 -0
- package/src/manifest/ManifestImageDetails.tsx +64 -0
- package/src/manifest/ManifestKindSearch.tsx +31 -0
- package/src/manifest/ManifestLabels.tsx +31 -0
- package/src/manifest/ManifestQos.tsx +68 -0
- package/src/manifest/ManifestResources.tsx +69 -0
- package/src/manifest/ManifestSource.ts +4 -0
- package/src/manifest/annotationCustomSections.component.ts +114 -0
- package/src/manifest/artifact/ManifestArtifact.tsx +16 -0
- package/src/manifest/delete/delete.controller.ts +80 -0
- package/src/manifest/delete/delete.html +42 -0
- package/src/manifest/delete/deleteOptionsForm.component.ts +52 -0
- package/src/manifest/editor/json/JsonEditor.tsx +56 -0
- package/src/manifest/editor/json/jsonEditor.component.ts +12 -0
- package/src/manifest/index.ts +10 -0
- package/src/manifest/manifest.service.ts +90 -0
- package/src/manifest/manifestCommandBuilder.service.ts +126 -0
- package/src/manifest/manifestEvents.component.ts +12 -0
- package/src/manifest/manifestImageDetails.component.ts +12 -0
- package/src/manifest/manifestLabels.component.ts +12 -0
- package/src/manifest/manifestLabels.less +3 -0
- package/src/manifest/manifestQos.component.ts +12 -0
- package/src/manifest/manifestResources.component.ts +12 -0
- package/src/manifest/rollout/RollingRestart.tsx +46 -0
- package/src/manifest/rollout/pause.controller.ts +66 -0
- package/src/manifest/rollout/pause.html +28 -0
- package/src/manifest/rollout/resume.controller.ts +66 -0
- package/src/manifest/rollout/resume.html +28 -0
- package/src/manifest/rollout/undo.controller.ts +74 -0
- package/src/manifest/rollout/undo.html +44 -0
- package/src/manifest/scale/ScaleSettingsForm.tsx +43 -0
- package/src/manifest/scale/scale.controller.ts +75 -0
- package/src/manifest/scale/scale.html +32 -0
- package/src/manifest/scale/scaleSettingsForm.component.ts +11 -0
- package/src/manifest/selector/IManifestLabelSelector.ts +19 -0
- package/src/manifest/selector/IManifestSelector.ts +64 -0
- package/src/manifest/selector/ManifestSelector.spec.tsx +414 -0
- package/src/manifest/selector/ManifestSelector.tsx +424 -0
- package/src/manifest/selector/labelEditor/LabelEditor.spec.tsx +81 -0
- package/src/manifest/selector/labelEditor/LabelEditor.tsx +126 -0
- package/src/manifest/selector/labelEditor/labelEditor.less +3 -0
- package/src/manifest/selector/selector.component.ts +17 -0
- package/src/manifest/status/ManifestCondition.tsx +32 -0
- package/src/manifest/status/ManifestStatus.tsx +39 -0
- package/src/manifest/status/condition.component.ts +12 -0
- package/src/manifest/status/status.component.ts +11 -0
- package/src/manifest/traffic/ManifestTrafficService.spec.ts +30 -0
- package/src/manifest/traffic/ManifestTrafficService.ts +67 -0
- package/src/manifest/wizard/BasicSettings.tsx +57 -0
- package/src/manifest/wizard/ManifestEntry.tsx +46 -0
- package/src/manifest/wizard/ManifestWizard.tsx +94 -0
- package/src/pipelines/stages/ManifestCoordinates.spec.tsx +90 -0
- package/src/pipelines/stages/ManifestCoordinates.tsx +128 -0
- package/src/pipelines/stages/ManifestExecutionDetails.tsx +58 -0
- package/src/pipelines/stages/deleteManifest/DeleteManifestOptionsForm.spec.tsx +85 -0
- package/src/pipelines/stages/deleteManifest/DeleteManifestOptionsForm.tsx +87 -0
- package/src/pipelines/stages/deleteManifest/DeleteManifestStageConfig.tsx +62 -0
- package/src/pipelines/stages/deleteManifest/deleteManifestOptionsForm.less +9 -0
- package/src/pipelines/stages/deleteManifest/deleteManifestStage.ts +21 -0
- package/src/pipelines/stages/deployManifest/CopyFromTemplateButton.tsx +45 -0
- package/src/pipelines/stages/deployManifest/DeployManifestStageConfig.tsx +77 -0
- package/src/pipelines/stages/deployManifest/DeployManifestStageForm.tsx +265 -0
- package/src/pipelines/stages/deployManifest/ManifestBindArtifactsSelector.tsx +69 -0
- package/src/pipelines/stages/deployManifest/ManifestCopier.spec.ts +110 -0
- package/src/pipelines/stages/deployManifest/ManifestCopier.tsx +222 -0
- package/src/pipelines/stages/deployManifest/ManifestDeploymentOptions.spec.tsx +75 -0
- package/src/pipelines/stages/deployManifest/ManifestDeploymentOptions.tsx +203 -0
- package/src/pipelines/stages/deployManifest/NamespaceSelector.tsx +40 -0
- package/src/pipelines/stages/deployManifest/deployManifest.validator.ts +38 -0
- package/src/pipelines/stages/deployManifest/deployManifestStage.ts +28 -0
- package/src/pipelines/stages/deployManifest/manifestStatus/DeployStatus.less +11 -0
- package/src/pipelines/stages/deployManifest/manifestStatus/DeployStatus.tsx +120 -0
- package/src/pipelines/stages/deployManifest/manifestStatus/DeployStatusPills.tsx +47 -0
- package/src/pipelines/stages/deployManifest/manifestStatus/ManifestDetailsLink.tsx +92 -0
- package/src/pipelines/stages/deployManifest/manifestStatus/ManifestEvents.tsx +87 -0
- package/src/pipelines/stages/deployManifest/manifestStatus/ManifestStatus.less +24 -0
- package/src/pipelines/stages/deployManifest/manifestStatus/ManifestStatus.tsx +46 -0
- package/src/pipelines/stages/findArtifactsFromResource/FindArtifactsFromResourceConfig.tsx +35 -0
- package/src/pipelines/stages/findArtifactsFromResource/FindArtifactsFromResourceStageForm.tsx +37 -0
- package/src/pipelines/stages/findArtifactsFromResource/findArtifactsFromResourceStage.ts +21 -0
- package/src/pipelines/stages/index.ts +8 -0
- package/src/pipelines/stages/patchManifest/PatchManifestOptionsForm.tsx +35 -0
- package/src/pipelines/stages/patchManifest/PatchManifestStageConfig.tsx +57 -0
- package/src/pipelines/stages/patchManifest/PatchManifestStageForm.tsx +157 -0
- package/src/pipelines/stages/patchManifest/patchManifestStage.ts +30 -0
- package/src/pipelines/stages/rolloutRestartManifest/RolloutRestartManifestStageConfig.tsx +46 -0
- package/src/pipelines/stages/rolloutRestartManifest/rolloutRestartManifestStage.ts +20 -0
- package/src/pipelines/stages/runJob/KubernetesV2RunJobStageConfig.tsx +242 -0
- package/src/pipelines/stages/runJob/RunJobExecutionDetails.tsx +67 -0
- package/src/pipelines/stages/runJob/runJobStage.ts +39 -0
- package/src/pipelines/stages/scaleManifest/ScaleManifestConfig.tsx +38 -0
- package/src/pipelines/stages/scaleManifest/ScaleManifestStageForm.tsx +46 -0
- package/src/pipelines/stages/scaleManifest/scaleManifestStage.ts +24 -0
- package/src/pipelines/stages/traffic/ManifestTrafficStageConfig.tsx +44 -0
- package/src/pipelines/stages/traffic/disableManifest.stage.ts +26 -0
- package/src/pipelines/stages/traffic/enableManifest.stage.ts +26 -0
- package/src/pipelines/stages/undoRolloutManifest/UndoRolloutManifestConfig.tsx +37 -0
- package/src/pipelines/stages/undoRolloutManifest/UndoRolloutManifestStageForm.tsx +60 -0
- package/src/pipelines/stages/undoRolloutManifest/undoRolloutManifestStage.ts +21 -0
- package/src/pipelines/stages/validators/manifestSelectorValidators.ts +43 -0
- package/src/pipelines/validation/manifestSelector.validator.ts +36 -0
- package/src/rawResource/component/K8sResources.less +9 -0
- package/src/rawResource/component/K8sResources.tsx +112 -0
- package/src/rawResource/component/K8sResourcesFilters.tsx +112 -0
- package/src/rawResource/component/RawResourceUtils.ts +19 -0
- package/src/rawResource/component/group/RawResouceGroup.tsx +41 -0
- package/src/rawResource/component/group/RawResource.less +79 -0
- package/src/rawResource/component/group/RawResource.tsx +51 -0
- package/src/rawResource/component/group/RawResourceDetails.tsx +236 -0
- package/src/rawResource/component/group/RawResourceGroups.tsx +53 -0
- package/src/rawResource/controller/FiltersPubSub.ts +35 -0
- package/src/rawResource/index.ts +1 -0
- package/src/rawResource/model/resource.ts +18 -0
- package/src/rawResource/rawResource.dataSource.ts +39 -0
- package/src/rawResource/rawResource.module.ts +8 -0
- package/src/rawResource/rawResource.states.ts +64 -0
- package/src/reactShims/index.ts +1 -0
- package/src/reactShims/kubernetes.react.injector.ts +30 -0
- package/src/reactShims/kubernetes.react.module.ts +12 -0
- package/src/resources/ResourceDetails.tsx +121 -0
- package/src/resources/resources.state.ts +45 -0
- package/src/rolloutStrategy/bluegreen.strategy.ts +7 -0
- package/src/rolloutStrategy/highlander.strategy.ts +7 -0
- package/src/rolloutStrategy/index.ts +6 -0
- package/src/rolloutStrategy/none.strategy.ts +8 -0
- package/src/rolloutStrategy/redblack.strategy.ts +7 -0
- package/src/securityGroup/details/details.controller.ts +118 -0
- package/src/securityGroup/details/details.html +91 -0
- package/src/securityGroup/index.ts +1 -0
- package/src/securityGroup/securityGroup.reader.ts +11 -0
- package/src/securityGroup/transformer.ts +19 -0
- package/src/serverGroup/details/KubernetesServerGroupActions.tsx +138 -0
- package/src/serverGroup/details/kubernetesServerGroupDetailsGetter.ts +63 -0
- package/src/serverGroup/details/sections/IKubernetesServerGroupDetailsSectionProps.ts +6 -0
- package/src/serverGroup/details/sections/ServerGroupAnnotationCustomSection.tsx +11 -0
- package/src/serverGroup/details/sections/ServerGroupEventsSection.tsx +14 -0
- package/src/serverGroup/details/sections/ServerGroupHealthSection.tsx +19 -0
- package/src/serverGroup/details/sections/ServerGroupImagesSection.tsx +14 -0
- package/src/serverGroup/details/sections/ServerGroupInformationSection.tsx +46 -0
- package/src/serverGroup/details/sections/ServerGroupLabelsSection.tsx +14 -0
- package/src/serverGroup/details/sections/ServerGroupManifestStatusSection.tsx +9 -0
- package/src/serverGroup/details/sections/ServerGroupSizeSection.tsx +35 -0
- package/src/serverGroup/details/sections/index.ts +9 -0
- package/src/serverGroup/details/useManifest.ts +42 -0
- package/src/serverGroup/index.ts +3 -0
- package/src/serverGroup/serverGroupCommandBuilder.ts +9 -0
- package/src/serverGroup/serverGroupTransformer.spec.ts +67 -0
- package/src/serverGroup/serverGroupTransformer.ts +27 -0
- package/src/serverGroupManager/details/ServerGroupManagerActions.tsx +171 -0
- package/src/serverGroupManager/details/ServerGroupManagerDetails.tsx +72 -0
- package/src/serverGroupManager/details/sections/IKubernetesServerGroupManagerDetailsSectionProps.ts +7 -0
- package/src/serverGroupManager/details/sections/ServerGroupManagerAnnotationCustomSection.tsx +12 -0
- package/src/serverGroupManager/details/sections/ServerGroupManagerArtifactsSection.tsx +18 -0
- package/src/serverGroupManager/details/sections/ServerGroupManagerEventsSection.tsx +14 -0
- package/src/serverGroupManager/details/sections/ServerGroupManagerInformationSection.tsx +51 -0
- package/src/serverGroupManager/details/sections/ServerGroupManagerLabelsSection.tsx +14 -0
- package/src/serverGroupManager/details/sections/ServerGroupManagerManifestConditionSection.tsx +21 -0
- package/src/serverGroupManager/details/sections/ServerGroupManagerManifestStatusSection.tsx +10 -0
- package/src/serverGroupManager/details/sections/index.ts +8 -0
- package/src/serverGroupManager/details/useKubernetesServerGroupManagerDetails.tsx +53 -0
- package/src/serverGroupManager/index.ts +1 -0
- package/src/validation/applicationName.validator.spec.ts +19 -0
- package/src/validation/applicationName.validator.ts +44 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { module } from 'angular';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
CloudProviderRegistry,
|
|
5
|
+
SETTINGS,
|
|
6
|
+
STAGE_ARTIFACT_SELECTOR_COMPONENT_REACT,
|
|
7
|
+
YAML_EDITOR_COMPONENT,
|
|
8
|
+
} from '@spinnaker/core';
|
|
9
|
+
|
|
10
|
+
import './help/kubernetes.help';
|
|
11
|
+
import { KUBERNETES_INSTANCE_DETAILS_CTRL } from './instance/details/details.controller';
|
|
12
|
+
import { KUBERNETES_LOAD_BALANCER_DETAILS_CTRL } from './loadBalancer/details/details.controller';
|
|
13
|
+
import { KUBERNETES_LOAD_BALANCER_TRANSFORMER } from './loadBalancer/transformer';
|
|
14
|
+
import kubernetesLogo from './logo/kubernetes.logo.svg';
|
|
15
|
+
import { KUBERNETES_ANNOTATION_CUSTOM_SECTIONS } from './manifest/annotationCustomSections.component';
|
|
16
|
+
import { KUBERNETES_MANIFEST_DELETE_CTRL } from './manifest/delete/delete.controller';
|
|
17
|
+
import { JSON_EDITOR_COMPONENT } from './manifest/editor/json/jsonEditor.component';
|
|
18
|
+
import { KUBERNETES_MANIFEST_EVENTS } from './manifest/manifestEvents.component';
|
|
19
|
+
import { KUBERNETES_MANIFEST_IMAGE_DETAILS } from './manifest/manifestImageDetails.component';
|
|
20
|
+
import { KUBERNETES_MANIFEST_LABELS } from './manifest/manifestLabels.component';
|
|
21
|
+
import { KUBERNETES_MANIFEST_QOS } from './manifest/manifestQos.component';
|
|
22
|
+
import { KUBERNETES_MANIFEST_RESOURCES } from './manifest/manifestResources.component';
|
|
23
|
+
import { KUBERNETES_MANIFEST_PAUSE_ROLLOUT_CTRL } from './manifest/rollout/pause.controller';
|
|
24
|
+
import { KUBERNETES_MANIFEST_RESUME_ROLLOUT_CTRL } from './manifest/rollout/resume.controller';
|
|
25
|
+
import { KUBERNETES_MANIFEST_UNDO_ROLLOUT_CTRL } from './manifest/rollout/undo.controller';
|
|
26
|
+
import { KUBERNETES_MANIFEST_SCALE_CTRL } from './manifest/scale/scale.controller';
|
|
27
|
+
import { KUBERNETES_MANIFEST_SELECTOR } from './manifest/selector/selector.component';
|
|
28
|
+
import { KUBERNETES_MANIFEST_CONDITION } from './manifest/status/condition.component';
|
|
29
|
+
import { KUBERNETES_MANIFEST_STATUS } from './manifest/status/status.component';
|
|
30
|
+
import { ManifestWizard } from './manifest/wizard/ManifestWizard';
|
|
31
|
+
import './pipelines/stages';
|
|
32
|
+
import { KUBERNETES_DISABLE_MANIFEST_STAGE } from './pipelines/stages/traffic/disableManifest.stage';
|
|
33
|
+
import { KUBERNETES_ENABLE_MANIFEST_STAGE } from './pipelines/stages/traffic/enableManifest.stage';
|
|
34
|
+
import './pipelines/validation/manifestSelector.validator';
|
|
35
|
+
import { KUBERNETS_RAW_RESOURCE_MODULE } from './rawResource';
|
|
36
|
+
import { KUBERNETES_REACT_MODULE } from './reactShims/kubernetes.react.module';
|
|
37
|
+
import { KUBERNETES_RESOURCE_STATES } from './resources/resources.state';
|
|
38
|
+
import { KUBERNETES_SECURITY_GROUP_DETAILS_CTRL } from './securityGroup/details/details.controller';
|
|
39
|
+
import { KubernetesSecurityGroupReader } from './securityGroup/securityGroup.reader';
|
|
40
|
+
import { KUBERNETES_SECURITY_GROUP_TRANSFORMER } from './securityGroup/transformer';
|
|
41
|
+
import { KubernetesServerGroupActions } from './serverGroup/details/KubernetesServerGroupActions';
|
|
42
|
+
import { kubernetesServerGroupDetailsGetter } from './serverGroup/details/kubernetesServerGroupDetailsGetter';
|
|
43
|
+
import {
|
|
44
|
+
ServerGroupAnnotationCustomSection,
|
|
45
|
+
ServerGroupEventsSection,
|
|
46
|
+
ServerGroupHealthSection,
|
|
47
|
+
ServerGroupImagesSection,
|
|
48
|
+
ServerGroupInformationSection,
|
|
49
|
+
ServerGroupLabelsSection,
|
|
50
|
+
ServerGroupManifestStatusSection,
|
|
51
|
+
ServerGroupSizeSection,
|
|
52
|
+
} from './serverGroup/details/sections';
|
|
53
|
+
import { KubernetesV2ServerGroupCommandBuilder } from './serverGroup/serverGroupCommandBuilder';
|
|
54
|
+
import { KubernetesV2ServerGroupTransformer } from './serverGroup/serverGroupTransformer';
|
|
55
|
+
import { ServerGroupManagerDetails } from './serverGroupManager/details/ServerGroupManagerDetails';
|
|
56
|
+
import './validation/applicationName.validator';
|
|
57
|
+
|
|
58
|
+
import './logo/kubernetes.logo.less';
|
|
59
|
+
|
|
60
|
+
export const KUBERNETES_MODULE = 'spinnaker.kubernetes';
|
|
61
|
+
|
|
62
|
+
const requires = [
|
|
63
|
+
KUBERNETES_REACT_MODULE,
|
|
64
|
+
KUBERNETES_INSTANCE_DETAILS_CTRL,
|
|
65
|
+
KUBERNETES_LOAD_BALANCER_DETAILS_CTRL,
|
|
66
|
+
KUBERNETES_SECURITY_GROUP_DETAILS_CTRL,
|
|
67
|
+
KUBERNETES_MANIFEST_DELETE_CTRL,
|
|
68
|
+
KUBERNETES_MANIFEST_SCALE_CTRL,
|
|
69
|
+
KUBERNETES_MANIFEST_UNDO_ROLLOUT_CTRL,
|
|
70
|
+
KUBERNETES_MANIFEST_PAUSE_ROLLOUT_CTRL,
|
|
71
|
+
KUBERNETES_MANIFEST_RESUME_ROLLOUT_CTRL,
|
|
72
|
+
KUBERNETES_MANIFEST_STATUS,
|
|
73
|
+
KUBERNETES_MANIFEST_CONDITION,
|
|
74
|
+
KUBERNETES_LOAD_BALANCER_TRANSFORMER,
|
|
75
|
+
KUBERNETES_SECURITY_GROUP_TRANSFORMER,
|
|
76
|
+
KUBERNETES_MANIFEST_SELECTOR,
|
|
77
|
+
KUBERNETES_MANIFEST_LABELS,
|
|
78
|
+
KUBERNETES_MANIFEST_EVENTS,
|
|
79
|
+
KUBERNETES_MANIFEST_RESOURCES,
|
|
80
|
+
KUBERNETES_MANIFEST_QOS,
|
|
81
|
+
KUBERNETES_ANNOTATION_CUSTOM_SECTIONS,
|
|
82
|
+
KUBERNETES_MANIFEST_IMAGE_DETAILS,
|
|
83
|
+
KUBERNETES_RESOURCE_STATES,
|
|
84
|
+
YAML_EDITOR_COMPONENT,
|
|
85
|
+
JSON_EDITOR_COMPONENT,
|
|
86
|
+
KUBERNETES_ENABLE_MANIFEST_STAGE,
|
|
87
|
+
KUBERNETES_DISABLE_MANIFEST_STAGE,
|
|
88
|
+
STAGE_ARTIFACT_SELECTOR_COMPONENT_REACT,
|
|
89
|
+
];
|
|
90
|
+
|
|
91
|
+
if (SETTINGS.feature.kubernetesRawResources) {
|
|
92
|
+
requires.push(KUBERNETS_RAW_RESOURCE_MODULE);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
module(KUBERNETES_MODULE, requires).config(() => {
|
|
96
|
+
CloudProviderRegistry.registerProvider('kubernetes', {
|
|
97
|
+
name: 'Kubernetes',
|
|
98
|
+
adHocInfrastructureWritesEnabled: SETTINGS.kubernetesAdHocInfraWritesEnabled,
|
|
99
|
+
logo: {
|
|
100
|
+
path: kubernetesLogo,
|
|
101
|
+
},
|
|
102
|
+
serverGroup: {
|
|
103
|
+
CloneServerGroupModal: ManifestWizard,
|
|
104
|
+
detailsActions: KubernetesServerGroupActions,
|
|
105
|
+
detailsGetter: kubernetesServerGroupDetailsGetter,
|
|
106
|
+
detailsSections: [
|
|
107
|
+
ServerGroupManifestStatusSection,
|
|
108
|
+
ServerGroupInformationSection,
|
|
109
|
+
ServerGroupAnnotationCustomSection,
|
|
110
|
+
ServerGroupImagesSection,
|
|
111
|
+
ServerGroupEventsSection,
|
|
112
|
+
ServerGroupLabelsSection,
|
|
113
|
+
ServerGroupSizeSection,
|
|
114
|
+
ServerGroupHealthSection,
|
|
115
|
+
],
|
|
116
|
+
commandBuilder: KubernetesV2ServerGroupCommandBuilder,
|
|
117
|
+
transformer: KubernetesV2ServerGroupTransformer,
|
|
118
|
+
},
|
|
119
|
+
serverGroupManager: {
|
|
120
|
+
details: ServerGroupManagerDetails,
|
|
121
|
+
},
|
|
122
|
+
loadBalancer: {
|
|
123
|
+
CreateLoadBalancerModal: ManifestWizard,
|
|
124
|
+
detailsController: 'kubernetesV2LoadBalancerDetailsCtrl',
|
|
125
|
+
detailsTemplateUrl: require('./loadBalancer/details/details.html'),
|
|
126
|
+
transformer: 'kubernetesV2LoadBalancerTransformer',
|
|
127
|
+
},
|
|
128
|
+
securityGroup: {
|
|
129
|
+
reader: KubernetesSecurityGroupReader,
|
|
130
|
+
CreateSecurityGroupModal: ManifestWizard,
|
|
131
|
+
detailsController: 'kubernetesV2SecurityGroupDetailsCtrl',
|
|
132
|
+
detailsTemplateUrl: require('./securityGroup/details/details.html'),
|
|
133
|
+
transformer: 'kubernetesV2SecurityGroupTransformer',
|
|
134
|
+
},
|
|
135
|
+
instance: {
|
|
136
|
+
detailsController: 'kubernetesV2InstanceDetailsCtrl',
|
|
137
|
+
detailsTemplateUrl: require('./instance/details/details.html'),
|
|
138
|
+
},
|
|
139
|
+
unsupportedStageTypes: [
|
|
140
|
+
'deploy',
|
|
141
|
+
'destroyServerGroup',
|
|
142
|
+
'disableCluster',
|
|
143
|
+
'disableServerGroup',
|
|
144
|
+
'enableServerGroup',
|
|
145
|
+
'findImage',
|
|
146
|
+
'resizeServerGroup',
|
|
147
|
+
'rollbackCluster',
|
|
148
|
+
'runJob',
|
|
149
|
+
'scaleDown',
|
|
150
|
+
'scaleDownCluster',
|
|
151
|
+
'shrinkCluster',
|
|
152
|
+
'upsertLoadBalancers',
|
|
153
|
+
],
|
|
154
|
+
});
|
|
155
|
+
});
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { StateService } from '@uirouter/angularjs';
|
|
2
|
+
import type { IController, IScope } from 'angular';
|
|
3
|
+
import { module } from 'angular';
|
|
4
|
+
import type { IModalService } from 'angular-ui-bootstrap';
|
|
5
|
+
|
|
6
|
+
import type { Application, ILoadBalancer, IManifest } from '@spinnaker/core';
|
|
7
|
+
import { ManifestReader, SETTINGS } from '@spinnaker/core';
|
|
8
|
+
|
|
9
|
+
import type { IKubernetesLoadBalancer } from '../../interfaces';
|
|
10
|
+
import { KubernetesManifestCommandBuilder } from '../../manifest/manifestCommandBuilder.service';
|
|
11
|
+
import { ManifestWizard } from '../../manifest/wizard/ManifestWizard';
|
|
12
|
+
|
|
13
|
+
interface ILoadBalancerFromStateParams {
|
|
14
|
+
accountId: string;
|
|
15
|
+
region: string;
|
|
16
|
+
name: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
class KubernetesLoadBalancerDetailsController implements IController {
|
|
20
|
+
public state = { loading: true };
|
|
21
|
+
public manifest: IManifest;
|
|
22
|
+
public loadBalancer: IKubernetesLoadBalancer;
|
|
23
|
+
|
|
24
|
+
public static $inject = ['$uibModal', '$state', '$scope', 'loadBalancer', 'app'];
|
|
25
|
+
constructor(
|
|
26
|
+
private $uibModal: IModalService,
|
|
27
|
+
private $state: StateService,
|
|
28
|
+
private $scope: IScope,
|
|
29
|
+
loadBalancer: ILoadBalancerFromStateParams,
|
|
30
|
+
private app: Application,
|
|
31
|
+
) {
|
|
32
|
+
const dataSource = this.app.getDataSource('loadBalancers');
|
|
33
|
+
dataSource
|
|
34
|
+
.ready()
|
|
35
|
+
.then(() => {
|
|
36
|
+
this.extractLoadBalancer(loadBalancer);
|
|
37
|
+
this.$scope.isDisabled = !SETTINGS.kubernetesAdHocInfraWritesEnabled;
|
|
38
|
+
dataSource.onRefresh(this.$scope, () => this.extractLoadBalancer(loadBalancer));
|
|
39
|
+
})
|
|
40
|
+
.catch(() => this.autoClose());
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public deleteLoadBalancer(): void {
|
|
44
|
+
this.$uibModal.open({
|
|
45
|
+
templateUrl: require('../../manifest/delete/delete.html'),
|
|
46
|
+
controller: 'kubernetesV2ManifestDeleteCtrl',
|
|
47
|
+
controllerAs: 'ctrl',
|
|
48
|
+
resolve: {
|
|
49
|
+
coordinates: {
|
|
50
|
+
name: this.loadBalancer.name,
|
|
51
|
+
namespace: this.loadBalancer.namespace,
|
|
52
|
+
account: this.loadBalancer.account,
|
|
53
|
+
},
|
|
54
|
+
application: this.app,
|
|
55
|
+
manifestController: (): string => null,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public editLoadBalancer(): void {
|
|
61
|
+
KubernetesManifestCommandBuilder.buildNewManifestCommand(
|
|
62
|
+
this.app,
|
|
63
|
+
this.manifest.manifest,
|
|
64
|
+
this.loadBalancer.moniker,
|
|
65
|
+
this.loadBalancer.account,
|
|
66
|
+
).then((builtCommand) => {
|
|
67
|
+
ManifestWizard.show({ title: 'Edit Manifest', application: this.app, command: builtCommand });
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
private extractLoadBalancer({ accountId, name, region }: ILoadBalancerFromStateParams): void {
|
|
72
|
+
const loadBalancer = this.app.getDataSource('loadBalancers').data.find((test: ILoadBalancer) => {
|
|
73
|
+
return test.name === name && test.account === accountId && test.region === region;
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
if (!loadBalancer) {
|
|
77
|
+
return this.autoClose();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
ManifestReader.getManifest(accountId, region, name).then((manifest: IManifest) => {
|
|
81
|
+
this.manifest = manifest;
|
|
82
|
+
this.loadBalancer = loadBalancer;
|
|
83
|
+
this.state.loading = false;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
private autoClose(): void {
|
|
88
|
+
if (this.$scope.$$destroyed) {
|
|
89
|
+
return;
|
|
90
|
+
} else {
|
|
91
|
+
this.$state.params.allowModalToStayOpen = true;
|
|
92
|
+
this.$state.go('^', null, { location: 'replace' });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export const KUBERNETES_LOAD_BALANCER_DETAILS_CTRL = 'spinnaker.kubernetes.loadBalancerDetails.controller';
|
|
98
|
+
module(KUBERNETES_LOAD_BALANCER_DETAILS_CTRL, []).controller(
|
|
99
|
+
'kubernetesV2LoadBalancerDetailsCtrl',
|
|
100
|
+
KubernetesLoadBalancerDetailsController,
|
|
101
|
+
);
|
|
@@ -0,0 +1,187 @@
|
|
|
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.loadBalancer.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.loadBalancer.displayName}}
|
|
27
|
+
<render-if-feature feature="entityTags">
|
|
28
|
+
<entity-notifications
|
|
29
|
+
ng-if="!state.loading"
|
|
30
|
+
entity="ctrl.loadBalancer"
|
|
31
|
+
application="ctrl.app"
|
|
32
|
+
placement="bottom"
|
|
33
|
+
h-offset-percent="90%"
|
|
34
|
+
entity-type="loadBalancer"
|
|
35
|
+
page-location="details"
|
|
36
|
+
on-update="ctrl.app.loadBalancers.refresh()"
|
|
37
|
+
></entity-notifications>
|
|
38
|
+
</render-if-feature>
|
|
39
|
+
</h3>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="actions">
|
|
42
|
+
<div class="dropdown" uib-dropdown dropdown-append-to-body>
|
|
43
|
+
<button type="button" class="btn btn-sm btn-primary dropdown-toggle" uib-dropdown-toggle ng-hide="isDisabled">
|
|
44
|
+
{{ctrl.loadBalancer.kind | robotToHuman}} Actions <span class="caret"></span>
|
|
45
|
+
</button>
|
|
46
|
+
<ul class="dropdown-menu" uib-dropdown-menu role="menu">
|
|
47
|
+
<li>
|
|
48
|
+
<a href ng-click="ctrl.deleteLoadBalancer()">Delete</a>
|
|
49
|
+
</li>
|
|
50
|
+
<li>
|
|
51
|
+
<a href ng-click="ctrl.editLoadBalancer()">Edit</a>
|
|
52
|
+
</li>
|
|
53
|
+
<render-if-feature feature="entityTags">
|
|
54
|
+
<add-entity-tag-links
|
|
55
|
+
component="ctrl.loadBalancer"
|
|
56
|
+
application="ctrl.app"
|
|
57
|
+
entity-type="loadBalancer"
|
|
58
|
+
on-update="ctrl.app.loadBalancers.refresh"
|
|
59
|
+
></add-entity-tag-links>
|
|
60
|
+
</render-if-feature>
|
|
61
|
+
</ul>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div ng-if="!ctrl.state.loading" class="content">
|
|
67
|
+
<collapsible-section heading="Information" expanded="true">
|
|
68
|
+
<dl class="dl-horizontal dl-narrow">
|
|
69
|
+
<dt>Created</dt>
|
|
70
|
+
<dd>{{ctrl.loadBalancer.createdTime | timestamp}}</dd>
|
|
71
|
+
<dt>Account</dt>
|
|
72
|
+
<dd><account-tag account="ctrl.loadBalancer.account" pad="right"></account-tag></dd>
|
|
73
|
+
<dt>Namespace</dt>
|
|
74
|
+
<dd>{{ctrl.loadBalancer.namespace}}</dd>
|
|
75
|
+
<dt>Kind</dt>
|
|
76
|
+
<dd>{{ctrl.loadBalancer.kind}}</dd>
|
|
77
|
+
<dt>Service Type</dt>
|
|
78
|
+
<dd>{{ctrl.manifest.manifest.spec.type}}</dd>
|
|
79
|
+
<dt>Sess. Affinity</dt>
|
|
80
|
+
<dd>{{ctrl.manifest.manifest.spec.sessionAffinity}}</dd>
|
|
81
|
+
</dl>
|
|
82
|
+
</collapsible-section>
|
|
83
|
+
<collapsible-section heading="Status" expanded="true">
|
|
84
|
+
<dl class="dl-horizontal dl-narrow">
|
|
85
|
+
<div ng-if="!ctrl.loadBalancer.serverGroups.length">
|
|
86
|
+
No workloads associated with this {{ctrl.loadBalancer.kind | robotToHuman}}.
|
|
87
|
+
</div>
|
|
88
|
+
<dt ng-if="ctrl.loadBalancer.serverGroups.length">Workloads</dt>
|
|
89
|
+
<dd ng-if="ctrl.loadBalancer.serverGroups.length">
|
|
90
|
+
<ul>
|
|
91
|
+
<li ng-repeat="serverGroup in ctrl.loadBalancer.serverGroups | orderBy: ['isDisabled', '-name']">
|
|
92
|
+
<a
|
|
93
|
+
ui-sref="^.serverGroup({region: serverGroup.region,
|
|
94
|
+
accountId: serverGroup.account,
|
|
95
|
+
serverGroup: serverGroup.name,
|
|
96
|
+
provider: 'kubernetes'})"
|
|
97
|
+
>
|
|
98
|
+
{{serverGroup.name}}
|
|
99
|
+
</a>
|
|
100
|
+
</li>
|
|
101
|
+
</ul>
|
|
102
|
+
</dd>
|
|
103
|
+
<div ng-if="ctrl.loadBalancer.serverGroups.length">
|
|
104
|
+
<dt>Pod status</dt>
|
|
105
|
+
<dd>
|
|
106
|
+
<health-counts class="pull-left" container="ctrl.loadBalancer.instanceCounts"></health-counts>
|
|
107
|
+
</dd>
|
|
108
|
+
</div>
|
|
109
|
+
<div ng-if="ctrl.manifest.manifest.spec.clusterIP">
|
|
110
|
+
<dt>Cluster IP</dt>
|
|
111
|
+
<dd>
|
|
112
|
+
<a target="_blank" href="//{{ctrl.manifest.manifest.spec.clusterIP}}">
|
|
113
|
+
{{ctrl.manifest.manifest.spec.clusterIP}}
|
|
114
|
+
</a>
|
|
115
|
+
<copy-to-clipboard
|
|
116
|
+
class="copy-to-clipboard copy-to-clipboard-sm"
|
|
117
|
+
text="ctrl.manifest.manifest.spec.clusterIP"
|
|
118
|
+
tool-tip="'Copy Cluster IP to clipboard'"
|
|
119
|
+
>
|
|
120
|
+
</copy-to-clipboard>
|
|
121
|
+
</dd>
|
|
122
|
+
</div>
|
|
123
|
+
<div ng-if="ctrl.manifest.manifest.spec.loadBalancerIP">
|
|
124
|
+
<dt>Load Balancer IP</dt>
|
|
125
|
+
<dd>
|
|
126
|
+
<a target="_blank" href="//{{ctrl.manifest.manifest.spec.loadBalancerIP}}">
|
|
127
|
+
{{ctrl.manifest.manifest.spec.loadBalancerIP}}
|
|
128
|
+
</a>
|
|
129
|
+
<copy-to-clipboard
|
|
130
|
+
class="copy-to-clipboard copy-to-clipboard-sm"
|
|
131
|
+
text="ctrl.manifest.manifest.spec.loadBalancerIP"
|
|
132
|
+
tool-tip="'Copy Load Balancer IP to clipboard'"
|
|
133
|
+
>
|
|
134
|
+
</copy-to-clipboard>
|
|
135
|
+
</dd>
|
|
136
|
+
</div>
|
|
137
|
+
<div ng-if="ctrl.manifest.manifest.spec.rules.length">
|
|
138
|
+
<dt>Host Rules</dt>
|
|
139
|
+
<dd ng-repeat="ingressRule in ctrl.manifest.manifest.spec.rules">
|
|
140
|
+
<a ng-if="ingressRule.host" target="_blank" href="//{{ingressRule.host}}"> {{ingressRule.host}} </a>
|
|
141
|
+
<copy-to-clipboard
|
|
142
|
+
ng-if="ingressRule.host"
|
|
143
|
+
class="copy-to-clipboard copy-to-clipboard-sm"
|
|
144
|
+
text="ingressRule.host"
|
|
145
|
+
tool-tip="'Copy ingress rule host to clipboard'"
|
|
146
|
+
>
|
|
147
|
+
</copy-to-clipboard>
|
|
148
|
+
</dd>
|
|
149
|
+
</div>
|
|
150
|
+
<div ng-if="ctrl.manifest.manifest.status.loadBalancer.ingress.length">
|
|
151
|
+
<dt>Ingress</dt>
|
|
152
|
+
<dd ng-repeat="ingress in ctrl.manifest.manifest.status.loadBalancer.ingress">
|
|
153
|
+
<a ng-if="ingress.hostname" target="_blank" href="//{{ingress.hostname}}"> {{ingress.hostname}} </a>
|
|
154
|
+
<copy-to-clipboard
|
|
155
|
+
ng-if="ingress.hostname"
|
|
156
|
+
class="copy-to-clipboard copy-to-clipboard-sm"
|
|
157
|
+
text="ingress.hostname"
|
|
158
|
+
tool-tip="'Copy Ingress hostname to clipboard'"
|
|
159
|
+
>
|
|
160
|
+
</copy-to-clipboard>
|
|
161
|
+
<a ng-if="ingress.ip" target="_blank" href="//{{ingress.ip}}"> {{ingress.ip}} </a>
|
|
162
|
+
<copy-to-clipboard
|
|
163
|
+
ng-if="ingress.ip"
|
|
164
|
+
class="copy-to-clipboard copy-to-clipboard-sm"
|
|
165
|
+
text="ingress.ip"
|
|
166
|
+
tool-tip="'Copy Ingress IP to clipboard'"
|
|
167
|
+
>
|
|
168
|
+
</copy-to-clipboard>
|
|
169
|
+
</dd>
|
|
170
|
+
</div>
|
|
171
|
+
</dl>
|
|
172
|
+
</collapsible-section>
|
|
173
|
+
|
|
174
|
+
<kubernetes-annotation-custom-sections
|
|
175
|
+
manifest="ctrl.manifest.manifest"
|
|
176
|
+
resource="ctrl.loadBalancer"
|
|
177
|
+
></kubernetes-annotation-custom-sections>
|
|
178
|
+
|
|
179
|
+
<collapsible-section heading="Events" expanded="true">
|
|
180
|
+
<kubernetes-manifest-events manifest="ctrl.manifest"></kubernetes-manifest-events>
|
|
181
|
+
</collapsible-section>
|
|
182
|
+
|
|
183
|
+
<collapsible-section heading="Labels" expanded="true">
|
|
184
|
+
<kubernetes-manifest-labels manifest="ctrl.manifest.manifest"></kubernetes-manifest-labels>
|
|
185
|
+
</collapsible-section>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './details/details.controller';
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { IQService } from 'angular';
|
|
2
|
+
import { module } from 'angular';
|
|
3
|
+
import { camelCase, chain } from 'lodash';
|
|
4
|
+
|
|
5
|
+
import type { IInstanceCounts, IServerGroup } from '@spinnaker/core';
|
|
6
|
+
|
|
7
|
+
import type { IKubernetesLoadBalancer } from '../interfaces';
|
|
8
|
+
|
|
9
|
+
class KubernetesV2LoadBalancerTransformer {
|
|
10
|
+
public static $inject = ['$q'];
|
|
11
|
+
constructor(private $q: IQService) {}
|
|
12
|
+
|
|
13
|
+
public normalizeLoadBalancer(loadBalancer: IKubernetesLoadBalancer): PromiseLike<IKubernetesLoadBalancer> {
|
|
14
|
+
loadBalancer.provider = loadBalancer.type;
|
|
15
|
+
loadBalancer.instances = [];
|
|
16
|
+
loadBalancer.instanceCounts = this.buildInstanceCounts(loadBalancer.serverGroups);
|
|
17
|
+
(loadBalancer.serverGroups || []).forEach((serverGroup) => {
|
|
18
|
+
serverGroup.cloudProvider = loadBalancer.provider;
|
|
19
|
+
(serverGroup.instances || []).forEach((instance) => {
|
|
20
|
+
instance.cloudProvider = loadBalancer.provider;
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
return this.$q.resolve(loadBalancer);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
private buildInstanceCounts(serverGroups: IServerGroup[]): IInstanceCounts {
|
|
27
|
+
const instanceCounts = chain(serverGroups)
|
|
28
|
+
.map((serverGroup) => serverGroup.instances)
|
|
29
|
+
.flatten()
|
|
30
|
+
.reduce(
|
|
31
|
+
(acc: IInstanceCounts, instance: any) => {
|
|
32
|
+
acc[camelCase(instance.health.state) as keyof IInstanceCounts]++;
|
|
33
|
+
return acc;
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
up: 0,
|
|
37
|
+
down: 0,
|
|
38
|
+
outOfService: 0,
|
|
39
|
+
succeeded: 0,
|
|
40
|
+
failed: 0,
|
|
41
|
+
unknown: 0,
|
|
42
|
+
starting: 0,
|
|
43
|
+
},
|
|
44
|
+
)
|
|
45
|
+
.value();
|
|
46
|
+
|
|
47
|
+
instanceCounts.outOfService += chain(serverGroups)
|
|
48
|
+
.map((serverGroup) => serverGroup.detachedInstances)
|
|
49
|
+
.flatten()
|
|
50
|
+
.value().length;
|
|
51
|
+
|
|
52
|
+
return instanceCounts;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export const KUBERNETES_LOAD_BALANCER_TRANSFORMER = 'spinnaker.kubernetes.loadBalancerTransformer';
|
|
57
|
+
module(KUBERNETES_LOAD_BALANCER_TRANSFORMER, []).service(
|
|
58
|
+
'kubernetesV2LoadBalancerTransformer',
|
|
59
|
+
KubernetesV2LoadBalancerTransformer,
|
|
60
|
+
);
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<svg
|
|
3
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
4
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
|
5
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
6
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
9
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
10
|
+
width="8.14444in"
|
|
11
|
+
height="8.14444in"
|
|
12
|
+
viewBox="0 0 733 733"
|
|
13
|
+
id="svg2"
|
|
14
|
+
version="1.1"
|
|
15
|
+
inkscape:version="0.48.4 r9939"
|
|
16
|
+
sodipodi:docname="kubernetes.svg">
|
|
17
|
+
<metadata
|
|
18
|
+
id="metadata9">
|
|
19
|
+
<rdf:RDF>
|
|
20
|
+
<cc:Work
|
|
21
|
+
rdf:about="">
|
|
22
|
+
<dc:format>image/svg+xml</dc:format>
|
|
23
|
+
<dc:type
|
|
24
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
25
|
+
<dc:title></dc:title>
|
|
26
|
+
</cc:Work>
|
|
27
|
+
</rdf:RDF>
|
|
28
|
+
</metadata>
|
|
29
|
+
<defs
|
|
30
|
+
id="defs7" />
|
|
31
|
+
<sodipodi:namedview
|
|
32
|
+
pagecolor="#ffffff"
|
|
33
|
+
bordercolor="#666666"
|
|
34
|
+
borderopacity="1"
|
|
35
|
+
objecttolerance="10"
|
|
36
|
+
gridtolerance="10"
|
|
37
|
+
guidetolerance="10"
|
|
38
|
+
inkscape:pageopacity="0"
|
|
39
|
+
inkscape:pageshadow="2"
|
|
40
|
+
inkscape:window-width="1916"
|
|
41
|
+
inkscape:window-height="1142"
|
|
42
|
+
id="namedview5"
|
|
43
|
+
showgrid="false"
|
|
44
|
+
inkscape:zoom="0.32196472"
|
|
45
|
+
inkscape:cx="366.49979"
|
|
46
|
+
inkscape:cy="366.49979"
|
|
47
|
+
inkscape:window-x="0"
|
|
48
|
+
inkscape:window-y="56"
|
|
49
|
+
inkscape:window-maximized="0"
|
|
50
|
+
inkscape:current-layer="svg2" />
|
|
51
|
+
<path
|
|
52
|
+
id="Selection"
|
|
53
|
+
fill="none"
|
|
54
|
+
stroke="black"
|
|
55
|
+
stroke-width="1"
|
|
56
|
+
d="M 411.00,29.74 C 411.00,29.74 499.00,71.74 499.00,71.74 499.00,71.74 555.00,98.26 555.00,98.26 555.00,98.26 592.00,116.14 592.00,116.14 592.00,116.14 625.00,131.75 625.00,131.75 634.53,136.52 640.47,138.65 647.82,147.00 657.13,157.58 659.33,171.69 662.21,185.00 662.21,185.00 673.42,234.00 673.42,234.00 673.42,234.00 705.42,373.00 705.42,373.00 705.42,373.00 719.68,439.00 719.68,439.00 721.02,456.85 708.90,470.12 698.60,483.00 698.60,483.00 641.40,554.00 641.40,554.00 641.40,554.00 557.00,659.00 557.00,659.00 541.16,678.73 531.22,696.96 503.00,697.00 503.00,697.00 232.00,697.00 232.00,697.00 204.00,696.96 192.42,676.52 176.80,657.00 176.80,657.00 84.39,542.00 84.39,542.00 84.39,542.00 41.75,489.00 41.75,489.00 33.00,478.41 21.48,466.29 17.75,453.00 13.91,439.33 16.97,429.26 20.12,416.00 20.12,416.00 29.35,376.00 29.35,376.00 29.35,376.00 66.12,216.00 66.12,216.00 66.12,216.00 75.12,177.00 75.12,177.00 78.06,164.59 78.76,157.38 87.46,147.01 95.04,138.00 103.06,135.55 113.00,130.74 113.00,130.74 159.00,108.74 159.00,108.74 159.00,108.74 292.00,45.22 292.00,45.22 292.00,45.22 335.00,24.69 335.00,24.69 348.10,18.68 348.93,16.70 364.00,14.42 379.89,12.53 397.06,23.00 411.00,29.74 Z M 557.00,380.00 C 557.00,380.00 557.00,360.00 557.00,360.00 556.98,344.89 552.44,322.39 547.65,308.00 544.05,297.20 539.23,285.88 533.57,276.00 532.16,273.53 526.21,264.94 526.62,262.61 526.62,262.61 530.18,256.83 530.18,256.83 531.15,254.78 531.21,253.28 532.72,251.04 538.54,242.42 559.13,233.05 567.91,226.64 574.90,221.54 579.79,212.09 574.28,204.04 568.42,195.49 557.02,197.87 550.00,203.39 538.15,212.70 529.02,231.46 513.00,234.06 510.10,234.53 506.59,236.28 504.00,235.13 502.10,234.29 498.71,230.71 497.00,229.17 497.00,229.17 482.00,216.65 482.00,216.65 468.70,206.50 454.37,198.79 439.00,192.28 427.89,187.58 414.82,184.10 403.00,181.66 399.01,180.84 387.91,180.19 385.31,178.15 383.20,176.49 382.80,173.40 381.62,171.00 380.31,168.36 379.10,167.10 378.39,164.00 376.45,155.45 381.77,133.42 381.99,124.00 382.11,118.31 381.90,113.53 377.78,109.11 370.81,101.64 359.24,103.73 354.92,113.00 351.98,119.91 353.59,127.86 354.92,135.00 356.18,143.75 357.05,150.08 357.00,159.00 356.93,172.46 352.16,166.31 352.00,179.00 322.16,180.37 288.94,192.63 264.00,208.69 256.14,213.75 247.93,219.91 241.00,226.17 238.50,228.43 232.87,234.79 230.00,235.49 228.05,235.96 225.13,234.59 223.00,234.22 220.80,233.84 219.25,234.06 217.00,233.15 211.66,230.99 198.37,217.65 194.17,213.00 188.30,206.51 183.61,199.54 174.00,199.04 159.75,198.31 155.84,211.34 161.01,220.00 165.34,227.27 173.09,230.35 180.00,234.45 186.12,238.08 199.61,246.30 203.15,252.01 203.15,252.01 205.47,257.70 205.47,257.70 206.35,259.49 208.10,261.07 208.33,262.46 208.75,265.03 202.92,273.39 201.43,276.00 196.26,285.03 191.30,297.10 188.00,307.00 181.22,327.31 177.97,348.62 178.00,370.00 178.00,370.00 180.00,395.00 180.00,395.00 169.67,396.74 174.11,401.22 161.00,404.35 149.33,407.12 126.34,406.63 118.02,411.53 108.10,417.37 108.11,431.51 119.00,436.15 130.21,440.92 149.36,429.76 161.00,426.43 164.16,425.52 169.83,423.96 173.00,424.14 179.08,424.49 175.02,426.24 188.00,426.00 189.16,433.52 194.32,445.03 197.76,452.00 208.97,474.74 222.76,491.52 241.00,508.96 245.93,513.68 254.31,520.05 260.00,523.98 262.17,525.47 268.82,529.32 269.79,531.38 270.77,533.42 269.51,535.68 269.79,538.96 269.73,541.38 270.44,542.43 269.79,545.16 268.86,550.82 259.44,565.91 255.86,571.00 250.64,578.39 245.61,584.45 246.05,594.00 246.65,607.20 261.18,611.20 270.37,601.67 275.18,596.69 276.41,590.39 278.29,584.00 278.29,584.00 286.31,562.00 286.31,562.00 292.40,548.86 294.88,556.11 300.00,545.00 328.12,554.73 356.26,559.67 386.00,556.83 397.21,555.76 408.11,553.38 419.00,550.63 421.96,549.88 431.78,546.48 433.90,546.92 436.03,547.36 438.27,550.16 440.21,551.58 442.59,553.31 443.53,553.58 445.61,556.05 452.20,563.86 456.12,582.09 459.70,592.00 462.49,599.73 468.72,607.85 478.00,606.63 484.69,605.75 488.98,600.52 489.66,594.00 490.43,586.66 485.91,579.74 481.98,574.00 477.29,567.17 470.65,557.44 467.31,550.00 462.43,539.12 468.92,542.96 464.00,531.00 473.63,527.44 487.29,516.07 495.00,509.07 521.56,484.98 537.34,458.61 549.00,425.00 558.47,427.60 556.97,422.09 568.00,424.43 568.00,424.43 607.00,436.96 607.00,436.96 614.22,437.30 621.24,435.52 624.11,428.00 627.22,419.86 621.25,412.42 614.00,409.36 609.08,407.29 600.39,407.20 595.00,406.96 590.64,406.77 576.10,404.68 572.00,403.51 562.95,400.92 565.61,396.62 556.00,395.00 556.00,395.00 557.00,380.00 557.00,380.00 Z M 350.00,217.00 C 350.00,217.00 348.00,250.00 348.00,250.00 348.00,250.00 347.00,264.00 347.00,264.00 347.00,264.00 346.00,287.00 346.00,287.00 345.87,297.63 341.31,310.19 328.00,306.36 322.74,304.85 310.11,295.07 305.00,291.42 305.00,291.42 276.00,270.86 276.00,270.86 270.80,267.14 265.12,263.95 261.00,259.00 283.51,236.99 318.35,219.57 350.00,217.00 Z M 458.00,245.65 C 463.37,249.75 469.98,254.64 474.00,260.00 474.00,260.00 424.00,295.71 424.00,295.71 418.45,299.67 409.10,307.56 402.00,306.63 390.37,305.12 390.66,295.62 389.83,287.00 389.83,287.00 389.00,277.00 389.00,277.00 389.00,277.00 388.00,259.00 388.00,259.00 388.00,259.00 387.00,243.00 387.00,243.00 387.00,243.00 386.00,217.00 386.00,217.00 413.03,221.86 435.69,228.62 458.00,245.65 Z M 258.00,304.93 C 258.00,304.93 289.00,332.72 289.00,332.72 295.42,338.37 303.69,345.37 299.35,355.00 295.79,362.89 284.60,364.71 277.00,366.86 277.00,366.86 217.00,384.00 217.00,384.00 215.40,377.43 215.92,366.09 216.00,359.00 216.29,334.69 226.02,308.80 238.00,288.00 244.56,292.17 252.07,299.54 258.00,304.93 Z M 508.60,311.00 C 515.69,328.71 520.21,350.91 520.00,370.00 520.00,370.00 519.00,384.00 519.00,384.00 519.00,384.00 454.00,365.29 454.00,365.29 444.54,362.57 433.95,360.52 435.11,348.00 435.86,339.96 446.16,332.48 452.00,327.42 452.00,327.42 496.00,288.00 496.00,288.00 501.50,293.39 505.72,303.80 508.60,311.00 Z M 373.00,343.00 C 375.23,343.02 377.71,342.87 379.71,344.02 382.83,345.81 392.75,358.50 393.53,362.00 394.23,365.13 392.43,371.75 391.63,375.00 390.21,380.76 390.53,383.98 384.98,387.20 381.81,389.05 371.25,394.58 368.00,394.58 364.26,394.58 348.22,386.97 346.30,383.79 344.90,381.46 343.82,374.96 343.12,372.00 342.45,369.17 340.95,364.77 341.65,362.00 342.74,357.66 352.32,346.69 356.04,344.02 361.19,342.27 367.56,342.96 373.00,343.00 Z M 274.00,410.75 C 274.00,410.75 301.42,406.28 301.42,406.28 314.90,405.57 318.21,415.88 314.80,427.00 314.80,427.00 287.00,495.00 287.00,495.00 279.03,493.05 268.83,483.76 263.00,478.00 248.36,463.53 229.79,439.38 225.00,419.00 225.00,419.00 274.00,410.75 274.00,410.75 Z M 440.42,475.00 C 440.42,475.00 425.20,438.00 425.20,438.00 422.29,430.75 416.48,420.73 420.45,413.02 425.26,403.68 435.62,405.91 444.00,407.42 444.00,407.42 511.00,419.00 511.00,419.00 502.92,442.30 491.41,459.62 474.00,477.00 467.89,483.10 456.99,492.94 449.00,496.00 449.00,496.00 440.42,475.00 440.42,475.00 Z M 329.23,492.00 C 329.23,492.00 351.86,451.00 351.86,451.00 355.72,444.13 360.59,435.49 370.00,437.41 378.47,439.13 382.61,449.24 386.42,456.00 386.42,456.00 417.00,512.00 417.00,512.00 382.18,523.39 353.77,522.16 319.00,512.00 320.74,506.03 326.10,497.76 329.23,492.00 Z" />
|
|
57
|
+
<path
|
|
58
|
+
style="fill:#a0a0a0;stroke:none"
|
|
59
|
+
d="M 211.64776,688.72752 C 199.18399,681.12883 204.11492,686.90132 106.38132,565.49488 63.249477,511.91572 25.861839,464.02125 23.297683,459.06272 c -2.564155,-4.95855 -4.662101,-13.19299 -4.662101,-18.2988 0,-13.66622 60.851497,-274.62895 66.655226,-285.85213 5.745934,-11.11141 10.493927,-13.62254 165.090372,-87.313529 100.50103,-47.905502 105.94827,-50.104506 120.7775,-48.756997 21.60054,1.962804 259.4388,115.387256 273.4144,130.390606 8.74397,9.387 11.42228,18.89968 37.82349,134.33957 37.09879,162.21523 36.24332,157.97694 33.82846,167.59859 -1.82843,7.28502 -151.28754,197.23748 -176.95311,224.89548 -17.91576,19.30659 -15.51217,19.04286 -173.44885,19.0301 -139.36163,-0.0124 -144.06727,-0.20562 -154.17531,-6.36809 l 0,0 z m 59.63042,-85.19822 c 2.53653,-2.53652 7.58811,-13.55546 11.22574,-24.48653 3.63762,-10.93108 9.25693,-22.26664 12.48735,-25.19013 5.47954,-4.95889 7.33455,-4.98309 27.65689,-0.36087 26.55799,6.04047 63.37339,6.21062 90.40095,0.41774 26.82521,-5.74948 28.96243,-4.22176 42.20742,30.17064 6.44828,16.74379 9.68553,21.37849 16.04797,22.97534 20.00337,5.02052 24.99029,-14.63592 9.92491,-39.12025 -5.4188,-8.80668 -10.89191,-20.62123 -12.16242,-26.25452 -2.13235,-9.45464 -1.48249,-10.688 8.45015,-16.03707 18.10297,-9.74911 48.14816,-45.08972 61.53407,-72.37945 8.3579,-17.03916 14.35139,-25.50497 18.85918,-26.63857 3.63428,-0.91392 14.81563,1.24554 24.84744,4.79882 28.12743,9.96267 44.64011,7.40531 44.64011,-6.91346 0,-10.67446 -10.44158,-17.22869 -31.18615,-19.57566 -10.81693,-1.2238 -23.59951,-4.2586 -28.40572,-6.74397 -8.34834,-4.31711 -8.74102,-5.52097 -8.79252,-26.95714 -0.0705,-29.36558 -6.754,-59.98059 -18.79864,-86.11178 -6.56128,-14.23485 -9.02292,-23.30388 -7.56894,-27.88497 1.18513,-3.73401 10.71049,-12.31892 21.16745,-19.07758 21.48536,-13.88666 23.7753,-16.56209 23.84208,-27.85574 0.0593,-10.02002 -10.4658,-15.69188 -21.52608,-11.60021 -4.17832,1.54575 -14.92658,9.74252 -23.88504,18.21505 -8.95844,8.47253 -18.62586,15.4046 -21.48313,15.4046 -2.85727,0 -13.77288,-6.48513 -24.25689,-14.4114 -24.55542,-18.56473 -50.43239,-30.78657 -78.31991,-36.99096 -27.47994,-6.11371 -30.17834,-10.24779 -25.99058,-39.81876 3.25597,-22.99146 0.43604,-34.52706 -9.18697,-37.58128 -7.49461,-2.37869 -17.4184,2.3558 -20.21529,9.64438 -1.10842,2.88848 -1.10174,13.32674 0.0155,23.19615 3.03455,26.82207 -0.19816,39.63 -10.5137,41.65535 -42.81015,8.40521 -65.79704,18.24725 -94.59966,40.50336 -9.8248,7.59174 -20.4974,13.80316 -23.71689,13.80316 -3.21949,0 -14.04955,-7.72918 -24.06679,-17.17596 -15.83344,-14.93174 -19.63355,-17.06231 -29.08393,-16.30613 -10.45342,0.83643 -10.87075,1.3435 -10.87075,13.20817 0,11.57756 1.09949,13.06593 17.83144,24.13804 9.8073,6.48983 20.13467,15.31485 22.94973,19.61116 4.87705,7.44333 4.72878,8.52708 -3.14615,22.99594 -12.08927,22.21197 -20.55241,58.88284 -20.55241,89.05382 0,25.04796 -0.25661,25.9543 -8.54131,30.16681 -4.69772,2.38865 -16.92732,5.33251 -27.17689,6.54193 -23.88502,2.81842 -33.30936,8.62455 -32.02332,19.72897 0.62557,5.40152 3.86937,9.70972 9.23947,12.27128 7.11466,3.39372 11.4251,2.92476 30.73008,-3.34326 30.68433,-9.96273 34.14229,-8.80994 44.43347,14.81281 10.18607,23.38144 36.58457,56.29859 57.92933,72.23394 18.99536,14.18136 19.62788,20.41105 4.60241,45.32906 -11.16257,18.51181 -13.69099,32.26854 -7.13565,38.82388 5.13265,5.13265 16.62346,4.67434 22.18256,-0.88475 z"
|
|
60
|
+
id="path2986"
|
|
61
|
+
inkscape:connector-curvature="0" />
|
|
62
|
+
<path
|
|
63
|
+
style="fill:#a0a0a0;stroke:none"
|
|
64
|
+
d="m 295.55767,281.76003 -31.75731,-21.99996 11.54199,-9.17242 c 14.41086,-11.45232 45.45892,-26.18898 60.93903,-28.92412 l 11.71165,-2.0693 -2.06514,35.09453 c -2.33966,39.75975 -4.79135,49.07123 -12.92032,49.07123 -3.13093,0 -19.98338,-9.89998 -37.4499,-21.99996 z"
|
|
65
|
+
id="path2988"
|
|
66
|
+
inkscape:connector-curvature="0" />
|
|
67
|
+
<path
|
|
68
|
+
style="fill:#a0a0a0;stroke:none"
|
|
69
|
+
d="m 394.75802,296.77165 c -1.45603,-3.84359 -3.68331,-22.90514 -4.94951,-42.359 l -2.30218,-35.37066 8.90879,2.07076 c 19.89331,4.62399 43.91797,15.20006 58.19539,25.61862 17.69226,12.91046 18.79741,10.773 -19.7698,38.23649 -28.61516,20.37669 -36.01014,22.55441 -40.08269,11.80379 z"
|
|
70
|
+
id="path2990"
|
|
71
|
+
inkscape:connector-curvature="0" />
|
|
72
|
+
<path
|
|
73
|
+
style="fill:#a0a0a0;stroke:none"
|
|
74
|
+
d="m 476.76032,369.50784 c -51.75745,-15.82263 -51.74616,-14.91999 -0.75267,-60.21158 l 20.98885,-18.64195 6.36541,14.39007 c 10.72838,24.25328 19.70972,76.84004 12.99902,76.1107 -1.2812,-0.13924 -19.10147,-5.3805 -39.60061,-11.64724 z"
|
|
75
|
+
id="path2992"
|
|
76
|
+
inkscape:connector-curvature="0" />
|
|
77
|
+
<path
|
|
78
|
+
style="fill:#a0a0a0;stroke:none"
|
|
79
|
+
d="m 435.48897,456.7043 c -14.46935,-36.25055 -15.71568,-43.42123 -8.05778,-46.35984 7.32986,-2.81274 78.84102,8.75347 78.80632,12.74612 -0.11228,12.91882 -43.26201,67.05973 -53.40025,67.00247 -2.21801,-0.0124 -10.019,-15.0264 -17.34829,-33.38875 l 0,0 z"
|
|
80
|
+
id="path2994"
|
|
81
|
+
inkscape:connector-curvature="0" />
|
|
82
|
+
<path
|
|
83
|
+
style="fill:#a0a0a0;stroke:none"
|
|
84
|
+
d="m 338.54641,514.3208 c -7.68717,-1.69573 -14.4868,-3.5703 -15.11027,-4.16572 -0.62347,-0.59542 4.09998,-10.58909 10.49655,-22.20816 27.03082,-49.1002 32.08856,-54.10343 42.54932,-42.09061 4.06983,4.67366 36.60673,62.08283 36.60673,64.5901 0,0.4929 -7.05713,2.40966 -15.68253,4.25948 -18.62111,3.99351 -39.63369,3.85604 -58.8598,-0.38509 z"
|
|
85
|
+
id="path2996"
|
|
86
|
+
inkscape:connector-curvature="0" />
|
|
87
|
+
<path
|
|
88
|
+
style="fill:#a0a0a0;stroke:none"
|
|
89
|
+
d="m 262.97346,473.7049 c -16.77296,-17.17992 -33.13461,-41.67919 -33.13461,-49.61442 0,-3.17228 10.01376,-5.8894 36.9054,-10.01386 20.29798,-3.11317 39.1665,-4.79264 41.93006,-3.73216 2.76356,1.06047 4.92594,5.11676 4.80529,9.01396 -0.30476,9.84389 -25.6065,68.49526 -30.21033,70.02988 -2.06811,0.68936 -11.20122,-6.36817 -20.29581,-15.6834 l 0,0 z"
|
|
90
|
+
id="path2998"
|
|
91
|
+
inkscape:connector-curvature="0" />
|
|
92
|
+
<path
|
|
93
|
+
style="fill:#a0a0a0;stroke:none"
|
|
94
|
+
d="m 217.41513,369.61776 c 0,-28.25915 15.19645,-76.45934 23.50125,-74.54137 6.0423,1.39545 57.25975,49.00646 57.20538,53.17729 -0.10849,8.32162 -6.5906,11.97505 -36.32712,20.47461 -17.20033,4.91635 -34.22222,9.87476 -37.82642,11.01869 -5.90819,1.87519 -6.55309,0.87836 -6.55309,-10.12922 z"
|
|
95
|
+
id="path3000"
|
|
96
|
+
inkscape:connector-curvature="0" />
|
|
97
|
+
<path
|
|
98
|
+
style="fill:#a0a0a0;stroke:none"
|
|
99
|
+
d="m 355.12214,387.05557 c -12.30722,-5.95336 -13.73186,-24.30319 -2.74022,-35.29483 10.083,-10.083 21.74685,-9.76596 31.59351,0.85877 18.12886,19.56137 -4.29002,46.31803 -28.85329,34.43606 z"
|
|
100
|
+
id="path3002"
|
|
101
|
+
inkscape:connector-curvature="0" />
|
|
102
|
+
</svg>
|