@spinnaker/cloudrun 0.0.0-2026.2-0 → 0.0.0-2026.2-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest/manifest.service.d.ts +5 -0
- package/dist/pipeline/stages/deployManifest/manifestStatus/DeployStatus.d.ts +1 -0
- package/package.json +2 -2
- package/src/manifest/manifest.service.ts +17 -0
- package/src/pipeline/stages/deployManifest/manifestStatus/DeployStatus.tsx +33 -4
|
@@ -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;
|
|
@@ -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
|
}
|
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": "0.0.0-2026.2-
|
|
8
|
+
"version": "0.0.0-2026.2-2",
|
|
9
9
|
"module": "dist/index.js",
|
|
10
10
|
"typings": "dist/index.d.ts",
|
|
11
11
|
"publishConfig": {
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"shx": "0.3.3",
|
|
58
58
|
"typescript": "4.3.5"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "a4affe721ec80ca8978291e2accce065ea0d227a"
|
|
61
61
|
}
|
|
@@ -10,6 +10,23 @@ export interface IStageManifest {
|
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
// A manifest that the artifact-store entity storage feature has replaced with a
|
|
14
|
+
// reference, rather than expanding it back into a real manifest before deck ever
|
|
15
|
+
// sees it (e.g. gate isn't configured to expand these on read).
|
|
16
|
+
export interface IStoredManifestReference {
|
|
17
|
+
type: string;
|
|
18
|
+
reference: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function isStoredManifestReference(manifest: unknown): manifest is IStoredManifestReference {
|
|
22
|
+
return (
|
|
23
|
+
!!manifest &&
|
|
24
|
+
typeof manifest === 'object' &&
|
|
25
|
+
(manifest as IStoredManifestReference).type === 'remote/map/base64' &&
|
|
26
|
+
typeof (manifest as IStoredManifestReference).reference === 'string'
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
13
30
|
export interface IManifestParams {
|
|
14
31
|
account: string;
|
|
15
32
|
location: string;
|
|
@@ -2,11 +2,11 @@ import { get } from 'lodash';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
|
|
4
4
|
import type { IExecutionDetailsSectionProps, IManifest } from '@spinnaker/core';
|
|
5
|
-
import { ExecutionDetailsSection, StageFailureMessage } from '@spinnaker/core';
|
|
5
|
+
import { ExecutionDetailsSection, ManifestYaml, StageFailureMessage } from '@spinnaker/core';
|
|
6
6
|
|
|
7
7
|
import { ManifestStatus } from './ManifestStatus';
|
|
8
|
-
import type { IStageManifest } from '../../../../manifest/manifest.service';
|
|
9
|
-
import { CloudrunManifestService } from '../../../../manifest/manifest.service';
|
|
8
|
+
import type { IStageManifest, IStoredManifestReference } from '../../../../manifest/manifest.service';
|
|
9
|
+
import { CloudrunManifestService, isStoredManifestReference } from '../../../../manifest/manifest.service';
|
|
10
10
|
|
|
11
11
|
export interface IManifestSubscription {
|
|
12
12
|
id: string;
|
|
@@ -36,7 +36,9 @@ export class DeployStatus extends React.Component<IExecutionDetailsSectionProps,
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
public componentDidUpdate(_prevProps: IExecutionDetailsSectionProps, prevState: IDeployStatusState) {
|
|
39
|
-
const manifests: IStageManifest[] = get(this.props.stage, ['context', 'outputs.manifests'], [])
|
|
39
|
+
const manifests: IStageManifest[] = get(this.props.stage, ['context', 'outputs.manifests'], [])
|
|
40
|
+
.filter((m) => !!m)
|
|
41
|
+
.filter((m) => !isStoredManifestReference(m));
|
|
40
42
|
const manifestIds = manifests.map((m) => CloudrunManifestService.manifestIdentifier(m)).sort();
|
|
41
43
|
if (prevState.manifestIds.join('') !== manifestIds.join('')) {
|
|
42
44
|
this.unsubscribeAll();
|
|
@@ -69,6 +71,16 @@ export class DeployStatus extends React.Component<IExecutionDetailsSectionProps,
|
|
|
69
71
|
this.state.subscriptions.forEach(({ unsubscribe }) => unsubscribe());
|
|
70
72
|
}
|
|
71
73
|
|
|
74
|
+
// Manifests the artifact-store entity storage feature replaced with a reference instead
|
|
75
|
+
// of expanding them before deck saw them. We can't determine their kind/name/namespace
|
|
76
|
+
// (and so can't subscribe to live status for them) without fetching the content, so we
|
|
77
|
+
// let the user load them on demand instead, same as a baked manifest's YAML.
|
|
78
|
+
private get storedManifestRefs(): IStoredManifestReference[] {
|
|
79
|
+
return get(this.props.stage, ['context', 'outputs.manifests'], [])
|
|
80
|
+
.filter((m: unknown) => !!m)
|
|
81
|
+
.filter(isStoredManifestReference);
|
|
82
|
+
}
|
|
83
|
+
|
|
72
84
|
private stageManifestToIManifest(manifest: IStageManifest, account: string): IManifest {
|
|
73
85
|
return {
|
|
74
86
|
name: get(manifest, 'metadata.name', ''),
|
|
@@ -102,6 +114,23 @@ export class DeployStatus extends React.Component<IExecutionDetailsSectionProps,
|
|
|
102
114
|
</div>
|
|
103
115
|
</div>
|
|
104
116
|
)}
|
|
117
|
+
{!!this.storedManifestRefs.length && (
|
|
118
|
+
<div className="row">
|
|
119
|
+
<div className="col-md-12">
|
|
120
|
+
<div className="well alert alert-info">
|
|
121
|
+
{this.storedManifestRefs.map((ref, i) => (
|
|
122
|
+
<div key={i}>
|
|
123
|
+
<ManifestYaml
|
|
124
|
+
linkName="Load Manifest Details"
|
|
125
|
+
modalTitle="Manifest"
|
|
126
|
+
manifestUri={ref.reference.replace(/^ref?:\/\//, '')}
|
|
127
|
+
/>
|
|
128
|
+
</div>
|
|
129
|
+
))}
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
)}
|
|
105
134
|
</ExecutionDetailsSection>
|
|
106
135
|
);
|
|
107
136
|
}
|