@spinnaker/cloudrun 2026.2.2 → 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/cloudrun.module.d.ts +1 -1
- package/dist/common/ComponentUrlDetails.d.ts +7 -0
- package/dist/common/LoadBalancerMessage.d.ts +4 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/instance/details/CloudrunInstanceDetails.d.ts +23 -0
- package/dist/loadBalancer/configure/wizard/CloudrunLoadBalancerModal.d.ts +32 -0
- package/dist/loadBalancer/details/CloudrunLoadBalancerActions.d.ts +3 -0
- package/dist/loadBalancer/details/sections.d.ts +7 -0
- package/dist/loadBalancer/details/useCloudrunLoadBalancerDetails.d.ts +4 -0
- package/dist/loadBalancer/index.d.ts +4 -2
- package/dist/loadBalancer/loadBalancerTransformer.d.ts +2 -6
- package/dist/manifest/manifest.service.d.ts +5 -0
- package/dist/manifest/manifestCommandBuilder.service.d.ts +1 -1
- package/dist/pipeline/stages/deployManifest/manifestStatus/DeployStatus.d.ts +1 -0
- package/dist/pipeline/stages/deployManifest/manifestStatus/ManifestDetailsLink.d.ts +6 -3
- package/dist/pipeline/stages/editLoadBalancer/CloudrunEditLoadBalancerExecutionDetails.d.ts +7 -0
- package/dist/pipeline/stages/editLoadBalancer/CloudrunEditLoadBalancerStageConfig.d.ts +30 -0
- package/dist/pipeline/stages/editLoadBalancer/cloudrunEditLoadBalancerStage.d.ts +2 -1
- package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +4 -6
- package/dist/serverGroup/configure/wizard/BasicSettings.d.ts +5 -2
- package/dist/serverGroup/configure/wizard/serverGroupWizard.d.ts +18 -6
- package/dist/serverGroup/details/CloudrunServerGroupActions.d.ts +6 -0
- package/dist/serverGroup/details/cloudrunServerGroupDetailsGetter.d.ts +3 -0
- package/dist/serverGroup/details/sections.d.ts +5 -0
- package/dist/serverGroup/index.d.ts +3 -1
- package/dist/serverGroup/serverGroupTransformer.service.d.ts +1 -5
- package/package.json +4 -11
- package/src/cloudrun.module.spec.ts +22 -0
- package/src/cloudrun.module.ts +54 -59
- package/src/common/ComponentUrlDetails.tsx +25 -0
- package/src/common/LoadBalancerMessage.tsx +17 -0
- package/src/index.ts +2 -1
- package/src/instance/details/CloudrunInstanceDetails.tsx +164 -0
- package/src/loadBalancer/configure/wizard/CloudrunLoadBalancerModal.spec.tsx +85 -0
- package/src/loadBalancer/configure/wizard/CloudrunLoadBalancerModal.tsx +395 -0
- package/src/loadBalancer/details/CloudrunLoadBalancerActions.tsx +66 -0
- package/src/loadBalancer/details/sections.spec.ts +19 -0
- package/src/loadBalancer/details/sections.tsx +91 -0
- package/src/loadBalancer/details/useCloudrunLoadBalancerDetails.ts +56 -0
- package/src/loadBalancer/index.ts +4 -2
- package/src/loadBalancer/loadBalancerTransformer.ts +3 -13
- package/src/manifest/manifest.service.ts +18 -1
- package/src/manifest/manifestCommandBuilder.service.ts +46 -53
- package/src/pipeline/stages/deployManifest/manifestStatus/DeployStatus.tsx +33 -4
- package/src/pipeline/stages/deployManifest/manifestStatus/ManifestDetailsLink.spec.tsx +35 -0
- package/src/pipeline/stages/deployManifest/manifestStatus/ManifestDetailsLink.tsx +10 -5
- package/src/pipeline/stages/editLoadBalancer/CloudrunEditLoadBalancerExecutionDetails.tsx +70 -0
- package/src/pipeline/stages/editLoadBalancer/CloudrunEditLoadBalancerStageConfig.tsx +245 -0
- package/src/pipeline/stages/editLoadBalancer/cloudrunEditLoadBalancerStage.spec.ts +205 -0
- package/src/pipeline/stages/editLoadBalancer/cloudrunEditLoadBalancerStage.ts +14 -71
- package/src/serverGroup/configure/serverGroupCommandBuilder.service.ts +5 -15
- package/src/serverGroup/configure/wizard/BasicSettings.tsx +10 -8
- package/src/serverGroup/configure/wizard/serverGroupWizard.tsx +59 -15
- package/src/serverGroup/details/CloudrunServerGroupActions.tsx +80 -0
- package/src/serverGroup/details/cloudrunServerGroupDetailsGetter.spec.ts +46 -0
- package/src/serverGroup/details/cloudrunServerGroupDetailsGetter.ts +53 -0
- package/src/serverGroup/details/sections.tsx +60 -0
- package/src/serverGroup/index.ts +3 -1
- package/src/serverGroup/routerConsumers.spec.tsx +152 -0
- package/src/serverGroup/serverGroupTransformer.service.ts +2 -12
- 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/instance/details/details.controller.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/pipeline/pipeline.module.d.ts +0 -1
- package/dist/pipeline/stages/editLoadBalancer/loadBalancerChoice.modal.controller.d.ts +0 -1
- package/dist/serverGroup/details/details.controller.d.ts +0 -1
- package/src/common/componentUrlDetails.component.ts +0 -22
- package/src/common/conditionalDescriptionListItem.component.ts +0 -37
- package/src/common/loadBalancerMessage.component.html +0 -11
- package/src/common/loadBalancerMessage.component.ts +0 -13
- package/src/instance/details/details.controller.ts +0 -84
- package/src/instance/details/details.html +0 -68
- package/src/loadBalancer/configure/wizard/allocationConfigurationRow.component.ts +0 -70
- package/src/loadBalancer/configure/wizard/basicSettings.component.html +0 -44
- package/src/loadBalancer/configure/wizard/basicSettings.component.ts +0 -86
- package/src/loadBalancer/configure/wizard/stageAllocationConfigurationRow.component.html +0 -45
- package/src/loadBalancer/configure/wizard/stageAllocationConfigurationRow.component.ts +0 -84
- package/src/loadBalancer/configure/wizard/wizard.controller.ts +0 -157
- package/src/loadBalancer/configure/wizard/wizard.html +0 -39
- package/src/loadBalancer/configure/wizard/wizard.less +0 -9
- package/src/loadBalancer/details/details.controller.ts +0 -140
- package/src/loadBalancer/details/details.html +0 -89
- package/src/pipeline/pipeline.module.ts +0 -6
- 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 -53
- package/src/serverGroup/details/details.controller.ts +0 -134
- package/src/serverGroup/details/details.html +0 -94
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Application } from '@spinnaker/core';
|
|
3
|
+
import type { ICloudrunInstance } from '../../common/domain';
|
|
4
|
+
interface ICloudrunInstanceDetailsProps {
|
|
5
|
+
app: Application;
|
|
6
|
+
instance: {
|
|
7
|
+
instanceId: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
interface ICloudrunInstanceDetailsState {
|
|
11
|
+
loading: boolean;
|
|
12
|
+
instance?: ICloudrunInstance;
|
|
13
|
+
instanceIdNotFound?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class CloudrunInstanceDetails extends React.Component<ICloudrunInstanceDetailsProps, ICloudrunInstanceDetailsState> {
|
|
16
|
+
state: ICloudrunInstanceDetailsState;
|
|
17
|
+
private isUnmounted;
|
|
18
|
+
componentDidMount(): void;
|
|
19
|
+
componentWillUnmount(): void;
|
|
20
|
+
private retrieveInstance;
|
|
21
|
+
render(): JSX.Element;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ILoadBalancerModalProps, IRouterInjectedProps } from '@spinnaker/core';
|
|
3
|
+
import { TaskMonitor } from '@spinnaker/core';
|
|
4
|
+
import { CloudrunLoadBalancerUpsertDescription } from '../../loadBalancerTransformer';
|
|
5
|
+
export interface ICloudrunLoadBalancerModalState {
|
|
6
|
+
loading: boolean;
|
|
7
|
+
loadBalancer?: CloudrunLoadBalancerUpsertDescription;
|
|
8
|
+
taskMonitor: TaskMonitor;
|
|
9
|
+
}
|
|
10
|
+
export interface ICloudrunLoadBalancerModalProps extends ILoadBalancerModalProps {
|
|
11
|
+
isNew?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class CloudrunLoadBalancerModalComponent extends React.Component<ICloudrunLoadBalancerModalProps & IRouterInjectedProps, ICloudrunLoadBalancerModalState> {
|
|
14
|
+
static show(props: ICloudrunLoadBalancerModalProps): Promise<CloudrunLoadBalancerUpsertDescription>;
|
|
15
|
+
private transformer;
|
|
16
|
+
private isUnmounted;
|
|
17
|
+
private applicationRefreshUnsubscribe?;
|
|
18
|
+
constructor(props: ICloudrunLoadBalancerModalProps & IRouterInjectedProps);
|
|
19
|
+
componentDidMount(): void;
|
|
20
|
+
componentWillUnmount(): void;
|
|
21
|
+
private onTaskComplete;
|
|
22
|
+
private onApplicationRefresh;
|
|
23
|
+
private clearApplicationRefreshSubscription;
|
|
24
|
+
private submit;
|
|
25
|
+
private updateLoadBalancer;
|
|
26
|
+
render(): JSX.Element;
|
|
27
|
+
}
|
|
28
|
+
export declare const CloudrunLoadBalancerModal: React.ForwardRefExoticComponent<Omit<ICloudrunLoadBalancerModalProps & IRouterInjectedProps, keyof IRouterInjectedProps> & {
|
|
29
|
+
children?: React.ReactNode;
|
|
30
|
+
} & React.RefAttributes<any>> & {
|
|
31
|
+
show: typeof CloudrunLoadBalancerModalComponent.show;
|
|
32
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { ILoadBalancerDetailsSectionProps } from '@spinnaker/core';
|
|
3
|
+
export declare function compareCloudrunLoadBalancerServerGroups(a: any, b: any): number;
|
|
4
|
+
export declare function CloudrunLoadBalancerDetailsSection({ loadBalancer }: ILoadBalancerDetailsSectionProps): JSX.Element;
|
|
5
|
+
export declare function CloudrunLoadBalancerStatusSection({ loadBalancer }: ILoadBalancerDetailsSectionProps): JSX.Element;
|
|
6
|
+
export declare function CloudrunLoadBalancerTrafficSplitSection({ loadBalancer }: ILoadBalancerDetailsSectionProps): JSX.Element;
|
|
7
|
+
export declare function CloudrunLoadBalancerDnsSection({ loadBalancer }: ILoadBalancerDetailsSectionProps): JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IUseDetailsHookProps, UseDetailsHook } from '@spinnaker/core';
|
|
2
|
+
import type { ICloudrunLoadBalancer } from '../../common/domain';
|
|
3
|
+
export declare const useCloudrunLoadBalancerDetails: UseDetailsHook<ICloudrunLoadBalancer>;
|
|
4
|
+
export declare function findCloudrunLoadBalancer(loadBalancers: ICloudrunLoadBalancer[], loadBalancerParams: IUseDetailsHookProps['loadBalancerParams']): ICloudrunLoadBalancer;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export * from './loadBalancerTransformer';
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
2
|
+
export * from './configure/wizard/CloudrunLoadBalancerModal';
|
|
3
|
+
export * from './details/CloudrunLoadBalancerActions';
|
|
4
|
+
export * from './details/sections';
|
|
5
|
+
export * from './details/useCloudrunLoadBalancerDetails';
|
|
@@ -26,13 +26,9 @@ export declare class CloudrunLoadBalancerUpsertDescription implements ILoadBalan
|
|
|
26
26
|
mapAllocationsToPercentages(): void;
|
|
27
27
|
}
|
|
28
28
|
export declare class CloudrunLoadBalancerTransformer {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
constructor($q: ng.IQService);
|
|
32
|
-
normalizeLoadBalancer(loadBalancer: ILoadBalancer): PromiseLike<ILoadBalancer>;
|
|
33
|
-
convertLoadBalancerForEditing(loadBalancer: ICloudrunLoadBalancer, application: Application): PromiseLike<ICloudrunLoadBalancer>;
|
|
29
|
+
normalizeLoadBalancer(loadBalancer: ILoadBalancer): Promise<ILoadBalancer>;
|
|
30
|
+
convertLoadBalancerForEditing(loadBalancer: ICloudrunLoadBalancer, application: Application): Promise<ICloudrunLoadBalancer>;
|
|
34
31
|
convertLoadBalancerToUpsertDescription(loadBalancer: ICloudrunLoadBalancer): CloudrunLoadBalancerUpsertDescription;
|
|
35
32
|
private buildInstanceCounts;
|
|
36
33
|
private transformInstance;
|
|
37
34
|
}
|
|
38
|
-
export declare const CLOUDRUN_LOAD_BALANCER_TRANSFORMER = "spinnaker.cloudrun.loadBalancer.transformer.service";
|
|
@@ -7,6 +7,11 @@ export interface IStageManifest {
|
|
|
7
7
|
name: string;
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
|
+
export interface IStoredManifestReference {
|
|
11
|
+
type: string;
|
|
12
|
+
reference: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function isStoredManifestReference(manifest: unknown): manifest is IStoredManifestReference;
|
|
10
15
|
export interface IManifestParams {
|
|
11
16
|
account: string;
|
|
12
17
|
location: string;
|
|
@@ -26,5 +26,5 @@ export interface ICloudrunManifestSpinnakerRelationships {
|
|
|
26
26
|
export declare class CloudrunManifestCommandBuilder {
|
|
27
27
|
static manifestCommandIsValid(command: ICloudrunManifestCommand): boolean;
|
|
28
28
|
static copyAndCleanCommand(input: ICloudrunManifestCommand): ICloudrunManifestCommand;
|
|
29
|
-
static buildNewManifestCommand(app: Application, sourceManifest?: any, sourceMoniker?: IMoniker, sourceAccount?: string):
|
|
29
|
+
static buildNewManifestCommand(app: Application, sourceManifest?: any, sourceMoniker?: IMoniker, sourceAccount?: string): Promise<ICloudrunManifestCommandData>;
|
|
30
30
|
}
|
|
@@ -17,6 +17,7 @@ export declare class DeployStatus extends React.Component<IExecutionDetailsSecti
|
|
|
17
17
|
componentDidUpdate(_prevProps: IExecutionDetailsSectionProps, prevState: IDeployStatusState): void;
|
|
18
18
|
private subscribeToManifestUpdates;
|
|
19
19
|
private unsubscribeAll;
|
|
20
|
+
private get storedManifestRefs();
|
|
20
21
|
private stageManifestToIManifest;
|
|
21
22
|
render(): JSX.Element;
|
|
22
23
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { IManifest } from '@spinnaker/core';
|
|
2
|
+
import type { IManifest, IRouterInjectedProps } from '@spinnaker/core';
|
|
3
3
|
export interface IManifestDetailsProps {
|
|
4
4
|
manifest: IManifest;
|
|
5
5
|
linkName: string;
|
|
@@ -8,9 +8,9 @@ export interface IManifestDetailsProps {
|
|
|
8
8
|
export interface IManifestDetailsState {
|
|
9
9
|
url: string;
|
|
10
10
|
}
|
|
11
|
-
export declare class
|
|
11
|
+
export declare class ManifestDetailsLinkComponent extends React.Component<IManifestDetailsProps & IRouterInjectedProps, IManifestDetailsState> {
|
|
12
12
|
private spinnakerKindStateMap;
|
|
13
|
-
constructor(props: IManifestDetailsProps);
|
|
13
|
+
constructor(props: IManifestDetailsProps & IRouterInjectedProps);
|
|
14
14
|
private canOpen;
|
|
15
15
|
private spinnakerKindFromCloudrunKind;
|
|
16
16
|
private resourceRegion;
|
|
@@ -18,3 +18,6 @@ export declare class ManifestDetailsLink extends React.Component<IManifestDetail
|
|
|
18
18
|
private loadUrl;
|
|
19
19
|
render(): JSX.Element;
|
|
20
20
|
}
|
|
21
|
+
export declare const ManifestDetailsLink: React.ForwardRefExoticComponent<Omit<IManifestDetailsProps & IRouterInjectedProps, keyof IRouterInjectedProps> & {
|
|
22
|
+
children?: React.ReactNode;
|
|
23
|
+
} & React.RefAttributes<any>>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { IExecutionDetailsSectionProps, ILoadBalancer } from '@spinnaker/core';
|
|
3
|
+
export declare function CloudrunEditLoadBalancerExecutionDetails(props: IExecutionDetailsSectionProps): JSX.Element;
|
|
4
|
+
export declare namespace CloudrunEditLoadBalancerExecutionDetails {
|
|
5
|
+
var title: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function getLoadBalancerCompositeKey(loadBalancer: Partial<ILoadBalancer>): string;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ILoadBalancer, IStageConfigProps } from '@spinnaker/core';
|
|
3
|
+
export declare class CloudrunEditLoadBalancerStageConfig extends React.Component<IStageConfigProps> {
|
|
4
|
+
componentDidMount(): void;
|
|
5
|
+
private addLoadBalancer;
|
|
6
|
+
private editLoadBalancer;
|
|
7
|
+
private removeLoadBalancer;
|
|
8
|
+
render(): JSX.Element;
|
|
9
|
+
}
|
|
10
|
+
interface ICloudrunLoadBalancerChoiceModalProps {
|
|
11
|
+
application: IStageConfigProps['application'];
|
|
12
|
+
closeModal?: (loadBalancer: ILoadBalancer) => void;
|
|
13
|
+
dismissModal?: () => void;
|
|
14
|
+
}
|
|
15
|
+
interface ICloudrunLoadBalancerChoiceModalState {
|
|
16
|
+
loading: boolean;
|
|
17
|
+
loadBalancers: ILoadBalancer[];
|
|
18
|
+
selectedLoadBalancer?: ILoadBalancer;
|
|
19
|
+
}
|
|
20
|
+
export declare class CloudrunLoadBalancerChoiceModal extends React.Component<ICloudrunLoadBalancerChoiceModalProps, ICloudrunLoadBalancerChoiceModalState> {
|
|
21
|
+
static show(props: ICloudrunLoadBalancerChoiceModalProps): Promise<ILoadBalancer>;
|
|
22
|
+
private mounted;
|
|
23
|
+
state: ICloudrunLoadBalancerChoiceModalState;
|
|
24
|
+
componentDidMount(): void;
|
|
25
|
+
componentWillUnmount(): void;
|
|
26
|
+
private submit;
|
|
27
|
+
render(): JSX.Element;
|
|
28
|
+
}
|
|
29
|
+
export declare function getLoadBalancerOptionLabel(loadBalancer: ILoadBalancer): string;
|
|
30
|
+
export {};
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { IStageTypeConfig } from '@spinnaker/core';
|
|
2
|
+
export declare const CLOUDRUN_EDIT_LOAD_BALANCER_STAGE_CONFIG: IStageTypeConfig;
|
|
@@ -56,19 +56,17 @@ export interface ICloudrunServerGroupSpinnakerRelationships {
|
|
|
56
56
|
securityGroups?: string[];
|
|
57
57
|
}
|
|
58
58
|
export declare class CloudrunV2ServerGroupCommandBuilder {
|
|
59
|
-
buildNewServerGroupCommand(app: Application):
|
|
59
|
+
buildNewServerGroupCommand(app: Application): Promise<ICloudrunServerGroupCommandData>;
|
|
60
60
|
buildNewServerGroupCommandForPipeline(_stage: IStage, pipeline: IPipeline): any;
|
|
61
|
-
buildServerGroupCommandFromPipeline(app: Application, cluster: CloudrunDeployDescription, _stage: IStage, pipeline: IPipeline):
|
|
61
|
+
buildServerGroupCommandFromPipeline(app: Application, cluster: CloudrunDeployDescription, _stage: IStage, pipeline: IPipeline): Promise<ICloudrunServerGroupCommandData>;
|
|
62
62
|
}
|
|
63
63
|
export declare class CloudrunServerGroupCommandBuilder {
|
|
64
|
-
static $inject: string[];
|
|
65
64
|
static ServerGroupCommandIsValid(command: ICloudrunServerGroupCommand): boolean;
|
|
66
65
|
static copyAndCleanCommand(input: ICloudrunServerGroupCommand): ICloudrunServerGroupCommand;
|
|
67
66
|
static buildNewServerGroupCommandForPipeline(stage: IStage, pipeline: IPipeline): any;
|
|
68
67
|
private static getExpectedArtifacts;
|
|
69
|
-
static buildServerGroupCommandFromPipeline(app: Application, cluster: CloudrunDeployDescription, _stage: IStage, pipeline: IPipeline):
|
|
68
|
+
static buildServerGroupCommandFromPipeline(app: Application, cluster: CloudrunDeployDescription, _stage: IStage, pipeline: IPipeline): Promise<ICloudrunServerGroupCommandData>;
|
|
70
69
|
static getCredentials(accounts: IAccountDetails[]): string;
|
|
71
70
|
static getRegion(accounts: any[], credentials: string): string;
|
|
72
|
-
static buildNewServerGroupCommand(app: Application, sourceAccount: string, mode: string):
|
|
71
|
+
static buildNewServerGroupCommand(app: Application, sourceAccount: string, mode: string): Promise<ICloudrunServerGroupCommandData>;
|
|
73
72
|
}
|
|
74
|
-
export declare const CLOUDRUN_SERVER_GROUP_COMMAND_BUILDER = "spinnaker.cloudrun.serverGroup.commandBuilder.service";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FormikProps } from 'formik';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import type { Application, IAccount, IServerGroup } from '@spinnaker/core';
|
|
3
|
+
import type { Application, IAccount, IRouterInjectedProps, IServerGroup } from '@spinnaker/core';
|
|
4
4
|
import type { ICloudrunServerGroupCommandData } from '../serverGroupCommandBuilder.service';
|
|
5
5
|
export interface IServerGroupBasicSettingsProps {
|
|
6
6
|
accounts: IAccount[];
|
|
@@ -16,7 +16,10 @@ export interface IServerGroupBasicSettingsState {
|
|
|
16
16
|
createsNewCluster: boolean;
|
|
17
17
|
latestServerGroup: IServerGroup;
|
|
18
18
|
}
|
|
19
|
-
export declare function
|
|
19
|
+
export declare function ServerGroupBasicSettingsComponent({ accounts, onAccountSelect, selectedAccount, formik, onEnterStack, detailsChanged, app, stateService, }: IServerGroupBasicSettingsProps & IRouterInjectedProps): JSX.Element;
|
|
20
|
+
export declare const ServerGroupBasicSettings: React.ForwardRefExoticComponent<Omit<IServerGroupBasicSettingsProps & IRouterInjectedProps, keyof IRouterInjectedProps> & {
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
} & React.RefAttributes<any>>;
|
|
20
23
|
export interface IWizardServerGroupBasicSettingsProps {
|
|
21
24
|
formik: FormikProps<ICloudrunServerGroupCommandData>;
|
|
22
25
|
app: Application;
|
|
@@ -1,25 +1,37 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { Application, IModalComponentProps } from '@spinnaker/core';
|
|
3
|
-
import { TaskMonitor } from '@spinnaker/core';
|
|
2
|
+
import type { Application, DeckRuntimeServices, IModalComponentProps, IRouterInjectedProps } from '@spinnaker/core';
|
|
3
|
+
import { DeckRuntimeContext, TaskMonitor } from '@spinnaker/core';
|
|
4
4
|
import type { ICloudrunServerGroupCommandData } from '../serverGroupCommandBuilder.service';
|
|
5
5
|
export interface ICloudrunServerGroupModalProps extends IModalComponentProps {
|
|
6
6
|
title: string;
|
|
7
7
|
application: Application;
|
|
8
8
|
command: ICloudrunServerGroupCommandData;
|
|
9
9
|
isNew?: boolean;
|
|
10
|
+
closeModal?: (command: any) => void;
|
|
11
|
+
dismissModal?: () => void;
|
|
10
12
|
}
|
|
11
13
|
export interface ICloudrunServerGroupModalState {
|
|
12
14
|
command: ICloudrunServerGroupCommandData;
|
|
13
15
|
loaded: boolean;
|
|
14
16
|
taskMonitor: TaskMonitor;
|
|
15
17
|
}
|
|
16
|
-
export declare class
|
|
17
|
-
static
|
|
18
|
+
export declare class ServerGroupWizardComponent extends React.Component<ICloudrunServerGroupModalProps & IRouterInjectedProps, ICloudrunServerGroupModalState> {
|
|
19
|
+
static contextType: React.Context<import("@spinnaker/core").DeckRuntimeContextValue>;
|
|
20
|
+
context: React.ContextType<typeof DeckRuntimeContext>;
|
|
21
|
+
static defaultProps: Partial<ICloudrunServerGroupModalProps & IRouterInjectedProps>;
|
|
18
22
|
private _isUnmounted;
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
private applicationRefreshUnsubscribe?;
|
|
24
|
+
static show(props: ICloudrunServerGroupModalProps, runtimeServices: DeckRuntimeServices): Promise<ICloudrunServerGroupCommandData>;
|
|
25
|
+
constructor(props: ICloudrunServerGroupModalProps & IRouterInjectedProps);
|
|
21
26
|
private onTaskComplete;
|
|
22
27
|
protected onApplicationRefresh: () => void;
|
|
28
|
+
componentWillUnmount(): void;
|
|
29
|
+
private clearApplicationRefreshSubscription;
|
|
23
30
|
private submit;
|
|
24
31
|
render(): JSX.Element;
|
|
25
32
|
}
|
|
33
|
+
export declare const ServerGroupWizard: React.ForwardRefExoticComponent<Omit<ICloudrunServerGroupModalProps & IRouterInjectedProps, keyof IRouterInjectedProps> & {
|
|
34
|
+
children?: React.ReactNode;
|
|
35
|
+
} & React.RefAttributes<any>> & {
|
|
36
|
+
show: typeof ServerGroupWizardComponent.show;
|
|
37
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { IRouterInjectedProps, IServerGroupActionsProps } from '@spinnaker/core';
|
|
3
|
+
export declare function CloudrunServerGroupActionsComponent({ app, serverGroup, stateService, }: IServerGroupActionsProps & IRouterInjectedProps): JSX.Element;
|
|
4
|
+
export declare const CloudrunServerGroupActions: React.ForwardRefExoticComponent<Omit<IServerGroupActionsProps & IRouterInjectedProps, keyof IRouterInjectedProps> & {
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
} & React.RefAttributes<any>>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { IServerGroupDetailsSectionProps } from '@spinnaker/core';
|
|
3
|
+
export declare function CloudrunServerGroupInformationSection({ serverGroup }: IServerGroupDetailsSectionProps): JSX.Element;
|
|
4
|
+
export declare function CloudrunServerGroupSizeSection({ serverGroup }: IServerGroupDetailsSectionProps): JSX.Element;
|
|
5
|
+
export declare function CloudrunServerGroupHealthSection({ serverGroup }: IServerGroupDetailsSectionProps): JSX.Element;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export * from './configure/serverGroupCommandBuilder.service';
|
|
2
2
|
export * from './serverGroupTransformer.service';
|
|
3
|
-
export * from './details/
|
|
3
|
+
export * from './details/CloudrunServerGroupActions';
|
|
4
|
+
export * from './details/cloudrunServerGroupDetailsGetter';
|
|
5
|
+
export * from './details/sections';
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import type { IServerGroup } from '@spinnaker/core';
|
|
2
2
|
import type { ICloudrunServerGroupCommand } from '../serverGroup/configure/serverGroupCommandBuilder.service';
|
|
3
3
|
export declare class CloudrunV2ServerGroupTransformer {
|
|
4
|
-
|
|
5
|
-
static $inject: string[];
|
|
6
|
-
constructor($q: ng.IQService);
|
|
7
|
-
normalizeServerGroup(serverGroup: IServerGroup): PromiseLike<IServerGroup>;
|
|
4
|
+
normalizeServerGroup(serverGroup: IServerGroup): Promise<IServerGroup>;
|
|
8
5
|
convertServerGroupCommandToDeployConfiguration(command: ICloudrunServerGroupCommand): any;
|
|
9
6
|
}
|
|
10
7
|
export declare class CloudrunDeployDescription {
|
|
@@ -28,4 +25,3 @@ export declare class CloudrunDeployDescription {
|
|
|
28
25
|
sourceType: string;
|
|
29
26
|
constructor(command: ICloudrunServerGroupCommand);
|
|
30
27
|
}
|
|
31
|
-
export declare const CLOUDRUN_SERVER_GROUP_TRANSFORMER = "spinnaker.cloudrun.serverGroup.transformer.service";
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "https://github.com/spinnaker/spinnaker.git"
|
|
6
6
|
},
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
|
-
"version": "2026.
|
|
8
|
+
"version": "2026.3.0",
|
|
9
9
|
"module": "dist/index.js",
|
|
10
10
|
"typings": "dist/index.d.ts",
|
|
11
11
|
"publishConfig": {
|
|
@@ -22,30 +22,23 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@spinnaker/core": "^0.29.1",
|
|
25
|
-
"@uirouter/angularjs": "1.0.26",
|
|
26
25
|
"@uirouter/react": "1.0.7",
|
|
27
|
-
"angular": "1.8.3",
|
|
28
|
-
"angular-ui-bootstrap": "2.5.0",
|
|
29
26
|
"brace": "0.11.1",
|
|
30
27
|
"dompurify": "^3.0.0",
|
|
31
28
|
"enzyme": "3.11.0",
|
|
32
29
|
"formik": "1.5.1",
|
|
33
|
-
"js-yaml": "
|
|
30
|
+
"js-yaml": "4.1.1",
|
|
34
31
|
"lodash": "4.18.1",
|
|
35
32
|
"luxon": "1.28.1",
|
|
36
|
-
"ngimport": "0.6.1",
|
|
37
33
|
"react": "16.14.0",
|
|
38
34
|
"react-ace": "6.4.0",
|
|
39
35
|
"react-bootstrap": "0.32.1",
|
|
40
36
|
"react-select": "1.2.1",
|
|
41
|
-
"react2angular": "3.2.1",
|
|
42
37
|
"rxjs": "6.6.7"
|
|
43
38
|
},
|
|
44
39
|
"devDependencies": {
|
|
45
40
|
"@spinnaker/eslint-plugin": "^3.0.2",
|
|
46
41
|
"@spinnaker/scripts": "^0.4.0",
|
|
47
|
-
"@types/angular": "1.8.5",
|
|
48
|
-
"@types/angular-ui-bootstrap": "0.13.41",
|
|
49
42
|
"@types/dompurify": "^2.3.3",
|
|
50
43
|
"@types/enzyme": "3.10.3",
|
|
51
44
|
"@types/js-yaml": "3.5.30",
|
|
@@ -55,7 +48,7 @@
|
|
|
55
48
|
"@types/react-bootstrap": "0.32.5",
|
|
56
49
|
"@types/react-select": "1.3.4",
|
|
57
50
|
"shx": "0.3.3",
|
|
58
|
-
"typescript": "
|
|
51
|
+
"typescript": "5.0.4"
|
|
59
52
|
},
|
|
60
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "0f7d75f5d4b42c1675e2ecc69a53f8eb73090eb9"
|
|
61
54
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CloudProviderRegistry } from '@spinnaker/core';
|
|
2
|
+
|
|
3
|
+
import './index';
|
|
4
|
+
import { CloudrunLoadBalancerTransformer } from './loadBalancer/loadBalancerTransformer';
|
|
5
|
+
import { CloudrunV2ServerGroupCommandBuilder } from './serverGroup/configure/serverGroupCommandBuilder.service';
|
|
6
|
+
import { CloudrunV2ServerGroupTransformer } from './serverGroup/serverGroupTransformer.service';
|
|
7
|
+
|
|
8
|
+
describe('Cloud Run provider registration', () => {
|
|
9
|
+
it('registers the provider configuration', () => {
|
|
10
|
+
expect(CloudProviderRegistry.getValue('cloudrun', 'instance.details')).toBeDefined();
|
|
11
|
+
expect(CloudProviderRegistry.getValue('cloudrun', 'serverGroup.commandBuilder')).toBe(
|
|
12
|
+
CloudrunV2ServerGroupCommandBuilder,
|
|
13
|
+
);
|
|
14
|
+
expect(CloudProviderRegistry.getValue('cloudrun', 'serverGroup.transformer')).toBe(
|
|
15
|
+
CloudrunV2ServerGroupTransformer,
|
|
16
|
+
);
|
|
17
|
+
expect(CloudProviderRegistry.getValue('cloudrun', 'loadBalancer.transformer')).toBe(
|
|
18
|
+
CloudrunLoadBalancerTransformer,
|
|
19
|
+
);
|
|
20
|
+
expect(CloudProviderRegistry.getValue('cloudrun', 'loadBalancer.CreateLoadBalancerModal')).toBeDefined();
|
|
21
|
+
});
|
|
22
|
+
});
|
package/src/cloudrun.module.ts
CHANGED
|
@@ -1,73 +1,68 @@
|
|
|
1
|
-
import { module } from 'angular';
|
|
2
|
-
|
|
3
1
|
import { CloudProviderRegistry, DeploymentStrategyRegistry } from '@spinnaker/core';
|
|
4
2
|
|
|
5
|
-
import { CLOUDRUN_COMPONENT_URL_DETAILS } from './common/componentUrlDetails.component';
|
|
6
|
-
import { CLOUDRUN_LOAD_BALANCER_CREATE_MESSAGE } from './common/loadBalancerMessage.component';
|
|
7
3
|
import './help/cloudrun.help';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
import { CloudrunInstanceDetails } from './instance/details/CloudrunInstanceDetails';
|
|
5
|
+
import { CloudrunLoadBalancerModal } from './loadBalancer/configure/wizard/CloudrunLoadBalancerModal';
|
|
6
|
+
import { CloudrunLoadBalancerActions } from './loadBalancer/details/CloudrunLoadBalancerActions';
|
|
7
|
+
import {
|
|
8
|
+
CloudrunLoadBalancerDetailsSection,
|
|
9
|
+
CloudrunLoadBalancerDnsSection,
|
|
10
|
+
CloudrunLoadBalancerStatusSection,
|
|
11
|
+
CloudrunLoadBalancerTrafficSplitSection,
|
|
12
|
+
} from './loadBalancer/details/sections';
|
|
13
|
+
import { useCloudrunLoadBalancerDetails } from './loadBalancer/details/useCloudrunLoadBalancerDetails';
|
|
14
|
+
import { CloudrunLoadBalancerTransformer } from './loadBalancer/loadBalancerTransformer';
|
|
15
15
|
import logo from './logo/cloudrun.logo.png';
|
|
16
|
-
import { CLOUDRUN_PIPELINE_MODULE } from './pipeline/pipeline.module';
|
|
17
16
|
import './pipeline/stages/deployManifest/deployStage';
|
|
18
|
-
import
|
|
17
|
+
import './pipeline/stages/editLoadBalancer/cloudrunEditLoadBalancerStage';
|
|
18
|
+
import { CloudrunV2ServerGroupCommandBuilder } from './serverGroup/configure/serverGroupCommandBuilder.service';
|
|
19
19
|
import { ServerGroupWizard } from './serverGroup/configure/wizard/serverGroupWizard';
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
20
|
+
import { CloudrunServerGroupActions } from './serverGroup/details/CloudrunServerGroupActions';
|
|
21
|
+
import { cloudrunServerGroupDetailsGetter } from './serverGroup/details/cloudrunServerGroupDetailsGetter';
|
|
22
|
+
import {
|
|
23
|
+
CloudrunServerGroupHealthSection,
|
|
24
|
+
CloudrunServerGroupInformationSection,
|
|
25
|
+
CloudrunServerGroupSizeSection,
|
|
26
|
+
} from './serverGroup/details/sections';
|
|
27
|
+
import { CloudrunV2ServerGroupTransformer } from './serverGroup/serverGroupTransformer.service';
|
|
22
28
|
|
|
23
29
|
import './logo/cloudrun.logo.less';
|
|
24
30
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
CLOUDRUN_SERVER_GROUP_DETAILS_CTRL,
|
|
31
|
-
CLOUDRUN_SERVER_GROUP_TRANSFORMER,
|
|
32
|
-
CLOUDRUN_LOAD_BALANCER_TRANSFORMER,
|
|
33
|
-
CLOUDRUN_LOAD_BALANCER_DETAILS_CTRL,
|
|
34
|
-
CLOUDRUN_LOAD_BALANCER_WIZARD_CTRL,
|
|
35
|
-
CLOUDRUN_LOAD_BALANCER_CREATE_MESSAGE,
|
|
36
|
-
CLOUDRUN_ALLOCATION_CONFIGURATION_ROW,
|
|
37
|
-
CLOUDRUN_LOAD_BALANCER_BASIC_SETTINGS,
|
|
38
|
-
CLOUDRUN_STAGE_ALLOCATION_CONFIGURATION_ROW,
|
|
39
|
-
CLOUDRUN_PIPELINE_MODULE,
|
|
40
|
-
CLOUDRUN_INSTANCE_DETAILS_CTRL,
|
|
41
|
-
];
|
|
42
|
-
|
|
43
|
-
module(CLOUDRUN_MODULE, requires).config(() => {
|
|
44
|
-
CloudProviderRegistry.registerProvider('cloudrun', {
|
|
45
|
-
name: 'cloudrun',
|
|
46
|
-
logo: {
|
|
47
|
-
path: logo,
|
|
48
|
-
},
|
|
31
|
+
CloudProviderRegistry.registerProvider('cloudrun', {
|
|
32
|
+
name: 'cloudrun',
|
|
33
|
+
logo: {
|
|
34
|
+
path: logo,
|
|
35
|
+
},
|
|
49
36
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
37
|
+
instance: {
|
|
38
|
+
details: CloudrunInstanceDetails,
|
|
39
|
+
},
|
|
40
|
+
serverGroup: {
|
|
41
|
+
CloneServerGroupModal: ServerGroupWizard,
|
|
42
|
+
commandBuilder: CloudrunV2ServerGroupCommandBuilder,
|
|
43
|
+
detailsActions: CloudrunServerGroupActions,
|
|
44
|
+
detailsGetter: cloudrunServerGroupDetailsGetter,
|
|
45
|
+
detailsSections: [
|
|
46
|
+
CloudrunServerGroupInformationSection,
|
|
47
|
+
CloudrunServerGroupSizeSection,
|
|
48
|
+
CloudrunServerGroupHealthSection,
|
|
49
|
+
],
|
|
50
|
+
transformer: CloudrunV2ServerGroupTransformer,
|
|
51
|
+
skipUpstreamStageCheck: true,
|
|
52
|
+
},
|
|
62
53
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
54
|
+
loadBalancer: {
|
|
55
|
+
transformer: CloudrunLoadBalancerTransformer,
|
|
56
|
+
CreateLoadBalancerModal: CloudrunLoadBalancerModal,
|
|
57
|
+
useDetailsHook: useCloudrunLoadBalancerDetails,
|
|
58
|
+
detailsActions: CloudrunLoadBalancerActions,
|
|
59
|
+
detailsSections: [
|
|
60
|
+
CloudrunLoadBalancerDetailsSection,
|
|
61
|
+
CloudrunLoadBalancerStatusSection,
|
|
62
|
+
CloudrunLoadBalancerTrafficSplitSection,
|
|
63
|
+
CloudrunLoadBalancerDnsSection,
|
|
64
|
+
],
|
|
65
|
+
},
|
|
71
66
|
});
|
|
72
67
|
|
|
73
68
|
DeploymentStrategyRegistry.registerProvider('cloudrun', ['custom', 'redblack', 'rollingpush', 'rollingredblack']);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { CopyToClipboard } from '@spinnaker/core';
|
|
4
|
+
|
|
5
|
+
export function ComponentUrlDetails({ component }: { component: { url?: string; httpsUrl?: string } }) {
|
|
6
|
+
if (!component?.url) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<>
|
|
12
|
+
<dt>HTTPS</dt>
|
|
13
|
+
<dd className="small">
|
|
14
|
+
<a href={component.url} target="_blank" rel="noopener noreferrer">
|
|
15
|
+
{component.url}
|
|
16
|
+
</a>
|
|
17
|
+
<CopyToClipboard
|
|
18
|
+
className="copy-to-clipboard copy-to-clipboard-sm"
|
|
19
|
+
toolTip="Copy URL to clipboard"
|
|
20
|
+
text={component.httpsUrl || component.url}
|
|
21
|
+
/>
|
|
22
|
+
</dd>
|
|
23
|
+
</>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
export function LoadBalancerMessage({ showCreateMessage = false }: { showCreateMessage?: boolean }) {
|
|
4
|
+
return (
|
|
5
|
+
<div className="row">
|
|
6
|
+
<div className="col-md-offset-1 col-md-10">
|
|
7
|
+
<div className="well">
|
|
8
|
+
<p>
|
|
9
|
+
{showCreateMessage && <span>Spinnaker cannot create a load balancer for Cloud Run. </span>}A Spinnaker load
|
|
10
|
+
balancer maps to an Cloud Run Service, which will be created automatically alongside a Revision. Once
|
|
11
|
+
created, the Service can be edited as a Load Balancer.
|
|
12
|
+
</p>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
);
|
|
17
|
+
}
|
package/src/index.ts
CHANGED