@abgov/nx-oc 5.0.1 → 5.0.3-beta.1
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/package.json +1 -1
- package/src/generators/deployment/deployment.js +8 -2
- package/src/generators/deployment/deployment.js.map +1 -1
- package/src/generators/deployment/deployment.spec.ts +63 -2
- package/src/generators/deployment/dotnet-files/__projectName__.yml__tmpl__ +28 -9
- package/src/generators/deployment/frontend-files/__projectName__.yml__tmpl__ +28 -9
- package/src/generators/deployment/{express-files → node-files}/Dockerfile.template +0 -0
- package/src/generators/deployment/{express-files → node-files}/__projectName__.yml__tmpl__ +28 -9
- package/src/generators/deployment/schema.d.ts +3 -1
- package/src/generators/pipeline/actions/workflows/pipeline.yml__tmpl__ +3 -1
package/package.json
CHANGED
|
@@ -17,18 +17,24 @@ function normalizeOptions(host, options) {
|
|
|
17
17
|
const ocEnvProjects = (_d = (_c = items[0]) === null || _c === void 0 ? void 0 : _c.subjects) === null || _d === void 0 ? void 0 : _d.filter((s) => s.kind === 'Group' && s.name.startsWith(SA_PREFIX)).map((s) => s.name.replace(SA_PREFIX, ''));
|
|
18
18
|
// TODO: Find a better way to determine this.
|
|
19
19
|
const config = (0, devkit_1.readProjectConfiguration)(host, projectName);
|
|
20
|
-
let appType
|
|
20
|
+
let appType;
|
|
21
21
|
switch (config.targets.build.executor) {
|
|
22
22
|
case '@nrwl/web:webpack':
|
|
23
23
|
case '@angular-devkit/build-angular:browser':
|
|
24
24
|
appType = 'frontend';
|
|
25
25
|
break;
|
|
26
26
|
case '@nrwl/node:build':
|
|
27
|
-
appType = '
|
|
27
|
+
appType = 'node';
|
|
28
28
|
break;
|
|
29
29
|
case '@nx-dotnet/core:build':
|
|
30
30
|
appType = 'dotnet';
|
|
31
31
|
break;
|
|
32
|
+
case '@nrwl/webpack:webpack': {
|
|
33
|
+
// More recent version of NX switched to use a generic webpack executor for builds.
|
|
34
|
+
appType =
|
|
35
|
+
config.targets.build.options.target === 'node' ? 'node' : 'frontend';
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
32
38
|
}
|
|
33
39
|
return Object.assign(Object.assign({}, options), { projectName,
|
|
34
40
|
appType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../../../../../packages/nx-oc/src/generators/deployment/deployment.ts"],"names":[],"mappings":";;;AAAA,yCAOsB;AACtB,6BAA6B;AAC7B,6BAA6B;AAC7B,uDAA2D;AAC3D,qDAAwD;AAGxD,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AAExD,SAAS,gBAAgB,CAAC,IAAU,EAAE,OAAe;;IACnD,MAAM,WAAW,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;IAEpD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,CAAA,MAAA,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,QAAQ,0CAAE,SAAS,KAAI,EAAE,CAAC;IAE3D,MAAM,SAAS,GAAG,yBAAyB,CAAC;IAC5C,MAAM,aAAa,GAAG,MAAA,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,QAAQ,0CACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EACjE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAE7C,6CAA6C;IAC7C,MAAM,MAAM,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3D,IAAI,
|
|
1
|
+
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../../../../../packages/nx-oc/src/generators/deployment/deployment.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ describe('Deployment Generator', () => {
|
|
|
45
45
|
);
|
|
46
46
|
});
|
|
47
47
|
|
|
48
|
-
it('can generate deployment for react', async () => {
|
|
48
|
+
it('can generate deployment for react from nx pre 13.8', async () => {
|
|
49
49
|
const host = createTreeWithEmptyV1Workspace();
|
|
50
50
|
await pipeline(host, {
|
|
51
51
|
pipeline: 'test',
|
|
@@ -72,6 +72,36 @@ describe('Deployment Generator', () => {
|
|
|
72
72
|
expect(dockerfile).toContain('nginx');
|
|
73
73
|
});
|
|
74
74
|
|
|
75
|
+
it('can generate deployment for react', async () => {
|
|
76
|
+
const host = createTreeWithEmptyV1Workspace();
|
|
77
|
+
await pipeline(host, {
|
|
78
|
+
pipeline: 'test',
|
|
79
|
+
type: 'jenkins',
|
|
80
|
+
infra: 'test-infra',
|
|
81
|
+
envs: 'test-dev',
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
addProjectConfiguration(host, 'test', {
|
|
85
|
+
root: 'apps/test',
|
|
86
|
+
projectType: 'application',
|
|
87
|
+
targets: {
|
|
88
|
+
build: {
|
|
89
|
+
executor: '@nrwl/webpack:webpack',
|
|
90
|
+
options: {
|
|
91
|
+
compiler: 'babel'
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
await generator(host, options);
|
|
98
|
+
expect(host.exists('.openshift/test/test.yml')).toBeTruthy();
|
|
99
|
+
expect(host.exists('.openshift/test/Dockerfile')).toBeTruthy();
|
|
100
|
+
|
|
101
|
+
const dockerfile = host.read('.openshift/test/Dockerfile').toString();
|
|
102
|
+
expect(dockerfile).toContain('nginx');
|
|
103
|
+
});
|
|
104
|
+
|
|
75
105
|
it('can generate deployment for angular', async () => {
|
|
76
106
|
const host = createTreeWithEmptyV1Workspace();
|
|
77
107
|
await pipeline(host, {
|
|
@@ -99,7 +129,7 @@ describe('Deployment Generator', () => {
|
|
|
99
129
|
expect(dockerfile).toContain('nginx');
|
|
100
130
|
});
|
|
101
131
|
|
|
102
|
-
it('can generate deployment for
|
|
132
|
+
it('can generate deployment for node from nx pre 13.8', async () => {
|
|
103
133
|
const host = createTreeWithEmptyV1Workspace();
|
|
104
134
|
await pipeline(host, {
|
|
105
135
|
pipeline: 'test',
|
|
@@ -126,6 +156,37 @@ describe('Deployment Generator', () => {
|
|
|
126
156
|
expect(dockerfile).toContain('node');
|
|
127
157
|
});
|
|
128
158
|
|
|
159
|
+
it('can generate deployment for node', async () => {
|
|
160
|
+
const host = createTreeWithEmptyV1Workspace();
|
|
161
|
+
await pipeline(host, {
|
|
162
|
+
pipeline: 'test',
|
|
163
|
+
type: 'jenkins',
|
|
164
|
+
infra: 'test-infra',
|
|
165
|
+
envs: 'test-dev',
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
addProjectConfiguration(host, 'test', {
|
|
169
|
+
root: 'apps/test',
|
|
170
|
+
projectType: 'application',
|
|
171
|
+
targets: {
|
|
172
|
+
build: {
|
|
173
|
+
executor: '@nrwl/webpack:webpack',
|
|
174
|
+
options: {
|
|
175
|
+
compiler: 'tsc',
|
|
176
|
+
target: 'node',
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
await generator(host, options);
|
|
183
|
+
expect(host.exists('.openshift/test/test.yml')).toBeTruthy();
|
|
184
|
+
expect(host.exists('.openshift/test/Dockerfile')).toBeTruthy();
|
|
185
|
+
|
|
186
|
+
const dockerfile = host.read('.openshift/test/Dockerfile').toString();
|
|
187
|
+
expect(dockerfile).toContain('node');
|
|
188
|
+
});
|
|
189
|
+
|
|
129
190
|
it('can generate deployment for dotnet', async () => {
|
|
130
191
|
const host = createTreeWithEmptyV1Workspace();
|
|
131
192
|
await pipeline(host, {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
apiVersion: v1
|
|
1
|
+
apiVersion: template.openshift.io/v1
|
|
2
2
|
kind: Template
|
|
3
3
|
metadata:
|
|
4
4
|
name: <%= projectName %>
|
|
@@ -25,12 +25,12 @@ parameters:
|
|
|
25
25
|
value: latest
|
|
26
26
|
required: true
|
|
27
27
|
objects:
|
|
28
|
-
- apiVersion: v1
|
|
28
|
+
- apiVersion: image.openshift.io/v1
|
|
29
29
|
kind: ImageStream
|
|
30
30
|
metadata:
|
|
31
31
|
name: ${APP_NAME}
|
|
32
32
|
namespace: ${INFRA_PROJECT}
|
|
33
|
-
- apiVersion: v1
|
|
33
|
+
- apiVersion: build.openshift.io/v1
|
|
34
34
|
kind: BuildConfig
|
|
35
35
|
metadata:
|
|
36
36
|
name: ${APP_NAME}
|
|
@@ -40,10 +40,17 @@ objects:
|
|
|
40
40
|
to:
|
|
41
41
|
kind: ImageStreamTag
|
|
42
42
|
name: '${APP_NAME}:latest'
|
|
43
|
+
resources:
|
|
44
|
+
limits:
|
|
45
|
+
cpu: 300m
|
|
46
|
+
memory: 1Gi
|
|
47
|
+
requests:
|
|
48
|
+
cpu: 100m
|
|
49
|
+
memory: 200Mi
|
|
43
50
|
runPolicy: Serial
|
|
44
51
|
source:
|
|
45
|
-
|
|
46
|
-
|
|
52
|
+
binary: {}
|
|
53
|
+
type: Binary
|
|
47
54
|
strategy:
|
|
48
55
|
dockerStrategy:
|
|
49
56
|
buildArgs:
|
|
@@ -78,7 +85,7 @@ objects:
|
|
|
78
85
|
"AllowedHosts": "*",
|
|
79
86
|
"Urls": "http://${APP_NAME}:5000"
|
|
80
87
|
}
|
|
81
|
-
- apiVersion: v1
|
|
88
|
+
- apiVersion: apps.openshift.io/v1
|
|
82
89
|
kind: DeploymentConfig
|
|
83
90
|
metadata:
|
|
84
91
|
name: ${APP_NAME}
|
|
@@ -91,7 +98,13 @@ objects:
|
|
|
91
98
|
activeDeadlineSeconds: 21600
|
|
92
99
|
recreateParams:
|
|
93
100
|
timeoutSeconds: 600
|
|
94
|
-
resources:
|
|
101
|
+
resources:
|
|
102
|
+
limits:
|
|
103
|
+
cpu: 200m
|
|
104
|
+
memory: 200Mi
|
|
105
|
+
requests:
|
|
106
|
+
cpu: 20m
|
|
107
|
+
memory: 50Mi
|
|
95
108
|
type: Recreate
|
|
96
109
|
template:
|
|
97
110
|
metadata:
|
|
@@ -111,7 +124,13 @@ objects:
|
|
|
111
124
|
- containerPort: 5000
|
|
112
125
|
name: http
|
|
113
126
|
protocol: TCP
|
|
114
|
-
resources:
|
|
127
|
+
resources:
|
|
128
|
+
limits:
|
|
129
|
+
cpu: 200m
|
|
130
|
+
memory: 1Gi
|
|
131
|
+
requests:
|
|
132
|
+
cpu: 20m
|
|
133
|
+
memory: 200Mi
|
|
115
134
|
terminationMessagePath: /dev/termination-log
|
|
116
135
|
volumeMounts:
|
|
117
136
|
- mountPath: /opt/app-root/app/appsettings.json
|
|
@@ -149,7 +168,7 @@ objects:
|
|
|
149
168
|
name: ${APP_NAME}
|
|
150
169
|
sessionAffinity: None
|
|
151
170
|
type: ClusterIP
|
|
152
|
-
- apiVersion: v1
|
|
171
|
+
- apiVersion: route.openshift.io/v1
|
|
153
172
|
kind: Route
|
|
154
173
|
metadata:
|
|
155
174
|
name: ${APP_NAME}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
apiVersion: v1
|
|
1
|
+
apiVersion: template.openshift.io/v1
|
|
2
2
|
kind: Template
|
|
3
3
|
metadata:
|
|
4
4
|
name: <%= projectName %>
|
|
@@ -25,12 +25,12 @@ parameters:
|
|
|
25
25
|
value: latest
|
|
26
26
|
required: true
|
|
27
27
|
objects:
|
|
28
|
-
- apiVersion: v1
|
|
28
|
+
- apiVersion: image.openshift.io/v1
|
|
29
29
|
kind: ImageStream
|
|
30
30
|
metadata:
|
|
31
31
|
name: ${APP_NAME}
|
|
32
32
|
namespace: ${INFRA_PROJECT}
|
|
33
|
-
- apiVersion: v1
|
|
33
|
+
- apiVersion: build.openshift.io/v1
|
|
34
34
|
kind: BuildConfig
|
|
35
35
|
metadata:
|
|
36
36
|
name: ${APP_NAME}
|
|
@@ -40,10 +40,17 @@ objects:
|
|
|
40
40
|
to:
|
|
41
41
|
kind: ImageStreamTag
|
|
42
42
|
name: '${APP_NAME}:latest'
|
|
43
|
+
resources:
|
|
44
|
+
limits:
|
|
45
|
+
cpu: 300m
|
|
46
|
+
memory: 1Gi
|
|
47
|
+
requests:
|
|
48
|
+
cpu: 100m
|
|
49
|
+
memory: 200Mi
|
|
43
50
|
runPolicy: Serial
|
|
44
51
|
source:
|
|
45
|
-
|
|
46
|
-
|
|
52
|
+
binary: {}
|
|
53
|
+
type: Binary
|
|
47
54
|
strategy:
|
|
48
55
|
dockerStrategy:
|
|
49
56
|
buildArgs:
|
|
@@ -66,7 +73,7 @@ objects:
|
|
|
66
73
|
"client_id": "urn:ads:<%= tenant %>:<%= projectName %>"
|
|
67
74
|
}
|
|
68
75
|
}
|
|
69
|
-
- apiVersion: v1
|
|
76
|
+
- apiVersion: apps.openshift.io/v1
|
|
70
77
|
kind: DeploymentConfig
|
|
71
78
|
metadata:
|
|
72
79
|
name: ${APP_NAME}
|
|
@@ -79,7 +86,13 @@ objects:
|
|
|
79
86
|
activeDeadlineSeconds: 21600
|
|
80
87
|
recreateParams:
|
|
81
88
|
timeoutSeconds: 600
|
|
82
|
-
resources:
|
|
89
|
+
resources:
|
|
90
|
+
limits:
|
|
91
|
+
cpu: 200m
|
|
92
|
+
memory: 200Mi
|
|
93
|
+
requests:
|
|
94
|
+
cpu: 20m
|
|
95
|
+
memory: 50Mi
|
|
83
96
|
type: Recreate
|
|
84
97
|
template:
|
|
85
98
|
metadata:
|
|
@@ -93,7 +106,13 @@ objects:
|
|
|
93
106
|
- containerPort: 3333
|
|
94
107
|
name: http
|
|
95
108
|
protocol: TCP
|
|
96
|
-
resources:
|
|
109
|
+
resources:
|
|
110
|
+
limits:
|
|
111
|
+
cpu: 200m
|
|
112
|
+
memory: 200Mi
|
|
113
|
+
requests:
|
|
114
|
+
cpu: 20m
|
|
115
|
+
memory: 50Mi
|
|
97
116
|
terminationMessagePath: /dev/termination-log
|
|
98
117
|
volumeMounts:
|
|
99
118
|
- mountPath: /opt/app-root/src/config
|
|
@@ -133,7 +152,7 @@ objects:
|
|
|
133
152
|
name: ${APP_NAME}
|
|
134
153
|
sessionAffinity: None
|
|
135
154
|
type: ClusterIP
|
|
136
|
-
- apiVersion: v1
|
|
155
|
+
- apiVersion: route.openshift.io/v1
|
|
137
156
|
kind: Route
|
|
138
157
|
metadata:
|
|
139
158
|
name: ${APP_NAME}
|
|
File without changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
apiVersion: v1
|
|
1
|
+
apiVersion: template.openshift.io/v1
|
|
2
2
|
kind: Template
|
|
3
3
|
metadata:
|
|
4
4
|
name: <%= projectName %>
|
|
@@ -25,12 +25,12 @@ parameters:
|
|
|
25
25
|
value: latest
|
|
26
26
|
required: true
|
|
27
27
|
objects:
|
|
28
|
-
- apiVersion: v1
|
|
28
|
+
- apiVersion: image.openshift.io/v1
|
|
29
29
|
kind: ImageStream
|
|
30
30
|
metadata:
|
|
31
31
|
name: ${APP_NAME}
|
|
32
32
|
namespace: ${INFRA_PROJECT}
|
|
33
|
-
- apiVersion: v1
|
|
33
|
+
- apiVersion: build.openshift.io/v1
|
|
34
34
|
kind: BuildConfig
|
|
35
35
|
metadata:
|
|
36
36
|
name: ${APP_NAME}
|
|
@@ -40,10 +40,17 @@ objects:
|
|
|
40
40
|
to:
|
|
41
41
|
kind: ImageStreamTag
|
|
42
42
|
name: '${APP_NAME}:latest'
|
|
43
|
+
resources:
|
|
44
|
+
limits:
|
|
45
|
+
cpu: 300m
|
|
46
|
+
memory: 1Gi
|
|
47
|
+
requests:
|
|
48
|
+
cpu: 100m
|
|
49
|
+
memory: 200Mi
|
|
43
50
|
runPolicy: Serial
|
|
44
51
|
source:
|
|
45
|
-
|
|
46
|
-
|
|
52
|
+
binary: {}
|
|
53
|
+
type: Binary
|
|
47
54
|
strategy:
|
|
48
55
|
dockerStrategy:
|
|
49
56
|
buildArgs:
|
|
@@ -60,7 +67,7 @@ objects:
|
|
|
60
67
|
data:
|
|
61
68
|
TENANT_REALM: <%= tenantRealm %>
|
|
62
69
|
ACCESS_SERVICE_URL: <%= accessServiceUrl %>
|
|
63
|
-
- apiVersion: v1
|
|
70
|
+
- apiVersion: apps.openshift.io/v1
|
|
64
71
|
kind: DeploymentConfig
|
|
65
72
|
metadata:
|
|
66
73
|
name: ${APP_NAME}
|
|
@@ -73,7 +80,13 @@ objects:
|
|
|
73
80
|
activeDeadlineSeconds: 21600
|
|
74
81
|
recreateParams:
|
|
75
82
|
timeoutSeconds: 600
|
|
76
|
-
resources:
|
|
83
|
+
resources:
|
|
84
|
+
limits:
|
|
85
|
+
cpu: 200m
|
|
86
|
+
memory: 200Mi
|
|
87
|
+
requests:
|
|
88
|
+
cpu: 20m
|
|
89
|
+
memory: 50Mi
|
|
77
90
|
type: Recreate
|
|
78
91
|
template:
|
|
79
92
|
metadata:
|
|
@@ -95,7 +108,13 @@ objects:
|
|
|
95
108
|
- containerPort: 3333
|
|
96
109
|
name: http
|
|
97
110
|
protocol: TCP
|
|
98
|
-
resources:
|
|
111
|
+
resources:
|
|
112
|
+
limits:
|
|
113
|
+
cpu: 200m
|
|
114
|
+
memory: 200Mi
|
|
115
|
+
requests:
|
|
116
|
+
cpu: 20m
|
|
117
|
+
memory: 50Mi
|
|
99
118
|
terminationMessagePath: /dev/termination-log
|
|
100
119
|
dnsPolicy: ClusterFirst
|
|
101
120
|
restartPolicy: Always
|
|
@@ -124,7 +143,7 @@ objects:
|
|
|
124
143
|
name: ${APP_NAME}
|
|
125
144
|
sessionAffinity: None
|
|
126
145
|
type: ClusterIP
|
|
127
|
-
- apiVersion: v1
|
|
146
|
+
- apiVersion: route.openshift.io/v1
|
|
128
147
|
kind: Route
|
|
129
148
|
metadata:
|
|
130
149
|
name: ${APP_NAME}
|
|
@@ -3,9 +3,11 @@ export interface Schema {
|
|
|
3
3
|
tenant: string;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
+
export type ApplicationType = 'node' | 'dotnet' | 'frontend';
|
|
7
|
+
|
|
6
8
|
export interface NormalizedSchema extends Schema {
|
|
7
9
|
projectName: string;
|
|
8
|
-
appType:
|
|
10
|
+
appType: ApplicationType;
|
|
9
11
|
ocInfraProject: string;
|
|
10
12
|
ocEnvProjects: string[];
|
|
11
13
|
adsp?: Record<string, unknown>;
|
|
@@ -101,6 +101,8 @@ jobs:
|
|
|
101
101
|
environment:
|
|
102
102
|
name: <%= envs[i] %>
|
|
103
103
|
steps:
|
|
104
|
+
# Checkout the source code for manifests
|
|
105
|
+
- uses: actions/checkout@v2
|
|
104
106
|
- name: Oc login
|
|
105
107
|
uses: redhat-actions/oc-login@v1
|
|
106
108
|
with:
|
|
@@ -119,7 +121,7 @@ jobs:
|
|
|
119
121
|
run: |
|
|
120
122
|
for app in $AFFECTED_APPS
|
|
121
123
|
do
|
|
122
|
-
oc process -f .openshift
|
|
124
|
+
oc process -f .openshift/$app/$app.yml -p PROJECT=<%= ocEnvProject %> -p DEPLOY_TAG=<%= envs[i].toLowerCase() %> | oc apply -f -
|
|
123
125
|
done
|
|
124
126
|
- name: Deploy <%= envs[i] %>
|
|
125
127
|
run: |
|