Skip to main content

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.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)

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
  • 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 for volto
    • should be false for backend/classicui
  • livenessInitialDelaySeconds(number)

  • livenessIimeoutSeconds(number)

  • livenessPeriodSeconds(number)

  • livenessSuccessThreshold(number)

  • livenessFailureThreshold(number)

PloneOptions

Interface

  • version(string):

    • version of your project
  • siteId(string):

    • default Plone
  • variant(PloneVariant):

    • default PloneVariant.VOLTO
  • backend (PloneBaseOptions):

    • default {}
    • needs image and enviroment
  • frontend (PloneBaseOptions):

    • default {}
    • needs image if PloneVariant.VOLTO
  • 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
  • siteId(string)

    • default Plone

PloneHttpcacheOptions

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

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

cdk8s_plone-0.0.81.tar.gz (579.9 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.0.81-py3-none-any.whl (577.4 kB view details)

Uploaded Python 3

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

Hashes for cdk8s_plone-0.0.81.tar.gz
Algorithm Hash digest
SHA256 3f919b03c879cea10324f879adedc289ddc9f1e206ef71ad27c98b4e64db44c2
MD5 1bc957b8494d9d2869f9924ce21ef644
BLAKE2b-256 9d9d82d56099c8489e36a0e98a536db7c4178c61a349644c9616ec35c5b12eaf

See more details on using hashes here.

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

Hashes for cdk8s_plone-0.0.81-py3-none-any.whl
Algorithm Hash digest
SHA256 337bea2c63cbb81eaf26ab3f441ad1bdf3c71d5626160a7ce13e26e07061f40a
MD5 7ace1d79db61d04e417a6ab449aa93d3
BLAKE2b-256 04fd16335eabec52dc99fdc0de84f359a99e48ba15e53cfec4d669482ba37b87

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page