@bluedynamics/cdk8s-plone 0.1.5 → 0.1.7

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.
Files changed (43) hide show
  1. package/.jsii +109 -43
  2. package/API.md +49 -0
  3. package/CLAUDE.md +352 -0
  4. package/README.md +70 -176
  5. package/documentation/Makefile +357 -0
  6. package/documentation/README.md +284 -0
  7. package/documentation/mx.ini +3 -0
  8. package/documentation/sources/_static/brand-theme.css +685 -0
  9. package/documentation/sources/_static/custom-icons.css +123 -0
  10. package/documentation/sources/_static/fonts/hack/Hack-Regular.woff2 +0 -0
  11. package/documentation/sources/_static/fonts/orbitron/Orbitron-Black.woff2 +11 -0
  12. package/documentation/sources/_static/fonts/orbitron/Orbitron-Bold.woff2 +11 -0
  13. package/documentation/sources/_static/fonts/orbitron/Orbitron-Regular.woff2 +0 -0
  14. package/documentation/sources/_static/fonts/rajdhani/Rajdhani-Bold.woff2 +11 -0
  15. package/documentation/sources/_static/fonts/rajdhani/Rajdhani-Medium.woff2 +11 -0
  16. package/documentation/sources/_static/fonts/rajdhani/Rajdhani-Regular.woff2 +11 -0
  17. package/documentation/sources/_static/fonts/rajdhani/Rajdhani-SemiBold.woff2 +11 -0
  18. package/documentation/sources/_static/kup6s-icon-explanation.svg +32 -0
  19. package/documentation/sources/_static/kup6s-icon-howto.svg +34 -0
  20. package/documentation/sources/_static/kup6s-icon-plone.svg +79 -0
  21. package/documentation/sources/_static/kup6s-icon-reference.svg +34 -0
  22. package/documentation/sources/_static/kup6s-icon-tutorials.svg +30 -0
  23. package/documentation/sources/_static/logo-fix.js +12 -0
  24. package/documentation/sources/conf.py +105 -0
  25. package/documentation/sources/explanation/architecture.md +311 -0
  26. package/documentation/sources/explanation/features.md +353 -0
  27. package/documentation/sources/explanation/index.md +51 -0
  28. package/documentation/sources/how-to/index.md +56 -0
  29. package/documentation/sources/how-to/setup-prerequisites.md +354 -0
  30. package/documentation/sources/index.md +108 -0
  31. package/documentation/sources/reference/api/.gitkeep +1 -0
  32. package/documentation/sources/reference/configuration-options.md +370 -0
  33. package/documentation/sources/reference/index.md +59 -0
  34. package/documentation/sources/tutorials/01-quick-start.md +157 -0
  35. package/documentation/sources/tutorials/index.md +48 -0
  36. package/lib/httpcache.js +1 -1
  37. package/lib/imports/monitoring.coreos.com.d.ts +2029 -0
  38. package/lib/imports/monitoring.coreos.com.js +1042 -0
  39. package/lib/plone.d.ts +26 -0
  40. package/lib/plone.js +53 -2
  41. package/lib/service.d.ts +6 -0
  42. package/lib/service.js +2 -1
  43. package/package.json +3 -1
