This chart provides a library to bootstrap a Plone deployment on a Kubernetes cluster using the CDK8S framework.
It provides
- Backend (for API with
plone.volto
or as Classic-UI) - Frontend (Plone-Volto, a ReactJS based user interface)
- Varnish using kube-httpcache. It includes a way to invalidate varnish cluster (optional)
To use this library, create a new CDK8S project (or use an existing one)
cdk8s init typescript-app
Then add the following dependency to package.json
:
{
"dependencies": {
"@bluedynamics/cdk8s-plone": "*"
}
}
Run npm install
to install the new dependency.
Todo: Document in details how to install.
cdk8s init python-app
Python package name is cdk8s-plone.
With cdk8s-cli
installed, create a new project:
cdk8s sythn
Add the following code to your main.ts
:
...
import { Plone } from '@bluedynamics/cdk8s-plone';
...
super(scope, id, props);
// define resources here
new Plone(this, 'Plone', {});
...
Run npm run build
to generate the Kubernetes manifests.
The manifests are stored in the dist
directory.
For more have a look at the example project.
Clone the repository and install the dependencies:
nvm use lts/* npm install yarn projen
Then run the following command to run the test:
```bash
npx projen test
Each step need to be implemented with tests!
-
Support Variants for ClassicUI or Volto
-
Start Backend
- deployment
- service
- pdb
- init container running
plone-site-create
- lifecycle checks (readiness, liveness)
- generic way to inject sidecars
- metrics sidecar
-
Start Frontend
- deployment
- service
- pdb
- lifecycle checks (readiness, liveness)
- generic way to inject sidecars
- metrics sidecar
-
Start Varnish (using
kube-httpcache
) optional in separate chart- provide a default VCL for Volto with routing to backend and frontend
- provide a default VCL for ClassicUI
-
Configure Ingress, optional in separate chart
- Traefik
- Konq
-
Release packages for other Languages
- Python
- Golang
- Java