@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/API.md CHANGED
@@ -4,6 +4,33 @@
4
4
 
5
5
  ### Plone <a name="Plone" id="@bluedynamics/cdk8s-plone.Plone"></a>
6
6
 
7
+ Plone construct for deploying Plone CMS to Kubernetes.
8
+
9
+ This construct creates all necessary Kubernetes resources for running Plone:
10
+ - Deployment(s) for backend (and optionally frontend)
11
+ - Service(s) for network access
12
+ - Optional PodDisruptionBudget for high availability
13
+
14
+ Supports two deployment variants:
15
+ - VOLTO: Modern React frontend with REST API backend (default)
16
+ - CLASSICUI: Traditional server-side rendered Plone
17
+
18
+ *Example*
19
+
20
+ ```typescript
21
+ new Plone(chart, 'my-plone', {
22
+ variant: PloneVariant.VOLTO,
23
+ backend: {
24
+ image: 'plone/plone-backend:6.0.10',
25
+ replicas: 3,
26
+ },
27
+ frontend: {
28
+ image: 'plone/plone-frontend:16.0.0',
29
+ },
30
+ });
31
+ ```
32
+
33
+
7
34
  #### Initializers <a name="Initializers" id="@bluedynamics/cdk8s-plone.Plone.Initializer"></a>
8
35
 
9
36
  ```typescript
@@ -99,10 +126,10 @@ Any object.
99
126
  | **Name** | **Type** | **Description** |
100
127
  | --- | --- | --- |
101
128
  | <code><a href="#@bluedynamics/cdk8s-plone.Plone.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
102
- | <code><a href="#@bluedynamics/cdk8s-plone.Plone.property.backendServiceName">backendServiceName</a></code> | <code>string</code> | *No description.* |
103
- | <code><a href="#@bluedynamics/cdk8s-plone.Plone.property.siteId">siteId</a></code> | <code>string</code> | *No description.* |
104
- | <code><a href="#@bluedynamics/cdk8s-plone.Plone.property.variant">variant</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneVariant">PloneVariant</a></code> | *No description.* |
105
- | <code><a href="#@bluedynamics/cdk8s-plone.Plone.property.frontendServiceName">frontendServiceName</a></code> | <code>string</code> | *No description.* |
129
+ | <code><a href="#@bluedynamics/cdk8s-plone.Plone.property.backendServiceName">backendServiceName</a></code> | <code>string</code> | Name of the backend Kubernetes service. |
130
+ | <code><a href="#@bluedynamics/cdk8s-plone.Plone.property.siteId">siteId</a></code> | <code>string</code> | The Plone site ID in ZODB. |
131
+ | <code><a href="#@bluedynamics/cdk8s-plone.Plone.property.variant">variant</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneVariant">PloneVariant</a></code> | The deployment variant being used (VOLTO or CLASSICUI). |
132
+ | <code><a href="#@bluedynamics/cdk8s-plone.Plone.property.frontendServiceName">frontendServiceName</a></code> | <code>string</code> | Name of the frontend Kubernetes service. |
106
133
 
107
134
  ---
108
135
 
@@ -126,6 +153,10 @@ public readonly backendServiceName: string;
126
153
 
127
154
  - *Type:* string
128
155
 
156
+ Name of the backend Kubernetes service.
157
+
158
+ Use this to reference the backend service from other constructs.
159
+
129
160
  ---
130
161
 
131
162
  ##### `siteId`<sup>Required</sup> <a name="siteId" id="@bluedynamics/cdk8s-plone.Plone.property.siteId"></a>
@@ -136,6 +167,8 @@ public readonly siteId: string;
136
167
 
137
168
  - *Type:* string
138
169
 
170
+ The Plone site ID in ZODB.
171
+
139
172
  ---
140
173
 
141
174
  ##### `variant`<sup>Required</sup> <a name="variant" id="@bluedynamics/cdk8s-plone.Plone.property.variant"></a>
@@ -146,6 +179,8 @@ public readonly variant: PloneVariant;
146
179
 
147
180
  - *Type:* <a href="#@bluedynamics/cdk8s-plone.PloneVariant">PloneVariant</a>
148
181
 
182
+ The deployment variant being used (VOLTO or CLASSICUI).
183
+
149
184
  ---
150
185
 
151
186
  ##### `frontendServiceName`<sup>Optional</sup> <a name="frontendServiceName" id="@bluedynamics/cdk8s-plone.Plone.property.frontendServiceName"></a>
@@ -156,11 +191,34 @@ public readonly frontendServiceName: string;
156
191
 
157
192
  - *Type:* string
158
193
 
194
+ Name of the frontend Kubernetes service.
195
+
196
+ Only set when variant is VOLTO, otherwise undefined.
197
+
159
198
  ---
160
199
 
161
200
 
162
201
  ### PloneHttpcache <a name="PloneHttpcache" id="@bluedynamics/cdk8s-plone.PloneHttpcache"></a>
163
202
 
203
+ PloneHttpcache construct for deploying Varnish HTTP caching layer.
204
+
205
+ Uses the mittwald/kube-httpcache Helm chart to deploy Varnish as a
206
+ caching proxy in front of Plone backend and/or frontend services.
207
+
208
+ The cache automatically connects to the Plone services and provides
209
+ HTTP cache invalidation capabilities.
210
+
211
+ *Example*
212
+
213
+ ```typescript
214
+ const plone = new Plone(chart, 'plone');
215
+ const cache = new PloneHttpcache(chart, 'cache', {
216
+ plone: plone,
217
+ existingSecret: 'varnish-secret',
218
+ });
219
+ ```
220
+
221
+
164
222
  #### Initializers <a name="Initializers" id="@bluedynamics/cdk8s-plone.PloneHttpcache.Initializer"></a>
165
223
 
166
224
  ```typescript
