@bluedynamics/cdk8s-plone 0.0.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/.jsii +455 -0
- package/API.md +309 -0
- package/LICENSE +202 -0
- package/README.md +59 -0
- package/lib/deployment.d.ts +88 -0
- package/lib/deployment.js +79 -0
- package/lib/imports/k8s.d.ts +21297 -0
- package/lib/imports/k8s.js +16164 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +6 -0
- package/lib/pdb.d.ts +26 -0
- package/lib/pdb.js +55 -0
- package/lib/plone.d.ts +23 -0
- package/lib/plone.js +149 -0
- package/lib/service.d.ts +24 -0
- package/lib/service.js +31 -0
- package/package.json +140 -0
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Plone, PloneOptions, PloneBaseOptions } from './plone';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Plone = void 0;
|
|
4
|
+
var plone_1 = require("./plone");
|
|
5
|
+
Object.defineProperty(exports, "Plone", { enumerable: true, get: function () { return plone_1.Plone; } });
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWdFO0FBQXZELDhGQUFBLEtBQUssT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFBsb25lLCBQbG9uZU9wdGlvbnMsIFBsb25lQmFzZU9wdGlvbnMgfSBmcm9tICcuL3Bsb25lJztcbiJdfQ==
|
package/lib/pdb.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Construct } from 'constructs';
|
|
2
|
+
export interface PlonePDBOptions {
|
|
3
|
+
/**
|
|
4
|
+
* maxUnavailable specification
|
|
5
|
+
* @default - none
|
|
6
|
+
*/
|
|
7
|
+
readonly maxUnavailable?: number | string;
|
|
8
|
+
/**
|
|
9
|
+
* minAvailable specification.
|
|
10
|
+
* default only set if maxUnavailable is not set.
|
|
11
|
+
* @default 1
|
|
12
|
+
*/
|
|
13
|
+
readonly minAvailable?: number | string;
|
|
14
|
+
/**
|
|
15
|
+
* Extra labels to associate with resources.
|
|
16
|
+
* @default - none
|
|
17
|
+
*/
|
|
18
|
+
readonly labels?: {
|
|
19
|
+
[name: string]: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare class PlonePDB extends Construct {
|
|
23
|
+
constructor(scope: Construct, id: string, selectorLabel: {
|
|
24
|
+
[name: string]: string;
|
|
25
|
+
}, options: PlonePDBOptions);
|
|
26
|
+
}
|
package/lib/pdb.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlonePDB = void 0;
|
|
4
|
+
const constructs_1 = require("constructs");
|
|
5
|
+
const k8s = require("./imports/k8s");
|
|
6
|
+
class PlonePDB extends constructs_1.Construct {
|
|
7
|
+
constructor(scope, id, selectorLabel, options) {
|
|
8
|
+
super(scope, id);
|
|
9
|
+
var spec = {};
|
|
10
|
+
if (typeof options.maxUnavailable === 'number') {
|
|
11
|
+
spec = {
|
|
12
|
+
maxUnavailable: k8s.IntOrString.fromNumber(options.maxUnavailable),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
else if (typeof options.maxUnavailable === 'string') {
|
|
16
|
+
spec = {
|
|
17
|
+
maxUnavailable: k8s.IntOrString.fromString(options.maxUnavailable),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (typeof options.minAvailable === 'number') {
|
|
21
|
+
spec = {
|
|
22
|
+
...spec,
|
|
23
|
+
minAvailable: k8s.IntOrString.fromNumber(options.minAvailable),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
else if (typeof options.minAvailable === 'string') {
|
|
27
|
+
spec = {
|
|
28
|
+
...spec,
|
|
29
|
+
minAvailable: k8s.IntOrString.fromString(options.minAvailable),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
if (options.maxUnavailable === undefined && options.minAvailable === undefined) {
|
|
33
|
+
spec = {
|
|
34
|
+
minAvailable: k8s.IntOrString.fromNumber(1),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
spec = {
|
|
38
|
+
...spec,
|
|
39
|
+
selector: { matchLabels: selectorLabel },
|
|
40
|
+
};
|
|
41
|
+
const pdb_labels = {
|
|
42
|
+
...options.labels ?? {},
|
|
43
|
+
'app.kubernetes.io/part-of': 'plone',
|
|
44
|
+
'app.kubernetes.io/managed-by': 'cdk8s-plone',
|
|
45
|
+
};
|
|
46
|
+
new k8s.KubePodDisruptionBudget(this, 'PDB', {
|
|
47
|
+
metadata: {
|
|
48
|
+
labels: pdb_labels,
|
|
49
|
+
},
|
|
50
|
+
spec: spec,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.PlonePDB = PlonePDB;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMscUNBQXFDO0FBdUJyQyxNQUFhLFFBQVMsU0FBUSxzQkFBUztJQUVyQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLGFBQXlDLEVBQUUsT0FBd0I7UUFDM0csS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLElBQUksR0FBZ0MsRUFBRSxDQUFDO1FBQzNDLElBQUksT0FBTyxPQUFPLENBQUMsY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9DLElBQUksR0FBRztnQkFDTCxjQUFjLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQXdCLENBQUM7YUFDN0UsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLE9BQU8sT0FBTyxDQUFDLGNBQWMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0RCxJQUFJLEdBQUc7Z0JBQ0wsY0FBYyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUF3QixDQUFDO2FBQzdFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxPQUFPLE9BQU8sQ0FBQyxZQUFZLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0MsSUFBSSxHQUFHO2dCQUNMLEdBQUcsSUFBSTtnQkFDUCxZQUFZLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQXNCLENBQUM7YUFDekUsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLE9BQU8sT0FBTyxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwRCxJQUFJLEdBQUc7Z0JBQ0wsR0FBRyxJQUFJO2dCQUNQLFlBQVksRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBc0IsQ0FBQzthQUN6RSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvRSxJQUFJLEdBQUc7Z0JBQ0wsWUFBWSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUM1QyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksR0FBRztZQUNMLEdBQUcsSUFBSTtZQUNQLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUU7U0FDekMsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFO1lBQ3ZCLDJCQUEyQixFQUFFLE9BQU87WUFDcEMsOEJBQThCLEVBQUUsYUFBYTtTQUM5QyxDQUFDO1FBRUYsSUFBSSxHQUFHLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUMzQyxRQUFRLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLFVBQVU7YUFDbkI7WUFDRCxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpERCw0QkFpREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGs4cyBmcm9tICcuL2ltcG9ydHMvazhzJztcblxuZXhwb3J0IGludGVyZmFjZSBQbG9uZVBEQk9wdGlvbnMge1xuICAvKipcbiAgICogbWF4VW5hdmFpbGFibGUgc3BlY2lmaWNhdGlvblxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IG1heFVuYXZhaWxhYmxlPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBtaW5BdmFpbGFibGUgc3BlY2lmaWNhdGlvbi5cbiAgICogZGVmYXVsdCBvbmx5IHNldCBpZiBtYXhVbmF2YWlsYWJsZSBpcyBub3Qgc2V0LlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBtaW5BdmFpbGFibGU/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4dHJhIGxhYmVscyB0byBhc3NvY2lhdGUgd2l0aCByZXNvdXJjZXMuXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWxzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBjbGFzcyBQbG9uZVBEQiBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2VsZWN0b3JMYWJlbDogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0sIG9wdGlvbnM6IFBsb25lUERCT3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB2YXIgc3BlYzogazhzLlBvZERpc3J1cHRpb25CdWRnZXRTcGVjID0ge307XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLm1heFVuYXZhaWxhYmxlID09PSAnbnVtYmVyJykge1xuICAgICAgc3BlYyA9IHtcbiAgICAgICAgbWF4VW5hdmFpbGFibGU6IGs4cy5JbnRPclN0cmluZy5mcm9tTnVtYmVyKG9wdGlvbnMubWF4VW5hdmFpbGFibGUgYXMgbnVtYmVyKSxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucy5tYXhVbmF2YWlsYWJsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHNwZWMgPSB7XG4gICAgICAgIG1heFVuYXZhaWxhYmxlOiBrOHMuSW50T3JTdHJpbmcuZnJvbVN0cmluZyhvcHRpb25zLm1heFVuYXZhaWxhYmxlIGFzIHN0cmluZyksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMubWluQXZhaWxhYmxlID09PSAnbnVtYmVyJykge1xuICAgICAgc3BlYyA9IHtcbiAgICAgICAgLi4uc3BlYyxcbiAgICAgICAgbWluQXZhaWxhYmxlOiBrOHMuSW50T3JTdHJpbmcuZnJvbU51bWJlcihvcHRpb25zLm1pbkF2YWlsYWJsZSBhcyBudW1iZXIpLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zLm1pbkF2YWlsYWJsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHNwZWMgPSB7XG4gICAgICAgIC4uLnNwZWMsXG4gICAgICAgIG1pbkF2YWlsYWJsZTogazhzLkludE9yU3RyaW5nLmZyb21TdHJpbmcob3B0aW9ucy5taW5BdmFpbGFibGUgYXMgc3RyaW5nKSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChvcHRpb25zLm1heFVuYXZhaWxhYmxlID09PSB1bmRlZmluZWQgJiYgb3B0aW9ucy5taW5BdmFpbGFibGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgc3BlYyA9IHtcbiAgICAgICAgbWluQXZhaWxhYmxlOiBrOHMuSW50T3JTdHJpbmcuZnJvbU51bWJlcigxKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgc3BlYyA9IHtcbiAgICAgIC4uLnNwZWMsXG4gICAgICBzZWxlY3RvcjogeyBtYXRjaExhYmVsczogc2VsZWN0b3JMYWJlbCB9LFxuICAgIH07XG4gICAgY29uc3QgcGRiX2xhYmVscyA9IHtcbiAgICAgIC4uLm9wdGlvbnMubGFiZWxzID8/IHt9LFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YnOiAncGxvbmUnLFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMtcGxvbmUnLFxuICAgIH07XG5cbiAgICBuZXcgazhzLkt1YmVQb2REaXNydXB0aW9uQnVkZ2V0KHRoaXMsICdQREInLCB7XG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBsYWJlbHM6IHBkYl9sYWJlbHMsXG4gICAgICB9LFxuICAgICAgc3BlYzogc3BlYyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/lib/plone.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as kplus from 'cdk8s-plus-24';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
export interface PloneBaseOptions {
|
|
4
|
+
readonly image?: string;
|
|
5
|
+
readonly imagePullPolicy?: string;
|
|
6
|
+
readonly replicas?: number;
|
|
7
|
+
readonly maxUnavailable?: number | string;
|
|
8
|
+
readonly minAvailable?: number | string;
|
|
9
|
+
readonly limitCpu?: number;
|
|
10
|
+
readonly limitMemory?: string;
|
|
11
|
+
readonly environment?: kplus.Env;
|
|
12
|
+
}
|
|
13
|
+
export interface PloneOptions {
|
|
14
|
+
readonly version?: string;
|
|
15
|
+
readonly backend?: PloneBaseOptions;
|
|
16
|
+
readonly frontend?: PloneBaseOptions;
|
|
17
|
+
readonly imagePullSecrets?: string[];
|
|
18
|
+
}
|
|
19
|
+
export declare class Plone extends Construct {
|
|
20
|
+
readonly backendServiceName: string;
|
|
21
|
+
readonly frontendServiceName: string;
|
|
22
|
+
constructor(scope: Construct, id: string, options?: PloneOptions);
|
|
23
|
+
}
|
package/lib/plone.js
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Plone = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const cdk8s_1 = require("cdk8s");
|
|
7
|
+
const kplus = require("cdk8s-plus-24");
|
|
8
|
+
const constructs_1 = require("constructs");
|
|
9
|
+
const deployment_1 = require("./deployment");
|
|
10
|
+
const k8s_1 = require("./imports/k8s");
|
|
11
|
+
const service_1 = require("./service");
|
|
12
|
+
class Plone extends constructs_1.Construct {
|
|
13
|
+
constructor(scope, id, options = {}) {
|
|
14
|
+
super(scope, id);
|
|
15
|
+
// ------------------------------------------------------------------------
|
|
16
|
+
// Backend
|
|
17
|
+
const backend = options.backend ?? {};
|
|
18
|
+
const backendPort = 8080;
|
|
19
|
+
const backendLabels = {
|
|
20
|
+
'app.kubernetes.io/name': 'plone-backend',
|
|
21
|
+
'app.kubernetes.io/component': 'backend',
|
|
22
|
+
'app.kubernetes.io/version': options.version ?? 'undefined',
|
|
23
|
+
};
|
|
24
|
+
// Probing
|
|
25
|
+
const backendLivenessProbe = {
|
|
26
|
+
httpGet: {
|
|
27
|
+
path: '/',
|
|
28
|
+
port: k8s_1.IntOrString.fromNumber(backendPort),
|
|
29
|
+
},
|
|
30
|
+
initialDelaySeconds: 30,
|
|
31
|
+
timeoutSeconds: 1,
|
|
32
|
+
periodSeconds: 10,
|
|
33
|
+
successThreshold: 1,
|
|
34
|
+
failureThreshold: 3,
|
|
35
|
+
};
|
|
36
|
+
const backendReadinessProbe = {
|
|
37
|
+
httpGet: {
|
|
38
|
+
path: '/',
|
|
39
|
+
port: k8s_1.IntOrString.fromNumber(backendPort),
|
|
40
|
+
},
|
|
41
|
+
initialDelaySeconds: 10,
|
|
42
|
+
timeoutSeconds: 15,
|
|
43
|
+
periodSeconds: 10,
|
|
44
|
+
successThreshold: 1,
|
|
45
|
+
failureThreshold: 3,
|
|
46
|
+
};
|
|
47
|
+
// Deployment
|
|
48
|
+
const backendDeployment = new deployment_1.PloneDeployment(this, 'backend', {
|
|
49
|
+
labels: backendLabels,
|
|
50
|
+
image: {
|
|
51
|
+
image: backend.image ?? 'plone/plone-backend:latest',
|
|
52
|
+
imagePullSecrets: options.imagePullSecrets ?? [],
|
|
53
|
+
imagePullPolicy: backend.imagePullPolicy ?? 'IfNotPresent',
|
|
54
|
+
},
|
|
55
|
+
replicas: backend.replicas,
|
|
56
|
+
limitCpu: backend.limitCpu ?? 1,
|
|
57
|
+
limitMemory: backend.limitMemory ?? '512Mi',
|
|
58
|
+
pdb: {
|
|
59
|
+
maxUnavailable: backend.maxUnavailable ?? undefined,
|
|
60
|
+
minAvailable: backend.minAvailable ?? undefined,
|
|
61
|
+
},
|
|
62
|
+
port: backendPort,
|
|
63
|
+
environment: backend.environment,
|
|
64
|
+
livenessProbe: backendLivenessProbe,
|
|
65
|
+
readinessProbe: backendReadinessProbe,
|
|
66
|
+
});
|
|
67
|
+
// Service
|
|
68
|
+
const backendService = new service_1.PloneService(backendDeployment, 'service', {
|
|
69
|
+
labels: {
|
|
70
|
+
'app.kubernetes.io/name': 'plone-backend-service',
|
|
71
|
+
'app.kubernetes.io/component': 'service',
|
|
72
|
+
},
|
|
73
|
+
targetPort: backendPort,
|
|
74
|
+
selectorLabel: { app: cdk8s_1.Names.toLabelValue(backendDeployment) },
|
|
75
|
+
});
|
|
76
|
+
this.backendServiceName = backendService.name;
|
|
77
|
+
// ------------------------------------------------------------------------
|
|
78
|
+
// Frontend
|
|
79
|
+
const frontend = options.frontend ?? {};
|
|
80
|
+
const frontendPort = 3000;
|
|
81
|
+
const frontendLabels = {
|
|
82
|
+
'app.kubernetes.io/name': 'plone-frontend',
|
|
83
|
+
'app.kubernetes.io/component': 'frontend',
|
|
84
|
+
'app.kubernetes.io/version': options.version ?? 'undefined',
|
|
85
|
+
};
|
|
86
|
+
// Probing
|
|
87
|
+
const frontendLivenessProbe = {
|
|
88
|
+
httpGet: {
|
|
89
|
+
path: '/',
|
|
90
|
+
port: k8s_1.IntOrString.fromNumber(frontendPort),
|
|
91
|
+
},
|
|
92
|
+
initialDelaySeconds: 30,
|
|
93
|
+
timeoutSeconds: 1,
|
|
94
|
+
periodSeconds: 10,
|
|
95
|
+
successThreshold: 1,
|
|
96
|
+
failureThreshold: 3,
|
|
97
|
+
};
|
|
98
|
+
const frontendReadinessProbe = {
|
|
99
|
+
httpGet: {
|
|
100
|
+
path: '/',
|
|
101
|
+
port: k8s_1.IntOrString.fromNumber(frontendPort),
|
|
102
|
+
},
|
|
103
|
+
initialDelaySeconds: 10,
|
|
104
|
+
timeoutSeconds: 15,
|
|
105
|
+
periodSeconds: 10,
|
|
106
|
+
successThreshold: 1,
|
|
107
|
+
failureThreshold: 3,
|
|
108
|
+
};
|
|
109
|
+
// Environment
|
|
110
|
+
var frontendEnvironment = frontend.environment ?? new kplus.Env([], {});
|
|
111
|
+
if (frontendEnvironment.variables.RAZZLE_INTERNAL_API_PATH === undefined) {
|
|
112
|
+
frontendEnvironment?.addVariable('RAZZLE_INTERNAL_API_PATH', kplus.EnvValue.fromValue(`http://${backendService.name}:80`));
|
|
113
|
+
}
|
|
114
|
+
// Deployment
|
|
115
|
+
const frontendDeployment = new deployment_1.PloneDeployment(this, 'frontend', {
|
|
116
|
+
labels: frontendLabels,
|
|
117
|
+
image: {
|
|
118
|
+
image: frontend.image ?? 'plone/plone-frontend:latest',
|
|
119
|
+
imagePullSecrets: options.imagePullSecrets ?? [],
|
|
120
|
+
imagePullPolicy: frontend.imagePullPolicy ?? 'IfNotPresent',
|
|
121
|
+
},
|
|
122
|
+
replicas: frontend.replicas,
|
|
123
|
+
limitCpu: frontend.limitCpu ?? 1,
|
|
124
|
+
limitMemory: frontend.limitMemory ?? '1Gi',
|
|
125
|
+
pdb: {
|
|
126
|
+
maxUnavailable: frontend.maxUnavailable ?? undefined,
|
|
127
|
+
minAvailable: frontend.minAvailable ?? undefined,
|
|
128
|
+
},
|
|
129
|
+
port: frontendPort,
|
|
130
|
+
environment: frontendEnvironment,
|
|
131
|
+
livenessProbe: frontendLivenessProbe,
|
|
132
|
+
readinessProbe: frontendReadinessProbe,
|
|
133
|
+
});
|
|
134
|
+
// Service
|
|
135
|
+
const frontendService = new service_1.PloneService(frontendDeployment, 'service', {
|
|
136
|
+
labels: {
|
|
137
|
+
'app.kubernetes.io/name': 'plone-frontend-service',
|
|
138
|
+
'app.kubernetes.io/component': 'service',
|
|
139
|
+
},
|
|
140
|
+
targetPort: frontendPort,
|
|
141
|
+
selectorLabel: { app: cdk8s_1.Names.toLabelValue(frontendDeployment) },
|
|
142
|
+
});
|
|
143
|
+
this.frontendServiceName = frontendService.name;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.Plone = Plone;
|
|
147
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
148
|
+
Plone[_a] = { fqn: "@bluedynamics/cdk8s-plone.Plone", version: "0.0.0" };
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGxvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBOEI7QUFDOUIsdUNBQXVDO0FBQ3ZDLDJDQUF1QztBQUN2Qyw2Q0FBK0M7QUFDL0MsdUNBQW1EO0FBQ25ELHVDQUF5QztBQW1CekMsTUFBYSxLQUFNLFNBQVEsc0JBQVM7SUFLbEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxVQUF3QixFQUFFO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsMkVBQTJFO1FBQzNFLFVBQVU7UUFDVixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDekIsTUFBTSxhQUFhLEdBQUc7WUFDcEIsd0JBQXdCLEVBQUUsZUFBZTtZQUN6Qyw2QkFBNkIsRUFBRSxTQUFTO1lBQ3hDLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksV0FBVztTQUM1RCxDQUFDO1FBRUYsVUFBVTtRQUNWLE1BQU0sb0JBQW9CLEdBQVU7WUFDbEMsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxHQUFHO2dCQUNULElBQUksRUFBRSxpQkFBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7YUFDMUM7WUFDRCxtQkFBbUIsRUFBRSxFQUFFO1lBQ3ZCLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLGdCQUFnQixFQUFFLENBQUM7WUFDbkIsZ0JBQWdCLEVBQUUsQ0FBQztTQUNwQixDQUFDO1FBQ0YsTUFBTSxxQkFBcUIsR0FBVTtZQUNuQyxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsSUFBSSxFQUFFLGlCQUFXLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQzthQUMxQztZQUNELG1CQUFtQixFQUFFLEVBQUU7WUFD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QUFLLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7U0FDL0QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDbEQsQ0FBQzs7QUFqSkgsc0JBa0pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmFtZXMgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgKiBhcyBrcGx1cyBmcm9tICdjZGs4cy1wbHVzLTI0JztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUGxvbmVEZXBsb3ltZW50IH0gZnJvbSAnLi9kZXBsb3ltZW50JztcbmltcG9ydCB7IFByb2JlLCBJbnRPclN0cmluZyB9IGZyb20gJy4vaW1wb3J0cy9rOHMnO1xuaW1wb3J0IHsgUGxvbmVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBQbG9uZUJhc2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgaW1hZ2U/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGltYWdlUHVsbFBvbGljeT86IHN0cmluZztcbiAgcmVhZG9ubHkgcmVwbGljYXM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1heFVuYXZhaWxhYmxlPzogbnVtYmVyIHwgc3RyaW5nO1xuICByZWFkb25seSBtaW5BdmFpbGFibGU/OiBudW1iZXIgfCBzdHJpbmc7XG4gIHJlYWRvbmx5IGxpbWl0Q3B1PzogbnVtYmVyO1xuICByZWFkb25seSBsaW1pdE1lbW9yeT86IHN0cmluZztcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBrcGx1cy5FbnY7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBsb25lT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJhY2tlbmQ/OiBQbG9uZUJhc2VPcHRpb25zO1xuICByZWFkb25seSBmcm9udGVuZD86IFBsb25lQmFzZU9wdGlvbnM7XG4gIHJlYWRvbmx5IGltYWdlUHVsbFNlY3JldHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFBsb25lIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgYmFja2VuZFNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcm9udGVuZFNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogUGxvbmVPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQmFja2VuZFxuICAgIGNvbnN0IGJhY2tlbmQgPSBvcHRpb25zLmJhY2tlbmQgPz8ge307XG4gICAgY29uc3QgYmFja2VuZFBvcnQgPSA4MDgwO1xuICAgIGNvbnN0IGJhY2tlbmRMYWJlbHMgPSB7XG4gICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSc6ICdwbG9uZS1iYWNrZW5kJyxcbiAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnYmFja2VuZCcsXG4gICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vdmVyc2lvbic6IG9wdGlvbnMudmVyc2lvbiA/PyAndW5kZWZpbmVkJyxcbiAgICB9O1xuXG4gICAgLy8gUHJvYmluZ1xuICAgIGNvbnN0IGJhY2tlbmRMaXZlbmVzc1Byb2JlOiBQcm9iZSA9IHtcbiAgICAgIGh0dHBHZXQ6IHtcbiAgICAgICAgcGF0aDogJy8nLFxuICAgICAgICBwb3J0OiBJbnRPclN0cmluZy5mcm9tTnVtYmVyKGJhY2tlbmRQb3J0KSxcbiAgICAgIH0sXG4gICAgICBpbml0aWFsRGVsYXlTZWNvbmRzOiAzMCxcbiAgICAgIHRpbWVvdXRTZWNvbmRzOiAxLFxuICAgICAgcGVyaW9kU2Vjb25kczogMTAsXG4gICAgICBzdWNjZXNzVGhyZXNob2xkOiAxLFxuICAgICAgZmFpbHVyZVRocmVzaG9sZDogMyxcbiAgICB9O1xuICAgIGNvbnN0IGJhY2tlbmRSZWFkaW5lc3NQcm9iZTogUHJvYmUgPSB7XG4gICAgICBodHRwR2V0OiB7XG4gICAgICAgIHBhdGg6ICcvJyxcbiAgICAgICAgcG9ydDogSW50T3JTdHJpbmcuZnJvbU51bWJlcihiYWNrZW5kUG9ydCksXG4gICAgICB9LFxuICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogMTAsXG4gICAgICB0aW1lb3V0U2Vjb25kczogMTUsXG4gICAgICBwZXJpb2RTZWNvbmRzOiAxMCxcbiAgICAgIHN1Y2Nlc3NUaHJlc2hvbGQ6IDEsXG4gICAgICBmYWlsdXJlVGhyZXNob2xkOiAzLFxuICAgIH07XG5cbiAgICAvLyBEZXBsb3ltZW50XG4gICAgY29uc3QgYmFja2VuZERlcGxveW1lbnQgPSBuZXcgUGxvbmVEZXBsb3ltZW50KHRoaXMsICdiYWNrZW5kJywge1xuICAgICAgbGFiZWxzOiBiYWNrZW5kTGFiZWxzLFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgaW1hZ2U6IGJhY2tlbmQuaW1hZ2UgPz8gJ3Bsb25lL3Bsb25lLWJhY2tlbmQ6bGF0ZXN0JyxcbiAgICAgICAgaW1hZ2VQdWxsU2VjcmV0czogb3B0aW9ucy5pbWFnZVB1bGxTZWNyZXRzID8/IFtdLFxuICAgICAgICBpbWFnZVB1bGxQb2xpY3k6IGJhY2tlbmQuaW1hZ2VQdWxsUG9saWN5ID8/ICdJZk5vdFByZXNlbnQnLFxuICAgICAgfSxcbiAgICAgIHJlcGxpY2FzOiBiYWNrZW5kLnJlcGxpY2FzLFxuICAgICAgbGltaXRDcHU6IGJhY2tlbmQubGltaXRDcHUgPz8gMSxcbiAgICAgIGxpbWl0TWVtb3J5OiBiYWNrZW5kLmxpbWl0TWVtb3J5ID8/ICc1MTJNaScsXG4gICAgICBwZGI6IHtcbiAgICAgICAgbWF4VW5hdmFpbGFibGU6IGJhY2tlbmQubWF4VW5hdmFpbGFibGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICBtaW5BdmFpbGFibGU6IGJhY2tlbmQubWluQXZhaWxhYmxlID8/IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBwb3J0OiBiYWNrZW5kUG9ydCxcbiAgICAgIGVudmlyb25tZW50OiBiYWNrZW5kLmVudmlyb25tZW50LFxuICAgICAgbGl2ZW5lc3NQcm9iZTogYmFja2VuZExpdmVuZXNzUHJvYmUsXG4gICAgICByZWFkaW5lc3NQcm9iZTogYmFja2VuZFJlYWRpbmVzc1Byb2JlLFxuICAgIH0pO1xuXG4gICAgLy8gU2VydmljZVxuICAgIGNvbnN0IGJhY2tlbmRTZXJ2aWNlID0gbmV3IFBsb25lU2VydmljZShiYWNrZW5kRGVwbG95bWVudCwgJ3NlcnZpY2UnLCB7XG4gICAgICBsYWJlbHM6IHtcbiAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL25hbWUnOiAncGxvbmUtYmFja2VuZC1zZXJ2aWNlJyxcbiAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICdzZXJ2aWNlJyxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRQb3J0OiBiYWNrZW5kUG9ydCxcbiAgICAgIHNlbGVjdG9yTGFiZWw6IHsgYXBwOiBOYW1lcy50b0xhYmVsVmFsdWUoYmFja2VuZERlcGxveW1lbnQpIH0sXG4gICAgfSk7XG4gICAgdGhpcy5iYWNrZW5kU2VydmljZU5hbWUgPSBiYWNrZW5kU2VydmljZS5uYW1lO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gRnJvbnRlbmRcbiAgICBjb25zdCBmcm9udGVuZCA9IG9wdGlvbnMuZnJvbnRlbmQgPz8ge307XG4gICAgY29uc3QgZnJvbnRlbmRQb3J0ID0gMzAwMDtcbiAgICBjb25zdCBmcm9udGVuZExhYmVscyA9IHtcbiAgICAgICdhcHAua3ViZXJuZXRlcy5pby9uYW1lJzogJ3Bsb25lLWZyb250ZW5kJyxcbiAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnZnJvbnRlbmQnLFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3ZlcnNpb24nOiBvcHRpb25zLnZlcnNpb24gPz8gJ3VuZGVmaW5lZCcsXG4gICAgfTtcblxuICAgIC8vIFByb2JpbmdcbiAgICBjb25zdCBmcm9udGVuZExpdmVuZXNzUHJvYmU6IFByb2JlID0ge1xuICAgICAgaHR0cEdldDoge1xuICAgICAgICBwYXRoOiAnLycsXG4gICAgICAgIHBvcnQ6IEludE9yU3RyaW5nLmZyb21OdW1iZXIoZnJvbnRlbmRQb3J0KSxcbiAgICAgIH0sXG4gICAgICBpbml0aWFsRGVsYXlTZWNvbmRzOiAzMCxcbiAgICAgIHRpbWVvdXRTZWNvbmRzOiAxLFxuICAgICAgcGVyaW9kU2Vjb25kczogMTAsXG4gICAgICBzdWNjZXNzVGhyZXNob2xkOiAxLFxuICAgICAgZmFpbHVyZVRocmVzaG9sZDogMyxcbiAgICB9O1xuICAgIGNvbnN0IGZyb250ZW5kUmVhZGluZXNzUHJvYmU6IFByb2JlID0ge1xuICAgICAgaHR0cEdldDoge1xuICAgICAgICBwYXRoOiAnLycsXG4gICAgICAgIHBvcnQ6IEludE9yU3RyaW5nLmZyb21OdW1iZXIoZnJvbnRlbmRQb3J0KSxcbiAgICAgIH0sXG4gICAgICBpbml0aWFsRGVsYXlTZWNvbmRzOiAxMCxcbiAgICAgIHRpbWVvdXRTZWNvbmRzOiAxNSxcbiAgICAgIHBlcmlvZFNlY29uZHM6IDEwLFxuICAgICAgc3VjY2Vzc1RocmVzaG9sZDogMSxcbiAgICAgIGZhaWx1cmVUaHJlc2hvbGQ6IDMsXG4gICAgfTtcblxuICAgIC8vIEVudmlyb25tZW50XG4gICAgdmFyIGZyb250ZW5kRW52aXJvbm1lbnQgPSBmcm9udGVuZC5lbnZpcm9ubWVudCA/PyBuZXcga3BsdXMuRW52KFtdLCB7fSk7XG4gICAgaWYgKGZyb250ZW5kRW52aXJvbm1lbnQudmFyaWFibGVzLlJBWlpMRV9JTlRFUk5BTF9BUElfUEFUSCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBmcm9udGVuZEVudmlyb25tZW50Py5hZGRWYXJpYWJsZSgnUkFaWkxFX0lOVEVSTkFMX0FQSV9QQVRIJywga3BsdXMuRW52VmFsdWUuZnJvbVZhbHVlKGBodHRwOi8vJHtiYWNrZW5kU2VydmljZS5uYW1lfTo4MGApKTtcbiAgICB9XG5cbiAgICAvLyBEZXBsb3ltZW50XG4gICAgY29uc3QgZnJvbnRlbmREZXBsb3ltZW50ID0gbmV3IFBsb25lRGVwbG95bWVudCh0aGlzLCAnZnJvbnRlbmQnLCB7XG4gICAgICBsYWJlbHM6IGZyb250ZW5kTGFiZWxzLFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgaW1hZ2U6IGZyb250ZW5kLmltYWdlID8/ICdwbG9uZS9wbG9uZS1mcm9udGVuZDpsYXRlc3QnLFxuICAgICAgICBpbWFnZVB1bGxTZWNyZXRzOiBvcHRpb25zLmltYWdlUHVsbFNlY3JldHMgPz8gW10sXG4gICAgICAgIGltYWdlUHVsbFBvbGljeTogZnJvbnRlbmQuaW1hZ2VQdWxsUG9saWN5ID8/ICdJZk5vdFByZXNlbnQnLFxuICAgICAgfSxcbiAgICAgIHJlcGxpY2FzOiBmcm9udGVuZC5yZXBsaWNhcyxcbiAgICAgIGxpbWl0Q3B1OiBmcm9udGVuZC5saW1pdENwdSA/PyAxLFxuICAgICAgbGltaXRNZW1vcnk6IGZyb250ZW5kLmxpbWl0TWVtb3J5ID8/ICcxR2knLFxuICAgICAgcGRiOiB7XG4gICAgICAgIG1heFVuYXZhaWxhYmxlOiBmcm9udGVuZC5tYXhVbmF2YWlsYWJsZSA/PyB1bmRlZmluZWQsXG4gICAgICAgIG1pbkF2YWlsYWJsZTogZnJvbnRlbmQubWluQXZhaWxhYmxlID8/IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBwb3J0OiBmcm9udGVuZFBvcnQsXG4gICAgICBlbnZpcm9ubWVudDogZnJvbnRlbmRFbnZpcm9ubWVudCxcbiAgICAgIGxpdmVuZXNzUHJvYmU6IGZyb250ZW5kTGl2ZW5lc3NQcm9iZSxcbiAgICAgIHJlYWRpbmVzc1Byb2JlOiBmcm9udGVuZFJlYWRpbmVzc1Byb2JlLFxuICAgIH0pO1xuXG4gICAgLy8gU2VydmljZVxuICAgIGNvbnN0IGZyb250ZW5kU2VydmljZSA9IG5ldyBQbG9uZVNlcnZpY2UoZnJvbnRlbmREZXBsb3ltZW50LCAnc2VydmljZScsIHtcbiAgICAgIGxhYmVsczoge1xuICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSc6ICdwbG9uZS1mcm9udGVuZC1zZXJ2aWNlJyxcbiAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICdzZXJ2aWNlJyxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRQb3J0OiBmcm9udGVuZFBvcnQsXG4gICAgICBzZWxlY3RvckxhYmVsOiB7IGFwcDogTmFtZXMudG9MYWJlbFZhbHVlKGZyb250ZW5kRGVwbG95bWVudCkgfSxcbiAgICB9KTtcbiAgICB0aGlzLmZyb250ZW5kU2VydmljZU5hbWUgPSBmcm9udGVuZFNlcnZpY2UubmFtZTtcbiAgfVxufSJdfQ==
|
package/lib/service.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Construct } from 'constructs';
|
|
2
|
+
export interface PloneServiceOptions {
|
|
3
|
+
/**
|
|
4
|
+
* targetPort number.
|
|
5
|
+
*/
|
|
6
|
+
readonly targetPort: number;
|
|
7
|
+
/**
|
|
8
|
+
* Selector label.
|
|
9
|
+
*/
|
|
10
|
+
readonly selectorLabel: {
|
|
11
|
+
[name: string]: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Extra labels to associate with resources.
|
|
15
|
+
* @default - none
|
|
16
|
+
*/
|
|
17
|
+
readonly labels?: {
|
|
18
|
+
[name: string]: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare class PloneService extends Construct {
|
|
22
|
+
name: string;
|
|
23
|
+
constructor(scope: Construct, id: string, options: PloneServiceOptions);
|
|
24
|
+
}
|
package/lib/service.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PloneService = void 0;
|
|
4
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
|
+
const constructs_1 = require("constructs");
|
|
6
|
+
const k8s = require("./imports/k8s");
|
|
7
|
+
class PloneService extends constructs_1.Construct {
|
|
8
|
+
constructor(scope, id, options) {
|
|
9
|
+
super(scope, id);
|
|
10
|
+
const targetPort = k8s.IntOrString.fromNumber(options.targetPort);
|
|
11
|
+
const selectorLabel = options.selectorLabel;
|
|
12
|
+
const service_labels = {
|
|
13
|
+
...options.labels ?? {},
|
|
14
|
+
'app.kubernetes.io/part-of': 'plone',
|
|
15
|
+
'app.kubernetes.io/managed-by': 'cdk8s-plone',
|
|
16
|
+
};
|
|
17
|
+
const serviceOpts = {
|
|
18
|
+
metadata: {
|
|
19
|
+
labels: service_labels,
|
|
20
|
+
},
|
|
21
|
+
spec: {
|
|
22
|
+
ports: [{ port: options.targetPort, targetPort: targetPort, name: 'backend-http' }],
|
|
23
|
+
selector: selectorLabel,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
const service = new k8s.KubeService(this, 'service', serviceOpts);
|
|
27
|
+
this.name = service.name;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.PloneService = PloneService;
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUE2RDtBQUM3RCwyQ0FBdUM7QUFDdkMscUNBQXFDO0FBcUJyQyxNQUFhLFlBQWEsU0FBUSxzQkFBUztJQUl6QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLE9BQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDNUMsTUFBTSxjQUFjLEdBQUc7WUFDckIsR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUU7WUFDdkIsMkJBQTJCLEVBQUUsT0FBTztZQUNwQyw4QkFBOEIsRUFBRSxhQUFhO1NBQzlDLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBeUI7WUFDeEMsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxjQUFjO2FBQ3ZCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUM7Z0JBQ25GLFFBQVEsRUFBRSxhQUFhO2FBQ3hCO1NBQ0YsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUEzQkQsb0NBMkJDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBrOHMgZnJvbSAnLi9pbXBvcnRzL2s4cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxvbmVTZXJ2aWNlT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIHRhcmdldFBvcnQgbnVtYmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0UG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZWxlY3RvciBsYWJlbC5cbiAgICovXG4gIHJlYWRvbmx5IHNlbGVjdG9yTGFiZWw6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYSBsYWJlbHMgdG8gYXNzb2NpYXRlIHdpdGggcmVzb3VyY2VzLlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVscz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgY2xhc3MgUGxvbmVTZXJ2aWNlIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBsb25lU2VydmljZU9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgdGFyZ2V0UG9ydCA9IGs4cy5JbnRPclN0cmluZy5mcm9tTnVtYmVyKG9wdGlvbnMudGFyZ2V0UG9ydCk7XG4gICAgY29uc3Qgc2VsZWN0b3JMYWJlbCA9IG9wdGlvbnMuc2VsZWN0b3JMYWJlbDtcbiAgICBjb25zdCBzZXJ2aWNlX2xhYmVscyA9IHtcbiAgICAgIC4uLm9wdGlvbnMubGFiZWxzID8/IHt9LFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YnOiAncGxvbmUnLFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMtcGxvbmUnLFxuICAgIH07XG5cbiAgICBjb25zdCBzZXJ2aWNlT3B0czogazhzLkt1YmVTZXJ2aWNlUHJvcHMgPSB7XG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBsYWJlbHM6IHNlcnZpY2VfbGFiZWxzLFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgcG9ydHM6IFt7IHBvcnQ6IG9wdGlvbnMudGFyZ2V0UG9ydCwgdGFyZ2V0UG9ydDogdGFyZ2V0UG9ydCwgbmFtZTogJ2JhY2tlbmQtaHR0cCcgfV0sXG4gICAgICAgIHNlbGVjdG9yOiBzZWxlY3RvckxhYmVsLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHNlcnZpY2UgPSBuZXcgazhzLkt1YmVTZXJ2aWNlKHRoaXMsICdzZXJ2aWNlJywgc2VydmljZU9wdHMpO1xuICAgIHRoaXMubmFtZSA9IHNlcnZpY2UubmFtZTtcbiAgfVxufVxuIl19
|
package/package.json
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bluedynamics/cdk8s-plone",
|
|
3
|
+
"description": "Provides a CMS Plone Backend and Frontend for Kubernetes with cdk8s",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/bluedynamics/cdk8s-plone.git"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "npx projen build",
|
|
10
|
+
"bump": "npx projen bump",
|
|
11
|
+
"clobber": "npx projen clobber",
|
|
12
|
+
"compat": "npx projen compat",
|
|
13
|
+
"compile": "npx projen compile",
|
|
14
|
+
"default": "npx projen default",
|
|
15
|
+
"docgen": "npx projen docgen",
|
|
16
|
+
"eject": "npx projen eject",
|
|
17
|
+
"eslint": "npx projen eslint",
|
|
18
|
+
"package": "npx projen package",
|
|
19
|
+
"package-all": "npx projen package-all",
|
|
20
|
+
"package:js": "npx projen package:js",
|
|
21
|
+
"package:python": "npx projen package:python",
|
|
22
|
+
"post-compile": "npx projen post-compile",
|
|
23
|
+
"post-upgrade": "npx projen post-upgrade",
|
|
24
|
+
"pre-compile": "npx projen pre-compile",
|
|
25
|
+
"release": "npx projen release",
|
|
26
|
+
"test": "npx projen test",
|
|
27
|
+
"test:watch": "npx projen test:watch",
|
|
28
|
+
"unbump": "npx projen unbump",
|
|
29
|
+
"upgrade": "npx projen upgrade",
|
|
30
|
+
"watch": "npx projen watch",
|
|
31
|
+
"projen": "npx projen"
|
|
32
|
+
},
|
|
33
|
+
"author": {
|
|
34
|
+
"name": "Jens W. Klein",
|
|
35
|
+
"email": "jk@kleinundpartner.at",
|
|
36
|
+
"organization": false
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/jest": "^29.5.12",
|
|
40
|
+
"@types/node": "^18",
|
|
41
|
+
"@typescript-eslint/eslint-plugin": "^7",
|
|
42
|
+
"@typescript-eslint/parser": "^7",
|
|
43
|
+
"cdk8s": "^2.68.87",
|
|
44
|
+
"cdk8s-plus-24": "^2.12.1",
|
|
45
|
+
"constructs": "^10.0.0",
|
|
46
|
+
"eslint": "^8",
|
|
47
|
+
"eslint-import-resolver-typescript": "^3.6.1",
|
|
48
|
+
"eslint-plugin-import": "^2.29.1",
|
|
49
|
+
"jest": "^29.7.0",
|
|
50
|
+
"jest-junit": "^15",
|
|
51
|
+
"jsii": "~5.4.0",
|
|
52
|
+
"jsii-diff": "^1.101.0",
|
|
53
|
+
"jsii-docgen": "^10.4.19",
|
|
54
|
+
"jsii-pacmak": "^1.101.0",
|
|
55
|
+
"jsii-rosetta": "~5.4.0",
|
|
56
|
+
"projen": "^0.84.9",
|
|
57
|
+
"standard-version": "^9",
|
|
58
|
+
"ts-jest": "^29.2.3",
|
|
59
|
+
"ts-node": "^10.9.2",
|
|
60
|
+
"typescript": "^5.5.4",
|
|
61
|
+
"yaml": "^2.5.0"
|
|
62
|
+
},
|
|
63
|
+
"peerDependencies": {
|
|
64
|
+
"cdk8s": "^2.68.87",
|
|
65
|
+
"cdk8s-plus-24": "^2.12.1",
|
|
66
|
+
"constructs": "^10.3.0"
|
|
67
|
+
},
|
|
68
|
+
"dependencies": {
|
|
69
|
+
"cdk8s": "^2.68.87",
|
|
70
|
+
"cdk8s-plus-24": "^2.12.1",
|
|
71
|
+
"constructs": "^10.3.0"
|
|
72
|
+
},
|
|
73
|
+
"main": "lib/index.js",
|
|
74
|
+
"license": "Apache-2.0",
|
|
75
|
+
"publishConfig": {
|
|
76
|
+
"access": "public"
|
|
77
|
+
},
|
|
78
|
+
"version": "0.0.0",
|
|
79
|
+
"jest": {
|
|
80
|
+
"coverageProvider": "v8",
|
|
81
|
+
"testMatch": [
|
|
82
|
+
"<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)",
|
|
83
|
+
"<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)",
|
|
84
|
+
"<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)",
|
|
85
|
+
"<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"
|
|
86
|
+
],
|
|
87
|
+
"clearMocks": true,
|
|
88
|
+
"collectCoverage": true,
|
|
89
|
+
"coverageReporters": [
|
|
90
|
+
"json",
|
|
91
|
+
"lcov",
|
|
92
|
+
"clover",
|
|
93
|
+
"cobertura",
|
|
94
|
+
"text"
|
|
95
|
+
],
|
|
96
|
+
"coverageDirectory": "coverage",
|
|
97
|
+
"coveragePathIgnorePatterns": [
|
|
98
|
+
"/node_modules/"
|
|
99
|
+
],
|
|
100
|
+
"testPathIgnorePatterns": [
|
|
101
|
+
"/node_modules/"
|
|
102
|
+
],
|
|
103
|
+
"watchPathIgnorePatterns": [
|
|
104
|
+
"/node_modules/"
|
|
105
|
+
],
|
|
106
|
+
"reporters": [
|
|
107
|
+
"default",
|
|
108
|
+
[
|
|
109
|
+
"jest-junit",
|
|
110
|
+
{
|
|
111
|
+
"outputDirectory": "test-reports"
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
],
|
|
115
|
+
"transform": {
|
|
116
|
+
"^.+\\.[t]sx?$": [
|
|
117
|
+
"ts-jest",
|
|
118
|
+
{
|
|
119
|
+
"tsconfig": "tsconfig.dev.json"
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"types": "lib/index.d.ts",
|
|
125
|
+
"stability": "stable",
|
|
126
|
+
"jsii": {
|
|
127
|
+
"outdir": "dist",
|
|
128
|
+
"targets": {
|
|
129
|
+
"python": {
|
|
130
|
+
"distName": "cdk8s-plone",
|
|
131
|
+
"module": "cdk8s_plone"
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"tsc": {
|
|
135
|
+
"outDir": "lib",
|
|
136
|
+
"rootDir": "src"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
|
|
140
|
+
}
|