@bluedynamics/cdk8s-plone 0.0.81 → 0.1.1

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,18 @@ 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.chartVersion">chartVersion</a></code> | <code>string</code> | Version of the kube-httpcache Helm chart to use. |
813
+ | <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. |
814
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.exporterEnabled">exporterEnabled</a></code> | <code>boolean</code> | Enable the Prometheus exporter for Varnish metrics. |
815
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.limitCpu">limitCpu</a></code> | <code>string</code> | CPU limit for Varnish pods. |
816
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.limitMemory">limitMemory</a></code> | <code>string</code> | Memory limit for Varnish pods. |
817
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.replicas">replicas</a></code> | <code>number</code> | Number of Varnish pod replicas to run. |
818
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.requestCpu">requestCpu</a></code> | <code>string</code> | CPU request for Varnish pods. |
819
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.requestMemory">requestMemory</a></code> | <code>string</code> | Memory request for Varnish pods. |
820
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.servicemonitor">servicemonitor</a></code> | <code>boolean</code> | Enable Prometheus ServiceMonitor for metrics collection. |
821
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.varnishVcl">varnishVcl</a></code> | <code>string</code> | Varnish VCL configuration as a string. |
822
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.varnishVclFile">varnishVclFile</a></code> | <code>string</code> | Path to a Varnish VCL configuration file. |
570
823
 
571
824
  ---
572
825
 
@@ -577,9 +830,25 @@ public readonly plone: Plone;
577
830
  ```
578
831
 
579
832
  - *Type:* <a href="#@bluedynamics/cdk8s-plone.Plone">Plone</a>
580
- - *Default:* none
581
833
 
582
- plone chart.
834
+ The Plone construct to attach the HTTP cache to.
835
+
836
+ The cache will automatically connect to the backend and frontend services.
837
+
838
+ ---
839
+
840
+ ##### `chartVersion`<sup>Optional</sup> <a name="chartVersion" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.chartVersion"></a>
841
+
842
+ ```typescript
843
+ public readonly chartVersion: string;
844
+ ```
845
+
846
+ - *Type:* string
847
+ - *Default:* undefined (latest)
848
+
849
+ Version of the kube-httpcache Helm chart to use.
850
+
851
+ If not specified, the latest version from the repository will be used.
583
852
 
584
853
  ---
585
854
 
@@ -590,9 +859,26 @@ public readonly existingSecret: string;
590
859
  ```
591
860
 
592
861
  - *Type:* string
593
- - *Default:* undefined
862
+ - *Default:* undefined (no existing secret)
594
863
 
595
- existingSecret - Read admin credentials from user provided secret.
864
+ Name of an existing Kubernetes secret containing Varnish admin credentials.
865
+
866
+ The secret should be created separately in the same namespace.
867
+
868
+ ---
869
+
870
+ ##### `exporterEnabled`<sup>Optional</sup> <a name="exporterEnabled" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.exporterEnabled"></a>
871
+
872
+ ```typescript
873
+ public readonly exporterEnabled: boolean;
874
+ ```
875
+
876
+ - *Type:* boolean
877
+ - *Default:* true
878
+
879
+ Enable the Prometheus exporter for Varnish metrics.
880
+
881
+ When enabled, the exporter sidecar container will be deployed alongside Varnish.
596
882
 
597
883
  ---
598
884
 
@@ -603,6 +889,9 @@ public readonly limitCpu: string;
603
889
  ```
604
890
 
605
891
  - *Type:* string
892
+ - *Default:* '500m'
893
+
894
+ CPU limit for Varnish pods.
606
895
 
607
896
  ---
608
897
 
@@ -613,6 +902,22 @@ public readonly limitMemory: string;
613
902
  ```
614
903
 
615
904
  - *Type:* string