@@ -256,7 +314,7 @@ Any object.
256
314
  | **Name** | **Type** | **Description** |
257
315
  | --- | --- | --- |
258
316
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcache.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
259
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcache.property.httpcacheServiceName">httpcacheServiceName</a></code> | <code>string</code> | *No description.* |
317
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcache.property.httpcacheServiceName">httpcacheServiceName</a></code> | <code>string</code> | Name of the Varnish service created by the Helm chart. |
260
318
 
261
319
  ---
262
320
 
@@ -280,6 +338,10 @@ public readonly httpcacheServiceName: string;
280
338
 
281
339
  - *Type:* string
282
340
 
341
+ Name of the Varnish service created by the Helm chart.
342
+
343
+ Use this to reference the cache service from ingress or other constructs.
344
+
283
345
  ---
284
346
 
285
347
 
@@ -287,6 +349,11 @@ public readonly httpcacheServiceName: string;
287
349
 
288
350
  ### PloneBaseOptions <a name="PloneBaseOptions" id="@bluedynamics/cdk8s-plone.PloneBaseOptions"></a>
289
351
 
352
+ Base options for Plone backend or frontend configuration.
353
+
354
+ These options control container image, replica count, resource limits,
355
+ environment variables, and health probes.
356
+
290
357
  #### Initializer <a name="Initializer" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.Initializer"></a>
291
358
 
