@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
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PloneDeployment = void 0;
|
|
4
|
+
const cdk8s_1 = require("cdk8s");
|
|
5
|
+
const kplus = require("cdk8s-plus-24");
|
|
6
|
+
const constructs_1 = require("constructs");
|
|
7
|
+
const k8s = require("./imports/k8s");
|
|
8
|
+
const pdb_1 = require("./pdb");
|
|
9
|
+
class PloneDeployment extends constructs_1.Construct {
|
|
10
|
+
constructor(scope, id, options) {
|
|
11
|
+
super(scope, id);
|
|
12
|
+
const image = options.image ?? {};
|
|
13
|
+
const replicas = options.replicas ?? 2;
|
|
14
|
+
const label = { app: cdk8s_1.Names.toLabelValue(this) };
|
|
15
|
+
const optionLabels = options.labels ?? {};
|
|
16
|
+
const deploymentLabels = {
|
|
17
|
+
'app.kubernetes.io/name': optionLabels['app.kubernetes.io/name'] + '-deployment',
|
|
18
|
+
'app.kubernetes.io/component': optionLabels['app.kubernetes.io/component'] ?? '' + '-deployment',
|
|
19
|
+
};
|
|
20
|
+
const template_labels = {
|
|
21
|
+
...optionLabels,
|
|
22
|
+
...label,
|
|
23
|
+
'app.kubernetes.io/part-of': 'plone',
|
|
24
|
+
'app.kubernetes.io/managed-by': 'cdk8s-plone',
|
|
25
|
+
};
|
|
26
|
+
const kpEnv = options.environment ?? new kplus.Env([], {});
|
|
27
|
+
var env = [];
|
|
28
|
+
var envFrom = [];
|
|
29
|
+
for (const name in kpEnv.variables) {
|
|
30
|
+
env.push({ name: name, value: kpEnv.variables[name].value });
|
|
31
|
+
}
|
|
32
|
+
// for (const source in kpEnv.sources) {
|
|
33
|
+
// envFrom.push({ configMapRef: source.configMap, prefix: source.prefix, secretRef: source.sec });
|
|
34
|
+
// }
|
|
35
|
+
var ploneContainerSpec = {
|
|
36
|
+
name: id + '-container', // here the namespaced name shold be used, but how?
|
|
37
|
+
image: image.image,
|
|
38
|
+
imagePullPolicy: image.imagePullPolicy,
|
|
39
|
+
env: env,
|
|
40
|
+
envFrom: envFrom,
|
|
41
|
+
resources: {
|
|
42
|
+
limits: {
|
|
43
|
+
cpu: k8s.Quantity.fromNumber(options.limitCpu ?? 1),
|
|
44
|
+
memory: k8s.Quantity.fromString(options.limitMemory ?? '1Gi'),
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
livenessProbe: options.livenessProbe ?? {},
|
|
48
|
+
readinessProbe: options.readinessProbe ?? {},
|
|
49
|
+
};
|
|
50
|
+
const deploymentOptions = {
|
|
51
|
+
metadata: {
|
|
52
|
+
labels: deploymentLabels,
|
|
53
|
+
},
|
|
54
|
+
spec: {
|
|
55
|
+
replicas,
|
|
56
|
+
selector: {
|
|
57
|
+
matchLabels: label,
|
|
58
|
+
},
|
|
59
|
+
template: {
|
|
60
|
+
metadata: { labels: template_labels },
|
|
61
|
+
spec: {
|
|
62
|
+
imagePullSecrets: (image.imagePullSecrets ?? []).map((name) => ({ name: name })),
|
|
63
|
+
containers: [
|
|
64
|
+
ploneContainerSpec,
|
|
65
|
+
...options.sidecars ?? [],
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
new k8s.KubeDeployment(this, 'deployment', deploymentOptions);
|
|
72
|
+
if (options.pdb ?? false) {
|
|
73
|
+
const pdbOptions = options.pdb ?? {};
|
|
74
|
+
new pdb_1.PlonePDB(this, 'pdb', label, pdbOptions);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.PloneDeployment = PloneDeployment;
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXBsb3ltZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUE4QjtBQUM5Qix1Q0FBdUM7QUFDdkMsMkNBQXVDO0FBQ3ZDLHFDQUFxQztBQUNyQywrQkFBa0Q7QUFpR2xELE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQUU1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLE9BQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsYUFBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2hELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzFDLE1BQU0sZ0JBQWdCLEdBQUc7WUFDdkIsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsYUFBYTtZQUNoRiw2QkFBNkIsRUFBRSxZQUFZLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLEdBQUcsYUFBYTtTQUNqRyxDQUFDO1FBQ0YsTUFBTSxlQUFlLEdBQUc7WUFDdEIsR0FBRyxZQUFZO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsMkJBQTJCLEVBQUUsT0FBTztZQUNwQyw4QkFBOEIsRUFBRSxhQUFhO1NBQzlDLENBQUM7UUFDRixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxHQUFHLEdBQWlCLEVBQUUsQ0FBQztRQUMzQixJQUFJLE9BQU8sR0FBd0IsRUFBRSxDQUFDO1FBQ3RDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25DLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELHdDQUF3QztRQUN4QyxvR0FBb0c7UUFDcEcsSUFBSTtRQUNKLElBQUksa0JBQWtCLEdBQWtCO1lBQ3RDLElBQUksRUFBRSxFQUFFLEdBQUcsWUFBWSxFQUFFLG1EQUFtRDtZQUM1RSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLEdBQUcsRUFBRSxHQUFHO1lBQ1IsT0FBTyxFQUFFLE9BQU87WUFDaEIsU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRTtvQkFDTixHQUFHLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7b0JBQ25ELE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQztpQkFDOUQ7YUFDRjtZQUNELGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLEVBQUc7WUFDM0MsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksRUFBRztTQUM5QyxDQUFDO1FBQ0YsTUFBTSxpQkFBaUIsR0FBNEI7WUFDakQsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxnQkFBZ0I7YUFDekI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osUUFBUTtnQkFDUixRQUFRLEVBQUU7b0JBQ1IsV0FBVyxFQUFFLEtBQUs7aUJBQ25CO2dCQUNELFFBQVEsRUFBRTtvQkFDUixRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0osZ0JBQWdCLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7d0JBQ2hGLFVBQVUsRUFBRTs0QkFDVixrQkFBa0I7NEJBQ2xCLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFO3lCQUMxQjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFOUQsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO1lBQ3JDLElBQUksY0FBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF2RUQsMENBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmFtZXMgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgKiBhcyBrcGx1cyBmcm9tICdjZGs4cy1wbHVzLTI0JztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgazhzIGZyb20gJy4vaW1wb3J0cy9rOHMnO1xuaW1wb3J0IHsgUGxvbmVQREIsIFBsb25lUERCT3B0aW9ucyB9IGZyb20gJy4vcGRiJztcblxuZXhwb3J0IGludGVyZmFjZSBQbG9uZUltYWdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY3VzdG9tIGltYWdlIGZvciBQbG9uZSAuXG4gICAqIEBkZWZhdWx0IFwiXCJcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IFNlY3JldCB0byBwdWxsIGltYWdlIC5cbiAgICogQGRlZmF1bHQgXCJcIlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VQdWxsU2VjcmV0cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IFB1bGwgUG9saWN5IC5cbiAgICogQGRlZmF1bHQgXCJcIlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VQdWxsUG9saWN5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsb25lRGVwbG95bWVudE9wdGlvbnMge1xuICAvKipcbiAgICogU3BlY2lmeSBhIGN1c3RvbSBpbWFnZSBmb3IgUGxvbmUgLlxuICAgKiBAZGVmYXVsdCBcInBsb25lL3Bsb25lLWJhY2tlbmQ6bGF0ZXN0XCJcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlPzogUGxvbmVJbWFnZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYW4gZW52aXJvbm1lbnQgZm9yIFBsb25lIC5cbiAgICogQGRlZmF1bHQgLSBub25lXG4gICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzoga3BsdXMuRW52O1xuXG4gIC8qKlxuICogTnVtYmVyIG9mIHJlcGxpY2FzLlxuICogQGRlZmF1bHQgMlxuICovXG4gIHJlYWRvbmx5IHJlcGxpY2FzPzogbnVtYmVyO1xuXG4gIC8qKlxuICogQ1BVIGxpbWl0XG4gKiBAZGVmYXVsdCAxXG4gKi9cbiAgcmVhZG9ubHkgbGltaXRDcHU/OiBudW1iZXI7XG5cbiAgLyoqXG4gKiBtZW1vcnkgbGltaXRcbiAqIEBkZWZhdWx0IDFcbiAqL1xuICByZWFkb25seSBsaW1pdE1lbW9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogUG9ydCBudW1iZXIuXG4gICAqL1xuICByZWFkb25seSBwb3J0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEV4dHJhIGxhYmVscyB0byBhc3NvY2lhdGUgd2l0aCByZXNvdXJjZXMuXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWxzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEV4dHJhIGNvbnRhaW5lciBzcGVjIHRvIHVzZSBmb3IgcGxvZW5jb250YWluZXIuXG4gICAqIEBkZWZhdWx0IC0gW11cbiAgICovXG4gIHJlYWRvbmx5IHBsb25lQ29udGFpbmVyPzogazhzLkNvbnRhaW5lcjtcblxuICAvKipcbiAgICogU2lkZWNhciBjb250YWluZXIgc3BlYyB0byBhc3NvY2lhdGUgd2l0aCByZXNvdXJjZXMuXG4gICAqIEBkZWZhdWx0IC0gW11cbiAgICovXG4gIHJlYWRvbmx5IHNpZGVjYXJzPzogazhzLkNvbnRhaW5lcltdO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBQb2REaXNydXB0aW9uQnVnZGV0IGZvciB0aGUgZGVwbG95bWVudD9cbiAgICogSWYgZ2l2ZW5cbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBwZGI/OiBQbG9uZVBEQk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIExpdmVuZXNzIFByb2JlIGZvciB0aGUgcG9kLlxuICAgKiBAZGVmYXVsdCAtIGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbGl2ZW5lc3NQcm9iZT86IGs4cy5Qcm9iZTtcblxuICAvKipcbiAgICogUmVhZGluZXNzIFByb2JlIGZvciB0aGUgcG9kLlxuICAgKiBAZGVmYXVsdCAtIGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVhZGluZXNzUHJvYmU/OiBrOHMuUHJvYmU7XG5cbn1cblxuZXhwb3J0IGNsYXNzIFBsb25lRGVwbG95bWVudCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogUGxvbmVEZXBsb3ltZW50T3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgaW1hZ2UgPSBvcHRpb25zLmltYWdlID8/IHt9O1xuICAgIGNvbnN0IHJlcGxpY2FzID0gb3B0aW9ucy5yZXBsaWNhcyA/PyAyO1xuICAgIGNvbnN0IGxhYmVsID0geyBhcHA6IE5hbWVzLnRvTGFiZWxWYWx1ZSh0aGlzKSB9O1xuICAgIGNvbnN0IG9wdGlvbkxhYmVscyA9IG9wdGlvbnMubGFiZWxzID8/IHt9O1xuICAgIGNvbnN0IGRlcGxveW1lbnRMYWJlbHMgPSB7XG4gICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSc6IG9wdGlvbkxhYmVsc1snYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSddICsgJy1kZXBsb3ltZW50JyxcbiAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiBvcHRpb25MYWJlbHNbJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCddID8/ICcnICsgJy1kZXBsb3ltZW50JyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlX2xhYmVscyA9IHtcbiAgICAgIC4uLm9wdGlvbkxhYmVscyxcbiAgICAgIC4uLmxhYmVsLFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YnOiAncGxvbmUnLFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMtcGxvbmUnLFxuICAgIH07XG4gICAgY29uc3Qga3BFbnYgPSBvcHRpb25zLmVudmlyb25tZW50ID8/IG5ldyBrcGx1cy5FbnYoW10sIHt9KTtcbiAgICB2YXIgZW52OiBrOHMuRW52VmFyW10gPSBbXTtcbiAgICB2YXIgZW52RnJvbTogazhzLkVudkZyb21Tb3VyY2VbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgbmFtZSBpbiBrcEVudi52YXJpYWJsZXMpIHtcbiAgICAgIGVudi5wdXNoKHsgbmFtZTogbmFtZSwgdmFsdWU6IGtwRW52LnZhcmlhYmxlc1tuYW1lXS52YWx1ZSB9KTtcbiAgICB9XG4gICAgLy8gZm9yIChjb25zdCBzb3VyY2UgaW4ga3BFbnYuc291cmNlcykge1xuICAgIC8vICAgZW52RnJvbS5wdXNoKHsgY29uZmlnTWFwUmVmOiBzb3VyY2UuY29uZmlnTWFwLCBwcmVmaXg6IHNvdXJjZS5wcmVmaXgsIHNlY3JldFJlZjogc291cmNlLnNlYyB9KTtcbiAgICAvLyB9XG4gICAgdmFyIHBsb25lQ29udGFpbmVyU3BlYzogazhzLkNvbnRhaW5lciA9IHtcbiAgICAgIG5hbWU6IGlkICsgJy1jb250YWluZXInLCAvLyBoZXJlIHRoZSBuYW1lc3BhY2VkIG5hbWUgc2hvbGQgYmUgdXNlZCwgYnV0IGhvdz9cbiAgICAgIGltYWdlOiBpbWFnZS5pbWFnZSxcbiAgICAgIGltYWdlUHVsbFBvbGljeTogaW1hZ2UuaW1hZ2VQdWxsUG9saWN5LFxuICAgICAgZW52OiBlbnYsXG4gICAgICBlbnZGcm9tOiBlbnZGcm9tLFxuICAgICAgcmVzb3VyY2VzOiB7XG4gICAgICAgIGxpbWl0czoge1xuICAgICAgICAgIGNwdTogazhzLlF1YW50aXR5LmZyb21OdW1iZXIob3B0aW9ucy5saW1pdENwdSA/PyAxKSxcbiAgICAgICAgICBtZW1vcnk6IGs4cy5RdWFudGl0eS5mcm9tU3RyaW5nKG9wdGlvbnMubGltaXRNZW1vcnkgPz8gJzFHaScpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGxpdmVuZXNzUHJvYmU6IG9wdGlvbnMubGl2ZW5lc3NQcm9iZSA/PyB7IH0sXG4gICAgICByZWFkaW5lc3NQcm9iZTogb3B0aW9ucy5yZWFkaW5lc3NQcm9iZSA/PyB7IH0sXG4gICAgfTtcbiAgICBjb25zdCBkZXBsb3ltZW50T3B0aW9uczogazhzLkt1YmVEZXBsb3ltZW50UHJvcHMgPSB7XG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBsYWJlbHM6IGRlcGxveW1lbnRMYWJlbHMsXG4gICAgICB9LFxuICAgICAgc3BlYzoge1xuICAgICAgICByZXBsaWNhcyxcbiAgICAgICAgc2VsZWN0b3I6IHtcbiAgICAgICAgICBtYXRjaExhYmVsczogbGFiZWwsXG4gICAgICAgIH0sXG4gICAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgICAgbWV0YWRhdGE6IHsgbGFiZWxzOiB0ZW1wbGF0ZV9sYWJlbHMgfSxcbiAgICAgICAgICBzcGVjOiB7XG4gICAgICAgICAgICBpbWFnZVB1bGxTZWNyZXRzOiAoaW1hZ2UuaW1hZ2VQdWxsU2VjcmV0cyA/PyBbXSkubWFwKChuYW1lKSA9PiAoeyBuYW1lOiBuYW1lIH0pKSxcbiAgICAgICAgICAgIGNvbnRhaW5lcnM6IFtcbiAgICAgICAgICAgICAgcGxvbmVDb250YWluZXJTcGVjLFxuICAgICAgICAgICAgICAuLi5vcHRpb25zLnNpZGVjYXJzID8/IFtdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgbmV3IGs4cy5LdWJlRGVwbG95bWVudCh0aGlzLCAnZGVwbG95bWVudCcsIGRlcGxveW1lbnRPcHRpb25zKTtcblxuICAgIGlmIChvcHRpb25zLnBkYiA/PyBmYWxzZSkge1xuICAgICAgY29uc3QgcGRiT3B0aW9ucyA9IG9wdGlvbnMucGRiID8/IHt9O1xuICAgICAgbmV3IFBsb25lUERCKHRoaXMsICdwZGInLCBsYWJlbCwgcGRiT3B0aW9ucyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|