905
+ - *Default:* '500Mi'
906
+
907
+ Memory limit for Varnish pods.
908
+
909
+ ---
910
+
911
+ ##### `replicas`<sup>Optional</sup> <a name="replicas" id="@bluedynamics/cdk8s-plone.PloneHttpcacheOptions.property.replicas"></a>
912
+
913
+ ```typescript
914
+ public readonly replicas: number;
915
+ ```
916
+
917
+ - *Type:* number
918
+ - *Default:* 2
919
+
920
+ Number of Varnish pod replicas to run.
616
921
 
617
922
  ---
618
923
 
@@ -623,6 +928,9 @@ public readonly requestCpu: string;
623
928
  ```
624
929
 
625
930
  - *Type:* string
931
+ - *Default:* '100m'
932
+
933
+ CPU request for Varnish pods.
626
934
 
627
935
  ---
628
936
 
@@ -633,6 +941,9 @@ public readonly requestMemory: string;
633
941
  ```
634
942
 
635
943
  - *Type:* string
944
+ - *Default:* '100Mi'
945
+
946
+ Memory request for Varnish pods.
636
947
 
637
948
  ---
638
949
 
@@ -643,6 +954,11 @@ public readonly servicemonitor: boolean;
643
954
  ```
644
955
 
645
956
  - *Type:* boolean
957
+ - *Default:* false
958
+
959
+ Enable Prometheus ServiceMonitor for metrics collection.
960
+
961
+ Requires Prometheus Operator to be installed in the cluster.
646
962
 
647
963
  ---
648
964
 
@@ -653,9 +969,11 @@ public readonly varnishVcl: string;
653
969
  ```
654
970
 
655
971
  - *Type:* string
656
- - *Default:* file in config folder
972
+ - *Default:* loaded from varnishVclFile or default config file
657
973
 
658
- varnishVcl.
974
+ Varnish VCL configuration as a string.
975
+
976
+ If provided, this takes precedence over varnishVclFile.
659
977
 
660
978
  ---
661
979
 
@@ -666,14 +984,18 @@ public readonly varnishVclFile: string;
666
984
  ```
667
985
 
668
986
  - *Type:* string
669
- - *Default:* undefined
987
+ - *Default:* uses default config/varnish.tpl.vcl
988
+
989
+ Path to a Varnish VCL configuration file.
670
990
 
671
- varnishVclFile.
991
+ If not provided, uses the default VCL file included in the library.
672
992
 
673
993
  ---
674
994
 
675
995
  ### PloneOptions <a name="PloneOptions" id="@bluedynamics/cdk8s-plone.PloneOptions"></a>
676
996
 
997
+ Main configuration options for Plone deployment.
998
+
677
999
  #### Initializer <a name="Initializer" id="@bluedynamics/cdk8s-plone.PloneOptions.Initializer"></a>
678
1000
 
679
1001
  ```typescript
@@ -686,12 +1008,12 @@ const ploneOptions: PloneOptions = { ... }
686
1008
 
687
1009
  | **Name** | **Type** | **Description** |
688
1010
  | --- | --- | --- |
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.* |
1011
+ | <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. |
1012
+ | <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. |
1013
+ | <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. |
1014
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.siteId">siteId</a></code> | <code>string</code> | Plone site ID in the ZODB. |
1015
+ | <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. |
1016
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneOptions.property.version">version</a></code> | <code>string</code> | Version string for labeling the deployment. |
695
1017
 
696
1018
  ---
697
1019
 
@@ -702,6 +1024,9 @@ public readonly backend: PloneBaseOptions;
702
1024
  ```
703
1025
 
704
1026
  - *Type:* <a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions">PloneBaseOptions</a>
1027
+ - *Default:* {} (uses default values from PloneBaseOptions)
1028
+
1029
+ Backend (Plone API) configuration.
705
1030
 
706
1031
  ---
707
1032
 
@@ -712,6 +1037,11 @@ public readonly frontend: PloneBaseOptions;
712
1037
  ```
713
1038
 