292
359
  ```typescript
@@ -299,31 +366,54 @@ const ploneBaseOptions: PloneBaseOptions = { ... }
299
366
 
300
367
  | **Name** | **Type** | **Description** |
301
368
  | --- | --- | --- |
302
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.environment">environment</a></code> | <code>cdk8s-plus-30.Env</code> | *No description.* |
303
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.image">image</a></code> | <code>string</code> | *No description.* |
304
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.imagePullPolicy">imagePullPolicy</a></code> | <code>string</code> | *No description.* |
305
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.limitCpu">limitCpu</a></code> | <code>string</code> | *No description.* |
306
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.limitMemory">limitMemory</a></code> | <code>string</code> | *No description.* |
307
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessEnabled">livenessEnabled</a></code> | <code>boolean</code> | *No description.* |
308
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessFailureThreshold">livenessFailureThreshold</a></code> | <code>number</code> | *No description.* |
309
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessIimeoutSeconds">livenessIimeoutSeconds</a></code> | <code>number</code> | *No description.* |
310
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessInitialDelaySeconds">livenessInitialDelaySeconds</a></code> | <code>number</code> | *No description.* |
311
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessPeriodSeconds">livenessPeriodSeconds</a></code> | <code>number</code> | *No description.* |
312
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessSuccessThreshold">livenessSuccessThreshold</a></code> | <code>number</code> | *No description.* |
313
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.maxUnavailable">maxUnavailable</a></code> | <code>string \| number</code> | *No description.* |
314
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.minAvailable">minAvailable</a></code> | <code>string \| number</code> | *No description.* |
315
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessEnabled">readinessEnabled</a></code> | <code>boolean</code> | *No description.* |
316
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessFailureThreshold">readinessFailureThreshold</a></code> | <code>number</code> | *No description.* |
317
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessIimeoutSeconds">readinessIimeoutSeconds</a></code> | <code>number</code> | *No description.* |
318
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessInitialDelaySeconds">readinessInitialDelaySeconds</a></code> | <code>number</code> | *No description.* |
319
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessPeriodSeconds">readinessPeriodSeconds</a></code> | <code>number</code> | *No description.* |
320
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessSuccessThreshold">readinessSuccessThreshold</a></code> | <code>number</code> | *No description.* |
321
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.replicas">replicas</a></code> | <code>number</code> | *No description.* |
322
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.requestCpu">requestCpu</a></code> | <code>string</code> | *No description.* |
323
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.requestMemory">requestMemory</a></code> | <code>string</code> | *No description.* |
369
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.annotations">annotations</a></code> | <code>{[ key: string ]: string}</code> | Annotations to add to the Deployment metadata. |
370
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.environment">environment</a></code> | <code>cdk8s-plus-30.Env</code> | Environment variables to set in the container. |
371
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.image">image</a></code> | <code>string</code> | Container image to use for the deployment. |
372
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.imagePullPolicy">imagePullPolicy</a></code> | <code>string</code> | Image pull policy for the container. |
373
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.limitCpu">limitCpu</a></code> | <code>string</code> | CPU limit for the container. |
374
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.limitMemory">limitMemory</a></code> | <code>string</code> | Memory limit for the container. |
375
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessEnabled">livenessEnabled</a></code> | <code>boolean</code> | Enable liveness probe for the container. |
376
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessFailureThreshold">livenessFailureThreshold</a></code> | <code>number</code> | Minimum consecutive failures for the liveness probe to be considered failed. |
377
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessInitialDelaySeconds">livenessInitialDelaySeconds</a></code> | <code>number</code> | Number of seconds after container start before liveness probe is initiated. |
378
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessPeriodSeconds">livenessPeriodSeconds</a></code> | <code>number</code> | How often (in seconds) to perform the liveness probe. |
379
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessSuccessThreshold">livenessSuccessThreshold</a></code> | <code>number</code> | Minimum consecutive successes for the liveness probe to be considered successful. |
380
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessTimeoutSeconds">livenessTimeoutSeconds</a></code> | <code>number</code> | Number of seconds after which the liveness probe times out. |
381
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.maxUnavailable">maxUnavailable</a></code> | <code>string \| number</code> | Maximum number of pods that can be unavailable during updates. |
382
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.minAvailable">minAvailable</a></code> | <code>string \| number</code> | Minimum number of pods that must be available during updates. |
383
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.podAnnotations">podAnnotations</a></code> | <code>{[ key: string ]: string}</code> | Annotations to add to the Pod template metadata. |
384
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessEnabled">readinessEnabled</a></code> | <code>boolean</code> | Enable readiness probe for the container. |
385
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessFailureThreshold">readinessFailureThreshold</a></code> | <code>number</code> | Minimum consecutive failures for the readiness probe to be considered failed. |
386
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessInitialDelaySeconds">readinessInitialDelaySeconds</a></code> | <code>number</code> | Number of seconds after container start before readiness probe is initiated. |
387
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessPeriodSeconds">readinessPeriodSeconds</a></code> | <code>number</code> | How often (in seconds) to perform the readiness probe. |
388
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessSuccessThreshold">readinessSuccessThreshold</a></code> | <code>number</code> | Minimum consecutive successes for the readiness probe to be considered successful. |
389
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessTimeoutSeconds">readinessTimeoutSeconds</a></code> | <code>number</code> | Number of seconds after which the readiness probe times out. |
390
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.replicas">replicas</a></code> | <code>number</code> | Number of pod replicas to run. |
391
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.requestCpu">requestCpu</a></code> | <code>string</code> | CPU request for the container. |
392
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.requestMemory">requestMemory</a></code> | <code>string</code> | Memory request for the container. |
393
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.serviceAnnotations">serviceAnnotations</a></code> | <code>{[ key: string ]: string}</code> | Annotations to add to the Service metadata. |
394
+
395
+ ---
396
+
397
+ ##### `annotations`<sup>Optional</sup> <a name="annotations" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.annotations"></a>
398
+
399
+ ```typescript
400
+ public readonly annotations: {[ key: string ]: string};
401
+ ```
402
+
403
+ - *Type:* {[ key: string ]: string}
404
+ - *Default:* no additional annotations
405
+
406
+ Annotations to add to the Deployment metadata.
324
407
 
325
408
  ---
326
409
 
410
+ *Example*
411
+
412
+ ```typescript
413
+ { 'deployment.kubernetes.io/revision': '1' }
414
+ ```
415
+
416
+
327
417
  ##### `environment`<sup>Optional</sup> <a name="environment" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.environment"></a>
328
418
 
329
419
  ```typescript
@@ -331,6 +421,11 @@ public readonly environment: Env;
331
421
  ```
332
422
 
333
423
  - *Type:* cdk8s-plus-30.Env
424
+ - *Default:* undefined (no additional environment variables)
425
+
426
+ Environment variables to set in the container.
427
+
428
+ Use cdk8s-plus-30 Env class to define variables and sources.
334
429
 
335
430
  ---
336
431
 
@@ -341,9 +436,19 @@ public readonly image: string;
341
436
  ```
342
437
 
343
438
  - *Type:* string
439
+ - *Default:* 'plone/plone-backend:latest' for backend, 'plone/plone-frontend:latest' for frontend
440
+
441
+ Container image to use for the deployment.
344
442
 
345
443
  ---
346
444
 
445
+ *Example*
446
+
447
+ ```typescript
448
+ 'plone/plone-backend:6.0.10' or 'plone/plone-frontend:16.0.0'
449
+ ```
450
+
451
+
347
452
  ##### `imagePullPolicy`<sup>Optional</sup> <a name="imagePullPolicy" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.imagePullPolicy"></a>
