@bluedynamics/cdk8s-plone 0.0.80 → 0.1.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 +318 -118
- package/API.md +401 -68
- package/README.md +198 -147
- package/lib/deployment.d.ts +76 -40
- package/lib/deployment.js +13 -2
- package/lib/httpcache.d.ts +64 -9
- package/lib/httpcache.js +19 -3
- package/lib/pdb.d.ts +22 -7
- package/lib/pdb.js +8 -1
- package/lib/plone.d.ts +215 -2
- package/lib/plone.js +49 -6
- package/lib/service.d.ts +26 -0
- package/lib/service.js +10 -2
- package/package.json +10 -10
package/lib/httpcache.d.ts
CHANGED
|
@@ -1,30 +1,85 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
2
|
import { Plone } from './plone';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for PloneHttpcache (Varnish caching layer).
|
|
5
|
+
*/
|
|
3
6
|
export interface PloneHttpcacheOptions {
|
|
4
7
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
8
|
+
* The Plone construct to attach the HTTP cache to.
|
|
9
|
+
* The cache will automatically connect to the backend and frontend services.
|
|
7
10
|
*/
|
|
8
11
|
readonly plone: Plone;
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
12
|
+
/**
|
|
13
|
+
* Varnish VCL configuration as a string.
|
|
14
|
+
* If provided, this takes precedence over varnishVclFile.
|
|
15
|
+
* @default - loaded from varnishVclFile or default config file
|
|
11
16
|
*/
|
|
12
17
|
readonly varnishVcl?: string;
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
18
|
+
/**
|
|
19
|
+
* Path to a Varnish VCL configuration file.
|
|
20
|
+
* If not provided, uses the default VCL file included in the library.
|
|
21
|
+
* @default - uses default config/varnish.tpl.vcl
|
|
15
22
|
*/
|
|
16
23
|
readonly varnishVclFile?: string | undefined;
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
19
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Name of an existing Kubernetes secret containing Varnish admin credentials.
|
|
26
|
+
* The secret should be created separately in the same namespace.
|
|
27
|
+
* @default - undefined (no existing secret)
|
|
28
|
+
*/
|
|
20
29
|
readonly existingSecret?: string;
|
|
30
|
+
/**
|
|
31
|
+
* CPU limit for Varnish pods.
|
|
32
|
+
* @default '500m'
|
|
33
|
+
*/
|
|
21
34
|
readonly limitCpu?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Memory limit for Varnish pods.
|
|
37
|
+
* @default '500Mi'
|
|
38
|
+
*/
|
|
22
39
|
readonly limitMemory?: string;
|
|
40
|
+
/**
|
|
41
|
+
* CPU request for Varnish pods.
|
|
42
|
+
* @default '100m'
|
|
43
|
+
*/
|
|
23
44
|
readonly requestCpu?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Memory request for Varnish pods.
|
|
47
|
+
* @default '100Mi'
|
|
48
|
+
*/
|
|
24
49
|
readonly requestMemory?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Enable Prometheus ServiceMonitor for metrics collection.
|
|
52
|
+
* Requires Prometheus Operator to be installed in the cluster.
|
|
53
|
+
* @default false
|
|
54
|
+
*/
|
|
25
55
|
readonly servicemonitor?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Number of Varnish pod replicas to run.
|
|
58
|
+
* @default 2
|
|
59
|
+
*/
|
|
60
|
+
readonly replicas?: number;
|
|
26
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* PloneHttpcache construct for deploying Varnish HTTP caching layer.
|
|
64
|
+
*
|
|
65
|
+
* Uses the mittwald/kube-httpcache Helm chart to deploy Varnish as a
|
|
66
|
+
* caching proxy in front of Plone backend and/or frontend services.
|
|
67
|
+
*
|
|
68
|
+
* The cache automatically connects to the Plone services and provides
|
|
69
|
+
* HTTP cache invalidation capabilities.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* const plone = new Plone(chart, 'plone');
|
|
73
|
+
* const cache = new PloneHttpcache(chart, 'cache', {
|
|
74
|
+
* plone: plone,
|
|
75
|
+
* existingSecret: 'varnish-secret',
|
|
76
|
+
* });
|
|
77
|
+
*/
|
|
27
78
|
export declare class PloneHttpcache extends Construct {
|
|
79
|
+
/**
|
|
80
|
+
* Name of the Varnish service created by the Helm chart.
|
|
81
|
+
* Use this to reference the cache service from ingress or other constructs.
|
|
82
|
+
*/
|
|
28
83
|
readonly httpcacheServiceName: string;
|
|
29
84
|
constructor(scope: Construct, id: string, options: PloneHttpcacheOptions);
|
|
30
85
|
}
|
package/lib/httpcache.js
CHANGED
|
@@ -7,6 +7,22 @@ const fs = require("fs");
|
|
|
7
7
|
const path = require("path");
|
|
8
8
|
const cdk8s_1 = require("cdk8s");
|
|
9
9
|
const constructs_1 = require("constructs");
|
|
10
|
+
/**
|
|
11
|
+
* PloneHttpcache construct for deploying Varnish HTTP caching layer.
|
|
12
|
+
*
|
|
13
|
+
* Uses the mittwald/kube-httpcache Helm chart to deploy Varnish as a
|
|
14
|
+
* caching proxy in front of Plone backend and/or frontend services.
|
|
15
|
+
*
|
|
16
|
+
* The cache automatically connects to the Plone services and provides
|
|
17
|
+
* HTTP cache invalidation capabilities.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* const plone = new Plone(chart, 'plone');
|
|
21
|
+
* const cache = new PloneHttpcache(chart, 'cache', {
|
|
22
|
+
* plone: plone,
|
|
23
|
+
* existingSecret: 'varnish-secret',
|
|
24
|
+
* });
|
|
25
|
+
*/
|
|
10
26
|
class PloneHttpcache extends constructs_1.Construct {
|
|
11
27
|
constructor(scope, id, options) {
|
|
12
28
|
super(scope, id);
|
|
@@ -29,7 +45,7 @@ class PloneHttpcache extends constructs_1.Construct {
|
|
|
29
45
|
repo: 'https://helm.mittwald.de',
|
|
30
46
|
chart: 'kube-httpcache',
|
|
31
47
|
values: {
|
|
32
|
-
replicaCount: 2,
|
|
48
|
+
replicaCount: options.replicas ?? 2,
|
|
33
49
|
cache: {
|
|
34
50
|
// need to looks at the frontendWatch, do we need it?
|
|
35
51
|
frontendWatch: false,
|
|
@@ -94,5 +110,5 @@ class PloneHttpcache extends constructs_1.Construct {
|
|
|
94
110
|
}
|
|
95
111
|
exports.PloneHttpcache = PloneHttpcache;
|
|
96
112
|
_a = JSII_RTTI_SYMBOL_1;
|
|
97
|
-
PloneHttpcache[_a] = { fqn: "@bluedynamics/cdk8s-plone.PloneHttpcache", version: "0.0
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cGNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2h0dHBjYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsaUNBQTZCO0FBQzdCLDJDQUF1QztBQW1DdkMsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFJM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksVUFBa0IsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLElBQUksT0FBZSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUM5RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDbkMsQ0FBQztZQUNELFVBQVUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLFlBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzVDLHVEQUF1RDtZQUN2RCxJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsTUFBTSxFQUFFO2dCQUNOLFlBQVksRUFBRSxDQUFDO2dCQUNmLEtBQUssRUFBRTtvQkFDTCxxREFBcUQ7b0JBQ3JELGFBQWEsRUFBRSxLQUFLO29CQUNwQixZQUFZLEVBQUUsS0FBSztvQkFDbkIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUztpQkFDcEQ7Z0JBQ0QsV0FBVyxFQUFFLFVBQVU7Z0JBQ3ZCLFlBQVksRUFBRTtvQkFDWixFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRTtvQkFDekUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtvQkFDL0MsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUN4RCxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRTtvQkFDM0UsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtpQkFDakQ7Z0JBQ0QsNERBQTREO2dCQUM1RCxZQUFZLEVBQUU7b0JBQ1osb0JBQW9CLEVBQUUsT0FBTztpQkFDOUI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULE1BQU0sRUFBRTt3QkFDTixHQUFHLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxNQUFNO3dCQUMvQixNQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPO3FCQUN2QztvQkFDRCxRQUFRLEVBQUU7d0JBQ1IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksTUFBTTt3QkFDakMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksT0FBTztxQkFDekM7aUJBQ0Y7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE9BQU8sRUFBRSxLQUFLO2lCQUNmO2dCQUNELFFBQVEsRUFBRTtvQkFDUixPQUFPLEVBQUUsSUFBSTtvQkFDYixTQUFTLEVBQUU7d0JBQ1QsTUFBTSxFQUFFOzRCQUNOLEdBQUcsRUFBRSxNQUFNOzRCQUNYLE1BQU0sRUFBRSxPQUFPO3lCQUNoQjt3QkFDRCxRQUFRLEVBQUU7NEJBQ1IsR0FBRyxFQUFFLEtBQUs7NEJBQ1YsTUFBTSxFQUFFLE1BQU07eUJBQ2Y7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsY0FBYyxFQUFFO29CQUNkLE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLEtBQUs7b0JBQ3hDLGVBQWUsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLEtBQUs7aUJBQ2pEO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzVGLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztZQUN4QixDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUNwRCxDQUFDOztBQXBGSCx3Q0FxRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgSGVsbSB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUGxvbmUgfSBmcm9tICcuL3Bsb25lJztcblxuZXhwb3J0IGludGVyZmFjZSBQbG9uZUh0dHBjYWNoZU9wdGlvbnMge1xuICAvKipcbiAgICogcGxvbmUgY2hhcnRcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBwbG9uZTogUGxvbmU7XG5cbiAgLyoqIHZhcm5pc2hWY2xcbiAgICogQGRlZmF1bHQgLSBmaWxlIGluIGNvbmZpZyBmb2xkZXJcbiAgICovXG4gIHJlYWRvbmx5IHZhcm5pc2hWY2w/OiBzdHJpbmc7XG5cbiAgLyoqIHZhcm5pc2hWY2xGaWxlXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSB2YXJuaXNoVmNsRmlsZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKiogZXhpc3RpbmdTZWNyZXQgLSBSZWFkIGFkbWluIGNyZWRlbnRpYWxzIGZyb20gdXNlciBwcm92aWRlZCBzZWNyZXRcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdTZWNyZXQ/OiBzdHJpbmc7XG5cblxuICAvLyByZXNvdXJjZXNcbiAgcmVhZG9ubHkgbGltaXRDcHU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxpbWl0TWVtb3J5Pzogc3RyaW5nO1xuICByZWFkb25seSByZXF1ZXN0Q3B1Pzogc3RyaW5nO1xuICByZWFkb25seSByZXF1ZXN0TWVtb3J5Pzogc3RyaW5nO1xuICAvLyBtZXRyaWNzXG4gIHJlYWRvbmx5IHNlcnZpY2Vtb25pdG9yPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFBsb25lSHR0cGNhY2hlIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgaHR0cGNhY2hlU2VydmljZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRpb25zOiBQbG9uZUh0dHBjYWNoZU9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGxldCB2YXJuaXNoVmNsOiBzdHJpbmc7XG4gICAgaWYgKCFvcHRpb25zLnZhcm5pc2hWY2wpIHtcbiAgICAgIGxldCB2Y2xQYXRoOiBzdHJpbmc7XG4gICAgICBpZiAoIW9wdGlvbnMudmFybmlzaFZjbEZpbGUpIHtcbiAgICAgICAgdmNsUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdjb25maWcnLCAndmFybmlzaC50cGwudmNsJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2Y2xQYXRoID0gb3B0aW9ucy52YXJuaXNoVmNsRmlsZTtcbiAgICAgIH1cbiAgICAgIHZhcm5pc2hWY2wgPSBmcy5yZWFkRmlsZVN5bmModmNsUGF0aCwgJ3V0ZjgnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFybmlzaFZjbCA9IG9wdGlvbnMudmFybmlzaFZjbDtcbiAgICB9XG4gICAgY29uc3QgaHR0cGNhY2hlID0gbmV3IEhlbG0odGhpcywgJ2h0dHBjYWNoZScsIHtcbiAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWl0dHdhbGQva3ViZS1odHRwY2FjaGUvY2hhcnRcbiAgICAgIHJlcG86ICdodHRwczovL2hlbG0ubWl0dHdhbGQuZGUnLFxuICAgICAgY2hhcnQ6ICdrdWJlLWh0dHBjYWNoZScsXG4gICAgICB2YWx1ZXM6IHtcbiAgICAgICAgcmVwbGljYUNvdW50OiAyLFxuICAgICAgICBjYWNoZToge1xuICAgICAgICAgIC8vIG5lZWQgdG8gbG9va3MgYXQgdGhlIGZyb250ZW5kV2F0Y2gsIGRvIHdlIG5lZWQgaXQ/XG4gICAgICAgICAgZnJvbnRlbmRXYXRjaDogZmFsc2UsXG4gICAgICAgICAgYmFja2VuZFdhdGNoOiBmYWxzZSxcbiAgICAgICAgICBleGlzdGluZ1NlY3JldDogb3B0aW9ucy5leGlzdGluZ1NlY3JldCA/PyB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICAgIHZjbFRlbXBsYXRlOiB2YXJuaXNoVmNsLFxuICAgICAgICBleHRyYUVudlZhcnM6IFtcbiAgICAgICAgICB7IG5hbWU6ICdCQUNLRU5EX1NFUlZJQ0VfTkFNRScsIHZhbHVlOiBvcHRpb25zLnBsb25lLmJhY2tlbmRTZXJ2aWNlTmFtZSB9LFxuICAgICAgICAgIHsgbmFtZTogJ0JBQ0tFTkRfU0VSVklDRV9QT1JUJywgdmFsdWU6ICc4MDgwJyB9LFxuICAgICAgICAgIHsgbmFtZTogJ0JBQ0tFTkRfU0lURV9JRCcsIHZhbHVlOiBvcHRpb25zLnBsb25lLnNpdGVJZCB9LFxuICAgICAgICAgIHsgbmFtZTogJ0ZST05URU5EX1NFUlZJQ0VfTkFNRScsIHZhbHVlOiBvcHRpb25zLnBsb25lLmZyb250ZW5kU2VydmljZU5hbWUgfSxcbiAgICAgICAgICB7IG5hbWU6ICdGUk9OVEVORF9TRVJWSUNFX1BPUlQnLCB2YWx1ZTogJzMwMDAnIH0sXG4gICAgICAgIF0sXG4gICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWl0dHdhbGQva3ViZS1odHRwY2FjaGUvaXNzdWVzLzI1M1xuICAgICAgICBub2RlU2VsZWN0b3I6IHtcbiAgICAgICAgICAna3ViZXJuZXRlcy5pby9hcmNoJzogJ2FtZDY0JyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb3VyY2VzOiB7XG4gICAgICAgICAgbGltaXRzOiB7XG4gICAgICAgICAgICBjcHU6IG9wdGlvbnMubGltaXRDcHUgfHwgJzUwMG0nLFxuICAgICAgICAgICAgbWVtb3J5OiBvcHRpb25zLmxpbWl0TWVtb3J5IHx8ICc1MDBNaScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1ZXN0czoge1xuICAgICAgICAgICAgY3B1OiBvcHRpb25zLnJlcXVlc3RDcHUgfHwgJzEwMG0nLFxuICAgICAgICAgICAgbWVtb3J5OiBvcHRpb25zLnJlcXVlc3RNZW1vcnkgfHwgJzEwME1pJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByYmFjOiB7XG4gICAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIGV4cG9ydGVyOiB7XG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICByZXNvdXJjZXM6IHtcbiAgICAgICAgICAgIGxpbWl0czoge1xuICAgICAgICAgICAgICBjcHU6ICcxMDBtJyxcbiAgICAgICAgICAgICAgbWVtb3J5OiAnMTAwTWknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVlc3RzOiB7XG4gICAgICAgICAgICAgIGNwdTogJzEwbScsXG4gICAgICAgICAgICAgIG1lbW9yeTogJzUwTWknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlTW9uaXRvcjoge1xuICAgICAgICAgIGVuYWJsZWQ6IG9wdGlvbnMuc2VydmljZW1vbml0b3IgfHwgZmFsc2UsXG4gICAgICAgICAgc2NyYXBlU2lnbmFsbGVyOiBvcHRpb25zLnNlcnZpY2Vtb25pdG9yIHx8IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBodHRwY2FjaGVTZXJ2aWNlID0gaHR0cGNhY2hlLmFwaU9iamVjdHMuZmluZCgoY29uc3RydWN0KSA9PiB7XG4gICAgICBpZiAoKGNvbnN0cnVjdC5raW5kID09PSAnU2VydmljZScpICYmIChjb25zdHJ1Y3QubWV0YWRhdGEubmFtZT8uZW5kc1dpdGgoJ2t1YmUtaHR0cGNhY2hlJykpKSB7XG4gICAgICAgIHJldHVybiBjb25zdHJ1Y3QubmFtZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG4gICAgaWYgKGh0dHBjYWNoZVNlcnZpY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBodHRwY2FjaGUgc2VydmljZScpO1xuICAgIH1cbiAgICB0aGlzLmh0dHBjYWNoZVNlcnZpY2VOYW1lID0gaHR0cGNhY2hlU2VydmljZS5uYW1lO1xuICB9XG59Il19
|
|
113
|
+
PloneHttpcache[_a] = { fqn: "@bluedynamics/cdk8s-plone.PloneHttpcache", version: "0.1.0" };
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cGNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2h0dHBjYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsaUNBQTZCO0FBQzdCLDJDQUF1QztBQXdFdkM7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFPM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksVUFBa0IsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLElBQUksT0FBZSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUM5RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDbkMsQ0FBQztZQUNELFVBQVUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLFlBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzVDLHVEQUF1RDtZQUN2RCxJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsTUFBTSxFQUFFO2dCQUNOLFlBQVksRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUM7Z0JBQ25DLEtBQUssRUFBRTtvQkFDTCxxREFBcUQ7b0JBQ3JELGFBQWEsRUFBRSxLQUFLO29CQUNwQixZQUFZLEVBQUUsS0FBSztvQkFDbkIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUztpQkFDcEQ7Z0JBQ0QsV0FBVyxFQUFFLFVBQVU7Z0JBQ3ZCLFlBQVksRUFBRTtvQkFDWixFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRTtvQkFDekUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtvQkFDL0MsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUN4RCxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRTtvQkFDM0UsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtpQkFDakQ7Z0JBQ0QsNERBQTREO2dCQUM1RCxZQUFZLEVBQUU7b0JBQ1osb0JBQW9CLEVBQUUsT0FBTztpQkFDOUI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULE1BQU0sRUFBRTt3QkFDTixHQUFHLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxNQUFNO3dCQUMvQixNQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPO3FCQUN2QztvQkFDRCxRQUFRLEVBQUU7d0JBQ1IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksTUFBTTt3QkFDakMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksT0FBTztxQkFDekM7aUJBQ0Y7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE9BQU8sRUFBRSxLQUFLO2lCQUNmO2dCQUNELFFBQVEsRUFBRTtvQkFDUixPQUFPLEVBQUUsSUFBSTtvQkFDYixTQUFTLEVBQUU7d0JBQ1QsTUFBTSxFQUFFOzRCQUNOLEdBQUcsRUFBRSxNQUFNOzRCQUNYLE1BQU0sRUFBRSxPQUFPO3lCQUNoQjt3QkFDRCxRQUFRLEVBQUU7NEJBQ1IsR0FBRyxFQUFFLEtBQUs7NEJBQ1YsTUFBTSxFQUFFLE1BQU07eUJBQ2Y7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsY0FBYyxFQUFFO29CQUNkLE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLEtBQUs7b0JBQ3hDLGVBQWUsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLEtBQUs7aUJBQ2pEO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzVGLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztZQUN4QixDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUNwRCxDQUFDOztBQXZGSCx3Q0F3RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgSGVsbSB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUGxvbmUgfSBmcm9tICcuL3Bsb25lJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIFBsb25lSHR0cGNhY2hlIChWYXJuaXNoIGNhY2hpbmcgbGF5ZXIpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb25lSHR0cGNhY2hlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgUGxvbmUgY29uc3RydWN0IHRvIGF0dGFjaCB0aGUgSFRUUCBjYWNoZSB0by5cbiAgICogVGhlIGNhY2hlIHdpbGwgYXV0b21hdGljYWxseSBjb25uZWN0IHRvIHRoZSBiYWNrZW5kIGFuZCBmcm9udGVuZCBzZXJ2aWNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHBsb25lOiBQbG9uZTtcblxuICAvKipcbiAgICogVmFybmlzaCBWQ0wgY29uZmlndXJhdGlvbiBhcyBhIHN0cmluZy5cbiAgICogSWYgcHJvdmlkZWQsIHRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHZhcm5pc2hWY2xGaWxlLlxuICAgKiBAZGVmYXVsdCAtIGxvYWRlZCBmcm9tIHZhcm5pc2hWY2xGaWxlIG9yIGRlZmF1bHQgY29uZmlnIGZpbGVcbiAgICovXG4gIHJlYWRvbmx5IHZhcm5pc2hWY2w/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gYSBWYXJuaXNoIFZDTCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqIElmIG5vdCBwcm92aWRlZCwgdXNlcyB0aGUgZGVmYXVsdCBWQ0wgZmlsZSBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeS5cbiAgICogQGRlZmF1bHQgLSB1c2VzIGRlZmF1bHQgY29uZmlnL3Zhcm5pc2gudHBsLnZjbFxuICAgKi9cbiAgcmVhZG9ubHkgdmFybmlzaFZjbEZpbGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgYW4gZXhpc3RpbmcgS3ViZXJuZXRlcyBzZWNyZXQgY29udGFpbmluZyBWYXJuaXNoIGFkbWluIGNyZWRlbnRpYWxzLlxuICAgKiBUaGUgc2VjcmV0IHNob3VsZCBiZSBjcmVhdGVkIHNlcGFyYXRlbHkgaW4gdGhlIHNhbWUgbmFtZXNwYWNlLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZCAobm8gZXhpc3Rpbmcgc2VjcmV0KVxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdTZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENQVSBsaW1pdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnNTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0Q3B1Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZW1vcnkgbGltaXQgZm9yIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJzUwME1pJ1xuICAgKi9cbiAgcmVhZG9ubHkgbGltaXRNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENQVSByZXF1ZXN0IGZvciBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICcxMDBtJ1xuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdENwdT86IHN0cmluZztcblxuICAvKipcbiAgICogTWVtb3J5IHJlcXVlc3QgZm9yIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJzEwME1pJ1xuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdE1lbW9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlIFByb21ldGhldXMgU2VydmljZU1vbml0b3IgZm9yIG1ldHJpY3MgY29sbGVjdGlvbi5cbiAgICogUmVxdWlyZXMgUHJvbWV0aGV1cyBPcGVyYXRvciB0byBiZSBpbnN0YWxsZWQgaW4gdGhlIGNsdXN0ZXIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlbW9uaXRvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBWYXJuaXNoIHBvZCByZXBsaWNhcyB0byBydW4uXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2FzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBsb25lSHR0cGNhY2hlIGNvbnN0cnVjdCBmb3IgZGVwbG95aW5nIFZhcm5pc2ggSFRUUCBjYWNoaW5nIGxheWVyLlxuICpcbiAqIFVzZXMgdGhlIG1pdHR3YWxkL2t1YmUtaHR0cGNhY2hlIEhlbG0gY2hhcnQgdG8gZGVwbG95IFZhcm5pc2ggYXMgYVxuICogY2FjaGluZyBwcm94eSBpbiBmcm9udCBvZiBQbG9uZSBiYWNrZW5kIGFuZC9vciBmcm9udGVuZCBzZXJ2aWNlcy5cbiAqXG4gKiBUaGUgY2FjaGUgYXV0b21hdGljYWxseSBjb25uZWN0cyB0byB0aGUgUGxvbmUgc2VydmljZXMgYW5kIHByb3ZpZGVzXG4gKiBIVFRQIGNhY2hlIGludmFsaWRhdGlvbiBjYXBhYmlsaXRpZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHBsb25lID0gbmV3IFBsb25lKGNoYXJ0LCAncGxvbmUnKTtcbiAqIGNvbnN0IGNhY2hlID0gbmV3IFBsb25lSHR0cGNhY2hlKGNoYXJ0LCAnY2FjaGUnLCB7XG4gKiAgIHBsb25lOiBwbG9uZSxcbiAqICAgZXhpc3RpbmdTZWNyZXQ6ICd2YXJuaXNoLXNlY3JldCcsXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIFBsb25lSHR0cGNhY2hlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFZhcm5pc2ggc2VydmljZSBjcmVhdGVkIGJ5IHRoZSBIZWxtIGNoYXJ0LlxuICAgKiBVc2UgdGhpcyB0byByZWZlcmVuY2UgdGhlIGNhY2hlIHNlcnZpY2UgZnJvbSBpbmdyZXNzIG9yIG90aGVyIGNvbnN0cnVjdHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaHR0cGNhY2hlU2VydmljZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRpb25zOiBQbG9uZUh0dHBjYWNoZU9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGxldCB2YXJuaXNoVmNsOiBzdHJpbmc7XG4gICAgaWYgKCFvcHRpb25zLnZhcm5pc2hWY2wpIHtcbiAgICAgIGxldCB2Y2xQYXRoOiBzdHJpbmc7XG4gICAgICBpZiAoIW9wdGlvbnMudmFybmlzaFZjbEZpbGUpIHtcbiAgICAgICAgdmNsUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdjb25maWcnLCAndmFybmlzaC50cGwudmNsJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2Y2xQYXRoID0gb3B0aW9ucy52YXJuaXNoVmNsRmlsZTtcbiAgICAgIH1cbiAgICAgIHZhcm5pc2hWY2wgPSBmcy5yZWFkRmlsZVN5bmModmNsUGF0aCwgJ3V0ZjgnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFybmlzaFZjbCA9IG9wdGlvbnMudmFybmlzaFZjbDtcbiAgICB9XG4gICAgY29uc3QgaHR0cGNhY2hlID0gbmV3IEhlbG0odGhpcywgJ2h0dHBjYWNoZScsIHtcbiAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWl0dHdhbGQva3ViZS1odHRwY2FjaGUvY2hhcnRcbiAgICAgIHJlcG86ICdodHRwczovL2hlbG0ubWl0dHdhbGQuZGUnLFxuICAgICAgY2hhcnQ6ICdrdWJlLWh0dHBjYWNoZScsXG4gICAgICB2YWx1ZXM6IHtcbiAgICAgICAgcmVwbGljYUNvdW50OiBvcHRpb25zLnJlcGxpY2FzID8/IDIsXG4gICAgICAgIGNhY2hlOiB7XG4gICAgICAgICAgLy8gbmVlZCB0byBsb29rcyBhdCB0aGUgZnJvbnRlbmRXYXRjaCwgZG8gd2UgbmVlZCBpdD9cbiAgICAgICAgICBmcm9udGVuZFdhdGNoOiBmYWxzZSxcbiAgICAgICAgICBiYWNrZW5kV2F0Y2g6IGZhbHNlLFxuICAgICAgICAgIGV4aXN0aW5nU2VjcmV0OiBvcHRpb25zLmV4aXN0aW5nU2VjcmV0ID8/IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgICAgdmNsVGVtcGxhdGU6IHZhcm5pc2hWY2wsXG4gICAgICAgIGV4dHJhRW52VmFyczogW1xuICAgICAgICAgIHsgbmFtZTogJ0JBQ0tFTkRfU0VSVklDRV9OQU1FJywgdmFsdWU6IG9wdGlvbnMucGxvbmUuYmFja2VuZFNlcnZpY2VOYW1lIH0sXG4gICAgICAgICAgeyBuYW1lOiAnQkFDS0VORF9TRVJWSUNFX1BPUlQnLCB2YWx1ZTogJzgwODAnIH0sXG4gICAgICAgICAgeyBuYW1lOiAnQkFDS0VORF9TSVRFX0lEJywgdmFsdWU6IG9wdGlvbnMucGxvbmUuc2l0ZUlkIH0sXG4gICAgICAgICAgeyBuYW1lOiAnRlJPTlRFTkRfU0VSVklDRV9OQU1FJywgdmFsdWU6IG9wdGlvbnMucGxvbmUuZnJvbnRlbmRTZXJ2aWNlTmFtZSB9LFxuICAgICAgICAgIHsgbmFtZTogJ0ZST05URU5EX1NFUlZJQ0VfUE9SVCcsIHZhbHVlOiAnMzAwMCcgfSxcbiAgICAgICAgXSxcbiAgICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taXR0d2FsZC9rdWJlLWh0dHBjYWNoZS9pc3N1ZXMvMjUzXG4gICAgICAgIG5vZGVTZWxlY3Rvcjoge1xuICAgICAgICAgICdrdWJlcm5ldGVzLmlvL2FyY2gnOiAnYW1kNjQnLFxuICAgICAgICB9LFxuICAgICAgICByZXNvdXJjZXM6IHtcbiAgICAgICAgICBsaW1pdHM6IHtcbiAgICAgICAgICAgIGNwdTogb3B0aW9ucy5saW1pdENwdSB8fCAnNTAwbScsXG4gICAgICAgICAgICBtZW1vcnk6IG9wdGlvbnMubGltaXRNZW1vcnkgfHwgJzUwME1pJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVlc3RzOiB7XG4gICAgICAgICAgICBjcHU6IG9wdGlvbnMucmVxdWVzdENwdSB8fCAnMTAwbScsXG4gICAgICAgICAgICBtZW1vcnk6IG9wdGlvbnMucmVxdWVzdE1lbW9yeSB8fCAnMTAwTWknLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJiYWM6IHtcbiAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgZXhwb3J0ZXI6IHtcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHJlc291cmNlczoge1xuICAgICAgICAgICAgbGltaXRzOiB7XG4gICAgICAgICAgICAgIGNwdTogJzEwMG0nLFxuICAgICAgICAgICAgICBtZW1vcnk6ICcxMDBNaScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVxdWVzdHM6IHtcbiAgICAgICAgICAgICAgY3B1OiAnMTBtJyxcbiAgICAgICAgICAgICAgbWVtb3J5OiAnNTBNaScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZpY2VNb25pdG9yOiB7XG4gICAgICAgICAgZW5hYmxlZDogb3B0aW9ucy5zZXJ2aWNlbW9uaXRvciB8fCBmYWxzZSxcbiAgICAgICAgICBzY3JhcGVTaWduYWxsZXI6IG9wdGlvbnMuc2VydmljZW1vbml0b3IgfHwgZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGh0dHBjYWNoZVNlcnZpY2UgPSBodHRwY2FjaGUuYXBpT2JqZWN0cy5maW5kKChjb25zdHJ1Y3QpID0+IHtcbiAgICAgIGlmICgoY29uc3RydWN0LmtpbmQgPT09ICdTZXJ2aWNlJykgJiYgKGNvbnN0cnVjdC5tZXRhZGF0YS5uYW1lPy5lbmRzV2l0aCgna3ViZS1odHRwY2FjaGUnKSkpIHtcbiAgICAgICAgcmV0dXJuIGNvbnN0cnVjdC5uYW1lO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KTtcbiAgICBpZiAoaHR0cGNhY2hlU2VydmljZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGh0dHBjYWNoZSBzZXJ2aWNlJyk7XG4gICAgfVxuICAgIHRoaXMuaHR0cGNhY2hlU2VydmljZU5hbWUgPSBodHRwY2FjaGVTZXJ2aWNlLm5hbWU7XG4gIH1cbn0iXX0=
|
package/lib/pdb.d.ts
CHANGED
|
@@ -1,24 +1,39 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration options for PodDisruptionBudget.
|
|
4
|
+
*/
|
|
2
5
|
export interface PlonePDBOptions {
|
|
3
6
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
7
|
+
* Maximum number or percentage of pods that can be unavailable during voluntary disruptions.
|
|
8
|
+
* Can be an absolute number (e.g., 1) or a percentage (e.g., '50%').
|
|
9
|
+
* Cannot be used together with minAvailable.
|
|
10
|
+
* @example 1 or '25%'
|
|
11
|
+
* @default - not set (defaults to minAvailable=1 if neither is specified)
|
|
6
12
|
*/
|
|
7
13
|
readonly maxUnavailable?: number | string;
|
|
8
14
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
15
|
+
* Minimum number or percentage of pods that must remain available during voluntary disruptions.
|
|
16
|
+
* Can be an absolute number (e.g., 1) or a percentage (e.g., '50%').
|
|
17
|
+
* Cannot be used together with maxUnavailable.
|
|
18
|
+
* @example 2 or '50%'
|
|
19
|
+
* @default 1 (if maxUnavailable is not set)
|
|
12
20
|
*/
|
|
13
21
|
readonly minAvailable?: number | string;
|
|
14
22
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @default -
|
|
23
|
+
* Additional Kubernetes labels for the PodDisruptionBudget.
|
|
24
|
+
* @default - standard Plone labels only
|
|
17
25
|
*/
|
|
18
26
|
readonly labels?: {
|
|
19
27
|
[name: string]: string;
|
|
20
28
|
};
|
|
21
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* PlonePDB creates a Kubernetes PodDisruptionBudget for high availability.
|
|
32
|
+
*
|
|
33
|
+
* This is an internal construct used by PloneDeployment.
|
|
34
|
+
* It ensures a minimum number of pods remain available during voluntary
|
|
35
|
+
* disruptions like node drains or cluster upgrades.
|
|
36
|
+
*/
|
|
22
37
|
export declare class PlonePDB extends Construct {
|
|
23
38
|
constructor(scope: Construct, id: string, selectorLabel: {
|
|
24
39
|
[name: string]: string;
|
package/lib/pdb.js
CHANGED
|
@@ -3,6 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PlonePDB = void 0;
|
|
4
4
|
const constructs_1 = require("constructs");
|
|
5
5
|
const k8s = require("./imports/k8s");
|
|
6
|
+
/**
|
|
7
|
+
* PlonePDB creates a Kubernetes PodDisruptionBudget for high availability.
|
|
8
|
+
*
|
|
9
|
+
* This is an internal construct used by PloneDeployment.
|
|
10
|
+
* It ensures a minimum number of pods remain available during voluntary
|
|
11
|
+
* disruptions like node drains or cluster upgrades.
|
|
12
|
+
*/
|
|
6
13
|
class PlonePDB extends constructs_1.Construct {
|
|
7
14
|
constructor(scope, id, selectorLabel, options) {
|
|
8
15
|
super(scope, id);
|
|
@@ -52,4 +59,4 @@ class PlonePDB extends constructs_1.Construct {
|
|
|
52
59
|
}
|
|
53
60
|
}
|
|
54
61
|
exports.PlonePDB = PlonePDB;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BkYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMscUNBQXFDO0FBK0JyQzs7Ozs7O0dBTUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxzQkFBUztJQUVyQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLGFBQXlDLEVBQUUsT0FBd0I7UUFDM0csS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLElBQUksR0FBZ0MsRUFBRSxDQUFDO1FBQzNDLElBQUksT0FBTyxPQUFPLENBQUMsY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9DLElBQUksR0FBRztnQkFDTCxjQUFjLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQXdCLENBQUM7YUFDN0UsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLE9BQU8sT0FBTyxDQUFDLGNBQWMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0RCxJQUFJLEdBQUc7Z0JBQ0wsY0FBYyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUF3QixDQUFDO2FBQzdFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxPQUFPLE9BQU8sQ0FBQyxZQUFZLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0MsSUFBSSxHQUFHO2dCQUNMLEdBQUcsSUFBSTtnQkFDUCxZQUFZLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQXNCLENBQUM7YUFDekUsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLE9BQU8sT0FBTyxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwRCxJQUFJLEdBQUc7Z0JBQ0wsR0FBRyxJQUFJO2dCQUNQLFlBQVksRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBc0IsQ0FBQzthQUN6RSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvRSxJQUFJLEdBQUc7Z0JBQ0wsWUFBWSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUM1QyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksR0FBRztZQUNMLEdBQUcsSUFBSTtZQUNQLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUU7U0FDekMsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFO1lBQ3ZCLDJCQUEyQixFQUFFLE9BQU87WUFDcEMsOEJBQThCLEVBQUUsYUFBYTtTQUM5QyxDQUFDO1FBRUYsSUFBSSxHQUFHLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUMzQyxRQUFRLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLFVBQVU7YUFDbkI7WUFDRCxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpERCw0QkFpREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGs4cyBmcm9tICcuL2ltcG9ydHMvazhzJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIFBvZERpc3J1cHRpb25CdWRnZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvbmVQREJPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9yIHBlcmNlbnRhZ2Ugb2YgcG9kcyB0aGF0IGNhbiBiZSB1bmF2YWlsYWJsZSBkdXJpbmcgdm9sdW50YXJ5IGRpc3J1cHRpb25zLlxuICAgKiBDYW4gYmUgYW4gYWJzb2x1dGUgbnVtYmVyIChlLmcuLCAxKSBvciBhIHBlcmNlbnRhZ2UgKGUuZy4sICc1MCUnKS5cbiAgICogQ2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBtaW5BdmFpbGFibGUuXG4gICAqIEBleGFtcGxlIDEgb3IgJzI1JSdcbiAgICogQGRlZmF1bHQgLSBub3Qgc2V0IChkZWZhdWx0cyB0byBtaW5BdmFpbGFibGU9MSBpZiBuZWl0aGVyIGlzIHNwZWNpZmllZClcbiAgICovXG4gIHJlYWRvbmx5IG1heFVuYXZhaWxhYmxlPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIG51bWJlciBvciBwZXJjZW50YWdlIG9mIHBvZHMgdGhhdCBtdXN0IHJlbWFpbiBhdmFpbGFibGUgZHVyaW5nIHZvbHVudGFyeSBkaXNydXB0aW9ucy5cbiAgICogQ2FuIGJlIGFuIGFic29sdXRlIG51bWJlciAoZS5nLiwgMSkgb3IgYSBwZXJjZW50YWdlIChlLmcuLCAnNTAlJykuXG4gICAqIENhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggbWF4VW5hdmFpbGFibGUuXG4gICAqIEBleGFtcGxlIDIgb3IgJzUwJSdcbiAgICogQGRlZmF1bHQgMSAoaWYgbWF4VW5hdmFpbGFibGUgaXMgbm90IHNldClcbiAgICovXG4gIHJlYWRvbmx5IG1pbkF2YWlsYWJsZT86IG51bWJlciB8IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBLdWJlcm5ldGVzIGxhYmVscyBmb3IgdGhlIFBvZERpc3J1cHRpb25CdWRnZXQuXG4gICAqIEBkZWZhdWx0IC0gc3RhbmRhcmQgUGxvbmUgbGFiZWxzIG9ubHlcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVscz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFBsb25lUERCIGNyZWF0ZXMgYSBLdWJlcm5ldGVzIFBvZERpc3J1cHRpb25CdWRnZXQgZm9yIGhpZ2ggYXZhaWxhYmlsaXR5LlxuICpcbiAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29uc3RydWN0IHVzZWQgYnkgUGxvbmVEZXBsb3ltZW50LlxuICogSXQgZW5zdXJlcyBhIG1pbmltdW0gbnVtYmVyIG9mIHBvZHMgcmVtYWluIGF2YWlsYWJsZSBkdXJpbmcgdm9sdW50YXJ5XG4gKiBkaXNydXB0aW9ucyBsaWtlIG5vZGUgZHJhaW5zIG9yIGNsdXN0ZXIgdXBncmFkZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBQbG9uZVBEQiBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2VsZWN0b3JMYWJlbDogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0sIG9wdGlvbnM6IFBsb25lUERCT3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB2YXIgc3BlYzogazhzLlBvZERpc3J1cHRpb25CdWRnZXRTcGVjID0ge307XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLm1heFVuYXZhaWxhYmxlID09PSAnbnVtYmVyJykge1xuICAgICAgc3BlYyA9IHtcbiAgICAgICAgbWF4VW5hdmFpbGFibGU6IGs4cy5JbnRPclN0cmluZy5mcm9tTnVtYmVyKG9wdGlvbnMubWF4VW5hdmFpbGFibGUgYXMgbnVtYmVyKSxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucy5tYXhVbmF2YWlsYWJsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHNwZWMgPSB7XG4gICAgICAgIG1heFVuYXZhaWxhYmxlOiBrOHMuSW50T3JTdHJpbmcuZnJvbVN0cmluZyhvcHRpb25zLm1heFVuYXZhaWxhYmxlIGFzIHN0cmluZyksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMubWluQXZhaWxhYmxlID09PSAnbnVtYmVyJykge1xuICAgICAgc3BlYyA9IHtcbiAgICAgICAgLi4uc3BlYyxcbiAgICAgICAgbWluQXZhaWxhYmxlOiBrOHMuSW50T3JTdHJpbmcuZnJvbU51bWJlcihvcHRpb25zLm1pbkF2YWlsYWJsZSBhcyBudW1iZXIpLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zLm1pbkF2YWlsYWJsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHNwZWMgPSB7XG4gICAgICAgIC4uLnNwZWMsXG4gICAgICAgIG1pbkF2YWlsYWJsZTogazhzLkludE9yU3RyaW5nLmZyb21TdHJpbmcob3B0aW9ucy5taW5BdmFpbGFibGUgYXMgc3RyaW5nKSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChvcHRpb25zLm1heFVuYXZhaWxhYmxlID09PSB1bmRlZmluZWQgJiYgb3B0aW9ucy5taW5BdmFpbGFibGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgc3BlYyA9IHtcbiAgICAgICAgbWluQXZhaWxhYmxlOiBrOHMuSW50T3JTdHJpbmcuZnJvbU51bWJlcigxKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgc3BlYyA9IHtcbiAgICAgIC4uLnNwZWMsXG4gICAgICBzZWxlY3RvcjogeyBtYXRjaExhYmVsczogc2VsZWN0b3JMYWJlbCB9LFxuICAgIH07XG4gICAgY29uc3QgcGRiX2xhYmVscyA9IHtcbiAgICAgIC4uLm9wdGlvbnMubGFiZWxzID8/IHt9LFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YnOiAncGxvbmUnLFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMtcGxvbmUnLFxuICAgIH07XG5cbiAgICBuZXcgazhzLkt1YmVQb2REaXNydXB0aW9uQnVkZ2V0KHRoaXMsICdQREInLCB7XG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBsYWJlbHM6IHBkYl9sYWJlbHMsXG4gICAgICB9LFxuICAgICAgc3BlYzogc3BlYyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/lib/plone.d.ts
CHANGED
|
@@ -1,45 +1,258 @@
|
|
|
1
1
|
import * as kplus from 'cdk8s-plus-30';
|
|
2
2
|
import { Construct } from 'constructs';
|
|
3
|
+
/**
|
|
4
|
+
* Base options for Plone backend or frontend configuration.
|
|
5
|
+
* These options control container image, replica count, resource limits,
|
|
6
|
+
* environment variables, and health probes.
|
|
7
|
+
*/
|
|
3
8
|
export interface PloneBaseOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Container image to use for the deployment.
|
|
11
|
+
* @example 'plone/plone-backend:6.0.10' or 'plone/plone-frontend:16.0.0'
|
|
12
|
+
* @default - 'plone/plone-backend:latest' for backend, 'plone/plone-frontend:latest' for frontend
|
|
13
|
+
*/
|
|
4
14
|
readonly image?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Image pull policy for the container.
|
|
17
|
+
* @default 'IfNotPresent'
|
|
18
|
+
*/
|
|
5
19
|
readonly imagePullPolicy?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Number of pod replicas to run.
|
|
22
|
+
* @default 2
|
|
23
|
+
*/
|
|
6
24
|
readonly replicas?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Maximum number of pods that can be unavailable during updates.
|
|
27
|
+
* Can be an absolute number (e.g., 1) or a percentage (e.g., '50%').
|
|
28
|
+
* Used in PodDisruptionBudget if specified.
|
|
29
|
+
* @default - undefined (not set)
|
|
30
|
+
*/
|
|
7
31
|
readonly maxUnavailable?: number | string;
|
|
32
|
+
/**
|
|
33
|
+
* Minimum number of pods that must be available during updates.
|
|
34
|
+
* Can be an absolute number (e.g., 1) or a percentage (e.g., '50%').
|
|
35
|
+
* Used in PodDisruptionBudget if specified.
|
|
36
|
+
* @default - undefined (not set)
|
|
37
|
+
*/
|
|
8
38
|
readonly minAvailable?: number | string;
|
|
39
|
+
/**
|
|
40
|
+
* CPU limit for the container.
|
|
41
|
+
* @example '500m' or '1' or '2000m'
|
|
42
|
+
* @default '500m' for both backend and frontend
|
|
43
|
+
*/
|
|
9
44
|
readonly limitCpu?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Memory limit for the container.
|
|
47
|
+
* @example '512Mi' or '1Gi'
|
|
48
|
+
* @default '512Mi' for backend, '1Gi' for frontend
|
|
49
|
+
*/
|
|
10
50
|
readonly limitMemory?: string;
|
|
51
|
+
/**
|
|
52
|
+
* CPU request for the container.
|
|
53
|
+
* @example '200m' or '0.5'
|
|
54
|
+
* @default '200m'
|
|
55
|
+
*/
|
|
11
56
|
readonly requestCpu?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Memory request for the container.
|
|
59
|
+
* @example '256Mi' or '512Mi'
|
|
60
|
+
* @default '256Mi'
|
|
61
|
+
*/
|
|
12
62
|
readonly requestMemory?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Environment variables to set in the container.
|
|
65
|
+
* Use cdk8s-plus-30 Env class to define variables and sources.
|
|
66
|
+
* @default - undefined (no additional environment variables)
|
|
67
|
+
*/
|
|
13
68
|
readonly environment?: kplus.Env;
|
|
69
|
+
/**
|
|
70
|
+
* Enable readiness probe for the container.
|
|
71
|
+
* Readiness probes determine when a container is ready to accept traffic.
|
|
72
|
+
* @default true
|
|
73
|
+
*/
|
|
14
74
|
readonly readinessEnabled?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Number of seconds after container start before readiness probe is initiated.
|
|
77
|
+
* @default 10
|
|
78
|
+
*/
|
|
15
79
|
readonly readinessInitialDelaySeconds?: number;
|
|
16
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Number of seconds after which the readiness probe times out.
|
|
82
|
+
* @default 15
|
|
83
|
+
*/
|
|
84
|
+
readonly readinessTimeoutSeconds?: number;
|
|
85
|
+
/**
|
|
86
|
+
* How often (in seconds) to perform the readiness probe.
|
|
87
|
+
* @default 10
|
|
88
|
+
*/
|
|
17
89
|
readonly readinessPeriodSeconds?: number;
|
|
90
|
+
/**
|
|
91
|
+
* Minimum consecutive successes for the readiness probe to be considered successful.
|
|
92
|
+
* @default 1
|
|
93
|
+
*/
|
|
18
94
|
readonly readinessSuccessThreshold?: number;
|
|
95
|
+
/**
|
|
96
|
+
* Minimum consecutive failures for the readiness probe to be considered failed.
|
|
97
|
+
* @default 3
|
|
98
|
+
*/
|
|
19
99
|
readonly readinessFailureThreshold?: number;
|
|
100
|
+
/**
|
|
101
|
+
* Enable liveness probe for the container.
|
|
102
|
+
* Liveness probes determine when to restart a container.
|
|
103
|
+
* Recommended: true for frontend, false for backend (Zope has its own recovery).
|
|
104
|
+
* @default false
|
|
105
|
+
*/
|
|
20
106
|
readonly livenessEnabled?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Number of seconds after container start before liveness probe is initiated.
|
|
109
|
+
* @default 30
|
|
110
|
+
*/
|
|
21
111
|
readonly livenessInitialDelaySeconds?: number;
|
|
22
|
-
|
|
112
|
+
/**
|
|
113
|
+
* Number of seconds after which the liveness probe times out.
|
|
114
|
+
* @default 5
|
|
115
|
+
*/
|
|
116
|
+
readonly livenessTimeoutSeconds?: number;
|
|
117
|
+
/**
|
|
118
|
+
* How often (in seconds) to perform the liveness probe.
|
|
119
|
+
* @default 10
|
|
120
|
+
*/
|
|
23
121
|
readonly livenessPeriodSeconds?: number;
|
|
122
|
+
/**
|
|
123
|
+
* Minimum consecutive successes for the liveness probe to be considered successful.
|
|
124
|
+
* @default 1
|
|
125
|
+
*/
|
|
24
126
|
readonly livenessSuccessThreshold?: number;
|
|
127
|
+
/**
|
|
128
|
+
* Minimum consecutive failures for the liveness probe to be considered failed.
|
|
129
|
+
* @default 3
|
|
130
|
+
*/
|
|
25
131
|
readonly livenessFailureThreshold?: number;
|
|
132
|
+
/**
|
|
133
|
+
* Annotations to add to the Deployment metadata.
|
|
134
|
+
* @example { 'deployment.kubernetes.io/revision': '1' }
|
|
135
|
+
* @default - no additional annotations
|
|
136
|
+
*/
|
|
137
|
+
readonly annotations?: {
|
|
138
|
+
[name: string]: string;
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* Annotations to add to the Pod template metadata.
|
|
142
|
+
* Common for Prometheus, Istio, backup policies, etc.
|
|
143
|
+
* @example { 'prometheus.io/scrape': 'true', 'prometheus.io/port': '8080' }
|
|
144
|
+
* @default - no additional annotations
|
|
145
|
+
*/
|
|
146
|
+
readonly podAnnotations?: {
|
|
147
|
+
[name: string]: string;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Annotations to add to the Service metadata.
|
|
151
|
+
* Common for external-dns, load balancers, service mesh, etc.
|
|
152
|
+
* @example { 'external-dns.alpha.kubernetes.io/hostname': 'plone.example.com' }
|
|
153
|
+
* @default - no additional annotations
|
|
154
|
+
*/
|
|
155
|
+
readonly serviceAnnotations?: {
|
|
156
|
+
[name: string]: string;
|
|
157
|
+
};
|
|
26
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Plone deployment variants.
|
|
161
|
+
*/
|
|
27
162
|
export declare enum PloneVariant {
|
|
163
|
+
/**
|
|
164
|
+
* Volto variant: ReactJS frontend (Volto) with REST API backend.
|
|
165
|
+
* Deploys both frontend and backend services.
|
|
166
|
+
*/
|
|
28
167
|
VOLTO = "volto",
|
|
168
|
+
/**
|
|
169
|
+
* Classic UI variant: Traditional Plone with server-side rendering.
|
|
170
|
+
* Deploys only the backend service.
|
|
171
|
+
*/
|
|
29
172
|
CLASSICUI = "classicui"
|
|
30
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Main configuration options for Plone deployment.
|
|
176
|
+
*/
|
|
31
177
|
export interface PloneOptions {
|
|
178
|
+
/**
|
|
179
|
+
* Version string for labeling the deployment.
|
|
180
|
+
* This is used in Kubernetes labels and doesn't affect the actual image versions.
|
|
181
|
+
* @default 'undefined'
|
|
182
|
+
*/
|
|
32
183
|
readonly version?: string;
|
|
184
|
+
/**
|
|
185
|
+
* Plone site ID in the ZODB.
|
|
186
|
+
* This is used to construct the internal API path for Volto frontend.
|
|
187
|
+
* @default 'Plone'
|
|
188
|
+
*/
|
|
33
189
|
readonly siteId?: string;
|
|
190
|
+
/**
|
|
191
|
+
* Plone deployment variant to use.
|
|
192
|
+
* @default PloneVariant.VOLTO
|
|
193
|
+
*/
|
|
34
194
|
readonly variant?: PloneVariant;
|
|
195
|
+
/**
|
|
196
|
+
* Backend (Plone API) configuration.
|
|
197
|
+
* @default {} (uses default values from PloneBaseOptions)
|
|
198
|
+
*/
|
|
35
199
|
readonly backend?: PloneBaseOptions;
|
|
200
|
+
/**
|
|
201
|
+
* Frontend (Volto) configuration.
|
|
202
|
+
* Only used when variant is PloneVariant.VOLTO.
|
|
203
|
+
* @default {} (uses default values from PloneBaseOptions)
|
|
204
|
+
*/
|
|
36
205
|
readonly frontend?: PloneBaseOptions;
|
|
206
|
+
/**
|
|
207
|
+
* Names of Kubernetes secrets to use for pulling private container images.
|
|
208
|
+
* These secrets must exist in the same namespace as the deployment.
|
|
209
|
+
* @example ['my-registry-secret']
|
|
210
|
+
* @default [] (no image pull secrets)
|
|
211
|
+
*/
|
|
37
212
|
readonly imagePullSecrets?: string[];
|
|
38
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Plone construct for deploying Plone CMS to Kubernetes.
|
|
216
|
+
*
|
|
217
|
+
* This construct creates all necessary Kubernetes resources for running Plone:
|
|
218
|
+
* - Deployment(s) for backend (and optionally frontend)
|
|
219
|
+
* - Service(s) for network access
|
|
220
|
+
* - Optional PodDisruptionBudget for high availability
|
|
221
|
+
*
|
|
222
|
+
* Supports two deployment variants:
|
|
223
|
+
* - VOLTO: Modern React frontend with REST API backend (default)
|
|
224
|
+
* - CLASSICUI: Traditional server-side rendered Plone
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* new Plone(chart, 'my-plone', {
|
|
228
|
+
* variant: PloneVariant.VOLTO,
|
|
229
|
+
* backend: {
|
|
230
|
+
* image: 'plone/plone-backend:6.0.10',
|
|
231
|
+
* replicas: 3,
|
|
232
|
+
* },
|
|
233
|
+
* frontend: {
|
|
234
|
+
* image: 'plone/plone-frontend:16.0.0',
|
|
235
|
+
* },
|
|
236
|
+
* });
|
|
237
|
+
*/
|
|
39
238
|
export declare class Plone extends Construct {
|
|
239
|
+
/**
|
|
240
|
+
* Name of the backend Kubernetes service.
|
|
241
|
+
* Use this to reference the backend service from other constructs.
|
|
242
|
+
*/
|
|
40
243
|
readonly backendServiceName: string;
|
|
244
|
+
/**
|
|
245
|
+
* Name of the frontend Kubernetes service.
|
|
246
|
+
* Only set when variant is VOLTO, otherwise undefined.
|
|
247
|
+
*/
|
|
41
248
|
readonly frontendServiceName: string | undefined;
|
|
249
|
+
/**
|
|
250
|
+
* The deployment variant being used (VOLTO or CLASSICUI).
|
|
251
|
+
*/
|
|
42
252
|
readonly variant: PloneVariant;
|
|
253
|
+
/**
|
|
254
|
+
* The Plone site ID in ZODB.
|
|
255
|
+
*/
|
|
43
256
|
readonly siteId: string;
|
|
44
257
|
constructor(scope: Construct, id: string, options?: PloneOptions);
|
|
45
258
|
}
|