714
1039
  - *Type:* <a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions">PloneBaseOptions</a>
1040
+ - *Default:* {} (uses default values from PloneBaseOptions)
1041
+
1042
+ Frontend (Volto) configuration.
1043
+
1044
+ Only used when variant is PloneVariant.VOLTO.
715
1045
 
716
1046
  ---
717
1047
 
@@ -722,9 +1052,21 @@ public readonly imagePullSecrets: string[];
722
1052
  ```
723
1053
 
724
1054
  - *Type:* string[]
1055
+ - *Default:* [] (no image pull secrets)
1056
+
1057
+ Names of Kubernetes secrets to use for pulling private container images.
1058
+
1059
+ These secrets must exist in the same namespace as the deployment.
725
1060
 
726
1061
  ---
727
1062
 
1063
+ *Example*
1064
+
1065
+ ```typescript
1066
+ ['my-registry-secret']
1067
+ ```
1068
+
1069
+
728
1070
  ##### `siteId`<sup>Optional</sup> <a name="siteId" id="@bluedynamics/cdk8s-plone.PloneOptions.property.siteId"></a>
729
1071
 
730
1072
  ```typescript
@@ -732,6 +1074,11 @@ public readonly siteId: string;
732
1074
  ```
733
1075
 
734
1076
  - *Type:* string
1077
+ - *Default:* 'Plone'
1078
+
1079
+ Plone site ID in the ZODB.
1080
+
1081
+ This is used to construct the internal API path for Volto frontend.
735
1082
 
736
1083
  ---
737
1084
 
@@ -742,6 +1089,9 @@ public readonly variant: PloneVariant;
742
1089
  ```
743
1090
 
744
1091
  - *Type:* <a href="#@bluedynamics/cdk8s-plone.PloneVariant">PloneVariant</a>
1092
+ - *Default:* PloneVariant.VOLTO
1093
+
1094
+ Plone deployment variant to use.
745
1095
 
746
1096
  ---
747
1097
 
@@ -752,6 +1102,11 @@ public readonly version: string;
752
1102
  ```
753
1103
 
754
1104
  - *Type:* string
1105
+ - *Default:* 'undefined'
1106
+
1107
+ Version string for labeling the deployment.
1108
+
1109
+ This is used in Kubernetes labels and doesn't affect the actual image versions.
755
1110
 
756
1111
  ---
757
1112
 
@@ -761,21 +1116,31 @@ public readonly version: string;
761
1116
 
762
1117
  ### PloneVariant <a name="PloneVariant" id="@bluedynamics/cdk8s-plone.PloneVariant"></a>
763
1118
 
1119
+ Plone deployment variants.
1120
+
764
1121
  #### Members <a name="Members" id="Members"></a>
765
1122
 
766
1123
  | **Name** | **Description** |
767
1124
  | --- | --- |
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.* |
1125
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneVariant.VOLTO">VOLTO</a></code> | Volto variant: ReactJS frontend (Volto) with REST API backend. |
1126
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneVariant.CLASSICUI">CLASSICUI</a></code> | Classic UI variant: Traditional Plone with server-side rendering. |
770
1127
 
771
1128
  ---
772
1129
 
773
1130
  ##### `VOLTO` <a name="VOLTO" id="@bluedynamics/cdk8s-plone.PloneVariant.VOLTO"></a>
774
1131
 
1132
+ Volto variant: ReactJS frontend (Volto) with REST API backend.
1133
+
1134
+ Deploys both frontend and backend services.
1135
+
775
1136
  ---
776
1137
 
777
1138
 
778
1139
  ##### `CLASSICUI` <a name="CLASSICUI" id="@bluedynamics/cdk8s-plone.PloneVariant.CLASSICUI"></a>
779
1140
 
1141
+ Classic UI variant: Traditional Plone with server-side rendering.
1142
+
1143
+ Deploys only the backend service.
1144
+
780
1145
  ---
781
1146