348
453
 
349
454
  ```typescript
@@ -351,6 +456,9 @@ public readonly imagePullPolicy: string;
351
456
  ```
352
457
 
353
458
  - *Type:* string
459
+ - *Default:* 'IfNotPresent'
460
+
461
+ Image pull policy for the container.
354
462
 
355
463
  ---
356
464
 
@@ -361,9 +469,19 @@ public readonly limitCpu: string;
361
469
  ```
362
470
 
363
471
  - *Type:* string
472
+ - *Default:* '500m' for both backend and frontend
473
+
474
+ CPU limit for the container.
364
475
 
365
476
  ---
366
477
 
478
+ *Example*
479
+
480
+ ```typescript
481
+ '500m' or '1' or '2000m'
482
+ ```
483
+
484
+
367
485
  ##### `limitMemory`<sup>Optional</sup> <a name="limitMemory" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.limitMemory"></a>
368
486
 
369
487
  ```typescript
@@ -371,9 +489,19 @@ public readonly limitMemory: string;
371
489
  ```
372
490
 
373
491
  - *Type:* string
492
+ - *Default:* '512Mi' for backend, '1Gi' for frontend
493
+
494
+ Memory limit for the container.
374
495
 
375
496
  ---
376
497
 
498
+ *Example*
499
+
500
+ ```typescript
501
+ '512Mi' or '1Gi'
502
+ ```
503
+
504
+
377
505
  ##### `livenessEnabled`<sup>Optional</sup> <a name="livenessEnabled" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessEnabled"></a>
378
506
 
379
507
  ```typescript
@@ -381,6 +509,12 @@ public readonly livenessEnabled: boolean;
381
509
  ```
382
510
 
383
511
  - *Type:* boolean
512
+ - *Default:* false
513
+
514
+ Enable liveness probe for the container.
515
+
516
+ Liveness probes determine when to restart a container.
517
+ Recommended: true for frontend, false for backend (Zope has its own recovery).
384
518
 
385
519
  ---
386
520
 
@@ -391,46 +525,61 @@ public readonly livenessFailureThreshold: number;
391
525
  ```
392
526
 
393
527
  - *Type:* number
528
+ - *Default:* 3
529
+
530
+ Minimum consecutive failures for the liveness probe to be considered failed.
394
531
 
395
532
  ---
396
533
 
397
- ##### `livenessIimeoutSeconds`<sup>Optional</sup> <a name="livenessIimeoutSeconds" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessIimeoutSeconds"></a>
534
+ ##### `livenessInitialDelaySeconds`<sup>Optional</sup> <a name="livenessInitialDelaySeconds" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessInitialDelaySeconds"></a>
398
535
 
399
536
  ```typescript
400
- public readonly livenessIimeoutSeconds: number;
537
+ public readonly livenessInitialDelaySeconds: number;
401
538
  ```
402
539
 
403
540
  - *Type:* number
541
+ - *Default:* 30
542
+
543
+ Number of seconds after container start before liveness probe is initiated.
404
544
 
405
545
  ---
406
546
 
407
- ##### `livenessInitialDelaySeconds`<sup>Optional</sup> <a name="livenessInitialDelaySeconds" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessInitialDelaySeconds"></a>
547
+ ##### `livenessPeriodSeconds`<sup>Optional</sup> <a name="livenessPeriodSeconds" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessPeriodSeconds"></a>
408
548
 
409
549
  ```typescript
410
- public readonly livenessInitialDelaySeconds: number;
550
+ public readonly livenessPeriodSeconds: number;
411
551
  ```
412
552
 
413
553
  - *Type:* number
554
+ - *Default:* 10
555
+
556
+ How often (in seconds) to perform the liveness probe.
414
557
 
415
558
  ---
416
559
 
417
- ##### `livenessPeriodSeconds`<sup>Optional</sup> <a name="livenessPeriodSeconds" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessPeriodSeconds"></a>
560
+ ##### `livenessSuccessThreshold`<sup>Optional</sup> <a name="livenessSuccessThreshold" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessSuccessThreshold"></a>
418
561
 
419
562
  ```typescript
420
- public readonly livenessPeriodSeconds: number;
563
+ public readonly livenessSuccessThreshold: number;
421
564
  ```
422
565
 
423
566
  - *Type:* number
567
+ - *Default:* 1
568
+
569
+ Minimum consecutive successes for the liveness probe to be considered successful.
424
570
 
425
571
  ---
426
572
 
427
- ##### `livenessSuccessThreshold`<sup>Optional</sup> <a name="livenessSuccessThreshold" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessSuccessThreshold"></a>
573
+ ##### `livenessTimeoutSeconds`<sup>Optional</sup> <a name="livenessTimeoutSeconds" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.livenessTimeoutSeconds"></a>
428
574
 
429
575
  ```typescript
430
- public readonly livenessSuccessThreshold: number;
576
+ public readonly livenessTimeoutSeconds: number;
431
577
  ```
432
578
 
