Provides a CMS Plone Backend and Frontend for Kubernetes with cdk8s
Project description
CMS Plone Chart for CDK8S
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.voltoor as Classic-UI) - Frontend (Plone-Volto, a ReactJS based user interface)
- Varnish using kube-httpcache. It includes a way to invalidate varnish cluster (optional)
Typescript
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.
Python
Todo: Document in details how to install.
cdk8s init python-app
Python package name is cdk8s-plone.
Usage
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.
Prerequisites
For using cdk8s-plone, we assume you already have following tools installed:
- kubectl – A command-line tool for interacting with Kubernetes clusters. For deploying the Kubernetes manifest you will need a tool like this. Take a look at the Install Tools for kubectl.
- (optional) Helm – A Kubernetes package manager for managing Plone/Volto deployments. This tool is optional and only needed if you generate helm charts as output with cdk8s synth - instead of pure manifests. There are several ways to install it see the install section for Helm.
References
Kubernetes Documentation relevant for ressource management, readiness and liveness
PloneBaseOptions
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
trueforvolto - should be
falseforbackend/classicui
- should be
-
livenessInitialDelaySeconds(number) -
livenessIimeoutSeconds(number) -
livenessPeriodSeconds(number) -
livenessSuccessThreshold(number) -
livenessFailureThreshold(number)
PloneOptions
Interface
-
version(string):- version of your project
-
siteId(string):- default
Plone
- default
-
variant(PloneVariant):- default
PloneVariant.VOLTO
- default
-
backend(PloneBaseOptions):- default
{} - needs
imageandenviroment
- default
-
frontend(PloneBaseOptions):- default
{} - needs
imageifPloneVariant.VOLTO
- default
-
imagePullSecrets(string[])
PloneVariants
Enum
-
VOLTO = 'volto'
-
CLASSICUI = 'classicui'
- no frontend options/image needed
Plone
class
builds the Plone Construct
-
backendServiceName(string) -
frontendServiceName(string) -
variant(PloneVariant)- default
Volto
- default
-
siteId(string)- default
Plone
- default
PloneHttpcacheOptions
Interface
-
plone(Plone):- Plone chart
-
varnishVcl{string}:- varnishfile
- per default
varnishVclFileshould be used
-
varnishVclFile(string):- File in config folder
-
existingSecret(string) -
limitCpu(string) -
limitMemory(string) -
requestCpu(string) -
requestMemory(string) -
servicemonitor(string)- default
falseused for metrics
- default
PloneHttpcache
class
uses helmchart kube-httpcache and builds the PloneHttpCache Construct
scope(Construct)id(string)options(PloneHttpcacheOptions)
Development
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
ToDo
- Option to enable Servicemonitor
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cdk8s_plone-0.0.81.tar.gz.
File metadata
- Download URL: cdk8s_plone-0.0.81.tar.gz
- Upload date:
- Size: 579.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f919b03c879cea10324f879adedc289ddc9f1e206ef71ad27c98b4e64db44c2
|
|
| MD5 |
1bc957b8494d9d2869f9924ce21ef644
|
|
| BLAKE2b-256 |
9d9d82d56099c8489e36a0e98a536db7c4178c61a349644c9616ec35c5b12eaf
|
File details
Details for the file cdk8s_plone-0.0.81-py3-none-any.whl.
File metadata
- Download URL: cdk8s_plone-0.0.81-py3-none-any.whl
- Upload date:
- Size: 577.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
337bea2c63cbb81eaf26ab3f441ad1bdf3c71d5626160a7ce13e26e07061f40a
|
|
| MD5 |
7ace1d79db61d04e417a6ab449aa93d3
|
|
| BLAKE2b-256 |
04fd16335eabec52dc99fdc0de84f359a99e48ba15e53cfec4d669482ba37b87
|