@spinnaker/appengine 2026.2.3 → 2026.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/appengine.module.d.ts +7 -1
- package/dist/domain/index.d.ts +0 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/instance/details/AppengineInstanceDetails.d.ts +11 -0
- package/dist/loadBalancer/configure/AppengineCreateLoadBalancerModal.d.ts +29 -0
- package/dist/loadBalancer/details/AppengineLoadBalancerActions.d.ts +5 -0
- package/dist/loadBalancer/details/AppengineLoadBalancerDetailsSection.d.ts +3 -0
- package/dist/loadBalancer/details/index.d.ts +3 -0
- package/dist/loadBalancer/details/useAppengineLoadBalancerDetails.d.ts +3 -0
- package/dist/loadBalancer/transformer.d.ts +2 -6
- package/dist/pipeline/stages/AppengineExecutionDetails.d.ts +15 -0
- package/dist/pipeline/stages/AppengineServerGroupStageConfig.d.ts +12 -0
- package/dist/pipeline/stages/destroyAsg/appengineDestroyAsgStage.d.ts +1 -1
- package/dist/pipeline/stages/disableAsg/appengineDisableAsgStage.d.ts +1 -1
- package/dist/pipeline/stages/editLoadBalancer/AppengineEditLoadBalancerStageConfig.d.ts +3 -0
- package/dist/pipeline/stages/editLoadBalancer/appengineEditLoadBalancerStage.d.ts +1 -1
- package/dist/pipeline/stages/enableAsg/appengineEnableAsgStage.d.ts +1 -1
- package/dist/pipeline/stages/shrinkCluster/appengineShrinkClusterStage.d.ts +1 -1
- package/dist/pipeline/stages/startServerGroup/appengineStartServerGroupStage.d.ts +1 -1
- package/dist/pipeline/stages/stopServerGroup/appengineStopServerGroupStage.d.ts +1 -1
- package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +5 -9
- package/dist/serverGroup/configure/wizard/AppengineCloneServerGroupModal.d.ts +22 -0
- package/dist/serverGroup/details/AppengineServerGroupActions.d.ts +12 -0
- package/dist/serverGroup/details/AppengineServerGroupDetailsSection.d.ts +3 -0
- package/dist/serverGroup/details/appengineServerGroupDetailsGetter.d.ts +4 -0
- package/dist/serverGroup/details/index.d.ts +3 -0
- package/dist/serverGroup/transformer.d.ts +1 -5
- package/dist/serverGroup/writer/serverGroup.write.service.d.ts +15 -4
- package/package.json +4 -8
- package/src/appengine.module.spec.ts +194 -0
- package/src/appengine.module.ts +47 -58
- package/src/domain/index.ts +0 -1
- package/src/index.ts +1 -1
- package/src/instance/details/AppengineInstanceDetails.tsx +33 -0
- package/src/loadBalancer/configure/AppengineCreateLoadBalancerModal.tsx +342 -0
- package/src/loadBalancer/details/AppengineLoadBalancerActions.tsx +66 -0
- package/src/loadBalancer/details/AppengineLoadBalancerDetailsSection.tsx +42 -0
- package/src/loadBalancer/details/index.ts +3 -0
- package/src/loadBalancer/details/useAppengineLoadBalancerDetails.ts +37 -0
- package/src/loadBalancer/transformer.ts +3 -14
- package/src/pipeline/stages/AppengineExecutionDetails.tsx +90 -0
- package/src/pipeline/stages/AppengineServerGroupStageConfig.tsx +190 -0
- package/src/pipeline/stages/destroyAsg/appengineDestroyAsgStage.ts +17 -43
- package/src/pipeline/stages/disableAsg/appengineDisableAsgStage.ts +18 -53
- package/src/pipeline/stages/editLoadBalancer/AppengineEditLoadBalancerStageConfig.tsx +94 -0
- package/src/pipeline/stages/editLoadBalancer/appengineEditLoadBalancerStage.ts +14 -74
- package/src/pipeline/stages/enableAsg/appengineEnableAsgStage.ts +13 -48
- package/src/pipeline/stages/shrinkCluster/appengineShrinkClusterStage.ts +13 -61
- package/src/pipeline/stages/startServerGroup/appengineStartServerGroupStage.ts +17 -54
- package/src/pipeline/stages/stopServerGroup/appengineStopServerGroupStage.ts +17 -54
- package/src/serverGroup/configure/serverGroupCommandBuilder.service.ts +20 -19
- package/src/serverGroup/configure/wizard/AppengineCloneServerGroupModal.tsx +119 -0
- package/src/serverGroup/configure/wizard/serverGroupWizard.less +0 -8
- package/src/serverGroup/details/AppengineServerGroupActions.tsx +245 -0
- package/src/serverGroup/details/AppengineServerGroupDetailsSection.tsx +27 -0
- package/src/serverGroup/details/appengineServerGroupDetailsGetter.ts +62 -0
- package/src/serverGroup/details/index.ts +3 -0
- package/src/serverGroup/transformer.ts +3 -15
- package/src/serverGroup/writer/serverGroup.write.service.ts +57 -8
- package/dist/common/componentUrlDetails.component.d.ts +0 -1
- package/dist/common/conditionalDescriptionListItem.component.d.ts +0 -1
- package/dist/common/loadBalancerMessage.component.d.ts +0 -1
- package/dist/domain/IAppengineStageScope.d.ts +0 -18
- package/dist/instance/details/details.controller.d.ts +0 -1
- package/dist/loadBalancer/configure/wizard/advancedSettings.component.d.ts +0 -1
- package/dist/loadBalancer/configure/wizard/allocationConfigurationRow.component.d.ts +0 -1
- package/dist/loadBalancer/configure/wizard/basicSettings.component.d.ts +0 -1
- package/dist/loadBalancer/configure/wizard/stageAllocationConfigurationRow.component.d.ts +0 -1
- package/dist/loadBalancer/configure/wizard/wizard.controller.d.ts +0 -2
- package/dist/loadBalancer/details/details.controller.d.ts +0 -1
- package/dist/loadBalancer/loadBalancer.module.d.ts +0 -1
- package/dist/pipeline/pipeline.module.d.ts +0 -1
- package/dist/pipeline/stages/appengineStage.controller.d.ts +0 -12
- package/dist/pipeline/stages/editLoadBalancer/loadBalancerChoice.modal.controller.d.ts +0 -1
- package/dist/serverGroup/configure/wizard/basicSettings.controller.d.ts +0 -1
- package/dist/serverGroup/configure/wizard/cloneServerGroup.controller.d.ts +0 -2
- package/dist/serverGroup/configure/wizard/configFileArtifactList.module.d.ts +0 -1
- package/dist/serverGroup/configure/wizard/configFiles.component.d.ts +0 -20
- package/dist/serverGroup/configure/wizard/dynamicBranchLabel.component.d.ts +0 -1
- package/dist/serverGroup/details/details.controller.d.ts +0 -1
- package/src/common/componentUrlDetails.component.ts +0 -29
- package/src/common/conditionalDescriptionListItem.component.ts +0 -37
- package/src/common/loadBalancerMessage.component.html +0 -33
- package/src/common/loadBalancerMessage.component.ts +0 -13
- package/src/domain/IAppengineStageScope.ts +0 -22
- package/src/instance/details/details.controller.ts +0 -116
- package/src/instance/details/details.html +0 -99
- package/src/loadBalancer/configure/wizard/advancedSettings.component.ts +0 -56
- package/src/loadBalancer/configure/wizard/allocationConfigurationRow.component.ts +0 -70
- package/src/loadBalancer/configure/wizard/basicSettings.component.html +0 -65
- package/src/loadBalancer/configure/wizard/basicSettings.component.ts +0 -98
- package/src/loadBalancer/configure/wizard/stageAllocationConfigurationRow.component.html +0 -117
- package/src/loadBalancer/configure/wizard/stageAllocationConfigurationRow.component.ts +0 -108
- package/src/loadBalancer/configure/wizard/wizard.controller.ts +0 -163
- package/src/loadBalancer/configure/wizard/wizard.html +0 -44
- package/src/loadBalancer/configure/wizard/wizard.less +0 -17
- package/src/loadBalancer/details/details.controller.ts +0 -151
- package/src/loadBalancer/details/details.html +0 -102
- package/src/loadBalancer/loadBalancer.module.ts +0 -21
- package/src/pipeline/pipeline.module.ts +0 -20
- package/src/pipeline/stages/appengineStage.controller.ts +0 -45
- package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +0 -16
- package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +0 -1
- package/src/pipeline/stages/disableAsg/disableAsgStage.html +0 -18
- package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +0 -1
- package/src/pipeline/stages/editLoadBalancer/editLoadBalancerExecutionDetails.html +0 -33
- package/src/pipeline/stages/editLoadBalancer/editLoadBalancerStage.html +0 -51
- package/src/pipeline/stages/editLoadBalancer/loadBalancerChoice.modal.controller.ts +0 -65
- package/src/pipeline/stages/editLoadBalancer/loadBalancerChoice.modal.html +0 -45
- package/src/pipeline/stages/enableAsg/enableAsgStage.html +0 -18
- package/src/pipeline/stages/enableAsg/enableAsgStepLabel.html +0 -1
- package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +0 -41
- package/src/pipeline/stages/startServerGroup/startServerGroupExecutionDetails.html +0 -26
- package/src/pipeline/stages/startServerGroup/startServerGroupStage.html +0 -18
- package/src/pipeline/stages/startServerGroup/startServerGroupStepLabel.html +0 -1
- package/src/pipeline/stages/stopServerGroup/stopServerGroupExecutionDetails.html +0 -26
- package/src/pipeline/stages/stopServerGroup/stopServerGroupStage.html +0 -18
- package/src/pipeline/stages/stopServerGroup/stopServerGroupStepLabel.html +0 -1
- package/src/serverGroup/configure/wizard/advancedSettings.html +0 -33
- package/src/serverGroup/configure/wizard/basicSettings.controller.ts +0 -151
- package/src/serverGroup/configure/wizard/basicSettings.html +0 -287
- package/src/serverGroup/configure/wizard/cloneServerGroup.controller.ts +0 -103
- package/src/serverGroup/configure/wizard/configFileArtifactList.module.ts +0 -18
- package/src/serverGroup/configure/wizard/configFiles.component.html +0 -81
- package/src/serverGroup/configure/wizard/configFiles.component.ts +0 -121
- package/src/serverGroup/configure/wizard/dynamicBranchLabel.component.ts +0 -19
- package/src/serverGroup/configure/wizard/serverGroupWizard.html +0 -39
- package/src/serverGroup/details/details.controller.ts +0 -463
- package/src/serverGroup/details/details.html +0 -229
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
<div class="well well-sm clearfix" ng-if="!pipeline.strategy">
|
|
2
|
-
<div class="row">
|
|
3
|
-
<div class="col-md-12">
|
|
4
|
-
<h4 class="text-left">Load Balancers</h4>
|
|
5
|
-
</div>
|
|
6
|
-
</div>
|
|
7
|
-
<div class="row">
|
|
8
|
-
<div class="col-md-12">
|
|
9
|
-
<table class="table table-condensed">
|
|
10
|
-
<thead>
|
|
11
|
-
<tr>
|
|
12
|
-
<th>Account</th>
|
|
13
|
-
<th>Name</th>
|
|
14
|
-
<th>Region</th>
|
|
15
|
-
<th>Actions</th>
|
|
16
|
-
</tr>
|
|
17
|
-
</thead>
|
|
18
|
-
<tbody>
|
|
19
|
-
<tr ng-repeat="loadBalancer in stage.loadBalancers">
|
|
20
|
-
<td>
|
|
21
|
-
<account-tag account="loadBalancer.credentials"></account-tag>
|
|
22
|
-
</td>
|
|
23
|
-
<td>{{ loadBalancer.name }}</td>
|
|
24
|
-
<td>{{ loadBalancer.region }}</td>
|
|
25
|
-
<td class="condensed-actions">
|
|
26
|
-
<a class="btn btn-sm btn-link" href ng-click="editLoadBalancerStageCtrl.editLoadBalancer($index)">
|
|
27
|
-
<span class="glyphicon glyphicon-edit" uib-tooltip="Edit"></span
|
|
28
|
-
></a>
|
|
29
|
-
<a
|
|
30
|
-
class="btn btn-sm btn-link pad-left"
|
|
31
|
-
href
|
|
32
|
-
ng-click="editLoadBalancerStageCtrl.removeLoadBalancer($index)"
|
|
33
|
-
>
|
|
34
|
-
<span class="glyphicon glyphicon-trash" uib-tooltip="Remove"></span>
|
|
35
|
-
</a>
|
|
36
|
-
</td>
|
|
37
|
-
</tr>
|
|
38
|
-
</tbody>
|
|
39
|
-
<tfoot>
|
|
40
|
-
<tr>
|
|
41
|
-
<td colspan="8">
|
|
42
|
-
<button class="btn btn-block btn-sm add-new" ng-click="editLoadBalancerStageCtrl.addLoadBalancer()">
|
|
43
|
-
<span class="glyphicon glyphicon-plus-sign"></span> Add load balancer
|
|
44
|
-
</button>
|
|
45
|
-
</td>
|
|
46
|
-
</tr>
|
|
47
|
-
</tfoot>
|
|
48
|
-
</table>
|
|
49
|
-
</div>
|
|
50
|
-
</div>
|
|
51
|
-
</div>
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import type { IController } from 'angular';
|
|
2
|
-
import { module } from 'angular';
|
|
3
|
-
import type { IModalService, IModalServiceInstance } from 'angular-ui-bootstrap';
|
|
4
|
-
import { cloneDeep } from 'lodash';
|
|
5
|
-
|
|
6
|
-
import type { Application, ILoadBalancer } from '@spinnaker/core';
|
|
7
|
-
import { CloudProviderRegistry } from '@spinnaker/core';
|
|
8
|
-
|
|
9
|
-
class AppengineLoadBalancerChoiceModalCtrl implements IController {
|
|
10
|
-
public state = { loading: true };
|
|
11
|
-
public loadBalancers: ILoadBalancer[];
|
|
12
|
-
public selectedLoadBalancer: ILoadBalancer;
|
|
13
|
-
|
|
14
|
-
public static $inject = ['$uibModal', '$uibModalInstance', 'application'];
|
|
15
|
-
constructor(
|
|
16
|
-
private $uibModal: IModalService,
|
|
17
|
-
private $uibModalInstance: IModalServiceInstance,
|
|
18
|
-
private application: Application,
|
|
19
|
-
) {
|
|
20
|
-
this.initialize();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public submit(): void {
|
|
24
|
-
const config = CloudProviderRegistry.getValue('appengine', 'loadBalancer');
|
|
25
|
-
const updatedLoadBalancerPromise = this.$uibModal.open({
|
|
26
|
-
templateUrl: config.createLoadBalancerTemplateUrl,
|
|
27
|
-
controller: `${config.createLoadBalancerController} as ctrl`,
|
|
28
|
-
size: 'lg',
|
|
29
|
-
resolve: {
|
|
30
|
-
application: () => this.application,
|
|
31
|
-
loadBalancer: () => cloneDeep(this.selectedLoadBalancer),
|
|
32
|
-
isNew: () => false,
|
|
33
|
-
forPipelineConfig: () => true,
|
|
34
|
-
},
|
|
35
|
-
}).result;
|
|
36
|
-
|
|
37
|
-
this.$uibModalInstance.close(updatedLoadBalancerPromise);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
public cancel(): void {
|
|
41
|
-
this.$uibModalInstance.dismiss();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
private initialize(): void {
|
|
45
|
-
this.application
|
|
46
|
-
.getDataSource('loadBalancers')
|
|
47
|
-
.ready()
|
|
48
|
-
.then(() => {
|
|
49
|
-
this.loadBalancers = (this.application.loadBalancers.data as ILoadBalancer[]).filter(
|
|
50
|
-
(candidate) => candidate.cloudProvider === 'appengine',
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
if (this.loadBalancers.length) {
|
|
54
|
-
this.selectedLoadBalancer = this.loadBalancers[0];
|
|
55
|
-
}
|
|
56
|
-
this.state.loading = false;
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export const APPENGINE_LOAD_BALANCER_CHOICE_MODAL_CTRL = 'spinnaker.appengine.loadBalancerChoiceModal.controller';
|
|
62
|
-
module(APPENGINE_LOAD_BALANCER_CHOICE_MODAL_CTRL, []).controller(
|
|
63
|
-
'appengineLoadBalancerChoiceModelCtrl',
|
|
64
|
-
AppengineLoadBalancerChoiceModalCtrl,
|
|
65
|
-
);
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
<div modal-page>
|
|
2
|
-
<modal-close dismiss="$dismiss()"></modal-close>
|
|
3
|
-
<div class="modal-header">
|
|
4
|
-
<h4 class="modal-title">Select Load Balancer</h4>
|
|
5
|
-
</div>
|
|
6
|
-
<div class="modal-body" ng-if="ctrl.state.loading" style="height: 200px" class="horizontal center middle">
|
|
7
|
-
<loading-spinner size="'small'"></loading-spinner>
|
|
8
|
-
</div>
|
|
9
|
-
<div class="modal-body" ng-if="!ctrl.state.loading">
|
|
10
|
-
<div class="alert alert-warning" ng-if="ctrl.loadBalancers.length === 0">
|
|
11
|
-
<p>This application has no App Engine load balancers.</p>
|
|
12
|
-
</div>
|
|
13
|
-
<form
|
|
14
|
-
role="form"
|
|
15
|
-
name="form"
|
|
16
|
-
class="form-horizontal"
|
|
17
|
-
ng-submit="ctrl.submit()"
|
|
18
|
-
ng-if="ctrl.loadBalancers.length > 0"
|
|
19
|
-
>
|
|
20
|
-
<div class="form-group">
|
|
21
|
-
<div class="col-md-3 sm-label-right">
|
|
22
|
-
<b>Load Balancer</b>
|
|
23
|
-
</div>
|
|
24
|
-
<div class="col-md-7">
|
|
25
|
-
<ui-select class="form-control input-sm" ng-model="ctrl.selectedLoadBalancer">
|
|
26
|
-
<ui-select-match>
|
|
27
|
-
<account-tag account="$select.selected.account"></account-tag>
|
|
28
|
-
<span style="margin-left: 5px">{{$select.selected.name}}</span>
|
|
29
|
-
</ui-select-match>
|
|
30
|
-
<ui-select-choices repeat="loadBalancer in ctrl.loadBalancers | filter: $select.search">
|
|
31
|
-
<account-tag account="loadBalancer.account"></account-tag>
|
|
32
|
-
<span style="margin-left: 5px" ng-bind-html="loadBalancer.name"></span>
|
|
33
|
-
</ui-select-choices>
|
|
34
|
-
</ui-select>
|
|
35
|
-
</div>
|
|
36
|
-
</div>
|
|
37
|
-
</form>
|
|
38
|
-
</div>
|
|
39
|
-
<div class="modal-footer">
|
|
40
|
-
<button class="btn btn-default" ng-click="ctrl.cancel()">Cancel</button>
|
|
41
|
-
<button class="btn btn-primary" ng-if="ctrl.loadBalancers.length > 0" ng-click="ctrl.submit()">
|
|
42
|
-
<span class="far fa-check-circle"></span> Edit
|
|
43
|
-
</button>
|
|
44
|
-
</div>
|
|
45
|
-
</div>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<div ng-controller="appengineEnableAsgStageCtrl as enableAsgStageCtrl" class="form-horizontal">
|
|
2
|
-
<div ng-if="!pipeline.strategy">
|
|
3
|
-
<account-region-cluster-selector
|
|
4
|
-
application="application"
|
|
5
|
-
component="stage"
|
|
6
|
-
single-region="true"
|
|
7
|
-
disable-region-select="true"
|
|
8
|
-
on-account-update="enableAsgStageCtrl.setStageRegion()"
|
|
9
|
-
accounts="accounts"
|
|
10
|
-
>
|
|
11
|
-
</account-region-cluster-selector>
|
|
12
|
-
</div>
|
|
13
|
-
<stage-config-field label="Target">
|
|
14
|
-
<target-select model="stage" options="targets"></target-select>
|
|
15
|
-
</stage-config-field>
|
|
16
|
-
<stage-platform-health-override application="application" stage="stage" platform-health-type="platformHealth">
|
|
17
|
-
</stage-platform-health-override>
|
|
18
|
-
</div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<span class="task-label"> Enable Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
<div ng-controller="appengineShrinkClusterStageCtrl as shrinkClusterStageCtrl" class="form-horizontal">
|
|
2
|
-
<div ng-if="!pipeline.strategy">
|
|
3
|
-
<account-region-cluster-selector
|
|
4
|
-
application="application"
|
|
5
|
-
component="stage"
|
|
6
|
-
single-region="true"
|
|
7
|
-
disable-region-select="true"
|
|
8
|
-
on-account-update="shrinkClusterStageCtrl.setStageRegion()"
|
|
9
|
-
accounts="accounts"
|
|
10
|
-
>
|
|
11
|
-
</account-region-cluster-selector>
|
|
12
|
-
</div>
|
|
13
|
-
<stage-config-field label="Shrink Options">
|
|
14
|
-
<div class="form-inline">
|
|
15
|
-
Shrink to
|
|
16
|
-
<input
|
|
17
|
-
type="number"
|
|
18
|
-
min="0"
|
|
19
|
-
required
|
|
20
|
-
ng-model="stage.shrinkToSize"
|
|
21
|
-
class="form-control input-sm"
|
|
22
|
-
style="width: 50px"
|
|
23
|
-
/>
|
|
24
|
-
{{shrinkClusterStageCtrl.pluralize('server group', stage.shrinkToSize)}}, keeping the
|
|
25
|
-
<select class="form-control input-sm" ng-model="stage.retainLargerOverNewer" style="width: 100px">
|
|
26
|
-
<option value="true">largest</option>
|
|
27
|
-
<option value="false">newest</option>
|
|
28
|
-
</select>
|
|
29
|
-
</div>
|
|
30
|
-
</stage-config-field>
|
|
31
|
-
<div class="form-group">
|
|
32
|
-
<div class="col-md-offset-3 col-md-6 checkbox">
|
|
33
|
-
<label>
|
|
34
|
-
<input type="checkbox" ng-model="stage.allowDeleteActive" />
|
|
35
|
-
Allow deletion of active server groups
|
|
36
|
-
</label>
|
|
37
|
-
</div>
|
|
38
|
-
</div>
|
|
39
|
-
<stage-platform-health-override application="application" stage="stage" platform-health-type="platformHealth">
|
|
40
|
-
</stage-platform-health-override>
|
|
41
|
-
</div>
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
<div ng-controller="BaseExecutionDetailsCtrl">
|
|
2
|
-
<execution-details-section-nav sections="configSections"></execution-details-section-nav>
|
|
3
|
-
<div class="step-section-details" ng-if="detailsSection === 'startServerGroupConfig'">
|
|
4
|
-
<div class="row">
|
|
5
|
-
<div class="col-md-9">
|
|
6
|
-
<dl class="dl-narrow dl-horizontal">
|
|
7
|
-
<dt>Account</dt>
|
|
8
|
-
<dd>
|
|
9
|
-
<account-tag account="stage.context.credentials"></account-tag>
|
|
10
|
-
</dd>
|
|
11
|
-
<dt>Region</dt>
|
|
12
|
-
<dd>{{stage.context.region}}</dd>
|
|
13
|
-
<dt>Server Group</dt>
|
|
14
|
-
<dd>{{stage.context.serverGroupName}}</dd>
|
|
15
|
-
</dl>
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
18
|
-
<stage-failure-message stage="stage" message="stage.failureMessage"></stage-failure-message>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div class="step-section-details" ng-if="detailsSection === 'taskStatus'">
|
|
22
|
-
<div class="row">
|
|
23
|
-
<execution-step-details item="stage"></execution-step-details>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<div ng-controller="appengineStartServerGroupStageCtrl as startServerGroupStageCtrl" class="form-horizontal">
|
|
2
|
-
<div ng-if="!pipeline.strategy">
|
|
3
|
-
<account-region-cluster-selector
|
|
4
|
-
application="application"
|
|
5
|
-
component="stage"
|
|
6
|
-
single-region="true"
|
|
7
|
-
disable-region-select="true"
|
|
8
|
-
on-account-update="startServerGroupStageCtrl.setStageRegion()"
|
|
9
|
-
accounts="accounts"
|
|
10
|
-
>
|
|
11
|
-
</account-region-cluster-selector>
|
|
12
|
-
</div>
|
|
13
|
-
<stage-config-field label="Target">
|
|
14
|
-
<target-select model="stage" options="targets"></target-select>
|
|
15
|
-
</stage-config-field>
|
|
16
|
-
<stage-platform-health-override application="application" stage="stage" platform-health-type="platformHealth">
|
|
17
|
-
</stage-platform-health-override>
|
|
18
|
-
</div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<span class="task-label"> Start Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
<div ng-controller="appengineStopServerGroupExecutionDetailsCtrl">
|
|
2
|
-
<execution-details-section-nav sections="configSections"></execution-details-section-nav>
|
|
3
|
-
<div class="step-section-details" ng-if="detailsSection === 'stopServerGroupConfig'">
|
|
4
|
-
<div class="row">
|
|
5
|
-
<div class="col-md-9">
|
|
6
|
-
<dl class="dl-narrow dl-horizontal">
|
|
7
|
-
<dt>Account</dt>
|
|
8
|
-
<dd>
|
|
9
|
-
<account-tag account="stage.context.credentials"></account-tag>
|
|
10
|
-
</dd>
|
|
11
|
-
<dt>Region</dt>
|
|
12
|
-
<dd>{{stage.context.region}}</dd>
|
|
13
|
-
<dt>Server Group</dt>
|
|
14
|
-
<dd>{{stage.context.serverGroupName}}</dd>
|
|
15
|
-
</dl>
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
18
|
-
<stage-failure-message stage="stage" message="stage.failureMessage"></stage-failure-message>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div class="step-section-details" ng-if="detailsSection === 'taskStatus'">
|
|
22
|
-
<div class="row">
|
|
23
|
-
<execution-step-details item="stage"></execution-step-details>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<div ng-controller="appengineStopServerGroupStageCtrl as stopServerGroupStageCtrl" class="form-horizontal">
|
|
2
|
-
<div ng-if="!pipeline.strategy">
|
|
3
|
-
<account-region-cluster-selector
|
|
4
|
-
application="application"
|
|
5
|
-
component="stage"
|
|
6
|
-
single-region="true"
|
|
7
|
-
disable-region-select="true"
|
|
8
|
-
on-account-update="stopServerGroupStageCtrl.setStageRegion()"
|
|
9
|
-
accounts="accounts"
|
|
10
|
-
>
|
|
11
|
-
</account-region-cluster-selector>
|
|
12
|
-
</div>
|
|
13
|
-
<stage-config-field label="Target">
|
|
14
|
-
<target-select model="stage" options="targets"></target-select>
|
|
15
|
-
</stage-config-field>
|
|
16
|
-
<stage-platform-health-override application="application" stage="stage" platform-health-type="platformHealth">
|
|
17
|
-
</stage-platform-health-override>
|
|
18
|
-
</div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<span class="task-label"> Stop Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<div class="form-horizontal container-fluid">
|
|
2
|
-
<div class="form-group">
|
|
3
|
-
<div class="col-md-4 sm-label-right">Promote <help-field key="appengine.serverGroup.promote"></help-field></div>
|
|
4
|
-
<div class="col-md-7">
|
|
5
|
-
<input type="checkbox" ng-model="command.promote" />
|
|
6
|
-
</div>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<div class="form-group">
|
|
10
|
-
<div class="col-md-4 sm-label-right">
|
|
11
|
-
Stop Previous Version <help-field key="appengine.serverGroup.stopPreviousVersion"></help-field>
|
|
12
|
-
</div>
|
|
13
|
-
<div class="col-md-7">
|
|
14
|
-
<input type="checkbox" ng-model="command.stopPreviousVersion" />
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
<div class="form-group" ng-if="showPlatformHealthOnlyOverride">
|
|
18
|
-
<div class="col-md-4 sm-label-right">Task Completion</div>
|
|
19
|
-
<div class="col-md-7">
|
|
20
|
-
<platform-health-override command="command" platform-health-type="platformHealth"> </platform-health-override>
|
|
21
|
-
</div>
|
|
22
|
-
</div>
|
|
23
|
-
|
|
24
|
-
<div class="form-group">
|
|
25
|
-
<div class="col-md-4 sm-label-right">
|
|
26
|
-
Suppress Version String
|
|
27
|
-
<help-field key="appengine.serverGroup.suppress-version-string"></help-field>
|
|
28
|
-
</div>
|
|
29
|
-
<div class="col-md-7">
|
|
30
|
-
<input type="checkbox" ng-model="command.suppressVersionString" />
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import type { StateService } from '@uirouter/angularjs';
|
|
2
|
-
import type { IController, IControllerService, IScope } from 'angular';
|
|
3
|
-
import { extend, module } from 'angular';
|
|
4
|
-
import { set } from 'lodash';
|
|
5
|
-
|
|
6
|
-
import type { IArtifact, IExpectedArtifact } from '@spinnaker/core';
|
|
7
|
-
import {
|
|
8
|
-
ArtifactTypePatterns,
|
|
9
|
-
excludeAllTypesExcept,
|
|
10
|
-
ExpectedArtifactSelectorViewController,
|
|
11
|
-
NgAppEngineDeployArtifactDelegate,
|
|
12
|
-
} from '@spinnaker/core';
|
|
13
|
-
import type { GitCredentialType, IAppengineAccount } from '../../../domain/index';
|
|
14
|
-
|
|
15
|
-
import type { IAppengineServerGroupCommand } from '../serverGroupCommandBuilder.service';
|
|
16
|
-
import { AppengineSourceType } from '../serverGroupCommandBuilder.service';
|
|
17
|
-
|
|
18
|
-
interface IAppengineBasicSettingsScope extends IScope {
|
|
19
|
-
command: IAppengineServerGroupCommand;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
class AppengineServerGroupBasicSettingsCtrl implements IController {
|
|
23
|
-
public static $inject = ['$scope', '$state', '$controller', '$uibModalStack'];
|
|
24
|
-
|
|
25
|
-
constructor(
|
|
26
|
-
public $scope: IAppengineBasicSettingsScope,
|
|
27
|
-
$state: StateService,
|
|
28
|
-
$controller: IControllerService,
|
|
29
|
-
$uibModalStack: any,
|
|
30
|
-
) {
|
|
31
|
-
extend(
|
|
32
|
-
this,
|
|
33
|
-
$controller('BasicSettingsMixin', {
|
|
34
|
-
$scope,
|
|
35
|
-
imageReader: null,
|
|
36
|
-
$uibModalStack,
|
|
37
|
-
$state,
|
|
38
|
-
}),
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
if (!this.$scope.command.gitCredentialType) {
|
|
42
|
-
this.onAccountChange();
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
this.$scope.containerArtifactDelegate = new NgAppEngineDeployArtifactDelegate($scope, [
|
|
46
|
-
ArtifactTypePatterns.DOCKER_IMAGE,
|
|
47
|
-
]);
|
|
48
|
-
this.$scope.containerArtifactController = new ExpectedArtifactSelectorViewController(
|
|
49
|
-
this.$scope.containerArtifactDelegate,
|
|
50
|
-
);
|
|
51
|
-
this.$scope.gcsArtifactDelegate = new NgAppEngineDeployArtifactDelegate($scope, [ArtifactTypePatterns.GCS_OBJECT]);
|
|
52
|
-
this.$scope.gcsArtifactController = new ExpectedArtifactSelectorViewController(this.$scope.gcsArtifactDelegate);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public isGitSource(): boolean {
|
|
56
|
-
return this.$scope.command.sourceType === AppengineSourceType.GIT;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
public isGcsSource(): boolean {
|
|
60
|
-
return this.$scope.command.sourceType === AppengineSourceType.GCS;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
public isContainerImageSource(): boolean {
|
|
64
|
-
return this.$scope.command.sourceType === AppengineSourceType.CONTAINER_IMAGE;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
public toggleResolveViaTrigger(): void {
|
|
68
|
-
this.$scope.command.fromTrigger = !this.$scope.command.fromTrigger;
|
|
69
|
-
delete this.$scope.command.trigger;
|
|
70
|
-
delete this.$scope.command.branch;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
public onTriggerChange(): void {
|
|
74
|
-
set(this, '$scope.command.trigger.matchBranchOnRegex', undefined);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
public onAccountChange(): void {
|
|
78
|
-
const account = this.findAccountInBackingData();
|
|
79
|
-
if (account) {
|
|
80
|
-
this.$scope.command.gitCredentialType = this.getSupportedGitCredentialTypes()[0];
|
|
81
|
-
this.$scope.command.region = account.region;
|
|
82
|
-
} else {
|
|
83
|
-
this.$scope.command.gitCredentialType = 'NONE';
|
|
84
|
-
delete this.$scope.command.region;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
public getSupportedGitCredentialTypes(): GitCredentialType[] {
|
|
89
|
-
const account = this.findAccountInBackingData();
|
|
90
|
-
if (account && account.supportedGitCredentialTypes) {
|
|
91
|
-
return account.supportedGitCredentialTypes;
|
|
92
|
-
} else {
|
|
93
|
-
return ['NONE'];
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
public humanReadableGitCredentialType(type: GitCredentialType): string {
|
|
98
|
-
switch (type) {
|
|
99
|
-
case 'HTTPS_USERNAME_PASSWORD':
|
|
100
|
-
return 'HTTPS with username and password';
|
|
101
|
-
case 'HTTPS_GITHUB_OAUTH_TOKEN':
|
|
102
|
-
return 'HTTPS with Github OAuth token';
|
|
103
|
-
case 'SSH':
|
|
104
|
-
return 'SSH';
|
|
105
|
-
case 'NONE':
|
|
106
|
-
return 'No credentials';
|
|
107
|
-
default:
|
|
108
|
-
return 'No credentials';
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
public readonly excludedGcsArtifactTypes = excludeAllTypesExcept(ArtifactTypePatterns.GCS_OBJECT);
|
|
113
|
-
public readonly excludedContainerArtifactTypes = excludeAllTypesExcept(ArtifactTypePatterns.DOCKER_IMAGE);
|
|
114
|
-
|
|
115
|
-
public onExpectedArtifactEdited = (artifact: IArtifact): void => {
|
|
116
|
-
this.$scope.$applyAsync(() => {
|
|
117
|
-
this.$scope.command.expectedArtifactId = null;
|
|
118
|
-
this.$scope.command.expectedArtifact = artifact;
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
public onExpectedArtifactSelected = (expectedArtifact: IExpectedArtifact): void => {
|
|
123
|
-
this.onChangeExpectedArtifactId(expectedArtifact.id);
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
public onChangeExpectedArtifactId = (artifactId: string): void => {
|
|
127
|
-
this.$scope.$applyAsync(() => {
|
|
128
|
-
this.$scope.command.expectedArtifactId = artifactId;
|
|
129
|
-
this.$scope.command.expectedArtifact = null;
|
|
130
|
-
});
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
public onExpectedArtifactAccountSelected = (accountName: string): void => {
|
|
134
|
-
this.$scope.$applyAsync(() => {
|
|
135
|
-
this.$scope.command.storageAccountName = accountName;
|
|
136
|
-
});
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
private findAccountInBackingData(): IAppengineAccount {
|
|
140
|
-
return this.$scope.command.backingData.accounts.find((account: IAppengineAccount) => {
|
|
141
|
-
return this.$scope.command.credentials === account.name;
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
export const APPENGINE_SERVER_GROUP_BASIC_SETTINGS_CTRL = 'spinnaker.appengine.basicSettings.controller';
|
|
147
|
-
|
|
148
|
-
module(APPENGINE_SERVER_GROUP_BASIC_SETTINGS_CTRL, []).controller(
|
|
149
|
-
'appengineServerGroupBasicSettingsCtrl',
|
|
150
|
-
AppengineServerGroupBasicSettingsCtrl,
|
|
151
|
-
);
|