433
579
  - *Type:* number
580
+ - *Default:* 5
581
+
582
+ Number of seconds after which the liveness probe times out.
434
583
 
435
584
  ---
436
585
 
@@ -441,6 +590,12 @@ public readonly maxUnavailable: string | number;
441
590
  ```
442
591
 
443
592
  - *Type:* string | number
593
+ - *Default:* undefined (not set)
594
+
595
+ Maximum number of pods that can be unavailable during updates.
596
+
597
+ Can be an absolute number (e.g., 1) or a percentage (e.g., '50%').
598
+ Used in PodDisruptionBudget if specified.
444
599
 
445
600
  ---
446
601
 
@@ -451,36 +606,62 @@ public readonly minAvailable: string | number;
451
606
  ```
452
607
 
453
608
  - *Type:* string | number
609
+ - *Default:* undefined (not set)
610
+
611
+ Minimum number of pods that must be available during updates.
612
+
613
+ Can be an absolute number (e.g., 1) or a percentage (e.g., '50%').
614
+ Used in PodDisruptionBudget if specified.
454
615
 
455
616
  ---
456
617
 
457
- ##### `readinessEnabled`<sup>Optional</sup> <a name="readinessEnabled" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessEnabled"></a>
618
+ ##### `podAnnotations`<sup>Optional</sup> <a name="podAnnotations" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.podAnnotations"></a>
458
619
 
459
620
  ```typescript
460
- public readonly readinessEnabled: boolean;
621
+ public readonly podAnnotations: {[ key: string ]: string};
461
622
  ```
462
623
 
463
- - *Type:* boolean
624
+ - *Type:* {[ key: string ]: string}
625
+ - *Default:* no additional annotations
626
+
627
+ Annotations to add to the Pod template metadata.
628
+
629
+ Common for Prometheus, Istio, backup policies, etc.
464
630
 
465
631
  ---
466
632
 
467
- ##### `readinessFailureThreshold`<sup>Optional</sup> <a name="readinessFailureThreshold" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessFailureThreshold"></a>
633
+ *Example*
468
634
 
469
635
  ```typescript
470
- public readonly readinessFailureThreshold: number;
636
+ { 'prometheus.io/scrape': 'true', 'prometheus.io/port': '8080' }
471
637
  ```
472
638
 
473
- - *Type:* number
639
+
640
+ ##### `readinessEnabled`<sup>Optional</sup> <a name="readinessEnabled" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessEnabled"></a>
641
+
642
+ ```typescript
643
+ public readonly readinessEnabled: boolean;
644
+ ```
645
+
646
+ - *Type:* boolean
647
+ - *Default:* true
648
+
649
+ Enable readiness probe for the container.
650
+
651
+ Readiness probes determine when a container is ready to accept traffic.
474
652
 
475
653
  ---
476
654
 
477
- ##### `readinessIimeoutSeconds`<sup>Optional</sup> <a name="readinessIimeoutSeconds" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessIimeoutSeconds"></a>
655
+ ##### `readinessFailureThreshold`<sup>Optional</sup> <a name="readinessFailureThreshold" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessFailureThreshold"></a>
478
656
 
479
657
  ```typescript
480
- public readonly readinessIimeoutSeconds: number;
658
+ public readonly readinessFailureThreshold: number;
481
659
  ```
482
660
 
483
661
  - *Type:* number
662
+ - *Default:* 3
663
+
664
+ Minimum consecutive failures for the readiness probe to be considered failed.
484
665
 
485
666
  ---
486
667
 
@@ -491,6 +672,9 @@ public readonly readinessInitialDelaySeconds: number;
491
672
  ```
492
673
 
493
674
  - *Type:* number
675
+ - *Default:* 10
676
+
677
+ Number of seconds after container start before readiness probe is initiated.
494
678
 
495
679
  ---
496
680
 
@@ -501,6 +685,9 @@ public readonly readinessPeriodSeconds: number;
501
685
  ```
502
686
 
503
687
  - *Type:* number
688
+ - *Default:* 10
689
+
690
+ How often (in seconds) to perform the readiness probe.
504
691
 
505
692
  ---
506
693
 
@@ -511,6 +698,22 @@ public readonly readinessSuccessThreshold: number;
511
698
  ```
512
699
 
513
700
  - *Type:* number
701
+ - *Default:* 1
702
+
703
+ Minimum consecutive successes for the readiness probe to be considered successful.
704
+
705
+ ---
706
+
707
+ ##### `readinessTimeoutSeconds`<sup>Optional</sup> <a name="readinessTimeoutSeconds" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.readinessTimeoutSeconds"></a>
708
+
709
+ ```typescript
710
+ public readonly readinessTimeoutSeconds: number;
711
+ ```
712
+
713
+ - *Type:* number
714
+ - *Default:* 15
715
+
716
+ Number of seconds after which the readiness probe times out.
514
717
 
515
718
  ---
516
719
 
@@ -521,6 +724,9 @@ public readonly replicas: number;
521
724
  ```