@@ -0,0 +1,56 @@
1
+ ```{image} ../_static/kup6s-icon-howto.svg
2
+ :align: center
3
+ :class: section-icon-large
4
+ ```
5
+
6
+ # How-To Guides
7
+
8
+ **Goal-oriented guides showing you how to solve specific problems with cdk8s-plone.**
9
+
10
+ How-to guides are recipes that take you through the steps involved in addressing specific tasks and problems. They are more advanced than tutorials and assume you have some knowledge of how cdk8s-plone works.
11
+
12
+ ## Prerequisites
13
+
14
+ **Set up required infrastructure before deploying Plone:**
15
+
16
+ ```{toctree}
17
+ ---
18
+ maxdepth: 1
19
+ titlesonly: true
20
+ ---
21
+ setup-prerequisites
22
+ ```
23
+
24
+ ## Configuration
25
+
26
+ ```{toctree}
27
+ ---
28
+ maxdepth: 1
29
+ titlesonly: true
30
+ ---
31
+ ```
32
+
33
+ *Configuration guides will be added in future releases.*
34
+
35
+ ## Operations & Maintenance
36
+
37
+ ```{toctree}
38
+ ---
39
+ maxdepth: 1
40
+ titlesonly: true
41
+ ---
42
+ ```
43
+
44
+ *Operations guides will be added in future releases.*
45
+
46
+ ## Troubleshooting
47
+
48
+ *This section will be populated with troubleshooting guides in future releases.*
49
+
50
+ ---
51
+
52
+ **New to cdk8s-plone?** Start with the [Tutorials](../tutorials/index.md) for step-by-step lessons.
53
+
54
+ **Need technical specifications?** See the [Reference](../reference/index.md) section for API documentation.
55
+
56
+ **Want to understand concepts?** Read the [Explanation](../explanation/index.md) section for architecture and design decisions.
@@ -0,0 +1,354 @@
1
+ # Setup Prerequisites
2
+
3
+ Prepare your environment for deploying Plone with cdk8s-plone.
4
+
5
+ ## Required Tools
6
+
7
+ ### kubectl
8
+
9
+ Command-line tool for deploying and managing Kubernetes resources.
10
+
11
+ **Installation:**
12
+ - [Install kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)
13
+
14
+ **Verify installation:**
15
+ ```bash
16
+ kubectl version --client
17
+ ```
18
+
19
+ **Configure cluster access:**
20
+ ```bash
21
+ # Verify you can connect to your cluster
22
+ kubectl cluster-info
23
+ kubectl get nodes
24
+ ```
25
+
26
+ ### Node.js (for TypeScript/JavaScript)
27
+
28
+ Required for TypeScript/JavaScript development.
29
+
30
+ **Minimum version:** 16+
31
+ **Recommended:** LTS version
32
+
33
+ **Installation:**
34
+ - [Install Node.js](https://nodejs.org/)
35
+ - Or use [nvm](https://github.com/nvm-sh/nvm):
36
+ ```bash
37
+ nvm install --lts
38
+ nvm use --lts
39
+ ```
40
+
41
+ **Verify installation:**
42
+ ```bash
43
+ node --version
44
+ npm --version
45
+ ```
46
+
47
+ ### Python (for Python Development)
48
+
49
+ Required for Python development.
50
+
51
+ **Minimum version:** Python 3.8+
52
+ **Recommended:** Python 3.11+
53
+
54
+ **Installation:**
55
+ - [Install Python](https://www.python.org/downloads/)
56
+
57
+ **Verify installation:**
58
+ ```bash
59
+ python --version
60
+ pip --version
61
+ ```
62
+
63
+ ### CDK8S CLI
64
+
65
+ The CDK8S command-line tool for project initialization and synthesis.
66
+
67
+ **Installation:**
68
+ ```bash
69
+ npm install -g cdk8s-cli
70
+ ```
71
+
72
+ **Verify installation:**
73
+ ```bash
74
+ cdk8s --version
75
+ ```
76
+
77
+ ## Optional Tools
78
+
79
+ ### Helm
80
+
81
+ Required only if you want to generate Helm charts instead of raw Kubernetes manifests.
82
+
83
+ **Installation:**
84
+ - [Install Helm](https://helm.sh/docs/intro/install/)
85
+
86
+ **Verify installation:**
87
+ ```bash
88
+ helm version
89
+ ```
90
+
91
+ ### k9s
92
+
93
+ Terminal-based UI for managing Kubernetes clusters (recommended for development).
94
+
95
+ **Installation:**
96
+ - [Install k9s](https://k9scli.io/topics/install/)
97
+
98
+ **Usage:**
99
+ ```bash
100
+ k9s
101
+ ```
102
+
103
+ ### kubectx and kubens
104
+
105
+ Tools for switching between Kubernetes contexts and namespaces.
106
+
107
+ **Installation:**
108
+ - [Install kubectx](https://github.com/ahmetb/kubectx#installation)
109
+
110
+ **Usage:**
111
+ ```bash
112
+ kubectx # List contexts
113
+ kubectx my-cluster # Switch context
114
+ kubens my-namespace # Switch namespace
115
+ ```
116
+
117
+ ## Kubernetes Cluster
118
+
119
+ You need access to a Kubernetes cluster for deployment.
120
+
121
+ ### Local Development Clusters
122
+
123
+ **Minikube**
124
+ ```bash
125
+ # Install
126
+ # https://minikube.sigs.k8s.io/docs/start/
127
+
128
+ # Start cluster
129
+ minikube start
130
+
131
+ # Verify
132
+ kubectl cluster-info
133
+ ```
134
+
135
+ **kind (Kubernetes in Docker)**
136
+ ```bash
137
+ # Install
138
+ # https://kind.sigs.k8s.io/docs/user/quick-start/
139
+
140
+ # Create cluster
141
+ kind create cluster --name plone-dev
142
+
143
+ # Verify
144
+ kubectl cluster-info
145
+ ```
146
+
147
+ **Docker Desktop**
148
+ - Enable Kubernetes in Docker Desktop settings
149
+ - Verify with `kubectl cluster-info`
150
+
151
+ **k3d (Lightweight Kubernetes)**
152
+ ```bash
153
+ # Install
154
+ # https://k3d.io/
155
+
156
+ # Create cluster
157
+ k3d cluster create plone-dev
158
+
159
+ # Verify
160
+ kubectl cluster-info
161
+ ```
162
+
163
+ ### Cloud Kubernetes Services
164
+
165
+ **Google Kubernetes Engine (GKE)**
166
+ ```bash
167
+ # Create cluster
168
+ gcloud container clusters create plone-cluster \
169
+ --num-nodes=3 \
170
+ --machine-type=n1-standard-2
171
+
172
+ # Get credentials
173
+ gcloud container clusters get-credentials plone-cluster
174
+ ```
175
+
176
+ **Amazon EKS**
177
+ ```bash
178
+ # Create cluster using eksctl
179
+ eksctl create cluster \
180
+ --name plone-cluster \
181
+ --nodes 3 \
182
+ --node-type t3.medium
183
+
184
+ # Verify
185
+ kubectl get nodes
186
+ ```
187
+
188
+ **Azure Kubernetes Service (AKS)**
189
+ ```bash
190
+ # Create cluster
191
+ az aks create \
192
+ --resource-group myResourceGroup \
193
+ --name plone-cluster \
194
+ --node-count 3 \
195
+ --node-vm-size Standard_D2_v2
196
+
197
+ # Get credentials
198
+ az aks get-credentials \
199
+ --resource-group myResourceGroup \
200
+ --name plone-cluster
201
+ ```
202
+
203
+ ## Cluster Requirements
204
+
205
+ ### Minimum Resources
206
+
207
+ **For development/testing:**
208
+ - **Nodes:** 1-2 nodes
209
+ - **CPU:** 2+ cores per node
210
+ - **Memory:** 4GB+ per node
211
+ - **Storage:** 20GB+ per node
212
+
213
+ **For production:**
214
+ - **Nodes:** 3+ nodes (for high availability)
215
+ - **CPU:** 4+ cores per node
216
+ - **Memory:** 8GB+ per node
217
+ - **Storage:** 50GB+ per node
218
+
219
+ ### Required Kubernetes Features
220
+
221
+ - **Version:** Kubernetes 1.20+
222
+ - **Networking:** CNI plugin installed
223
+ - **Storage:** StorageClass with dynamic provisioning
224
+ - **DNS:** CoreDNS or equivalent
225
+
226
+ **Verify storage classes:**
227
+ ```bash
228
+ kubectl get storageclasses
229
+ ```
230
+
231
+ If no storage class exists, you need to configure one for your cluster.
232
+
233
+ ## Namespace Setup
234
+
235
+ Create a namespace for your Plone deployment:
236
+
237
+ ```bash
238
+ # Create namespace
239
+ kubectl create namespace plone
240
+
241
+ # Set as default (optional)
242
+ kubectl config set-context --current --namespace=plone
243
+
244
+ # Verify
245
+ kubectl config view --minify | grep namespace:
246
+ ```
247
+
248
+ ## Image Registry Access
249
+
250
+ ### Public Registries
251
+
252
+ No configuration needed for public Plone images:
253
+ - `plone/plone-backend:6.1.3`
254
+ - `plone/plone-frontend:16.0.0`
255
+
256
+ ### Private Registries
257
+
258
+ Create a pull secret for private registries:
259
+
260
+ **Docker Hub:**
261
+ ```bash
262
+ kubectl create secret docker-registry docker-hub \
263
+ --docker-server=docker.io \
264
+ --docker-username=YOUR_USERNAME \
265
+ --docker-password=YOUR_PASSWORD \
266
+ --docker-email=YOUR_EMAIL
267
+ ```
268
+
269
+ **Google Container Registry:**
270
+ ```bash
271
+ kubectl create secret docker-registry gcr-secret \
272
+ --docker-server=gcr.io \
273
+ --docker-username=_json_key \
274
+ --docker-password="$(cat keyfile.json)" \
275
+ --docker-email=user@example.com
276
+ ```
277
+
278
+ **Azure Container Registry:**
279
+ ```bash
280
+ kubectl create secret docker-registry acr-secret \
281
+ --docker-server=myregistry.azurecr.io \
282
+ --docker-username=YOUR_USERNAME \
283
+ --docker-password=YOUR_PASSWORD
284
+ ```
285
+
286
+ Use the secret in your deployment:
287
+ ```typescript
288
+ new Plone(chart, 'my-plone', {
289
+ imagePullSecrets: ['docker-hub', 'gcr-secret'],
290
+ backend: { image: 'private-registry.io/plone-backend:6.1.3' },
291
+ });
292
+ ```
293
+
294
+ ## Verification Checklist
295
+
296
+ Before proceeding, verify:
297
+
298
+ - [ ] kubectl installed and configured
299
+ - [ ] Access to Kubernetes cluster verified
300
+ - [ ] Node.js or Python installed (depending on your language choice)
301
+ - [ ] CDK8S CLI installed
302
+ - [ ] Namespace created (optional but recommended)
303
+ - [ ] Storage class available in cluster
304
+ - [ ] Image pull secrets created (if using private registries)
305
+
306
+ **Verify everything:**
307
+ ```bash
308
+ # Check tools
309
+ kubectl version --client
310
+ cdk8s --version
311
+ node --version # or python --version
312
+
313
+ # Check cluster access
314
+ kubectl cluster-info
315
+ kubectl get nodes
316
+ kubectl get storageclasses
317
+
318
+ # Check namespace
319
+ kubectl get namespace plone
320
+ ```
321
+
322
+ ## Next Steps
323
+
324
+ Now that your environment is ready:
325
+
326
+ 1. **Start the tutorial**: Follow the [Quick Start](../tutorials/01-quick-start.md) guide
327
+ 2. **Explore examples**: Check the [example project](https://github.com/bluedynamics/cdk8s-plone-example)
328
+ 3. **Read about variants**: Learn about [Plone variants](../explanation/features.md#deployment-variants)
329
+
330
+ ## Troubleshooting
331
+
332
+ ### kubectl: command not found
333
+ - Ensure kubectl is in your PATH
334
+ - Reinstall following the [official guide](https://kubernetes.io/docs/tasks/tools/#kubectl)
335
+
336
+ ### Cannot connect to cluster
337
+ - Verify kubeconfig: `kubectl config view`
338
+ - Check cluster status: `kubectl cluster-info`
339
+ - Ensure VPN is connected (if required)
340
+
341
+ ### No storage classes available
342
+ - Check cluster documentation for storage setup
343
+ - For local clusters, storage is usually pre-configured
344
+ - For cloud providers, ensure CSI drivers are installed
345
+
346
+ ### Permission denied errors
347
+ - Verify RBAC permissions: `kubectl auth can-i create deployments`
348
+ - Contact your cluster administrator for proper permissions
349
+
350
+ ## See Also
351
+
352
+ - [Quick Start Tutorial](../tutorials/01-quick-start.md) - Get started with deployment
353
+ - [Architecture Overview](../explanation/architecture.md) - Understanding the system
354
+ - [Configuration Options](../reference/configuration-options.md) - Complete configuration reference
@@ -0,0 +1,108 @@
1
+ # cdk8s-plone Documentation
2
+
3
+ ```{image} _static/kup6s-icon-plone.svg
4
+ :alt: cdk8s-plone logo
5
+ :width: 200px
6
+ :align: center
7
+ ```
8
+
9
+ **CDK8S Construct Library for Plone CMS Deployment**
10
+
11
+ Welcome to the cdk8s-plone documentation. This documentation covers everything from initial setup to advanced configuration and architectural concepts for deploying Plone CMS using CDK8S.
12
+
13
+ ## About cdk8s-plone
14
+
15
+ cdk8s-plone is a TypeScript construct library for [CDK8S](https://cdk8s.io/) that enables programmatic deployment of [Plone](https://plone.org/) CMS on Kubernetes. It provides type-safe, reusable constructs for Plone Backend and Frontend with production-grade defaults.
16
+
17
+ **Key Features:**
18
+ - Type-safe TypeScript constructs for Plone Backend and Frontend
19
+ - Production-grade defaults with full customization
20
+ - Support for PostgreSQL backends
21
+ - Comprehensive resource management (CPU, memory, storage)
22
+ - Component-level configuration options
23
+ - Built on CDK8S for infrastructure as code
24
+
25
+ ## Documentation Structure
26
+
27
+ This documentation follows the [Diátaxis framework](https://diataxis.fr/), organizing content into four categories based on what you need:
28
+
29
+ ::::{grid} 2
30
+ :gutter: 3
31
+
32
+ :::{grid-item-card} Tutorials
33
+ :img-top: _static/kup6s-icon-tutorials.svg
34
+ :link: tutorials/index
35
+ :link-type: doc
36
+
37
+ **Learning-oriented**: Step-by-step lessons to build skills
38
+
39
+ *Start here if you're new to cdk8s-plone*
40
+ :::
41
+
42
+ :::{grid-item-card} How-To Guides
43
+ :img-top: _static/kup6s-icon-howto.svg
44
+ :link: how-to/index
45
+ :link-type: doc
46
+
47
+ **Goal-oriented**: Solutions to specific problems
48
+
49
+ *Use these when you need to accomplish something*
50
+ :::
51
+
52
+ :::{grid-item-card} Reference
53
+ :img-top: _static/kup6s-icon-reference.svg
54
+ :link: reference/index
55
+ :link-type: doc
56
+
57
+ **Information-oriented**: Technical specifications and configurations
58
+
59
+ *Consult when you need detailed information*
60
+ :::
61
+
62
+ :::{grid-item-card} Explanation
63
+ :img-top: _static/kup6s-icon-explanation.svg
64
+ :link: explanation/index
65
+ :link-type: doc
66
+
67
+ **Understanding-oriented**: Concepts and design decisions
68
+
69
+ *Read to deepen your understanding*
70
+ :::
71
+
72
+ ::::
73
+
74
+ ## Quick Links
75
+
76
+ ### Getting Started
77
+ - [Quick Start](tutorials/01-quick-start.md) - Deploy your first Plone instance
78
+ - [Setup Prerequisites](how-to/setup-prerequisites.md) - Prepare cluster infrastructure
79
+ - [Features Overview](explanation/features.md) - Explore capabilities
80
+
81
+ ### Configuration
82
+ - [Configuration Options](reference/configuration-options.md) - Complete configuration reference
83
+ - [Architecture Overview](explanation/architecture.md) - High-level design
84
+
85
+ ### Common Tasks
86
+ - Scale Resources - Adjust CPU and memory limits (coming soon)
87
+ - Configure Monitoring - Set up Prometheus metrics (coming soon)
88
+ - Backup and Restore - Protect your data (coming soon)
89
+
90
+ ## Table of Contents
91
+
92
+ ```{toctree}
93
+ ---
94
+ maxdepth: 3
95
+ caption: Documentation
96
+ titlesonly: true
97
+ ---
98
+ tutorials/index
99
+ how-to/index
100
+ reference/index
101
+ explanation/index
102
+ ```
103
+
104
+ ---
105
+
106
+ **Last updated:** 2025-01-12
107
+ **cdk8s-plone version:** 0.0.0
108
+ **CDK8S version:** ^2.70.27
@@ -0,0 +1 @@
1
+ # This directory will contain API documentation