This chart provides a library to bootstrap a Plone deployment on a Kubernetes cluster using the CDK8S framework.
It provides
- Backend (as 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 cdk8s-plone.
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.
Kubernetes Documentation relevant for ressource management, readiness and liveness
Interface
image
(string):- The used Plone image
- e.g.
plone/plone-backend:6.1.0
imagePullPolicy
(string):- default
IfNotPresent
- default
replicas
(numbers)maxUnavailable
(number|string)minAvailable
(number|string)limitCpu
(string)limitMemory
(string)requestCpu
(string)requestMemory
(string)environment
(kplus.Env)readinessEnabled
(boolean)readinessInitialDelaySeconds
(number)readinessIimeoutSeconds
(number)readinessPeriodSeconds
(number)readinessSuccessThreshold
(number)readinessFailureThreshold
(number)livenessEnabled
(boolean)- should be
true
forvolto
- should be
false
forbackend/classicui
- should be
livenessInitialDelaySeconds
(number)livenessIimeoutSeconds
(number)livenessPeriodSeconds
(number)livenessSuccessThreshold
(number)livenessFailureThreshold
(number)
Interface
version
(string):- version of your project
siteId
(string):- default
Plone
- default
variant
(PloneVariant):- default
PloneVariant.VOLTO
- default
backend
(PloneBaseOptions):- default
{}
- needs
image
andenviroment
- default
frontend
(PloneBaseOptions):- default
{}
- needs
image
ifPloneVariant.VOLTO
- default
imagePullSecrets
(string[])
Enum
- VOLTO = 'volto'
- CLASSICUI = 'classicui'
- no frontend options/image needed
class
builds the Plone
Construct
backendServiceName
(string)frontendServiceName
(string)variant
(PloneVariant)- default
Volto
- default
siteId
(string)- default
Plone
- default
Interface
plone
(Plone):- Plone chart
varnishVcl
{string}:- varnishfile
- per default
varnishVclFile
should be used
varnishVclFile
(string):- File in config folder
existingSecret
(string)limitCpu
(string)limitMemory
(string)requestCpu
(string)requestMemory
(string)servicemonitor
(string)- default
false
used for metrics
- default
class
uses helmchart kube-httpcache and builds the PloneHttpCache
Construct
scope
(Construct)id
(string)options
(PloneHttpcacheOptions)
Clone the repository and install the dependencies:
nvm use lts/*
corepack enable
npx projen
Then run the following command to run the test:
npx projen test
- Option to enable Servicemonitor