522
725
 
523
726
  - *Type:* number
727
+ - *Default:* 2
728
+
729
+ Number of pod replicas to run.
524
730
 
525
731
  ---
526
732
 
@@ -531,9 +737,19 @@ public readonly requestCpu: string;
531
737
  ```
532
738
 
533
739
  - *Type:* string
740
+ - *Default:* '200m'
741
+
742
+ CPU request for the container.
534
743
 
535
744
  ---
536
745
 
746
+ *Example*
747
+
748
+ ```typescript
749
+ '200m' or '0.5'
750
+ ```
751
+
752
+
537
753
  ##### `requestMemory`<sup>Optional</sup> <a name="requestMemory" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.requestMemory"></a>
538
754
 
539
755
  ```typescript
@@ -541,11 +757,45 @@ public readonly requestMemory: string;
541
757
  ```
542
758
 
543
759
  - *Type:* string
760
+ - *Default:* '256Mi'
761
+
762
+ Memory request for the container.
544
763
 
545
764
  ---
546
765
 
766
+ *Example*
767
+
768
+ ```typescript
769
+ '256Mi' or '512Mi'
770
+ ```
771
+
772
+
773
+ ##### `serviceAnnotations`<sup>Optional</sup> <a name="serviceAnnotations" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.serviceAnnotations"></a>
774
+
775
+ ```typescript
776
+ public readonly serviceAnnotations: {[ key: string ]: string};
777
+ ```
778
+
779
+ - *Type:* {[ key: string ]: string}
780
+ - *Default:* no additional annotations
781
+
782
+ Annotations to add to the Service metadata.
783
+
784
+ Common for external-dns, load balancers, service mesh, etc.
785
+
786
+ ---
787
+
788
+ *Example*
789
+
790
+ ```typescript
791
+ { 'external-dns.alpha.kubernetes.io/hostname': 'plone.example.com' }
792
+ ```
793
+
794
+
547
795
  ### PloneHttpcacheOptions <a name="PloneHttpcacheOptions" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions"></a>
548
796
 
797
+ Configuration options for PloneHttpcache (Varnish caching layer).
798
+
549
799
  #### Initializer <a name="Initializer" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.Initializer"></a>
550
800
 
551
801
  ```typescript
@@ -558,15 +808,16 @@ const ploneHttpcacheOptions: PloneHttpcacheOptions = { ... }
558
808
 
559
809
  | **Name** | **Type** | **Description** |
560
810
  | --- | --- | --- |
561
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.plone">plone</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.Plone">Plone</a></code> | plone chart. |
562
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.existingSecret">existingSecret</a></code> | <code>string</code> | existingSecret - Read admin credentials from user provided secret. |
563
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.limitCpu">limitCpu</a></code> | <code>string</code> | *No description.* |
564
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.limitMemory">limitMemory</a></code> | <code>string</code> | *No description.* |
565
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.requestCpu">requestCpu</a></code> | <code>string</code> | *No description.* |
566
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.requestMemory">requestMemory</a></code> | <code>string</code> | *No description.* |
567
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.servicemonitor">servicemonitor</a></code> | <code>boolean</code> | *No description.* |
568
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.varnishVcl">varnishVcl</a></code> | <code>string</code> | varnishVcl. |
569
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.varnishVclFile">varnishVclFile</a></code> | <code>string</code> | varnishVclFile. |
811
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.plone">plone</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.Plone">Plone</a></code> | The Plone construct to attach the HTTP cache to. |
812
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.existingSecret">existingSecret</a></code> | <code>string</code> | Name of an existing Kubernetes secret containing Varnish admin credentials. |
813
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.limitCpu">limitCpu</a></code> | <code>string</code> | CPU limit for Varnish pods. |
814
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.limitMemory">limitMemory</a></code> | <code>string</code> | Memory limit for Varnish pods. |
815
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.replicas">replicas</a></code> | <code>number</code> | Number of Varnish pod replicas to run. |
816
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.requestCpu">requestCpu</a></code> | <code>string</code> | CPU request for Varnish pods. |
817
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.requestMemory">requestMemory</a></code> | <code>string</code> | Memory request for Varnish pods. |
818
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.servicemonitor">servicemonitor</a></code> | <code>boolean</code> | Enable Prometheus ServiceMonitor for metrics collection. |
819
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.varnishVcl">varnishVcl</a></code> | <code>string</code> | Varnish VCL configuration as a string. |
820
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.varnishVclFile">varnishVclFile</a></code> | <code>string</code> | Path to a Varnish VCL configuration file. |
570
821
 
571
822
  ---
572
823
 
@@ -577,9 +828,10 @@ public readonly plone: Plone;
577
828
  ```
578
829
 
579
830
  - *Type:* <a href="#@bluedynamics/cdk8s-plone.Plone">Plone</a>
580
- - *Default:* none
581
831
 
582
- plone chart.
832
+ The Plone construct to attach the HTTP cache to.
833
+
834
+ The cache will automatically connect to the backend and frontend services.
583
835
 
584
836
  ---
585
837
 
@@ -590,9 +842,11 @@ public readonly existingSecret: string;
590
842
  ```
