@bluedynamics/cdk8s-plone 0.0.15 → 0.0.17
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 +215 -3
- package/API.md +241 -0
- package/README.md +1 -8
- package/lib/httpcache.d.ts +29 -0
- package/lib/httpcache.js +93 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -2
- package/lib/plone.js +1 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
},
|
|
109
109
|
"name": "@bluedynamics/cdk8s-plone",
|
|
110
110
|
"readme": {
|
|
111
|
-
"markdown": "# CMS Plone Chart for CDK8S\n\nThis chart provides a library to bootstrap a Plone deployment on a Kubernetes cluster using the [CDK8S](https://cdk8s.io) framework.\n\nIt provides\n- backend (with `plone.volto` or Classic-UI)\n- frontend (Plone-Volto, a ReactJS based user interface)\n- varnish (optional)\n\n## Usage\n\nFor now have a look at the [example project](https://github.com/bluedynamics/cdk8s-plone-example)..\n\n\n## Development\n\nClone the repository and install the dependencies:\n\n```bash\nyarn install\n```\n\nThen run the following command to run the test:\n\n```bash\nnpx projen test\n```\n\n### WIP Checklist:\n\nEach step need to be implemented with tests!\n\n- [ ] Start Backend\n - [x] deployment\n - [x] service\n - [x] pdb\n - [ ] init container running plone-site-create\n - [x] lifecycle checks (readiness, liveness)\n - [x] generic way to inject sidecars\n- [ ] Start Frontend\n - [x] deployment\n - [x] service\n - [x] pdb\n - [x] lifecycle checks (readiness, liveness)\n - [ ] depend on ready/live backend (needed?)\n - [x] generic way to inject sidecars\n\n- [
|
|
111
|
+
"markdown": "# CMS Plone Chart for CDK8S\n\nThis chart provides a library to bootstrap a Plone deployment on a Kubernetes cluster using the [CDK8S](https://cdk8s.io) framework.\n\nIt provides\n- backend (with `plone.volto` or Classic-UI)\n- frontend (Plone-Volto, a ReactJS based user interface)\n- varnish (optional)\n\n## Usage\n\nFor now have a look at the [example project](https://github.com/bluedynamics/cdk8s-plone-example)..\n\n\n## Development\n\nClone the repository and install the dependencies:\n\n```bash\nyarn install\n```\n\nThen run the following command to run the test:\n\n```bash\nnpx projen test\n```\n\n### WIP Checklist:\n\nEach step need to be implemented with tests!\n\n- [ ] Start Backend\n - [x] deployment\n - [x] service\n - [x] pdb\n - [ ] init container running plone-site-create\n - [x] lifecycle checks (readiness, liveness)\n - [x] generic way to inject sidecars\n- [ ] Start Frontend\n - [x] deployment\n - [x] service\n - [x] pdb\n - [x] lifecycle checks (readiness, liveness)\n - [ ] depend on ready/live backend (needed?)\n - [x] generic way to inject sidecars\n\n- [x] Start Varnish (using kube-httcache)\n\n- [ ] Other Languages\n - [x] Check Python distribution\n - [ ] Check Java distribution\n - [ ] Check Go distribution"
|
|
112
112
|
},
|
|
113
113
|
"repository": {
|
|
114
114
|
"type": "git",
|
|
@@ -555,6 +555,218 @@
|
|
|
555
555
|
],
|
|
556
556
|
"symbolId": "src/plone:PloneBaseOptions"
|
|
557
557
|
},
|
|
558
|
+
"@bluedynamics/cdk8s-plone.PloneHttpcache": {
|
|
559
|
+
"assembly": "@bluedynamics/cdk8s-plone",
|
|
560
|
+
"base": "constructs.Construct",
|
|
561
|
+
"docs": {
|
|
562
|
+
"stability": "stable"
|
|
563
|
+
},
|
|
564
|
+
"fqn": "@bluedynamics/cdk8s-plone.PloneHttpcache",
|
|
565
|
+
"initializer": {
|
|
566
|
+
"docs": {
|
|
567
|
+
"stability": "stable"
|
|
568
|
+
},
|
|
569
|
+
"locationInModule": {
|
|
570
|
+
"filename": "src/httpcache.ts",
|
|
571
|
+
"line": 41
|
|
572
|
+
},
|
|
573
|
+
"parameters": [
|
|
574
|
+
{
|
|
575
|
+
"name": "scope",
|
|
576
|
+
"type": {
|
|
577
|
+
"fqn": "constructs.Construct"
|
|
578
|
+
}
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"name": "id",
|
|
582
|
+
"type": {
|
|
583
|
+
"primitive": "string"
|
|
584
|
+
}
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"name": "options",
|
|
588
|
+
"type": {
|
|
589
|
+
"fqn": "@bluedynamics/cdk8s-plone.PloneHttpcacheOptions"
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
]
|
|
593
|
+
},
|
|
594
|
+
"kind": "class",
|
|
595
|
+
"locationInModule": {
|
|
596
|
+
"filename": "src/httpcache.ts",
|
|
597
|
+
"line": 37
|
|
598
|
+
},
|
|
599
|
+
"name": "PloneHttpcache",
|
|
600
|
+
"properties": [
|
|
601
|
+
{
|
|
602
|
+
"docs": {
|
|
603
|
+
"stability": "stable"
|
|
604
|
+
},
|
|
605
|
+
"immutable": true,
|
|
606
|
+
"locationInModule": {
|
|
607
|
+
"filename": "src/httpcache.ts",
|
|
608
|
+
"line": 39
|
|
609
|
+
},
|
|
610
|
+
"name": "httpcacheServiceName",
|
|
611
|
+
"type": {
|
|
612
|
+
"primitive": "string"
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
],
|
|
616
|
+
"symbolId": "src/httpcache:PloneHttpcache"
|
|
617
|
+
},
|
|
618
|
+
"@bluedynamics/cdk8s-plone.PloneHttpcacheOptions": {
|
|
619
|
+
"assembly": "@bluedynamics/cdk8s-plone",
|
|
620
|
+
"datatype": true,
|
|
621
|
+
"docs": {
|
|
622
|
+
"stability": "stable"
|
|
623
|
+
},
|
|
624
|
+
"fqn": "@bluedynamics/cdk8s-plone.PloneHttpcacheOptions",
|
|
625
|
+
"kind": "interface",
|
|
626
|
+
"locationInModule": {
|
|
627
|
+
"filename": "src/httpcache.ts",
|
|
628
|
+
"line": 7
|
|
629
|
+
},
|
|
630
|
+
"name": "PloneHttpcacheOptions",
|
|
631
|
+
"properties": [
|
|
632
|
+
{
|
|
633
|
+
"abstract": true,
|
|
634
|
+
"docs": {
|
|
635
|
+
"default": "- none",
|
|
636
|
+
"stability": "stable",
|
|
637
|
+
"summary": "plone chart."
|
|
638
|
+
},
|
|
639
|
+
"immutable": true,
|
|
640
|
+
"locationInModule": {
|
|
641
|
+
"filename": "src/httpcache.ts",
|
|
642
|
+
"line": 12
|
|
643
|
+
},
|
|
644
|
+
"name": "plone",
|
|
645
|
+
"type": {
|
|
646
|
+
"fqn": "@bluedynamics/cdk8s-plone.Plone"
|
|
647
|
+
}
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"abstract": true,
|
|
651
|
+
"docs": {
|
|
652
|
+
"default": "- undefined",
|
|
653
|
+
"stability": "stable",
|
|
654
|
+
"summary": "existingSecret - Read admin credentials from user provided secret."
|
|
655
|
+
},
|
|
656
|
+
"immutable": true,
|
|
657
|
+
"locationInModule": {
|
|
658
|
+
"filename": "src/httpcache.ts",
|
|
659
|
+
"line": 27
|
|
660
|
+
},
|
|
661
|
+
"name": "existingSecret",
|
|
662
|
+
"optional": true,
|
|
663
|
+
"type": {
|
|
664
|
+
"primitive": "string"
|
|
665
|
+
}
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
"abstract": true,
|
|
669
|
+
"docs": {
|
|
670
|
+
"stability": "stable"
|
|
671
|
+
},
|
|
672
|
+
"immutable": true,
|
|
673
|
+
"locationInModule": {
|
|
674
|
+
"filename": "src/httpcache.ts",
|
|
675
|
+
"line": 31
|
|
676
|
+
},
|
|
677
|
+
"name": "limitCpu",
|
|
678
|
+
"optional": true,
|
|
679
|
+
"type": {
|
|
680
|
+
"primitive": "string"
|
|
681
|
+
}
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
"abstract": true,
|
|
685
|
+
"docs": {
|
|
686
|
+
"stability": "stable"
|
|
687
|
+
},
|
|
688
|
+
"immutable": true,
|
|
689
|
+
"locationInModule": {
|
|
690
|
+
"filename": "src/httpcache.ts",
|
|
691
|
+
"line": 32
|
|
692
|
+
},
|
|
693
|
+
"name": "limitMemory",
|
|
694
|
+
"optional": true,
|
|
695
|
+
"type": {
|
|
696
|
+
"primitive": "string"
|
|
697
|
+
}
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"abstract": true,
|
|
701
|
+
"docs": {
|
|
702
|
+
"stability": "stable"
|
|
703
|
+
},
|
|
704
|
+
"immutable": true,
|
|
705
|
+
"locationInModule": {
|
|
706
|
+
"filename": "src/httpcache.ts",
|
|
707
|
+
"line": 33
|
|
708
|
+
},
|
|
709
|
+
"name": "requestCpu",
|
|
710
|
+
"optional": true,
|
|
711
|
+
"type": {
|
|
712
|
+
"primitive": "string"
|
|
713
|
+
}
|
|
714
|
+
},
|
|
715
|
+
{
|
|
716
|
+
"abstract": true,
|
|
717
|
+
"docs": {
|
|
718
|
+
"stability": "stable"
|
|
719
|
+
},
|
|
720
|
+
"immutable": true,
|
|
721
|
+
"locationInModule": {
|
|
722
|
+
"filename": "src/httpcache.ts",
|
|
723
|
+
"line": 34
|
|
724
|
+
},
|
|
725
|
+
"name": "requestMemory",
|
|
726
|
+
"optional": true,
|
|
727
|
+
"type": {
|
|
728
|
+
"primitive": "string"
|
|
729
|
+
}
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"abstract": true,
|
|
733
|
+
"docs": {
|
|
734
|
+
"default": "- file in config folder",
|
|
735
|
+
"stability": "stable",
|
|
736
|
+
"summary": "varnishVcl."
|
|
737
|
+
},
|
|
738
|
+
"immutable": true,
|
|
739
|
+
"locationInModule": {
|
|
740
|
+
"filename": "src/httpcache.ts",
|
|
741
|
+
"line": 17
|
|
742
|
+
},
|
|
743
|
+
"name": "varnishVcl",
|
|
744
|
+
"optional": true,
|
|
745
|
+
"type": {
|
|
746
|
+
"primitive": "string"
|
|
747
|
+
}
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"abstract": true,
|
|
751
|
+
"docs": {
|
|
752
|
+
"default": "- undefined",
|
|
753
|
+
"stability": "stable",
|
|
754
|
+
"summary": "varnishVclFile."
|
|
755
|
+
},
|
|
756
|
+
"immutable": true,
|
|
757
|
+
"locationInModule": {
|
|
758
|
+
"filename": "src/httpcache.ts",
|
|
759
|
+
"line": 22
|
|
760
|
+
},
|
|
761
|
+
"name": "varnishVclFile",
|
|
762
|
+
"optional": true,
|
|
763
|
+
"type": {
|
|
764
|
+
"primitive": "string"
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
],
|
|
768
|
+
"symbolId": "src/httpcache:PloneHttpcacheOptions"
|
|
769
|
+
},
|
|
558
770
|
"@bluedynamics/cdk8s-plone.PloneOptions": {
|
|
559
771
|
"assembly": "@bluedynamics/cdk8s-plone",
|
|
560
772
|
"datatype": true,
|
|
@@ -658,6 +870,6 @@
|
|
|
658
870
|
"symbolId": "src/plone:PloneOptions"
|
|
659
871
|
}
|
|
660
872
|
},
|
|
661
|
-
"version": "0.0.
|
|
662
|
-
"fingerprint": "
|
|
873
|
+
"version": "0.0.17",
|
|
874
|
+
"fingerprint": "A/xEzbcuWadoBZ9TFudPiB3EbdpLxmHlYL8Uv21wq5U="
|
|
663
875
|
}
|
package/API.md
CHANGED
|
@@ -137,6 +137,130 @@ public readonly frontendServiceName: string;
|
|
|
137
137
|
---
|
|
138
138
|
|
|
139
139
|
|
|
140
|
+
### PloneHttpcache <a name="PloneHttpcache" id="@bluedynamics/cdk8s-plone.PloneHttpcache"></a>
|
|
141
|
+
|
|
142
|
+
#### Initializers <a name="Initializers" id="@bluedynamics/cdk8s-plone.PloneHttpcache.Initializer"></a>
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
import { PloneHttpcache } from '@bluedynamics/cdk8s-plone'
|
|
146
|
+
|
|
147
|
+
new PloneHttpcache(scope: Construct, id: string, options: PloneHttpcacheOptions)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
| **Name** | **Type** | **Description** |
|
|
151
|
+
| --- | --- | --- |
|
|
152
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcache.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
|
|
153
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcache.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
|
|
154
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcache.Initializer.parameter.options">options</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions">PloneHttpcacheOptions</a></code> | *No description.* |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
##### `scope`<sup>Required</sup> <a name="scope" id="@bluedynamics/cdk8s-plone.PloneHttpcache.Initializer.parameter.scope"></a>
|
|
159
|
+
|
|
160
|
+
- *Type:* constructs.Construct
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
##### `id`<sup>Required</sup> <a name="id" id="@bluedynamics/cdk8s-plone.PloneHttpcache.Initializer.parameter.id"></a>
|
|
165
|
+
|
|
166
|
+
- *Type:* string
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
##### `options`<sup>Required</sup> <a name="options" id="@bluedynamics/cdk8s-plone.PloneHttpcache.Initializer.parameter.options"></a>
|
|
171
|
+
|
|
172
|
+
- *Type:* <a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions">PloneHttpcacheOptions</a>
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
177
|
+
|
|
178
|
+
| **Name** | **Description** |
|
|
179
|
+
| --- | --- |
|
|
180
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcache.toString">toString</a></code> | Returns a string representation of this construct. |
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
##### `toString` <a name="toString" id="@bluedynamics/cdk8s-plone.PloneHttpcache.toString"></a>
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
public toString(): string
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Returns a string representation of this construct.
|
|
191
|
+
|
|
192
|
+
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
|
|
193
|
+
|
|
194
|
+
| **Name** | **Description** |
|
|
195
|
+
| --- | --- |
|
|
196
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcache.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
##### `isConstruct` <a name="isConstruct" id="@bluedynamics/cdk8s-plone.PloneHttpcache.isConstruct"></a>
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
import { PloneHttpcache } from '@bluedynamics/cdk8s-plone'
|
|
204
|
+
|
|
205
|
+
PloneHttpcache.isConstruct(x: any)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Checks if `x` is a construct.
|
|
209
|
+
|
|
210
|
+
Use this method instead of `instanceof` to properly detect `Construct`
|
|
211
|
+
instances, even when the construct library is symlinked.
|
|
212
|
+
|
|
213
|
+
Explanation: in JavaScript, multiple copies of the `constructs` library on
|
|
214
|
+
disk are seen as independent, completely different libraries. As a
|
|
215
|
+
consequence, the class `Construct` in each copy of the `constructs` library
|
|
216
|
+
is seen as a different class, and an instance of one class will not test as
|
|
217
|
+
`instanceof` the other class. `npm install` will not create installations
|
|
218
|
+
like this, but users may manually symlink construct libraries together or
|
|
219
|
+
use a monorepo tool: in those cases, multiple copies of the `constructs`
|
|
220
|
+
library can be accidentally installed, and `instanceof` will behave
|
|
221
|
+
unpredictably. It is safest to avoid using `instanceof`, and using
|
|
222
|
+
this type-testing method instead.
|
|
223
|
+
|
|
224
|
+
###### `x`<sup>Required</sup> <a name="x" id="@bluedynamics/cdk8s-plone.PloneHttpcache.isConstruct.parameter.x"></a>
|
|
225
|
+
|
|
226
|
+
- *Type:* any
|
|
227
|
+
|
|
228
|
+
Any object.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
233
|
+
|
|
234
|
+
| **Name** | **Type** | **Description** |
|
|
235
|
+
| --- | --- | --- |
|
|
236
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcache.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
|
237
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcache.property.httpcacheServiceName">httpcacheServiceName</a></code> | <code>string</code> | *No description.* |
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
##### `node`<sup>Required</sup> <a name="node" id="@bluedynamics/cdk8s-plone.PloneHttpcache.property.node"></a>
|
|
242
|
+
|
|
243
|
+
```typescript
|
|
244
|
+
public readonly node: Node;
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
- *Type:* constructs.Node
|
|
248
|
+
|
|
249
|
+
The tree node.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
##### `httpcacheServiceName`<sup>Required</sup> <a name="httpcacheServiceName" id="@bluedynamics/cdk8s-plone.PloneHttpcache.property.httpcacheServiceName"></a>
|
|
254
|
+
|
|
255
|
+
```typescript
|
|
256
|
+
public readonly httpcacheServiceName: string;
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
- *Type:* string
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
|
|
140
264
|
## Structs <a name="Structs" id="Structs"></a>
|
|
141
265
|
|
|
142
266
|
### PloneBaseOptions <a name="PloneBaseOptions" id="@bluedynamics/cdk8s-plone.PloneBaseOptions"></a>
|
|
@@ -376,6 +500,123 @@ public readonly requestMemory: string;
|
|
|
376
500
|
|
|
377
501
|
---
|
|
378
502
|
|
|
503
|
+
### PloneHttpcacheOptions <a name="PloneHttpcacheOptions" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions"></a>
|
|
504
|
+
|
|
505
|
+
#### Initializer <a name="Initializer" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.Initializer"></a>
|
|
506
|
+
|
|
507
|
+
```typescript
|
|
508
|
+
import { PloneHttpcacheOptions } from '@bluedynamics/cdk8s-plone'
|
|
509
|
+
|
|
510
|
+
const ploneHttpcacheOptions: PloneHttpcacheOptions = { ... }
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
514
|
+
|
|
515
|
+
| **Name** | **Type** | **Description** |
|
|
516
|
+
| --- | --- | --- |
|
|
517
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.plone">plone</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.Plone">Plone</a></code> | plone chart. |
|
|
518
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.existingSecret">existingSecret</a></code> | <code>string</code> | existingSecret - Read admin credentials from user provided secret. |
|
|
519
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.limitCpu">limitCpu</a></code> | <code>string</code> | *No description.* |
|
|
520
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.limitMemory">limitMemory</a></code> | <code>string</code> | *No description.* |
|
|
521
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.requestCpu">requestCpu</a></code> | <code>string</code> | *No description.* |
|
|
522
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.requestMemory">requestMemory</a></code> | <code>string</code> | *No description.* |
|
|
523
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.varnishVcl">varnishVcl</a></code> | <code>string</code> | varnishVcl. |
|
|
524
|
+
| <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.varnishVclFile">varnishVclFile</a></code> | <code>string</code> | varnishVclFile. |
|
|
525
|
+
|
|
526
|
+
---
|
|
527
|
+
|
|
528
|
+
##### `plone`<sup>Required</sup> <a name="plone" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.plone"></a>
|
|
529
|
+
|
|
530
|
+
```typescript
|
|
531
|
+
public readonly plone: Plone;
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
- *Type:* <a href="#@bluedynamics/cdk8s-plone.Plone">Plone</a>
|
|
535
|
+
- *Default:* none
|
|
536
|
+
|
|
537
|
+
plone chart.
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
##### `existingSecret`<sup>Optional</sup> <a name="existingSecret" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.existingSecret"></a>
|
|
542
|
+
|
|
543
|
+
```typescript
|
|
544
|
+
public readonly existingSecret: string;
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
- *Type:* string
|
|
548
|
+
- *Default:* undefined
|
|
549
|
+
|
|
550
|
+
existingSecret - Read admin credentials from user provided secret.
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
##### `limitCpu`<sup>Optional</sup> <a name="limitCpu" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.limitCpu"></a>
|
|
555
|
+
|
|
556
|
+
```typescript
|
|
557
|
+
public readonly limitCpu: string;
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
- *Type:* string
|
|
561
|
+
|
|
562
|
+
---
|
|
563
|
+
|
|
564
|
+
##### `limitMemory`<sup>Optional</sup> <a name="limitMemory" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.limitMemory"></a>
|
|
565
|
+
|
|
566
|
+
```typescript
|
|
567
|
+
public readonly limitMemory: string;
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
- *Type:* string
|
|
571
|
+
|
|
572
|
+
---
|
|
573
|
+
|
|
574
|
+
##### `requestCpu`<sup>Optional</sup> <a name="requestCpu" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.requestCpu"></a>
|
|
575
|
+
|
|
576
|
+
```typescript
|
|
577
|
+
public readonly requestCpu: string;
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
- *Type:* string
|
|
581
|
+
|
|
582
|
+
---
|
|
583
|
+
|
|
584
|
+
##### `requestMemory`<sup>Optional</sup> <a name="requestMemory" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.requestMemory"></a>
|
|
585
|
+
|
|
586
|
+
```typescript
|
|
587
|
+
public readonly requestMemory: string;
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
- *Type:* string
|
|
591
|
+
|
|
592
|
+
---
|
|
593
|
+
|
|
594
|
+
##### `varnishVcl`<sup>Optional</sup> <a name="varnishVcl" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.varnishVcl"></a>
|
|
595
|
+
|
|
596
|
+
```typescript
|
|
597
|
+
public readonly varnishVcl: string;
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
- *Type:* string
|
|
601
|
+
- *Default:* file in config folder
|
|
602
|
+
|
|
603
|
+
varnishVcl.
|
|
604
|
+
|
|
605
|
+
---
|
|
606
|
+
|
|
607
|
+
##### `varnishVclFile`<sup>Optional</sup> <a name="varnishVclFile" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.varnishVclFile"></a>
|
|
608
|
+
|
|
609
|
+
```typescript
|
|
610
|
+
public readonly varnishVclFile: string;
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
- *Type:* string
|
|
614
|
+
- *Default:* undefined
|
|
615
|
+
|
|
616
|
+
varnishVclFile.
|
|
617
|
+
|
|
618
|
+
---
|
|
619
|
+
|
|
379
620
|
### PloneOptions <a name="PloneOptions" id="@bluedynamics/cdk8s-plone.PloneOptions"></a>
|
|
380
621
|
|
|
381
622
|
#### Initializer <a name="Initializer" id="@bluedynamics/cdk8s-plone.PloneOptions.Initializer"></a>
|
package/README.md
CHANGED
|
@@ -45,14 +45,7 @@ Each step need to be implemented with tests!
|
|
|
45
45
|
- [ ] depend on ready/live backend (needed?)
|
|
46
46
|
- [x] generic way to inject sidecars
|
|
47
47
|
|
|
48
|
-
- [
|
|
49
|
-
- [ ] deployment
|
|
50
|
-
- [ ] do not depend on backend/front end to be up, but configure to deliver from cache if possible.
|
|
51
|
-
- [ ] service
|
|
52
|
-
- [ ] pdb
|
|
53
|
-
- [ ] lifecycle checks (readiness, liveness)
|
|
54
|
-
- [ ] generic way to inject sidecars
|
|
55
|
-
- find a way to purge caches. based on kitconcept varnish purger? needs evaluation
|
|
48
|
+
- [x] Start Varnish (using kube-httcache)
|
|
56
49
|
|
|
57
50
|
- [ ] Other Languages
|
|
58
51
|
- [x] Check Python distribution
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Construct } from 'constructs';
|
|
2
|
+
import { Plone } from './plone';
|
|
3
|
+
export interface PloneHttpcacheOptions {
|
|
4
|
+
/**
|
|
5
|
+
* plone chart
|
|
6
|
+
* @default - none
|
|
7
|
+
*/
|
|
8
|
+
readonly plone: Plone;
|
|
9
|
+
/** varnishVcl
|
|
10
|
+
* @default - file in config folder
|
|
11
|
+
*/
|
|
12
|
+
readonly varnishVcl?: string;
|
|
13
|
+
/** varnishVclFile
|
|
14
|
+
* @default - undefined
|
|
15
|
+
*/
|
|
16
|
+
readonly varnishVclFile?: string | undefined;
|
|
17
|
+
/** existingSecret - Read admin credentials from user provided secret
|
|
18
|
+
* @default - undefined
|
|
19
|
+
*/
|
|
20
|
+
readonly existingSecret?: string;
|
|
21
|
+
readonly limitCpu?: string;
|
|
22
|
+
readonly limitMemory?: string;
|
|
23
|
+
readonly requestCpu?: string;
|
|
24
|
+
readonly requestMemory?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare class PloneHttpcache extends Construct {
|
|
27
|
+
readonly httpcacheServiceName: string;
|
|
28
|
+
constructor(scope: Construct, id: string, options: PloneHttpcacheOptions);
|
|
29
|
+
}
|
package/lib/httpcache.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PloneHttpcache = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const fs = require("fs");
|
|
7
|
+
const path = require("path");
|
|
8
|
+
const cdk8s_1 = require("cdk8s");
|
|
9
|
+
const constructs_1 = require("constructs");
|
|
10
|
+
class PloneHttpcache extends constructs_1.Construct {
|
|
11
|
+
constructor(scope, id, options) {
|
|
12
|
+
super(scope, id);
|
|
13
|
+
let varnishVcl;
|
|
14
|
+
if (!options.varnishVcl) {
|
|
15
|
+
let vclPath;
|
|
16
|
+
if (!options.varnishVclFile) {
|
|
17
|
+
vclPath = path.join(__dirname, 'config', 'varnish.tpl.vcl');
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
vclPath = options.varnishVclFile;
|
|
21
|
+
}
|
|
22
|
+
varnishVcl = fs.readFileSync(vclPath, 'utf8');
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
varnishVcl = options.varnishVcl;
|
|
26
|
+
}
|
|
27
|
+
const httpcache = new cdk8s_1.Helm(this, 'httpcache', {
|
|
28
|
+
// see https://github.com/mittwald/kube-httpcache/chart
|
|
29
|
+
repo: 'https://helm.mittwald.de',
|
|
30
|
+
chart: 'kube-httpcache',
|
|
31
|
+
values: {
|
|
32
|
+
replicaCount: 2,
|
|
33
|
+
cache: {
|
|
34
|
+
// need to looks at the frontendWatch, do we need it?
|
|
35
|
+
frontendWatch: false,
|
|
36
|
+
backendWatch: false,
|
|
37
|
+
existingSecret: options.existingSecret ?? undefined,
|
|
38
|
+
},
|
|
39
|
+
vclTemplate: varnishVcl,
|
|
40
|
+
extraEnvVars: [
|
|
41
|
+
{ name: 'BACKEND_SERVICE_NAME', value: options.plone.backendServiceName },
|
|
42
|
+
{ name: 'BACKEND_SERVICE_PORT', value: '8080' },
|
|
43
|
+
{ name: 'FRONTEND_SERVICE_NAME', value: options.plone.frontendServiceName },
|
|
44
|
+
{ name: 'FRONTEND_SERVICE_PORT', value: '3000' },
|
|
45
|
+
],
|
|
46
|
+
resources: {
|
|
47
|
+
limits: {
|
|
48
|
+
cpu: options.limitCpu || '500m',
|
|
49
|
+
memory: options.limitMemory || '500Mi',
|
|
50
|
+
},
|
|
51
|
+
requests: {
|
|
52
|
+
cpu: options.requestCpu || '100m',
|
|
53
|
+
memory: options.requestMemory || '100Mi',
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
rbac: {
|
|
57
|
+
enabled: false,
|
|
58
|
+
},
|
|
59
|
+
exporter: {
|
|
60
|
+
enabled: true,
|
|
61
|
+
resources: {
|
|
62
|
+
limits: {
|
|
63
|
+
cpu: '100m',
|
|
64
|
+
memory: '100Mi',
|
|
65
|
+
},
|
|
66
|
+
requests: {
|
|
67
|
+
cpu: '10m',
|
|
68
|
+
memory: '50Mi',
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
serviceMonitor: {
|
|
73
|
+
enabled: true,
|
|
74
|
+
scrapeSignaller: true,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
const httpcacheService = httpcache.apiObjects.find((construct) => {
|
|
79
|
+
if ((construct.kind === 'Service') && (construct.metadata.name?.endsWith('kube-httpcache'))) {
|
|
80
|
+
return construct.name;
|
|
81
|
+
}
|
|
82
|
+
return undefined;
|
|
83
|
+
});
|
|
84
|
+
if (httpcacheService === undefined) {
|
|
85
|
+
throw new Error('Could not find httpcache service');
|
|
86
|
+
}
|
|
87
|
+
this.httpcacheServiceName = httpcacheService.name;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.PloneHttpcache = PloneHttpcache;
|
|
91
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
92
|
+
PloneHttpcache[_a] = { fqn: "@bluedynamics/cdk8s-plone.PloneHttpcache", version: "0.0.17" };
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cGNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2h0dHBjYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsaUNBQTZCO0FBQzdCLDJDQUF1QztBQWlDdkMsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFJM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksVUFBa0IsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLElBQUksT0FBZSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUM5RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDbkMsQ0FBQztZQUNELFVBQVUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLFlBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzVDLHVEQUF1RDtZQUN2RCxJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsTUFBTSxFQUFFO2dCQUNOLFlBQVksRUFBRSxDQUFDO2dCQUNmLEtBQUssRUFBRTtvQkFDTCxxREFBcUQ7b0JBQ3JELGFBQWEsRUFBRSxLQUFLO29CQUNwQixZQUFZLEVBQUUsS0FBSztvQkFDbkIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUztpQkFDcEQ7Z0JBQ0QsV0FBVyxFQUFFLFVBQVU7Z0JBQ3ZCLFlBQVksRUFBRTtvQkFDWixFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRTtvQkFDekUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtvQkFDL0MsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUU7b0JBQzNFLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7aUJBQ2pEO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxNQUFNLEVBQUU7d0JBQ04sR0FBRyxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTTt3QkFDL0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTztxQkFDdkM7b0JBQ0QsUUFBUSxFQUFFO3dCQUNSLEdBQUcsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU07d0JBQ2pDLE1BQU0sRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLE9BQU87cUJBQ3pDO2lCQUNGO2dCQUNELElBQUksRUFBRTtvQkFDSixPQUFPLEVBQUUsS0FBSztpQkFDZjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLElBQUk7b0JBQ2IsU0FBUyxFQUFFO3dCQUNULE1BQU0sRUFBRTs0QkFDTixHQUFHLEVBQUUsTUFBTTs0QkFDWCxNQUFNLEVBQUUsT0FBTzt5QkFDaEI7d0JBQ0QsUUFBUSxFQUFFOzRCQUNSLEdBQUcsRUFBRSxLQUFLOzRCQUNWLE1BQU0sRUFBRSxNQUFNO3lCQUNmO3FCQUNGO2lCQUNGO2dCQUNELGNBQWMsRUFBRTtvQkFDZCxPQUFPLEVBQUUsSUFBSTtvQkFDYixlQUFlLEVBQUUsSUFBSTtpQkFDdEI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDNUYsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ3hCLENBQUM7WUFDRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFDRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUM7O0FBL0VILHdDQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBIZWxtIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBQbG9uZSB9IGZyb20gJy4vcGxvbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsb25lSHR0cGNhY2hlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBwbG9uZSBjaGFydFxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHBsb25lOiBQbG9uZTtcblxuICAvKiogdmFybmlzaFZjbFxuICAgKiBAZGVmYXVsdCAtIGZpbGUgaW4gY29uZmlnIGZvbGRlclxuICAgKi9cbiAgcmVhZG9ubHkgdmFybmlzaFZjbD86IHN0cmluZztcblxuICAvKiogdmFybmlzaFZjbEZpbGVcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHZhcm5pc2hWY2xGaWxlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBleGlzdGluZ1NlY3JldCAtIFJlYWQgYWRtaW4gY3JlZGVudGlhbHMgZnJvbSB1c2VyIHByb3ZpZGVkIHNlY3JldFxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAqL1xuICByZWFkb25seSBleGlzdGluZ1NlY3JldD86IHN0cmluZztcblxuXG4gIC8vIHJlc291cmNlc1xuICByZWFkb25seSBsaW1pdENwdT86IHN0cmluZztcbiAgcmVhZG9ubHkgbGltaXRNZW1vcnk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlcXVlc3RDcHU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlcXVlc3RNZW1vcnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQbG9uZUh0dHBjYWNoZSBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGh0dHBjYWNoZVNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogUGxvbmVIdHRwY2FjaGVPcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBsZXQgdmFybmlzaFZjbDogc3RyaW5nO1xuICAgIGlmICghb3B0aW9ucy52YXJuaXNoVmNsKSB7XG4gICAgICBsZXQgdmNsUGF0aDogc3RyaW5nO1xuICAgICAgaWYgKCFvcHRpb25zLnZhcm5pc2hWY2xGaWxlKSB7XG4gICAgICAgIHZjbFBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnY29uZmlnJywgJ3Zhcm5pc2gudHBsLnZjbCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmNsUGF0aCA9IG9wdGlvbnMudmFybmlzaFZjbEZpbGU7XG4gICAgICB9XG4gICAgICB2YXJuaXNoVmNsID0gZnMucmVhZEZpbGVTeW5jKHZjbFBhdGgsICd1dGY4Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhcm5pc2hWY2wgPSBvcHRpb25zLnZhcm5pc2hWY2w7XG4gICAgfVxuICAgIGNvbnN0IGh0dHBjYWNoZSA9IG5ldyBIZWxtKHRoaXMsICdodHRwY2FjaGUnLCB7XG4gICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21pdHR3YWxkL2t1YmUtaHR0cGNhY2hlL2NoYXJ0XG4gICAgICByZXBvOiAnaHR0cHM6Ly9oZWxtLm1pdHR3YWxkLmRlJyxcbiAgICAgIGNoYXJ0OiAna3ViZS1odHRwY2FjaGUnLFxuICAgICAgdmFsdWVzOiB7XG4gICAgICAgIHJlcGxpY2FDb3VudDogMixcbiAgICAgICAgY2FjaGU6IHtcbiAgICAgICAgICAvLyBuZWVkIHRvIGxvb2tzIGF0IHRoZSBmcm9udGVuZFdhdGNoLCBkbyB3ZSBuZWVkIGl0P1xuICAgICAgICAgIGZyb250ZW5kV2F0Y2g6IGZhbHNlLFxuICAgICAgICAgIGJhY2tlbmRXYXRjaDogZmFsc2UsXG4gICAgICAgICAgZXhpc3RpbmdTZWNyZXQ6IG9wdGlvbnMuZXhpc3RpbmdTZWNyZXQgPz8gdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgICB2Y2xUZW1wbGF0ZTogdmFybmlzaFZjbCxcbiAgICAgICAgZXh0cmFFbnZWYXJzOiBbXG4gICAgICAgICAgeyBuYW1lOiAnQkFDS0VORF9TRVJWSUNFX05BTUUnLCB2YWx1ZTogb3B0aW9ucy5wbG9uZS5iYWNrZW5kU2VydmljZU5hbWUgfSxcbiAgICAgICAgICB7IG5hbWU6ICdCQUNLRU5EX1NFUlZJQ0VfUE9SVCcsIHZhbHVlOiAnODA4MCcgfSxcbiAgICAgICAgICB7IG5hbWU6ICdGUk9OVEVORF9TRVJWSUNFX05BTUUnLCB2YWx1ZTogb3B0aW9ucy5wbG9uZS5mcm9udGVuZFNlcnZpY2VOYW1lIH0sXG4gICAgICAgICAgeyBuYW1lOiAnRlJPTlRFTkRfU0VSVklDRV9QT1JUJywgdmFsdWU6ICczMDAwJyB9LFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IHtcbiAgICAgICAgICBsaW1pdHM6IHtcbiAgICAgICAgICAgIGNwdTogb3B0aW9ucy5saW1pdENwdSB8fCAnNTAwbScsXG4gICAgICAgICAgICBtZW1vcnk6IG9wdGlvbnMubGltaXRNZW1vcnkgfHwgJzUwME1pJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVlc3RzOiB7XG4gICAgICAgICAgICBjcHU6IG9wdGlvbnMucmVxdWVzdENwdSB8fCAnMTAwbScsXG4gICAgICAgICAgICBtZW1vcnk6IG9wdGlvbnMucmVxdWVzdE1lbW9yeSB8fCAnMTAwTWknLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJiYWM6IHtcbiAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgZXhwb3J0ZXI6IHtcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHJlc291cmNlczoge1xuICAgICAgICAgICAgbGltaXRzOiB7XG4gICAgICAgICAgICAgIGNwdTogJzEwMG0nLFxuICAgICAgICAgICAgICBtZW1vcnk6ICcxMDBNaScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVxdWVzdHM6IHtcbiAgICAgICAgICAgICAgY3B1OiAnMTBtJyxcbiAgICAgICAgICAgICAgbWVtb3J5OiAnNTBNaScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZpY2VNb25pdG9yOiB7XG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBzY3JhcGVTaWduYWxsZXI6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGh0dHBjYWNoZVNlcnZpY2UgPSBodHRwY2FjaGUuYXBpT2JqZWN0cy5maW5kKChjb25zdHJ1Y3QpID0+IHtcbiAgICAgIGlmICgoY29uc3RydWN0LmtpbmQgPT09ICdTZXJ2aWNlJykgJiYgKGNvbnN0cnVjdC5tZXRhZGF0YS5uYW1lPy5lbmRzV2l0aCgna3ViZS1odHRwY2FjaGUnKSkpIHtcbiAgICAgICAgcmV0dXJuIGNvbnN0cnVjdC5uYW1lO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KTtcbiAgICBpZiAoaHR0cGNhY2hlU2VydmljZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGh0dHBjYWNoZSBzZXJ2aWNlJyk7XG4gICAgfVxuICAgIHRoaXMuaHR0cGNhY2hlU2VydmljZU5hbWUgPSBodHRwY2FjaGVTZXJ2aWNlLm5hbWU7XG4gIH1cbn0iXX0=
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Plone = void 0;
|
|
3
|
+
exports.PloneHttpcache = exports.Plone = void 0;
|
|
4
4
|
var plone_1 = require("./plone");
|
|
5
5
|
Object.defineProperty(exports, "Plone", { enumerable: true, get: function () { return plone_1.Plone; } });
|
|
6
|
-
|
|
6
|
+
var httpcache_1 = require("./httpcache");
|
|
7
|
+
Object.defineProperty(exports, "PloneHttpcache", { enumerable: true, get: function () { return httpcache_1.PloneHttpcache; } });
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWdFO0FBQXZELDhGQUFBLEtBQUssT0FBQTtBQUNkLHlDQUFvRTtBQUEzRCwyR0FBQSxjQUFjLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBQbG9uZSwgUGxvbmVPcHRpb25zLCBQbG9uZUJhc2VPcHRpb25zIH0gZnJvbSAnLi9wbG9uZSc7XG5leHBvcnQgeyBQbG9uZUh0dHBjYWNoZSwgUGxvbmVIdHRwY2FjaGVPcHRpb25zIH0gZnJvbSAnLi9odHRwY2FjaGUnO1xuIl19
|
package/lib/plone.js
CHANGED
|
@@ -149,5 +149,5 @@ class Plone extends constructs_1.Construct {
|
|
|
149
149
|
}
|
|
150
150
|
exports.Plone = Plone;
|
|
151
151
|
_a = JSII_RTTI_SYMBOL_1;
|
|
152
|
-
Plone[_a] = { fqn: "@bluedynamics/cdk8s-plone.Plone", version: "0.0.
|
|
152
|
+
Plone[_a] = { fqn: "@bluedynamics/cdk8s-plone.Plone", version: "0.0.17" };
|
|
153
153
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGxvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBOEI7QUFDOUIsdUNBQXVDO0FBQ3ZDLDJDQUF1QztBQUN2Qyw2Q0FBK0M7QUFDL0MsdUNBQW1EO0FBRW5ELHVDQUF5QztBQXNDekMsTUFBYSxLQUFNLFNBQVEsc0JBQVM7SUFLbEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxVQUF3QixFQUFFO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsMkVBQTJFO1FBQzNFLFVBQVU7UUFDVixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQztRQUV6QywyRUFBMkU7UUFDM0UsVUFBVTtRQUNWLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3RDLE1BQU0sYUFBYSxHQUFHO1lBQ3BCLHdCQUF3QixFQUFFLGVBQWU7WUFDekMsNkJBQTZCLEVBQUUsU0FBUztZQUN4QywyQkFBMkIsRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLFdBQVc7U0FDNUQsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztRQUV6QixVQUFVO1FBQ1YsTUFBTSxvQkFBb0IsR0FBc0I7WUFDOUMsSUFBSSxFQUFFLEdBQUc7WUFDVCxJQUFJLEVBQUUsaUJBQVcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1NBQzFDLENBQUM7UUFFRixNQUFNLG9CQUFvQixHQUFVO1lBQ2xDLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLDJCQUEyQixJQUFJLEVBQUU7WUFDOUQsY0FBYyxFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsSUFBSSxDQUFDO1lBQ25ELGFBQWEsRUFBRSxPQUFPLENBQUMscUJBQXFCLElBQUksRUFBRTtZQUNsRCxnQkFBZ0IsRUFBRSxP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QUFJLEVBQUU7Z0JBQ2hELGVBQWUsRUFBRSxRQUFRLENBQUMsZUFBZSxJQUFJLGNBQWM7YUFDNUQ7WUFDRCxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7WUFDM0IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLElBQUksTUFBTTtZQUNyQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsSUFBSSxLQUFLO1lBQzFDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU07WUFDeEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksT0FBTztZQUUvQyxHQUFHLEVBQUU7Z0JBQ0gsY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjLElBQUksU0FBUztnQkFDcEQsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZLElBQUksU0FBUzthQUNqRDtZQUNELElBQUksRUFBRSxZQUFZO1lBQ2xCLFdBQVcsRUFBRSxtQkFBbUI7WUFDaEMsYUFBYSxFQUFFLHFCQUFxQjtZQUNwQyxjQUFjLEVBQUUsc0JBQXNCO1NBQ3ZDLENBQUMsQ0FBQztRQUVILFVBQVU7UUFDVixNQUFNLGVBQWUsR0FBRyxJQUFJLHNCQUFZLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFO1lBQ3RFLE1BQU0sRUFBRTtnQkFDTix3QkFBd0IsRUFBRSx3QkFBd0I7Z0JBQ2xELDZCQUE2QixFQUFFLFNBQVM7YUFDekM7WUFDRCxVQUFVLEVBQUUsWUFBWTtZQUN4QixhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsYUFBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1NBQy9ELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO0lBQ2xELENBQUM7O0FBeEpILHNCQXlKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hbWVzIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0ICogYXMga3BsdXMgZnJvbSAnY2RrOHMtcGx1cy0yNCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFBsb25lRGVwbG95bWVudCB9IGZyb20gJy4vZGVwbG95bWVudCc7XG5pbXBvcnQgeyBQcm9iZSwgSW50T3JTdHJpbmcgfSBmcm9tICcuL2ltcG9ydHMvazhzJztcbmltcG9ydCAqIGFzIGs4cyBmcm9tICcuL2ltcG9ydHMvazhzJztcbmltcG9ydCB7IFBsb25lU2VydmljZSB9IGZyb20gJy4vc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxvbmVCYXNlT3B0aW9ucyB7XG4gIC8vIGltYWdlXG4gIHJlYWRvbmx5IGltYWdlPzogc3RyaW5nO1xuICByZWFkb25seSBpbWFnZVB1bGxQb2xpY3k/OiBzdHJpbmc7XG4gIC8vIHJlcGxpY2FzXG4gIHJlYWRvbmx5IHJlcGxpY2FzPzogbnVtYmVyO1xuICByZWFkb25seSBtYXhVbmF2YWlsYWJsZT86IG51bWJlciB8IHN0cmluZztcbiAgcmVhZG9ubHkgbWluQXZhaWxhYmxlPzogbnVtYmVyIHwgc3RyaW5nO1xuICAvLyByZXNvdXJjZXNcbiAgcmVhZG9ubHkgbGltaXRDcHU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxpbWl0TWVtb3J5Pzogc3RyaW5nO1xuICByZWFkb25seSByZXF1ZXN0Q3B1Pzogc3RyaW5nO1xuICByZWFkb25seSByZXF1ZXN0TWVtb3J5Pzogc3RyaW5nO1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IGtwbHVzLkVudjtcbiAgLy8gcmVhZGluZXNzIFByb2JlXG4gIHJlYWRvbmx5IHJlYWRpbmVzc0luaXRpYWxEZWxheVNlY29uZHM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHJlYWRpbmVzc0lpbWVvdXRTZWNvbmRzPzogbnVtYmVyO1xuICByZWFkb25seSByZWFkaW5lc3NQZXJpb2RTZWNvbmRzPzogbnVtYmVyO1xuICByZWFkb25seSByZWFkaW5lc3NTdWNjZXNzVGhyZXNob2xkPzogbnVtYmVyO1xuICByZWFkb25seSByZWFkaW5lc3NGYWlsdXJlVGhyZXNob2xkPzogbnVtYmVyO1xuICAvLyBsaXZlbmVzcyBQcm9iZVxuICByZWFkb25seSBsaXZlbmVzc0luaXRpYWxEZWxheVNlY29uZHM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGxpdmVuZXNzSWltZW91dFNlY29uZHM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGxpdmVuZXNzUGVyaW9kU2Vjb25kcz86IG51bWJlcjtcbiAgcmVhZG9ubHkgbGl2ZW5lc3NTdWNjZXNzVGhyZXNob2xkPzogbnVtYmVyO1xuICByZWFkb25seSBsaXZlbmVzc0ZhaWx1cmVUaHJlc2hvbGQ/OiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBsb25lT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNpdGVJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgYmFja2VuZD86IFBsb25lQmFzZU9wdGlvbnM7XG4gIHJlYWRvbmx5IGZyb250ZW5kPzogUGxvbmVCYXNlT3B0aW9ucztcbiAgcmVhZG9ubHkgaW1hZ2VQdWxsU2VjcmV0cz86IHN0cmluZ1tdO1xuXG59XG5cbmV4cG9ydCBjbGFzcyBQbG9uZSBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGJhY2tlbmRTZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZnJvbnRlbmRTZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBsb25lT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEdlbmVyYWxcbiAgICBjb25zdCBzaXRlSWQgPSBvcHRpb25zLnNpdGVJZCA/PyAnUGxvbmUnO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQmFja2VuZFxuICAgIGNvbnN0IGJhY2tlbmQgPSBvcHRpb25zLmJhY2tlbmQgPz8ge307XG4gICAgY29uc3QgYmFja2VuZExhYmVscyA9IHtcbiAgICAgICdhcHAua3ViZXJuZXRlcy5pby9uYW1lJzogJ3Bsb25lLWJhY2tlbmQnLFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICdiYWNrZW5kJyxcbiAgICAgICdhcHAua3ViZXJuZXRlcy5pby92ZXJzaW9uJzogb3B0aW9ucy52ZXJzaW9uID8/ICd1bmRlZmluZWQnLFxuICAgIH07XG4gICAgY29uc3QgYmFja2VuZFBvcnQgPSA4MDgwO1xuXG4gICAgLy8gUHJvYmluZ1xuICAgIGNvbnN0IGJhY2tlbmRBY3Rpb25IdHRwR2V0OiBrOHMuSHR0cEdldEFjdGlvbiA9IHtcbiAgICAgIHBhdGg6ICcvJyxcbiAgICAgIHBvcnQ6IEludE9yU3RyaW5nLmZyb21OdW1iZXIoYmFja2VuZFBvcnQpLFxuICAgIH07XG5cbiAgICBjb25zdCBiYWNrZW5kTGl2ZW5lc3NQcm9iZTogUHJvYmUgPSB7XG4gICAgICBodHRwR2V0OiBiYWNrZW5kQWN0aW9uSHR0cEdldCxcbiAgICAgIGluaXRpYWxEZWxheVNlY29uZHM6IGJhY2tlbmQubGl2ZW5lc3NJbml0aWFsRGVsYXlTZWNvbmRzID8/IDMwLFxuICAgICAgdGltZW91dFNlY29uZHM6IGJhY2tlbmQubGl2ZW5lc3NJaW1lb3V0U2Vjb25kcyA/PyA1LFxuICAgICAgcGVyaW9kU2Vjb25kczogYmFja2VuZC5saXZlbmVzc1BlcmlvZFNlY29uZHMgPz8gMTAsXG4gICAgICBzdWNjZXNzVGhyZXNob2xkOiBiYWNrZW5kLmxpdmVuZXNzU3VjY2Vzc1RocmVzaG9sZCA/PyAxLFxuICAgICAgZmFpbHVyZVRocmVzaG9sZDogYmFja2VuZC5saXZlbmVzc0ZhaWx1cmVUaHJlc2hvbGQgPz8gMyxcbiAgICB9O1xuICAgIGNvbnN0IGJhY2tlbmRSZWFkaW5lc3NQcm9iZTogUHJvYmUgPSB7XG4gICAgICBodHRwR2V0OiBiYWNrZW5kQWN0aW9uSHR0cEdldCxcbiAgICAgIGluaXRpYWxEZWxheVNlY29uZHM6IGJhY2tlbmQucmVhZGluZXNzSW5pdGlhbERlbGF5U2Vjb25kcyA/PyAxMCxcbiAgICAgIHRpbWVvdXRTZWNvbmRzOiBiYWNrZW5kLnJlYWRpbmVzc0lpbWVvdXRTZWNvbmRzID8/IDE1LFxuICAgICAgcGVyaW9kU2Vjb25kczogYmFja2VuZC5yZWFkaW5lc3NQZXJpb2RTZWNvbmRzID8/IDEwLFxuICAgICAgc3VjY2Vzc1RocmVzaG9sZDogYmFja2VuZC5yZWFkaW5lc3NTdWNjZXNzVGhyZXNob2xkID8/IDEsXG4gICAgICBmYWlsdXJlVGhyZXNob2xkOiBiYWNrZW5kLnJlYWRpbmVzc0ZhaWx1cmVUaHJlc2hvbGQgPz8gMyxcbiAgICB9O1xuXG4gICAgLy8gRGVwbG95bWVudFxuICAgIGNvbnN0IGJhY2tlbmREZXBsb3ltZW50ID0gbmV3IFBsb25lRGVwbG95bWVudCh0aGlzLCAnYmFja2VuZCcsIHtcbiAgICAgIGxhYmVsczogYmFja2VuZExhYmVscyxcbiAgICAgIGltYWdlOiB7XG4gICAgICAgIGltYWdlOiBiYWNrZW5kLmltYWdlID8/ICdwbG9uZS9wbG9uZS1iYWNrZW5kOmxhdGVzdCcsXG4gICAgICAgIGltYWdlUHVsbFNlY3JldHM6IG9wdGlvbnMuaW1hZ2VQdWxsU2VjcmV0cyA/PyBbXSxcbiAgICAgICAgaW1hZ2VQdWxsUG9saWN5OiBiYWNrZW5kLmltYWdlUHVsbFBvbGljeSA/PyAnSWZOb3RQcmVzZW50JyxcbiAgICAgIH0sXG4gICAgICByZXBsaWNhczogYmFja2VuZC5yZXBsaWNhcyxcbiAgICAgIGxpbWl0Q3B1OiBiYWNrZW5kLmxpbWl0Q3B1ID8/ICc1MDBtJyxcbiAgICAgIGxpbWl0TWVtb3J5OiBiYWNrZW5kLmxpbWl0TWVtb3J5ID8/ICc1MTJNaScsXG4gICAgICByZXF1ZXN0Q3B1OiBiYWNrZW5kLnJlcXVlc3RDcHUgPz8gJzIwMG0nLFxuICAgICAgcmVxdWVzdE1lbW9yeTogYmFja2VuZC5yZXF1ZXN0TWVtb3J5ID8/ICcyNTZNaScsXG4gICAgICBwZGI6IHtcbiAgICAgICAgbWF4VW5hdmFpbGFibGU6IGJhY2tlbmQubWF4VW5hdmFpbGFibGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICBtaW5BdmFpbGFibGU6IGJhY2tlbmQubWluQXZhaWxhYmxlID8/IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBwb3J0OiBiYWNrZW5kUG9ydCxcbiAgICAgIGVudmlyb25tZW50OiBiYWNrZW5kLmVudmlyb25tZW50LFxuICAgICAgbGl2ZW5lc3NQcm9iZTogYmFja2VuZExpdmVuZXNzUHJvYmUsXG4gICAgICByZWFkaW5lc3NQcm9iZTogYmFja2VuZFJlYWRpbmVzc1Byb2JlLFxuICAgIH0pO1xuXG4gICAgLy8gU2VydmljZVxuICAgIGNvbnN0IGJhY2tlbmRTZXJ2aWNlID0gbmV3IFBsb25lU2VydmljZShiYWNrZW5kRGVwbG95bWVudCwgJ3NlcnZpY2UnLCB7XG4gICAgICBsYWJlbHM6IHtcbiAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL25hbWUnOiAncGxvbmUtYmFja2VuZC1zZXJ2aWNlJyxcbiAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICdzZXJ2aWNlJyxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRQb3J0OiBiYWNrZW5kUG9ydCxcbiAgICAgIHNlbGVjdG9yTGFiZWw6IHsgYXBwOiBOYW1lcy50b0xhYmVsVmFsdWUoYmFja2VuZERlcGxveW1lbnQpIH0sXG4gICAgfSk7XG4gICAgdGhpcy5iYWNrZW5kU2VydmljZU5hbWUgPSBiYWNrZW5kU2VydmljZS5uYW1lO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gRnJvbnRlbmRcbiAgICBjb25zdCBmcm9udGVuZCA9IG9wdGlvbnMuZnJvbnRlbmQgPz8ge307XG4gICAgY29uc3QgZnJvbnRlbmRQb3J0ID0gMzAwMDtcbiAgICBjb25zdCBmcm9udGVuZExhYmVscyA9IHtcbiAgICAgICdhcHAua3ViZXJuZXRlcy5pby9uYW1lJzogJ3Bsb25lLWZyb250ZW5kJyxcbiAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnZnJvbnRlbmQnLFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3ZlcnNpb24nOiBvcHRpb25zLnZlcnNpb24gPz8gJ3VuZGVmaW5lZCcsXG4gICAgfTtcblxuICAgIC8vIFByb2JpbmdcbiAgICBjb25zdCBmcm9udGVuZEFjdGlvbkh0dHBHZXQ6IGs4cy5IdHRwR2V0QWN0aW9uID0ge1xuICAgICAgcGF0aDogJy8nLFxuICAgICAgcG9ydDogSW50T3JTdHJpbmcuZnJvbU51bWJlcihmcm9udGVuZFBvcnQpLFxuICAgIH07XG4gICAgY29uc3QgZnJvbnRlbmRMaXZlbmVzc1Byb2JlOiBQcm9iZSA9IHtcbiAgICAgIGh0dHBHZXQ6IGZyb250ZW5kQWN0aW9uSHR0cEdldCxcbiAgICAgIGluaXRpYWxEZWxheVNlY29uZHM6IGZyb250ZW5kLmxpdmVuZXNzSW5pdGlhbERlbGF5U2Vjb25kcyA/PyAzMCxcbiAgICAgIHRpbWVvdXRTZWNvbmRzOiBmcm9udGVuZC5saXZlbmVzc0lpbWVvdXRTZWNvbmRzID8/IDUsXG4gICAgICBwZXJpb2RTZWNvbmRzOiBmcm9udGVuZC5saXZlbmVzc1BlcmlvZFNlY29uZHMgPz8gMTAsXG4gICAgICBzdWNjZXNzVGhyZXNob2xkOiBmcm9udGVuZC5saXZlbmVzc1N1Y2Nlc3NUaHJlc2hvbGQgPz8gMSxcbiAgICAgIGZhaWx1cmVUaHJlc2hvbGQ6IGZyb250ZW5kLmxpdmVuZXNzRmFpbHVyZVRocmVzaG9sZCA/PyAzLFxuICAgIH07XG4gICAgY29uc3QgZnJvbnRlbmRSZWFkaW5lc3NQcm9iZTogUHJvYmUgPSB7XG4gICAgICBodHRwR2V0OiBmcm9udGVuZEFjdGlvbkh0dHBHZXQsXG4gICAgICBpbml0aWFsRGVsYXlTZWNvbmRzOiBmcm9udGVuZC5yZWFkaW5lc3NJbml0aWFsRGVsYXlTZWNvbmRzID8/IDEwLFxuICAgICAgdGltZW91dFNlY29uZHM6IGZyb250ZW5kLnJlYWRpbmVzc0lpbWVvdXRTZWNvbmRzID8/IDE1LFxuICAgICAgcGVyaW9kU2Vjb25kczogZnJvbnRlbmQucmVhZGluZXNzUGVyaW9kU2Vjb25kcyA/PyAxMCxcbiAgICAgIHN1Y2Nlc3NUaHJlc2hvbGQ6IGZyb250ZW5kLnJlYWRpbmVzc1N1Y2Nlc3NUaHJlc2hvbGQgPz8gMSxcbiAgICAgIGZhaWx1cmVUaHJlc2hvbGQ6IGZyb250ZW5kLnJlYWRpbmVzc0ZhaWx1cmVUaHJlc2hvbGQgPz8gMyxcbiAgICB9O1xuXG4gICAgLy8gRW52aXJvbm1lbnQgZm9yIFJBWlpMRVxuICAgIHZhciBmcm9udGVuZEVudmlyb25tZW50ID0gZnJvbnRlbmQuZW52aXJvbm1lbnQgPz8gbmV3IGtwbHVzLkVudihbXSwge30pO1xuICAgIGlmIChmcm9udGVuZEVudmlyb25tZW50LnZhcmlhYmxlcy5SQVpaTEVfSU5URVJOQUxfQVBJX1BBVEggPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gY29ubmVjdCB3aXRoIGJhY2tlbmQgc2VydmljZVxuICAgICAgZnJvbnRlbmRFbnZpcm9ubWVudD8uYWRkVmFyaWFibGUoJ1JBWlpMRV9JTlRFUk5BTF9BUElfUEFUSCcsIGtwbHVzLkVudlZhbHVlLmZyb21WYWx1ZShgaHR0cDovLyR7YmFja2VuZFNlcnZpY2UubmFtZX06JHtiYWNrZW5kUG9ydH0vJHtzaXRlSWR9YCkpO1xuICAgIH1cblxuICAgIC8vIERlcGxveW1lbnRcbiAgICBjb25zdCBmcm9udGVuZERlcGxveW1lbnQgPSBuZXcgUGxvbmVEZXBsb3ltZW50KHRoaXMsICdmcm9udGVuZCcsIHtcbiAgICAgIGxhYmVsczogZnJvbnRlbmRMYWJlbHMsXG4gICAgICBpbWFnZToge1xuICAgICAgICBpbWFnZTogZnJvbnRlbmQuaW1hZ2UgPz8gJ3Bsb25lL3Bsb25lLWZyb250ZW5kOmxhdGVzdCcsXG4gICAgICAgIGltYWdlUHVsbFNlY3JldHM6IG9wdGlvbnMuaW1hZ2VQdWxsU2VjcmV0cyA/PyBbXSxcbiAgICAgICAgaW1hZ2VQdWxsUG9saWN5OiBmcm9udGVuZC5pbWFnZVB1bGxQb2xpY3kgPz8gJ0lmTm90UHJlc2VudCcsXG4gICAgICB9LFxuICAgICAgcmVwbGljYXM6IGZyb250ZW5kLnJlcGxpY2FzLFxuICAgICAgbGltaXRDcHU6IGZyb250ZW5kLmxpbWl0Q3B1ID8/ICc1MDBtJyxcbiAgICAgIGxpbWl0TWVtb3J5OiBmcm9udGVuZC5saW1pdE1lbW9yeSA/PyAnMUdpJyxcbiAgICAgIHJlcXVlc3RDcHU6IGJhY2tlbmQucmVxdWVzdENwdSA/PyAnMjAwbScsXG4gICAgICByZXF1ZXN0TWVtb3J5OiBiYWNrZW5kLnJlcXVlc3RNZW1vcnkgPz8gJzI1Nk1pJyxcblxuICAgICAgcGRiOiB7XG4gICAgICAgIG1heFVuYXZhaWxhYmxlOiBmcm9udGVuZC5tYXhVbmF2YWlsYWJsZSA/PyB1bmRlZmluZWQsXG4gICAgICAgIG1pbkF2YWlsYWJsZTogZnJvbnRlbmQubWluQXZhaWxhYmxlID8/IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBwb3J0OiBmcm9udGVuZFBvcnQsXG4gICAgICBlbnZpcm9ubWVudDogZnJvbnRlbmRFbnZpcm9ubWVudCxcbiAgICAgIGxpdmVuZXNzUHJvYmU6IGZyb250ZW5kTGl2ZW5lc3NQcm9iZSxcbiAgICAgIHJlYWRpbmVzc1Byb2JlOiBmcm9udGVuZFJlYWRpbmVzc1Byb2JlLFxuICAgIH0pO1xuXG4gICAgLy8gU2VydmljZVxuICAgIGNvbnN0IGZyb250ZW5kU2VydmljZSA9IG5ldyBQbG9uZVNlcnZpY2UoZnJvbnRlbmREZXBsb3ltZW50LCAnc2VydmljZScsIHtcbiAgICAgIGxhYmVsczoge1xuICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSc6ICdwbG9uZS1mcm9udGVuZC1zZXJ2aWNlJyxcbiAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICdzZXJ2aWNlJyxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRQb3J0OiBmcm9udGVuZFBvcnQsXG4gICAgICBzZWxlY3RvckxhYmVsOiB7IGFwcDogTmFtZXMudG9MYWJlbFZhbHVlKGZyb250ZW5kRGVwbG95bWVudCkgfSxcbiAgICB9KTtcbiAgICB0aGlzLmZyb250ZW5kU2VydmljZU5hbWUgPSBmcm9udGVuZFNlcnZpY2UubmFtZTtcbiAgfVxufSJdfQ==
|