@spinnaker/google 2026.3.2 → 2026.4.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/autoscalingPolicy/GceAutoScalingFieldLayout.d.ts +2 -2
- package/dist/domain/loadBalancer.d.ts +6 -3
- package/dist/image/ImageSelect.d.ts +1 -1
- package/dist/index.js +159 -1
- package/dist/index.js.map +1 -1
- package/dist/loadBalancer/configure/common/gceLoadBalancerModels.d.ts +13 -2
- package/dist/loadBalancer/configure/http/GceHttpLoadBalancerEditor.d.ts +3 -0
- package/dist/loadBalancer/configure/http/GceHttpLoadBalancerModal.d.ts +1 -1
- package/dist/loadBalancer/configure/network/GceRegionalExternalNetworkLoadBalancerEditor.d.ts +30 -0
- package/dist/loadBalancer/configure/network/GceRegionalExternalNetworkLoadBalancerModal.d.ts +53 -0
- package/dist/loadBalancer/httpLoadBalancerUtils.service.d.ts +3 -1
- package/dist/serverGroup/configure/wizard/GceCloneServerGroupModal.d.ts +3 -0
- package/dist/serverGroup/configure/wizard/GceServerGroupWizard.types.d.ts +1 -0
- package/dist/serverGroup/configure/wizard/customInstance/CustomInstanceConfigurer.d.ts +1 -1
- package/dist/serverGroup/configure/wizard/customInstance/GceCustomInstanceBuilder.d.ts +2 -2
- package/dist/serverGroup/configure/wizard/pages/AdvancedSettings.d.ts +3 -0
- package/dist/serverGroup/configure/wizard/pages/GceServerGroupLoadBalancers.d.ts +1 -0
- package/dist/serverGroup/configure/wizard/pages/Policies.d.ts +21 -3
- package/dist/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.d.ts +1 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupCapacity.d.ts +1 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupImageSettings.d.ts +1 -0
- package/dist/serverGroup/configure/wizard/pages/ServerGroupInstanceType.d.ts +1 -0
- package/dist/serverGroup/configure/wizard/zones/GceInstanceFlexibilityConfigurer.d.ts +2 -2
- package/dist/serverGroup/details/GceInstanceFlexibilityPolicyDetails.d.ts +2 -2
- package/dist/serverGroup/details/stateful/MarkDiskStatefulButton.d.ts +2 -2
- package/dist/serverGroup/details/stateful/UpdateBootImageButton.d.ts +2 -2
- package/package.json +5 -5
- package/src/autoHealingPolicy/GceAutoHealingPolicyEditor.spec.tsx +68 -52
- package/src/autoscalingPolicy/GceAutoscalingPolicyEditor.spec.tsx +43 -50
- package/src/autoscalingPolicy/GceAutoscalingPolicyEditor.tsx +1 -1
- package/src/autoscalingPolicy/GceAutoscalingPolicyWriter.spec.ts +1 -1
- package/src/domain/loadBalancer.ts +6 -3
- package/src/gce.module.spec.ts +132 -153
- package/src/instance/details/GceInstanceDetails.spec.tsx +86 -83
- package/src/loadBalancer/configure/choice/GceLoadBalancerChoiceModal.spec.tsx +162 -121
- package/src/loadBalancer/configure/choice/GceLoadBalancerChoiceModal.tsx +13 -1
- package/src/loadBalancer/configure/common/GceProxyLoadBalancerEditor.spec.tsx +47 -30
- package/src/loadBalancer/configure/common/GceProxyLoadBalancerEditor.tsx +2 -1
- package/src/loadBalancer/configure/common/GceProxyLoadBalancerModal.spec.tsx +85 -57
- package/src/loadBalancer/configure/common/gceLoadBalancerData.spec.ts +17 -16
- package/src/loadBalancer/configure/common/gceLoadBalancerModels.spec.ts +230 -5
- package/src/loadBalancer/configure/common/gceLoadBalancerModels.ts +186 -22
- package/src/loadBalancer/configure/common/gceLoadBalancerSubmission.spec.ts +298 -2
- package/src/loadBalancer/configure/common/gceLoadBalancerSubmission.ts +35 -5
- package/src/loadBalancer/configure/common/useGceLoadBalancerData.spec.tsx +37 -46
- package/src/loadBalancer/configure/http/GceHttpLoadBalancerEditor.spec.tsx +399 -58
- package/src/loadBalancer/configure/http/GceHttpLoadBalancerEditor.tsx +148 -41
- package/src/loadBalancer/configure/http/GceHttpLoadBalancerListenerEditor.spec.tsx +169 -36
- package/src/loadBalancer/configure/http/GceHttpLoadBalancerListenerEditor.tsx +80 -12
- package/src/loadBalancer/configure/http/GceHttpLoadBalancerModal.spec.tsx +224 -124
- package/src/loadBalancer/configure/http/GceHttpLoadBalancerModal.tsx +8 -2
- package/src/loadBalancer/configure/http/GceHttpLoadBalancerResourceEditors.spec.tsx +57 -22
- package/src/loadBalancer/configure/http/GceHttpLoadBalancerResourceEditors.tsx +21 -0
- package/src/loadBalancer/configure/http/GceHttpLoadBalancerRoutingEditor.spec.tsx +24 -20
- package/src/loadBalancer/configure/network/GceNetworkLoadBalancerEditor.spec.tsx +41 -32
- package/src/loadBalancer/configure/network/GceNetworkLoadBalancerModal.spec.tsx +35 -30
- package/src/loadBalancer/configure/network/GceRegionalExternalNetworkLoadBalancerEditor.spec.tsx +443 -0
- package/src/loadBalancer/configure/network/GceRegionalExternalNetworkLoadBalancerEditor.tsx +401 -0
- package/src/loadBalancer/configure/network/GceRegionalExternalNetworkLoadBalancerModal.spec.tsx +330 -0
- package/src/loadBalancer/configure/network/GceRegionalExternalNetworkLoadBalancerModal.tsx +348 -0
- package/src/loadBalancer/details/gceLoadBalancerDetails.spec.tsx +439 -35
- package/src/loadBalancer/details/gceLoadBalancerDetails.tsx +104 -21
- package/src/loadBalancer/httpLoadBalancerUtils.service.spec.ts +126 -0
- package/src/loadBalancer/httpLoadBalancerUtils.service.ts +27 -11
- package/src/loadBalancer/loadBalancer.setTransformer.spec.ts +165 -0
- package/src/loadBalancer/loadBalancer.setTransformer.ts +15 -2
- package/src/pipeline/stages/googleStageConfig.spec.js +22 -16
- package/src/securityGroup/configure/GceSecurityGroupModal.spec.tsx +177 -193
- package/src/securityGroup/configure/GceSecurityGroupModal.tsx +14 -2
- package/src/securityGroup/details/GceSecurityGroupDetails.spec.tsx +69 -78
- package/src/serverGroup/configure/serverGroupCommandBuilder.service.spec.js +35 -15
- package/src/serverGroup/configure/serverGroupConfiguration.service.js +7 -1
- package/src/serverGroup/configure/serverGroupConfiguration.service.spec.js +74 -4
- package/src/serverGroup/configure/wizard/GceCloneServerGroupModal.spec.tsx +593 -855
- package/src/serverGroup/configure/wizard/GceCloneServerGroupModal.tsx +120 -38
- package/src/serverGroup/configure/wizard/GceServerGroupWizard.types.ts +1 -0
- package/src/serverGroup/configure/wizard/GceServerGroupWizardPage.spec.tsx +53 -50
- package/src/serverGroup/configure/wizard/customInstance/GceCustomInstanceBuilder.spec.tsx +65 -49
- package/src/serverGroup/configure/wizard/hiddenMetadataKeys.value.js +1 -0
- package/src/serverGroup/configure/wizard/pages/AdvancedSettings.spec.tsx +101 -108
- package/src/serverGroup/configure/wizard/pages/AdvancedSettings.tsx +32 -28
- package/src/serverGroup/configure/wizard/pages/GceServerGroupFirewalls.spec.tsx +60 -59
- package/src/serverGroup/configure/wizard/pages/GceServerGroupLoadBalancers.spec.tsx +240 -114
- package/src/serverGroup/configure/wizard/pages/GceServerGroupLoadBalancers.tsx +152 -63
- package/src/serverGroup/configure/wizard/pages/Policies.spec.tsx +93 -48
- package/src/serverGroup/configure/wizard/pages/Policies.tsx +80 -55
- package/src/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.spec.tsx +123 -94
- package/src/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.tsx +24 -18
- package/src/serverGroup/configure/wizard/pages/ServerGroupCapacity.spec.tsx +152 -133
- package/src/serverGroup/configure/wizard/pages/ServerGroupCapacity.tsx +40 -37
- package/src/serverGroup/configure/wizard/pages/ServerGroupImageSettings.spec.tsx +66 -60
- package/src/serverGroup/configure/wizard/pages/ServerGroupImageSettings.tsx +8 -2
- package/src/serverGroup/configure/wizard/pages/ServerGroupInstanceType.spec.tsx +131 -101
- package/src/serverGroup/configure/wizard/pages/ServerGroupInstanceType.tsx +29 -28
- package/src/serverGroup/configure/wizard/zones/GceInstanceFlexibilityConfigurer.spec.tsx +104 -81
- package/src/serverGroup/details/GceInstanceFlexibilityPolicyDetails.spec.tsx +10 -11
- package/src/serverGroup/details/autoHealingPolicy/GceAutoHealingPolicyDetails.spec.tsx +51 -59
- package/src/serverGroup/details/autoHealingPolicy/modal/GceUpsertAutoHealingPolicyModal.spec.tsx +3 -3
- package/src/serverGroup/details/autoscalingPolicy/GceAutoscalingPolicyDetails.spec.tsx +49 -58
- package/src/serverGroup/details/autoscalingPolicy/modal/GceUpsertAutoscalingPolicyModal.spec.tsx +3 -3
- package/src/serverGroup/details/gceServerGroupDetails.spec.tsx +162 -141
- package/src/serverGroup/details/resize/GceResizeServerGroupModal.spec.tsx +102 -86
- package/src/serverGroup/details/resize/GceResizeServerGroupModal.tsx +4 -0
- package/src/serverGroup/details/rollback/GceRollbackServerGroupModal.spec.tsx +40 -31
- package/src/serverGroup/serverGroup.transformer.js +1 -0
- package/src/serverGroup/serverGroup.transformer.spec.js +48 -0
- package/src/validation/ApplicationNameValidator.spec.ts +1 -1
- /package/dist/{gce.logo2ae85d8704b1d6b8.png → gce.logoChI3w_A5.png} +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { fireEvent, render, screen } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { GcePredictiveMethod } from './IGceAutoscalingPolicy';
|
|
5
5
|
import { GceAutoscalingPolicyEditor } from './GceAutoscalingPolicyEditor';
|
|
6
6
|
|
|
7
7
|
describe('GceAutoscalingPolicyEditor', () => {
|
|
8
8
|
it('renders zero values without replacing them with blanks', () => {
|
|
9
|
-
|
|
9
|
+
render(
|
|
10
10
|
<GceAutoscalingPolicyEditor
|
|
11
11
|
policy={{
|
|
12
12
|
minNumReplicas: 0,
|
|
@@ -18,26 +18,27 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
18
18
|
/>,
|
|
19
19
|
);
|
|
20
20
|
|
|
21
|
-
expect(
|
|
22
|
-
expect(
|
|
23
|
-
expect(
|
|
24
|
-
expect(
|
|
21
|
+
expect(screen.getByTestId('minimum-replicas')).toHaveValue(0);
|
|
22
|
+
expect(screen.getByTestId('cpu-target')).toHaveValue(0);
|
|
23
|
+
expect(screen.getByTestId('scale-in-maximum')).toHaveValue(0);
|
|
24
|
+
expect(screen.getByTestId('predictive-autoscaling')).not.toBeChecked();
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
it('keeps the predictive setting behind its feature gate and writes NONE when disabled', () => {
|
|
28
|
-
const onChange =
|
|
28
|
+
const onChange = vi.fn();
|
|
29
29
|
const policy = {
|
|
30
30
|
cpuUtilization: { utilizationTarget: 0.5, predictiveMethod: GcePredictiveMethod.STANDARD },
|
|
31
31
|
};
|
|
32
|
-
const hidden =
|
|
32
|
+
const hidden = render(
|
|
33
33
|
<GceAutoscalingPolicyEditor policy={policy} onChange={onChange} predictiveAutoscalingEnabled={false} />,
|
|
34
34
|
);
|
|
35
|
-
expect(hidden.
|
|
35
|
+
expect(hidden.queryByTestId('predictive-autoscaling')).not.toBeInTheDocument();
|
|
36
|
+
hidden.unmount();
|
|
36
37
|
|
|
37
|
-
const visible =
|
|
38
|
+
const visible = render(
|
|
38
39
|
<GceAutoscalingPolicyEditor policy={policy} onChange={onChange} predictiveAutoscalingEnabled={true} />,
|
|
39
40
|
);
|
|
40
|
-
visible.
|
|
41
|
+
fireEvent.click(visible.getByTestId('predictive-autoscaling'));
|
|
41
42
|
|
|
42
43
|
expect(onChange).toHaveBeenCalledWith({
|
|
43
44
|
cpuUtilization: { utilizationTarget: 0.5, predictiveMethod: GcePredictiveMethod.NONE },
|
|
@@ -45,21 +46,21 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
45
46
|
});
|
|
46
47
|
|
|
47
48
|
it('edits CPU, HTTP load-balancing, and custom metrics as controlled values', () => {
|
|
48
|
-
const onChange =
|
|
49
|
+
const onChange = vi.fn();
|
|
49
50
|
const policy = {
|
|
50
51
|
cpuUtilization: { utilizationTarget: 0.5 },
|
|
51
52
|
loadBalancingUtilization: { utilizationTarget: 0.6 },
|
|
52
53
|
customMetricUtilizations: [{ metric: 'custom.googleapis.com/queue', utilizationTarget: 3 }],
|
|
53
54
|
};
|
|
54
|
-
|
|
55
|
+
render(<GceAutoscalingPolicyEditor policy={policy} onChange={onChange} />);
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
fireEvent.change(screen.getByTestId('cpu-target'), { target: { value: '0' } });
|
|
57
58
|
expect(onChange).toHaveBeenCalledWith({ ...policy, cpuUtilization: { utilizationTarget: 0 } });
|
|
58
59
|
|
|
59
|
-
|
|
60
|
+
fireEvent.change(screen.getByTestId('http-lb-target'), { target: { value: '75' } });
|
|
60
61
|
expect(onChange).toHaveBeenCalledWith({ ...policy, loadBalancingUtilization: { utilizationTarget: 0.75 } });
|
|
61
62
|
|
|
62
|
-
|
|
63
|
+
fireEvent.change(screen.getByTestId('custom-metric-target-0'), { target: { value: '0' } });
|
|
63
64
|
expect(onChange).toHaveBeenCalledWith({
|
|
64
65
|
...policy,
|
|
65
66
|
customMetricUtilizations: [{ metric: 'custom.googleapis.com/queue', utilizationTarget: 0 }],
|
|
@@ -67,7 +68,7 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
67
68
|
});
|
|
68
69
|
|
|
69
70
|
it('clears group-only scaling fields when a custom metric changes to per-instance scope', () => {
|
|
70
|
-
const onChange =
|
|
71
|
+
const onChange = vi.fn();
|
|
71
72
|
const policy = {
|
|
72
73
|
customMetricUtilizations: [
|
|
73
74
|
{
|
|
@@ -78,9 +79,9 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
78
79
|
},
|
|
79
80
|
],
|
|
80
81
|
};
|
|
81
|
-
|
|
82
|
+
render(<GceAutoscalingPolicyEditor policy={policy} onChange={onChange} />);
|
|
82
83
|
|
|
83
|
-
|
|
84
|
+
fireEvent.change(screen.getByLabelText('Metric export scope'), {
|
|
84
85
|
target: { value: 'TIME_SERIES_PER_INSTANCE' },
|
|
85
86
|
});
|
|
86
87
|
|
|
@@ -95,7 +96,7 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
95
96
|
});
|
|
96
97
|
|
|
97
98
|
it('defaults to utilization target when a custom metric changes to group scope', () => {
|
|
98
|
-
const onChange =
|
|
99
|
+
const onChange = vi.fn();
|
|
99
100
|
const policy = {
|
|
100
101
|
customMetricUtilizations: [
|
|
101
102
|
{
|
|
@@ -106,9 +107,9 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
106
107
|
},
|
|
107
108
|
],
|
|
108
109
|
};
|
|
109
|
-
|
|
110
|
+
render(<GceAutoscalingPolicyEditor policy={policy} onChange={onChange} />);
|
|
110
111
|
|
|
111
|
-
|
|
112
|
+
fireEvent.change(screen.getByLabelText('Metric export scope'), {
|
|
112
113
|
target: { value: 'SINGLE_TIME_SERIES_PER_GROUP' },
|
|
113
114
|
});
|
|
114
115
|
|
|
@@ -126,7 +127,7 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
126
127
|
});
|
|
127
128
|
|
|
128
129
|
it('clears single-instance assignment when group scaling switches to utilization target', () => {
|
|
129
|
-
const onChange =
|
|
130
|
+
const onChange = vi.fn();
|
|
130
131
|
const policy = {
|
|
131
132
|
customMetricUtilizations: [
|
|
132
133
|
{
|
|
@@ -137,9 +138,9 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
137
138
|
},
|
|
138
139
|
],
|
|
139
140
|
};
|
|
140
|
-
|
|
141
|
+
render(<GceAutoscalingPolicyEditor policy={policy} onChange={onChange} />);
|
|
141
142
|
|
|
142
|
-
|
|
143
|
+
fireEvent.change(screen.getByLabelText('Scaling policy'), { target: { value: 'UTILIZATION_TARGET' } });
|
|
143
144
|
|
|
144
145
|
expect(onChange).toHaveBeenCalledWith({
|
|
145
146
|
customMetricUtilizations: [
|
|
@@ -153,7 +154,7 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
153
154
|
});
|
|
154
155
|
|
|
155
156
|
it('clears utilization fields when group scaling switches to single-instance assignment', () => {
|
|
156
|
-
const onChange =
|
|
157
|
+
const onChange = vi.fn();
|
|
157
158
|
const policy = {
|
|
158
159
|
customMetricUtilizations: [
|
|
159
160
|
{
|
|
@@ -165,9 +166,9 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
165
166
|
},
|
|
166
167
|
],
|
|
167
168
|
};
|
|
168
|
-
|
|
169
|
+
render(<GceAutoscalingPolicyEditor policy={policy} onChange={onChange} />);
|
|
169
170
|
|
|
170
|
-
|
|
171
|
+
fireEvent.change(screen.getByLabelText('Scaling policy'), {
|
|
171
172
|
target: { value: 'SINGLE_INSTANCE_ASSIGNMENT' },
|
|
172
173
|
});
|
|
173
174
|
|
|
@@ -183,33 +184,25 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
183
184
|
});
|
|
184
185
|
|
|
185
186
|
it('returns to the add action after a CPU metric is marked for deletion', () => {
|
|
186
|
-
const onChange =
|
|
187
|
-
const
|
|
187
|
+
const onChange = vi.fn();
|
|
188
|
+
const rendered = render(
|
|
188
189
|
<GceAutoscalingPolicyEditor policy={{ cpuUtilization: { utilizationTarget: 0.5 } }} onChange={onChange} />,
|
|
189
190
|
);
|
|
190
191
|
|
|
191
|
-
|
|
192
|
-
.find('button')
|
|
193
|
-
.filterWhere((button) => button.text() === 'Delete CPU metric')
|
|
194
|
-
.simulate('click');
|
|
192
|
+
fireEvent.click(screen.getByRole('button', { name: 'Delete CPU metric' }));
|
|
195
193
|
expect(onChange).toHaveBeenCalledWith({ cpuUtilization: {} });
|
|
196
194
|
|
|
197
|
-
|
|
198
|
-
expect(
|
|
199
|
-
expect(
|
|
200
|
-
wrapper
|
|
201
|
-
.find('button')
|
|
202
|
-
.filterWhere((button) => button.text() === 'Add CPU utilization metric')
|
|
203
|
-
.exists(),
|
|
204
|
-
).toBe(true);
|
|
195
|
+
rendered.rerender(<GceAutoscalingPolicyEditor policy={{ cpuUtilization: {} }} onChange={onChange} />);
|
|
196
|
+
expect(screen.queryByTestId('cpu-target')).not.toBeInTheDocument();
|
|
197
|
+
expect(screen.getByRole('button', { name: 'Add CPU utilization metric' })).toBeInTheDocument();
|
|
205
198
|
});
|
|
206
199
|
|
|
207
200
|
it('switches scale-in units without losing a zero maximum', () => {
|
|
208
|
-
const onChange =
|
|
201
|
+
const onChange = vi.fn();
|
|
209
202
|
const policy = { scaleInControl: { maxScaledInReplicas: { percent: 0 }, timeWindowSec: 60 } };
|
|
210
|
-
|
|
203
|
+
render(<GceAutoscalingPolicyEditor policy={policy} onChange={onChange} />);
|
|
211
204
|
|
|
212
|
-
|
|
205
|
+
fireEvent.change(screen.getByTestId('scale-in-unit'), { target: { value: 'fixed' } });
|
|
213
206
|
|
|
214
207
|
expect(onChange).toHaveBeenCalledWith({
|
|
215
208
|
scaleInControl: { maxScaledInReplicas: { fixed: 0 }, timeWindowSec: 60 },
|
|
@@ -217,7 +210,7 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
217
210
|
});
|
|
218
211
|
|
|
219
212
|
it('edits scaling schedules including timezone and preserves disabled schedules', () => {
|
|
220
|
-
const onChange =
|
|
213
|
+
const onChange = vi.fn();
|
|
221
214
|
const policy = {
|
|
222
215
|
scalingSchedules: [
|
|
223
216
|
{
|
|
@@ -228,11 +221,11 @@ describe('GceAutoscalingPolicyEditor', () => {
|
|
|
228
221
|
},
|
|
229
222
|
],
|
|
230
223
|
};
|
|
231
|
-
|
|
224
|
+
render(<GceAutoscalingPolicyEditor policy={policy} onChange={onChange} />);
|
|
232
225
|
|
|
233
|
-
expect(
|
|
234
|
-
expect(
|
|
235
|
-
|
|
226
|
+
expect(screen.getByTestId('schedule-enabled-0')).not.toBeChecked();
|
|
227
|
+
expect(screen.getByTestId('schedule-minimum-0')).toHaveValue(0);
|
|
228
|
+
fireEvent.change(screen.getByTestId('schedule-timezone-0'), { target: { value: 'Europe/Tallinn' } });
|
|
236
229
|
|
|
237
230
|
expect(onChange).toHaveBeenCalledWith({
|
|
238
231
|
scalingSchedules: [{ ...policy.scalingSchedules[0], timezone: 'Europe/Tallinn' }],
|
|
@@ -9,7 +9,7 @@ import type {
|
|
|
9
9
|
IGceScalingSchedule,
|
|
10
10
|
} from './IGceAutoscalingPolicy';
|
|
11
11
|
import { GcePredictiveMethod } from './IGceAutoscalingPolicy';
|
|
12
|
-
// @ts-ignore JSON imports are bundled by
|
|
12
|
+
// @ts-ignore JSON imports are bundled by Vite.
|
|
13
13
|
import timezoneData from './components/scalingSchedules/standardTimezone.json';
|
|
14
14
|
import { GCEProviderSettings } from '../gce.settings';
|
|
15
15
|
|
|
@@ -13,7 +13,7 @@ describe('GceAutoscalingPolicyWriter', () => {
|
|
|
13
13
|
const policy = { minNumReplicas: 0, maxNumReplicas: 5 } as any;
|
|
14
14
|
|
|
15
15
|
beforeEach(() => {
|
|
16
|
-
spyOn(TaskExecutor, 'executeTask').
|
|
16
|
+
vi.spyOn(TaskExecutor, 'executeTask').mockReturnValue(Promise.resolve({}) as any);
|
|
17
17
|
});
|
|
18
18
|
|
|
19
19
|
it('upserts an autoscaling policy with the GCE operation contract', () => {
|
|
@@ -18,15 +18,16 @@ export interface IGceHttpLoadBalancer extends IGceLoadBalancer {
|
|
|
18
18
|
certificateMap?: string;
|
|
19
19
|
defaultService: IGceBackendService;
|
|
20
20
|
detail: string;
|
|
21
|
-
hostRules: IGceHostRule;
|
|
21
|
+
hostRules: IGceHostRule[];
|
|
22
22
|
ipAddress: string;
|
|
23
23
|
listeners: IGceListener[];
|
|
24
|
-
loadBalancerType: 'HTTP';
|
|
24
|
+
loadBalancerType: 'HTTP' | 'INTERNAL_MANAGED' | 'EXTERNAL_MANAGED';
|
|
25
25
|
provider: 'gce';
|
|
26
|
-
region:
|
|
26
|
+
region: string;
|
|
27
27
|
stack: string;
|
|
28
28
|
urlMapName: string;
|
|
29
29
|
subnet?: string;
|
|
30
|
+
networkTier?: string;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
export interface IGceHostRule {
|
|
@@ -48,4 +49,6 @@ export interface IGceListener {
|
|
|
48
49
|
name: string;
|
|
49
50
|
port: string;
|
|
50
51
|
ipAddress: string;
|
|
52
|
+
networkTier?: string;
|
|
53
|
+
subnet?: string;
|
|
51
54
|
}
|