591
843
 
592
844
  - *Type:* string
593
- - *Default:* undefined
845
+ - *Default:* undefined (no existing secret)
846
+
847
+ Name of an existing Kubernetes secret containing Varnish admin credentials.
594
848
 
595
- existingSecret - Read admin credentials from user provided secret.
849
+ The secret should be created separately in the same namespace.
596
850
 
597
851
  ---
598
852
 
@@ -603,6 +857,9 @@ public readonly limitCpu: string;
603
857
  ```
604
858
 
605
859
  - *Type:* string
860
+ - *Default:* '500m'
861
+
862
+ CPU limit for Varnish pods.
606
863
 
607
864
  ---
608
865
 
@@ -613,6 +870,22 @@ public readonly limitMemory: string;
613
870
  ```
614
871
 
615
872
  - *Type:* string
873
+ - *Default:* '500Mi'
874
+
875
+ Memory limit for Varnish pods.
876
+
877
+ ---
878
+
879
+ ##### `replicas`<sup>Optional</sup> <a name="replicas" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.replicas"></a>
880
+
881
+ ```typescript
882
+ public readonly replicas: number;
883
+ ```
884
+
885
+ - *Type:* number
886
+ - *Default:* 2
887
+
888
+ Number of Varnish pod replicas to run.
616
889
 
617
890
  ---
618
891
 
@@ -623,6 +896,9 @@ public readonly requestCpu: string;
623
896
  ```
624
897
 
625
898
  - *Type:* string
899
+ - *Default:* '100m'
900
+
901
+ CPU request for Varnish pods.
626
902
 
627
903
  ---
628
904
 
@@ -633,6 +909,9 @@ public readonly requestMemory: string;
633
909
  ```
634
910
 
635
911
  - *Type:* string
912
+ - *Default:* '100Mi'
913
+
914
+ Memory request for Varnish pods.
636
915
 
637
916
  ---
638
917
 
@@ -643,6 +922,11 @@ public readonly servicemonitor: boolean;
643
922
  ```
644
923
 
645
924
  - *Type:* boolean
925
+ - *Default:* false
926
+
927
+ Enable Prometheus ServiceMonitor for metrics collection.
928
+
929
+ Requires Prometheus Operator to be installed in the cluster.
646
930
 
647
931
  ---
648
932
 
@@ -653,9 +937,11 @@ public readonly varnishVcl: string;
653
937
  ```
654
938
 
655
939
  - *Type:* string
656
- - *Default:* file in config folder
940
+ - *Default:* loaded from varnishVclFile or default config file
941
+
942
+ Varnish VCL configuration as a string.
657
943
 
658
- varnishVcl.
944
+ If provided, this takes precedence over varnishVclFile.
659
945
 
660
946
  ---
661
947
 
@@ -666,14 +952,18 @@ public readonly varnishVclFile: string;
666
952
  ```
667
953
 
668
954
  - *Type:* string
669
- - *Default:* undefined
955
+ - *Default:* uses default config/varnish.tpl.vcl
670
956
 
671
- varnishVclFile.
957
+ Path to a Varnish VCL configuration file.
958
+
959
+ If not provided, uses the default VCL file included in the library.
672
960
 
673
961
  ---
674
962
 
675
963
  ### PloneOptions <a name="PloneOptions" id="@bluedynamics/cdk8s-plone.PloneOptions"></a>
676
964
 
965
+ Main configuration options for Plone deployment.
966
+
677
967
  #### Initializer <a name="Initializer" id="@bluedynamics/cdk8s-plone.PloneOptions.Initializer"></a>
678
968
 
679
969
  ```typescript
@@ -686,12 +976,12 @@ const ploneOptions: PloneOptions = { ... }
686
976
 
687
977
  | **Name** | **Type** | **Description** |
688
978
  | --- | --- | --- |
689
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.backend">backend</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions">PloneBaseOptions</a></code> | *No description.* |
690
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.frontend">frontend</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions">PloneBaseOptions</a></code> | *No description.* |
691
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.imagePullSecrets">imagePullSecrets</a></code> | <code>string[]</code> | *No description.* |
692
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.siteId">siteId</a></code> | <code>string</code> | *No description.* |
693
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.variant">variant</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneVariant">PloneVariant</a></code> | *No description.* |
694
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.version">version</a></code> | <code>string</code> | *No description.* |
979
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.backend">backend</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions">PloneBaseOptions</a></code> | Backend (Plone API) configuration. |
980
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.frontend">frontend</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions">PloneBaseOptions</a></code> | Frontend (Volto) configuration. |
981
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.imagePullSecrets">imagePullSecrets</a></code> | <code>string[]</code> | Names of Kubernetes secrets to use for pulling private container images. |
982
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.siteId">siteId</a></code> | <code>string</code> | Plone site ID in the ZODB. |
983
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.variant">variant</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneVariant">PloneVariant</a></code> | Plone deployment variant to use. |
984
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.version">version</a></code> | <code>string</code> | Version string for labeling the deployment. |
695
985
 
