Skip to content

Commit 6ee0ec7

Browse files
authored
[ReleasePlan] place pipelineRef and serviceAccountName under spec.tenantPipeline (#691)
* fix(ReleasePlan): place pipelineRef and serviceAccountName under tenantPipeline Move pipelineRef and rename serviceAccount -> serviceAccountName inside tenantPipeline to match the release plan spec structure. Assisted-by: Cursor * fixup! fix(ReleasePlan): place pipelineRef and serviceAccountName under tenantPipeline
1 parent 07d127b commit 6ee0ec7

File tree

4 files changed

+80
-62
lines changed

4 files changed

+80
-62
lines changed

src/components/ReleaseService/ReleasePlan/ReleasePlanForm/ReleasePlanFormPage.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export const ReleasePlanFormPage: React.FC<Props> = ({ releasePlan }) => {
9999
? ReleasePipelineLocation.current
100100
: ReleasePipelineLocation.target
101101
: undefined,
102-
serviceAccount: releasePlan?.spec?.serviceAccount ?? '',
102+
serviceAccount: releasePlan?.spec?.tenantPipeline?.serviceAccountName ?? '',
103103
target: releasePlan?.spec?.target ?? '',
104104
data: (releasePlan?.spec?.data as string) ?? '',
105105
params: releasePlanFormParams(releasePlan),
@@ -108,14 +108,17 @@ export const ReleasePlanFormPage: React.FC<Props> = ({ releasePlan }) => {
108108
: [{ key: '', value: '' }],
109109
git: {
110110
url:
111-
releasePlan?.spec?.pipelineRef?.params?.find((p) => p.name === ResolverRefParams.URL)
112-
?.value ?? '',
111+
releasePlan?.spec?.tenantPipeline?.pipelineRef?.params?.find(
112+
(p) => p.name === ResolverRefParams.URL,
113+
)?.value ?? '',
113114
revision:
114-
releasePlan?.spec?.pipelineRef?.params?.find((p) => p.name === ResolverRefParams.REVISION)
115-
?.value ?? '',
115+
releasePlan?.spec?.tenantPipeline?.pipelineRef?.params?.find(
116+
(p) => p.name === ResolverRefParams.REVISION,
117+
)?.value ?? '',
116118
path:
117-
releasePlan?.spec?.pipelineRef?.params?.find((p) => p.name === ResolverRefParams.PATH)
118-
?.value ?? '',
119+
releasePlan?.spec?.tenantPipeline?.pipelineRef?.params?.find(
120+
(p) => p.name === ResolverRefParams.PATH,
121+
)?.value ?? '',
119122
},
120123
};
121124

src/components/ReleaseService/ReleasePlan/ReleasePlanForm/__tests__/form-utils.spec.ts

Lines changed: 52 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ describe('createReleasePlan', () => {
3232
revision: 'main',
3333
path: '/',
3434
},
35+
serviceAccount: 'appstudio-pipeline',
3536
},
3637
'test-ns-tenant',
3738
);
@@ -47,24 +48,27 @@ describe('createReleasePlan', () => {
4748
},
4849
spec: {
4950
application: 'test-app',
50-
pipelineRef: {
51-
params: [
52-
{
53-
name: 'url',
54-
value: 'https://github.com/example/repo',
55-
},
56-
{
57-
name: 'revision',
58-
value: 'main',
59-
},
60-
{
61-
name: 'pathInRepo',
62-
value: '/',
63-
},
64-
],
65-
resolver: 'git',
66-
},
6751
target: 'test-ns-tenant',
52+
tenantPipeline: {
53+
serviceAccountName: 'appstudio-pipeline',
54+
pipelineRef: {
55+
params: [
56+
{
57+
name: 'url',
58+
value: 'https://github.com/example/repo',
59+
},
60+
{
61+
name: 'revision',
62+
value: 'main',
63+
},
64+
{
65+
name: 'pathInRepo',
66+
value: '/',
67+
},
68+
],
69+
resolver: 'git',
70+
},
71+
},
6872
},
6973
}),
7074
);
@@ -84,31 +88,35 @@ describe('createReleasePlan', () => {
8488
revision: 'main',
8589
path: '/',
8690
},
91+
serviceAccount: 'appstudio-pipeline',
8792
},
8893
'test-ns-tenant',
8994
);
9095
expect(result).toEqual(
9196
expect.objectContaining({
9297
spec: {
9398
application: 'test-app',
94-
pipelineRef: {
95-
params: [
96-
{
97-
name: 'url',
98-
value: 'https://github.com/example/repo',
99-
},
100-
{
101-
name: 'revision',
102-
value: 'main',
103-
},
104-
{
105-
name: 'pathInRepo',
106-
value: '/',
107-
},
108-
],
109-
resolver: 'git',
110-
},
11199
target: 'target-ws-tenant',
100+
tenantPipeline: {
101+
serviceAccountName: 'appstudio-pipeline',
102+
pipelineRef: {
103+
params: [
104+
{
105+
name: 'url',
106+
value: 'https://github.com/example/repo',
107+
},
108+
{
109+
name: 'revision',
110+
value: 'main',
111+
},
112+
{
113+
name: 'pathInRepo',
114+
value: '/',
115+
},
116+
],
117+
resolver: 'git',
118+
},
119+
},
112120
},
113121
}),
114122
);
@@ -191,13 +199,16 @@ describe('releasePlanFormParams', () => {
191199
it('should omit git fields from params', () => {
192200
const result = releasePlanFormParams({
193201
spec: {
194-
pipelineRef: {
195-
params: [
196-
{ name: 'url', value: 'https://github.com/example/repo' },
197-
{ name: 'revision', value: 'main' },
198-
{ name: 'pathInRepo', value: '/test' },
199-
{ name: 'test-key', value: 'test-val' },
200-
],
202+
tenantPipeline: {
203+
serviceAccountName: 'appstudio-pipeline',
204+
pipelineRef: {
205+
params: [
206+
{ name: 'url', value: 'https://github.com/example/repo' },
207+
{ name: 'revision', value: 'main' },
208+
{ name: 'pathInRepo', value: '/test' },
209+
{ name: 'test-key', value: 'test-val' },
210+
],
211+
},
201212
},
202213
},
203214
} as ReleasePlanKind);

src/components/ReleaseService/ReleasePlan/ReleasePlanForm/form-utils.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export const releasePlanFormSchema = yup.object({
6161
});
6262

6363
export const releasePlanFormParams = (releasePlan: ReleasePlanKind) =>
64-
(releasePlan?.spec?.pipelineRef?.params?.filter(
64+
(releasePlan?.spec?.tenantPipeline?.pipelineRef?.params?.filter(
6565
(p) =>
6666
p.name !== ResolverRefParams.URL &&
6767
p.name !== ResolverRefParams.REVISION &&
@@ -107,16 +107,18 @@ export const createReleasePlan = async (
107107
spec: {
108108
application,
109109
...(data ? { data } : {}),
110-
serviceAccount,
111110
target: `${targetNs}`,
112-
pipelineRef: {
113-
resolver: ResolverType.GIT,
114-
params: [
115-
...params,
116-
{ name: ResolverRefParams.URL, value: git.url },
117-
{ name: ResolverRefParams.REVISION, value: git.revision },
118-
{ name: ResolverRefParams.PATH, value: git.path },
119-
],
111+
tenantPipeline: {
112+
serviceAccountName: serviceAccount,
113+
pipelineRef: {
114+
resolver: ResolverType.GIT,
115+
params: [
116+
...params,
117+
{ name: ResolverRefParams.URL, value: git.url },
118+
{ name: ResolverRefParams.REVISION, value: git.revision },
119+
{ name: ResolverRefParams.PATH, value: git.path },
120+
],
121+
},
120122
},
121123
},
122124
};

src/types/coreBuildService.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,13 @@ export type ReleasePlanSpec = {
135135
application: string;
136136
target: string;
137137
data?: unknown;
138-
pipelineRef?: {
139-
resolver: ResolverType;
140-
params: Param[];
138+
tenantPipeline?: {
139+
serviceAccountName?: string;
140+
pipelineRef?: {
141+
resolver: ResolverType;
142+
params: Param[];
143+
};
141144
};
142-
serviceAccount?: string;
143145
};
144146

145147
export type ReleasePlanStatus = {

0 commit comments

Comments
 (0)