@bluedynamics/cdk8s-plone 0.1.43 → 0.1.44
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 +24 -23
- package/API.md +6 -2
- package/README.md +3 -3
- package/documentation/sources/conf.py +55 -29
- package/documentation/sources/explanation/architecture.md +14 -16
- package/documentation/sources/explanation/cdk8s-workflow.md +66 -0
- package/documentation/sources/explanation/index.md +1 -27
- package/documentation/sources/how-to/backup-and-restore.md +107 -0
- package/documentation/sources/how-to/configure-env-and-secrets.md +184 -0
- package/documentation/sources/how-to/configure-ingress-tls.md +108 -0
- package/documentation/sources/how-to/configure-security-context.md +0 -5
- package/documentation/sources/how-to/deploy-blicca.md +8 -8
- package/documentation/sources/how-to/{deploy-production-volto.md → deploy-volto.md} +20 -25
- package/documentation/sources/how-to/deploy-with-httpcache.md +224 -0
- package/documentation/sources/how-to/deploy-with-vinyl-cache.md +0 -5
- package/documentation/sources/how-to/enable-prometheus-monitoring.md +4 -5
- package/documentation/sources/how-to/index.md +15 -8
- package/documentation/sources/how-to/scale-and-high-availability.md +122 -0
- package/documentation/sources/how-to/schedule-pods.md +0 -5
- package/documentation/sources/how-to/troubleshooting.md +113 -0
- package/documentation/sources/how-to/upgrade-and-rollout.md +89 -0
- package/documentation/sources/index.md +3 -11
- package/documentation/sources/reference/api/index.md +6 -4
- package/documentation/sources/reference/configuration-options.md +85 -516
- package/documentation/sources/reference/index.md +16 -43
- package/documentation/sources/tutorials/01-quick-start.md +1 -1
- package/documentation/sources/tutorials/index.md +7 -11
- package/examples/blicca/.env.example +3 -2
- package/examples/blicca/README.md +21 -24
- package/examples/blicca/__snapshots__/main.test.ts.snap +138 -345
- package/examples/blicca/main.test.ts +7 -0
- package/examples/blicca/main.ts +8 -7
- package/examples/blicca/postgres.plain.ts +115 -0
- package/examples/blicca/tsconfig.json +33 -0
- package/examples/{production-volto → volto}/.env.example +3 -2
- package/examples/{production-volto → volto}/README.md +20 -23
- package/examples/{production-volto → volto}/__snapshots__/main.test.ts.snap +139 -345
- package/examples/{production-volto → volto}/main.test.ts +7 -0
- package/examples/{production-volto → volto}/main.ts +8 -7
- package/examples/{production-volto → volto}/package.json +1 -1
- package/examples/volto/postgres.plain.ts +115 -0
- package/examples/volto/tsconfig.json +33 -0
- package/lib/httpcache.js +1 -1
- package/lib/imports/vinyl.bluedynamics.eu.d.ts +4011 -53
- package/lib/imports/vinyl.bluedynamics.eu.js +1786 -157
- package/lib/plone.js +1 -1
- package/lib/vinylcache.d.ts +3 -1
- package/lib/vinylcache.js +3 -2
- package/package.json +1 -1
- package/documentation/sources/_static/brand-theme.css +0 -685
- package/documentation/sources/_static/custom-icons.css +0 -123
- package/documentation/sources/_static/fonts/hack/Hack-Regular.woff2 +0 -0
- package/documentation/sources/_static/fonts/orbitron/Orbitron-Black.woff2 +0 -11
- package/documentation/sources/_static/fonts/orbitron/Orbitron-Bold.woff2 +0 -11
- package/documentation/sources/_static/fonts/orbitron/Orbitron-Regular.woff2 +0 -0
- package/documentation/sources/_static/fonts/rajdhani/Rajdhani-Bold.woff2 +0 -11
- package/documentation/sources/_static/fonts/rajdhani/Rajdhani-Medium.woff2 +0 -11
- package/documentation/sources/_static/fonts/rajdhani/Rajdhani-Regular.woff2 +0 -11
- package/documentation/sources/_static/fonts/rajdhani/Rajdhani-SemiBold.woff2 +0 -11
- package/documentation/sources/_static/kup6s-icon-explanation.svg +0 -32
- package/documentation/sources/_static/kup6s-icon-howto.svg +0 -34
- package/documentation/sources/_static/kup6s-icon-reference.svg +0 -34
- package/documentation/sources/_static/kup6s-icon-tutorials.svg +0 -30
- package/documentation/sources/_static/logo-fix.js +0 -12
- package/documentation/sources/reference/api/.gitkeep +0 -1
- package/examples/blicca/postgres.bitnami.ts +0 -49
- package/examples/production-volto/postgres.bitnami.ts +0 -49
- /package/documentation/sources/_static/{kup6s-icon-plone.svg → logo.svg} +0 -0
- /package/examples/{production-volto → volto}/cdk8s.yaml +0 -0
- /package/examples/{production-volto → volto}/config/varnish.tpl.vcl +0 -0
- /package/examples/{production-volto → volto}/ingress.ts +0 -0
- /package/examples/{production-volto → volto}/jest.config.js +0 -0
- /package/examples/{production-volto → volto}/postgres.cloudnativepg.ts +0 -0
|
@@ -1,68 +1,41 @@
|
|
|
1
1
|
---
|
|
2
2
|
myst:
|
|
3
3
|
html_meta:
|
|
4
|
-
"description": "Information-oriented technical reference for cdk8s-plone
|
|
5
|
-
"property=og:description": "Information-oriented technical reference for cdk8s-plone
|
|
4
|
+
"description": "Information-oriented technical reference for cdk8s-plone: the generated API reference and a task-oriented configuration guide."
|
|
5
|
+
"property=og:description": "Information-oriented technical reference for cdk8s-plone: the generated API reference and a task-oriented configuration guide."
|
|
6
6
|
"property=og:title": "Reference"
|
|
7
7
|
"keywords": "Plone, cdk8s, Kubernetes, reference, API, configuration"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
```{image} ../_static/kup6s-icon-reference.svg
|
|
11
|
-
:align: center
|
|
12
|
-
:class: section-icon-large
|
|
13
|
-
```
|
|
14
|
-
|
|
15
10
|
# Reference
|
|
16
11
|
|
|
17
|
-
**Information-oriented technical specifications
|
|
18
|
-
|
|
19
|
-
Reference guides provide detailed technical information about cdk8s-plone's API, configuration options, and component specifications. They describe how things work and what parameters are available.
|
|
12
|
+
**Information-oriented technical specifications for cdk8s-plone.**
|
|
20
13
|
|
|
21
|
-
|
|
14
|
+
The reference has two parts that play different roles:
|
|
22
15
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- Utility functions and validators
|
|
16
|
+
{doc}`API reference <api/index>`
|
|
17
|
+
: The complete, authoritative list of every construct, interface, option, type, default value, and enum.
|
|
18
|
+
It is generated from the TypeScript source with `npx projen docgen`, so it never drifts from the code.
|
|
19
|
+
Use it to look up exactly what an option does, its type, and whether it is required.
|
|
28
20
|
|
|
29
|
-
|
|
21
|
+
{doc}`Configuration guide <configuration-options>`
|
|
22
|
+
: A hand-written, task-oriented tour of the most common configuration, with copy-pasteable examples.
|
|
23
|
+
It links into the API reference rather than repeating it.
|
|
24
|
+
Use it to see how options fit together for a real deployment.
|
|
30
25
|
|
|
31
26
|
```{toctree}
|
|
32
27
|
---
|
|
33
28
|
maxdepth: 1
|
|
34
29
|
titlesonly: true
|
|
35
30
|
---
|
|
31
|
+
api/index
|
|
36
32
|
configuration-options
|
|
37
33
|
```
|
|
38
34
|
|
|
39
|
-
## Component specifications
|
|
40
|
-
|
|
41
|
-
```{toctree}
|
|
42
|
-
---
|
|
43
|
-
maxdepth: 1
|
|
44
|
-
titlesonly: true
|
|
45
|
-
---
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
*Component specifications will be added in future releases.*
|
|
49
|
-
|
|
50
|
-
## API documentation
|
|
51
|
-
|
|
52
|
-
See the `api/` directory for detailed construct documentation:
|
|
53
|
-
|
|
54
|
-
```{toctree}
|
|
55
|
-
---
|
|
56
|
-
maxdepth: 1
|
|
57
|
-
glob: true
|
|
58
|
-
---
|
|
59
|
-
api/*
|
|
60
|
-
```
|
|
61
|
-
|
|
62
35
|
---
|
|
63
36
|
|
|
64
|
-
**Getting started?** Begin with the
|
|
37
|
+
**Getting started?** Begin with the {doc}`/tutorials/index` for hands-on learning.
|
|
65
38
|
|
|
66
|
-
**Solving a specific problem?** Check the
|
|
39
|
+
**Solving a specific problem?** Check the {doc}`/how-to/index` for task-oriented solutions.
|
|
67
40
|
|
|
68
|
-
**Understanding concepts?** Read the
|
|
41
|
+
**Understanding concepts?** Read the {doc}`/explanation/index` for architecture and design.
|
|
@@ -15,7 +15,7 @@ This tutorial will guide you through deploying your first Plone instance using c
|
|
|
15
15
|
|
|
16
16
|
Before you start, ensure you have:
|
|
17
17
|
|
|
18
|
-
- **Node.js
|
|
18
|
+
- **Node.js 18+** and npm installed
|
|
19
19
|
- **kubectl** configured to access your Kubernetes cluster
|
|
20
20
|
- Basic familiarity with Kubernetes and TypeScript
|
|
21
21
|
- A Kubernetes cluster (local or remote)
|
|
@@ -7,11 +7,6 @@ myst:
|
|
|
7
7
|
"keywords": "Plone, cdk8s, Kubernetes, tutorials, getting started"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
```{image} ../_static/kup6s-icon-tutorials.svg
|
|
11
|
-
:align: center
|
|
12
|
-
:class: section-icon-large
|
|
13
|
-
```
|
|
14
|
-
|
|
15
10
|
# Tutorials
|
|
16
11
|
|
|
17
12
|
**Learning-oriented guides that take you through a series of steps to complete a project.**
|
|
@@ -20,12 +15,13 @@ Tutorials are lessons that help you gain practical skills and familiarity with c
|
|
|
20
15
|
|
|
21
16
|
## What you'll learn
|
|
22
17
|
|
|
23
|
-
|
|
18
|
+
The quick start teaches you how to:
|
|
19
|
+
|
|
20
|
+
- Define a Plone deployment with the `Plone` construct
|
|
21
|
+
- Synthesize Kubernetes manifests with `cdk8s synth`
|
|
22
|
+
- Apply the manifests and reach the running site
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
- Configure PostgreSQL backend
|
|
27
|
-
- Customize component resources and settings
|
|
28
|
-
- Test your deployment
|
|
24
|
+
For tasks beyond the first deployment, such as configuring a database, caching, or scaling, see the {doc}`/how-to/index`.
|
|
29
25
|
|
|
30
26
|
## Available tutorials
|
|
31
27
|
|
|
@@ -41,7 +37,7 @@ titlesonly: true
|
|
|
41
37
|
|
|
42
38
|
These tutorials assume you have:
|
|
43
39
|
- Basic familiarity with Kubernetes concepts
|
|
44
|
-
- Node.js
|
|
40
|
+
- Node.js 18+ and npm installed
|
|
45
41
|
- A Kubernetes cluster (local or remote)
|
|
46
42
|
- kubectl configured to access your cluster
|
|
47
43
|
- Basic TypeScript knowledge
|
|
@@ -15,5 +15,6 @@ CLUSTER_ISSUER=letsencrypt-prod
|
|
|
15
15
|
#PLONE_BACKEND_IMAGE=plone/plone-backend:6.1.3
|
|
16
16
|
|
|
17
17
|
# Configure database backend
|
|
18
|
-
# Options: '
|
|
19
|
-
|
|
18
|
+
# Options: 'plain' (default, operator-free single instance) or
|
|
19
|
+
# 'cloudnativepg' (production HA, requires the CloudNativePG operator)
|
|
20
|
+
DATABASE=plain
|
|
@@ -17,7 +17,7 @@ Blicca is the server-side rendered UI of Plone CMS: the Plone backend renders th
|
|
|
17
17
|
- Migration from older Plone versions (keeping the familiar server-rendered UX)
|
|
18
18
|
- Projects requiring Blicca-specific add-ons
|
|
19
19
|
|
|
20
|
-
**When to use Volto instead:** See the [
|
|
20
|
+
**When to use Volto instead:** See the [volto](../volto/) example for the React single-page frontend approach.
|
|
21
21
|
|
|
22
22
|
## Features
|
|
23
23
|
|
|
@@ -25,8 +25,8 @@ This example includes:
|
|
|
25
25
|
|
|
26
26
|
- **Plone 6.1 with Blicca** (server-side rendering)
|
|
27
27
|
- **PostgreSQL with RelStorage** - Choose between:
|
|
28
|
+
- Plain single-instance PostgreSQL using the official `postgres` image (default, operator-free, for dev and small setups)
|
|
28
29
|
- [CloudNativePG](https://cloudnative-pg.io/) (CNCF project, production-ready with HA)
|
|
29
|
-
- [Bitnami PostgreSQL](https://github.com/bitnami/charts/tree/main/bitnami/postgresql) Helm chart (simple, for dev/testing)
|
|
30
30
|
- **HTTP Caching with Varnish** - Using [kube-httpcache](https://github.com/mittwald/kube-httpcache)
|
|
31
31
|
- **Ingress** - Supports both Traefik and Kong with TLS/cert-manager
|
|
32
32
|
- **Three access domains**:
|
|
@@ -52,13 +52,12 @@ npm install
|
|
|
52
52
|
|
|
53
53
|
Your cluster needs:
|
|
54
54
|
|
|
55
|
-
1. **PostgreSQL
|
|
56
|
-
- **
|
|
55
|
+
1. **PostgreSQL** (choose one):
|
|
56
|
+
- **Plain** (default, no operator needed): the example deploys a single-instance PostgreSQL StatefulSet using the official `postgres` image, so there is nothing to install.
|
|
57
|
+
- **CloudNativePG** (recommended for production HA): install the operator
|
|
57
58
|
```bash
|
|
58
59
|
kubectl apply -f https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.24/releases/cnpg-1.24.0.yaml
|
|
59
60
|
```
|
|
60
|
-
- **Bitnami** (no operator needed, uses Helm):
|
|
61
|
-
- Requires namespace `plone` to exist: `kubectl create namespace plone`
|
|
62
61
|
|
|
63
62
|
2. **Ingress Controller** (choose one):
|
|
64
63
|
- Traefik v3 with CRDs installed
|
|
@@ -105,8 +104,8 @@ CLUSTER_ISSUER=letsencrypt-prod
|
|
|
105
104
|
# Plone backend image (defaults to official image if not set)
|
|
106
105
|
PLONE_BACKEND_IMAGE=plone/plone-backend:6.1.3
|
|
107
106
|
|
|
108
|
-
# Database backend: '
|
|
109
|
-
DATABASE=
|
|
107
|
+
# Database backend: 'plain' (default) or 'cloudnativepg'
|
|
108
|
+
DATABASE=plain
|
|
110
109
|
```
|
|
111
110
|
|
|
112
111
|
### 3. Generate Kubernetes Manifests
|
|
@@ -185,24 +184,24 @@ kubectl apply -f dist/plone-blicca.k8s.yaml -n plone
|
|
|
185
184
|
DATABASE=cloudnativepg
|
|
186
185
|
```
|
|
187
186
|
|
|
188
|
-
###
|
|
187
|
+
### Plain PostgreSQL (default, operator-free)
|
|
189
188
|
|
|
190
189
|
**Pros:**
|
|
191
|
-
- No operator required
|
|
192
|
-
-
|
|
193
|
-
-
|
|
194
|
-
-
|
|
190
|
+
- No operator and no third-party Helm chart required
|
|
191
|
+
- Uses the official `postgres` image, which is actively maintained
|
|
192
|
+
- Single-instance StatefulSet with a PersistentVolumeClaim
|
|
193
|
+
- Good for development and small production setups
|
|
195
194
|
|
|
196
195
|
**Cons:**
|
|
197
|
-
-
|
|
198
|
-
- No built-in HA features
|
|
199
|
-
- Less suitable for production
|
|
196
|
+
- No built-in high availability, failover, or automated backups
|
|
200
197
|
|
|
201
198
|
**Configuration:**
|
|
202
199
|
```bash
|
|
203
|
-
DATABASE=
|
|
200
|
+
DATABASE=plain
|
|
204
201
|
```
|
|
205
202
|
|
|
203
|
+
**Secrets:** the example creates a Secret with `username`, `password`, and `database` keys.
|
|
204
|
+
|
|
206
205
|
## Development
|
|
207
206
|
|
|
208
207
|
### Build and Test
|
|
@@ -302,13 +301,11 @@ kubectl get cluster
|
|
|
302
301
|
kubectl get secret -l cnpg.io/cluster
|
|
303
302
|
```
|
|
304
303
|
|
|
305
|
-
**
|
|
304
|
+
**Plain PostgreSQL:**
|
|
306
305
|
```bash
|
|
307
|
-
# Check
|
|
308
|
-
kubectl get
|
|
309
|
-
|
|
310
|
-
# Check secret
|
|
311
|
-
kubectl get secret -l app.kubernetes.io/part-of=plone
|
|
306
|
+
# Check the StatefulSet and pod
|
|
307
|
+
kubectl get statefulset -l app.kubernetes.io/name=plone-postgresql
|
|
308
|
+
kubectl get pods -l app.kubernetes.io/name=plone-postgresql
|
|
312
309
|
```
|
|
313
310
|
|
|
314
311
|
### Access Logs
|
|
@@ -322,7 +319,7 @@ kubectl get all -l app.kubernetes.io/part-of=plone
|
|
|
322
319
|
|
|
323
320
|
If you later want to migrate to Volto:
|
|
324
321
|
|
|
325
|
-
1. See the [
|
|
322
|
+
1. See the [volto](../volto/) example
|
|
326
323
|
2. Keep the same backend configuration (database, caching)
|
|
327
324
|
3. Add Volto frontend deployment
|
|
328
325
|
4. Update ingress to route to frontend
|