696
986
  ---
697
987
 
@@ -702,6 +992,9 @@ public readonly backend: PloneBaseOptions;
702
992
  ```
703
993
 
704
994
  - *Type:* <a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions">PloneBaseOptions</a>
995
+ - *Default:* {} (uses default values from PloneBaseOptions)
996
+
997
+ Backend (Plone API) configuration.
705
998
 
706
999
  ---
707
1000
 
@@ -712,6 +1005,11 @@ public readonly frontend: PloneBaseOptions;
712
1005
  ```
713
1006
 
714
1007
  - *Type:* <a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions">PloneBaseOptions</a>
1008
+ - *Default:* {} (uses default values from PloneBaseOptions)
1009
+
1010
+ Frontend (Volto) configuration.
1011
+
1012
+ Only used when variant is PloneVariant.VOLTO.
715
1013
 
716
1014
  ---
717
1015
 
@@ -722,9 +1020,21 @@ public readonly imagePullSecrets: string[];
722
1020
  ```
723
1021
 
724
1022
  - *Type:* string[]
1023
+ - *Default:* [] (no image pull secrets)
1024
+
1025
+ Names of Kubernetes secrets to use for pulling private container images.
1026
+
1027
+ These secrets must exist in the same namespace as the deployment.
725
1028
 
726
1029
  ---
727
1030
 
1031
+ *Example*
1032
+
1033
+ ```typescript
1034
+ ['my-registry-secret']
1035
+ ```
1036
+
1037
+
728
1038
  ##### `siteId`<sup>Optional</sup> <a name="siteId" id="@bluedynamics/cdk8s-plone.PloneOptions.property.siteId"></a>
729
1039
 
730
1040
  ```typescript
@@ -732,6 +1042,11 @@ public readonly siteId: string;
732
1042
  ```
733
1043
 
734
1044
  - *Type:* string
1045
+ - *Default:* 'Plone'
1046
+
1047
+ Plone site ID in the ZODB.
1048
+
1049
+ This is used to construct the internal API path for Volto frontend.
735
1050
 
736
1051
  ---
737
1052
 
@@ -742,6 +1057,9 @@ public readonly variant: PloneVariant;
742
1057
  ```
743
1058
 
744
1059
  - *Type:* <a href="#@bluedynamics/cdk8s-plone.PloneVariant">PloneVariant</a>
1060
+ - *Default:* PloneVariant.VOLTO
1061
+
1062
+ Plone deployment variant to use.
745
1063
 
746
1064
  ---
747
1065
 
@@ -752,6 +1070,11 @@ public readonly version: string;
752
1070
  ```
753
1071
 
754
1072
  - *Type:* string
1073
+ - *Default:* 'undefined'
1074
+
1075
+ Version string for labeling the deployment.
1076
+
1077
+ This is used in Kubernetes labels and doesn't affect the actual image versions.
755
1078
 
756
1079
  ---
757
1080
 
@@ -761,21 +1084,31 @@ public readonly version: string;
761
1084
 
762
1085
  ### PloneVariant <a name="PloneVariant" id="@bluedynamics/cdk8s-plone.PloneVariant"></a>
763
1086
 
1087
+ Plone deployment variants.
1088
+
764
1089
  #### Members <a name="Members" id="Members"></a>
765
1090
 
766
1091
  | **Name** | **Description** |
767
1092
  | --- | --- |
768
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneVariant.VOLTO">VOLTO</a></code> | *No description.* |
769
- | <code><a href="#@bluedynamics/cdk8s-plone.PloneVariant.CLASSICUI">CLASSICUI</a></code> | *No description.* |
1093
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneVariant.VOLTO">VOLTO</a></code> | Volto variant: ReactJS frontend (Volto) with REST API backend. |
1094
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneVariant.CLASSICUI">CLASSICUI</a></code> | Classic UI variant: Traditional Plone with server-side rendering. |
770
1095
 
771
1096
  ---
772
1097
 
773
1098
  ##### `VOLTO` <a name="VOLTO" id="@bluedynamics/cdk8s-plone.PloneVariant.VOLTO"></a>
774
1099
 
1100
+ Volto variant: ReactJS frontend (Volto) with REST API backend.
1101
+
1102
+ Deploys both frontend and backend services.
1103
+
775
1104
  ---
776
1105
 
777
1106
 
778
1107
  ##### `CLASSICUI` <a name="CLASSICUI" id="@bluedynamics/cdk8s-plone.PloneVariant.CLASSICUI"></a>
779
1108
 
1109
+ Classic UI variant: Traditional Plone with server-side rendering.
1110
+
1111
+ Deploys only the backend service.
1112
+
780
1113
  ---
781
1114