Skip to main content

CDK8S Plone

TypeScript and Python library for deploying Plone CMS to Kubernetes using CDK8S

npm version PyPI version License

Overview

cdk8s-plone provides CDK8S constructs for deploying Plone CMS on Kubernetes. Define your infrastructure using TypeScript or Python and generate Kubernetes manifests automatically.

Key Features:

  • 🚀 Supports Volto (React frontend) and Blicca (formerly Classic UI)
  • 📦 High availability with configurable replicas
  • ⚡ Optional Varnish HTTP caching via kube-httpcache (PloneHttpcache) or cloud-vinyl VinylCache operator (PloneVinylCache)
  • 🔧 Fine-grained resource and probe configuration
  • 🌍 Multi-language support (TypeScript/JavaScript and Python)
  • ✅ Type-safe infrastructure as code

Quick Start

Installation

TypeScript/JavaScript:

npm install @bluedynamics/cdk8s-plone

Python:

pip install cdk8s-plone

Basic Example

import { App, Chart } from 'cdk8s';
import { Plone, PloneVariant } from '@bluedynamics/cdk8s-plone';

const app = new App();
const chart = new Chart(app, 'PloneDeployment');

new Plone(chart, 'my-plone', {
  variant: PloneVariant.VOLTO,
  backend: {
    image: 'plone/plone-backend:6.1.3',
    replicas: 3,
  },
  frontend: {
    image: 'plone/plone-frontend:16.0.0',
    replicas: 2,
  },
});

app.synth();

Generate Kubernetes manifests:

cdk8s synth
kubectl apply -f dist/

Documentation

📚 Full documentation: https://bluedynamics.github.io/cdk8s-plone/

Examples

Complete working examples are available in the examples/ directory:

  • Volto - Production-ready Plone 6 deployment with the React single-page frontend:

    • Volto frontend (React) + REST API backend
    • PostgreSQL with RelStorage (plain PostgreSQL or CloudNativePG)
    • Varnish HTTP caching with kube-httpcache
    • Ingress support (Traefik/Kong) with TLS
  • Blicca - Plone deployment with server-side rendering (formerly Classic UI):

    • Blicca (backend renders the UI, no separate frontend)
    • PostgreSQL with RelStorage (plain PostgreSQL or CloudNativePG)
    • Varnish HTTP caching with kube-httpcache
    • Ingress support (Traefik/Kong) with TLS
    • Simpler architecture (no separate frontend)

Prometheus Metrics

Enable Prometheus ServiceMonitor for metrics collection (requires Prometheus Operator):

new Plone(chart, 'my-plone', {
  backend: {
    servicemonitor: true,
    metricsPath: '/metrics',  // optional, defaults to '/metrics'
  },
  frontend: {
    servicemonitor: true,
    metricsPort: 9090,  // optional, defaults to service port
  },
});

Note: You must instrument your Plone backend/frontend to expose metrics at the configured endpoint. For Volto/Node.js frontends, consider using prom-client or express-prometheus-middleware.

Requirements

For detailed setup instructions, see Setup Prerequisites.

Development

This project uses Projen for project management.

# Install dependencies
npm install

# Run tests
npm test

# Build
npm run build

# Update project configuration
# Edit .projenrc.ts, then run:
npx projen

For detailed development instructions, see CONTRIBUTING.md (if available).

Resources

License

Apache 2.0

Maintainers

Maintained by Blue Dynamics Alliance

Author: Jens W. Klein (jk@kleinundpartner.at)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdk8s_plone-0.1.54.tar.gz (918.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cdk8s_plone-0.1.54-py3-none-any.whl (917.8 kB view details)

Uploaded Python 3

File details

Details for the file cdk8s_plone-0.1.54.tar.gz.

File metadata

  • Download URL: cdk8s_plone-0.1.54.tar.gz
  • Upload date:
  • Size: 918.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.14.6

File hashes

Hashes for cdk8s_plone-0.1.54.tar.gz
Algorithm Hash digest
SHA256 03b1f1c601ec9dae5f664267bac3868894068c2e1150205043476ce014317a7b
MD5 dc4a94e0c4b9097d9f86d2af11b7a150
BLAKE2b-256 afb7591861bc696f717d3236bd9582f4d264f5fd933cb0588a10c59faf099fd5

See more details on using hashes here.

File details

Details for the file cdk8s_plone-0.1.54-py3-none-any.whl.

File metadata

  • Download URL: cdk8s_plone-0.1.54-py3-none-any.whl
  • Upload date:
  • Size: 917.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.14.6

File hashes

Hashes for cdk8s_plone-0.1.54-py3-none-any.whl
Algorithm Hash digest
SHA256 5f5bfc7f6cf44f81199978d6a939f19ddb5122a692aadf0e8d829f2643a24313
MD5 07b69e7d92f8b6b2e16a7676979e6bd7
BLAKE2b-256 83887d3dbea0dcca2dd86ff05d059b0cfcb90c9f8aca892f6ad14de9b32c6c55

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.56

2 files

0.1.55

2 files

This release

0.1.54 This release

2 files

0.1.53

2 files

0.1.52

2 files

0.1.51

2 files

0.1.50

2 files

0.1.49

2 files

0.1.48

2 files

0.1.47

2 files

0.1.46

2 files

0.1.45

2 files

0.1.44

2 files

0.1.43

2 files

0.1.42

2 files

0.1.41

2 files

0.1.40

2 files

0.1.39

2 files

0.1.38

2 files

0.1.37

2 files

0.1.36

2 files

0.1.35

2 files

0.1.34

2 files

0.1.33

2 files

0.1.32

2 files

0.1.31

2 files

0.1.30

2 files

0.1.29

2 files

0.1.28

2 files

0.1.27

2 files

0.1.26

2 files

0.1.25

2 files

0.1.24

2 files

0.1.23

2 files

0.1.22

2 files

0.1.21

2 files

0.1.20

2 files

0.1.19

2 files

0.1.18

2 files

0.1.17

2 files

0.1.16

2 files

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.81

2 files

0.0.80

2 files

0.0.79

2 files

0.0.78

2 files

0.0.77

2 files

0.0.76

2 files

0.0.75

2 files

0.0.74

2 files

0.0.73

2 files

0.0.72

2 files

0.0.71

2 files

0.0.70

2 files

0.0.69

2 files

0.0.68

2 files

0.0.67

2 files

0.0.66

2 files

0.0.65

2 files

0.0.64

2 files

0.0.63

2 files

0.0.62

2 files

0.0.61

2 files

0.0.60

2 files

0.0.59

2 files

0.0.58

2 files

0.0.57

2 files

0.0.56

2 files

0.0.55

2 files

0.0.54

2 files

0.0.53

2 files

0.0.52

2 files

0.0.51

2 files

0.0.50

2 files

0.0.49

2 files

0.0.48

2 files

0.0.47

2 files

0.0.46

2 files

0.0.45

2 files

0.0.44

2 files

0.0.43

2 files

0.0.42

2 files

0.0.41

2 files

0.0.40

2 files

0.0.39

2 files

0.0.38

2 files

0.0.37

2 files

0.0.36

2 files

0.0.35

2 files

0.0.34

2 files

0.0.33

2 files

0.0.32

2 files

0.0.31

2 files

0.0.30

2 files

0.0.29

2 files

0.0.28

2 files

0.0.27

2 files

0.0.26

2 files

0.0.25

2 files

0.0.24

2 files

0.0.23

2 files

0.0.22

2 files

0.0.21

2 files

0.0.20

2 files

0.0.19

2 files

0.0.18

2 files

0.0.17

2 files

0.0.16

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

0.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page