Socket
Book a DemoInstallSign in
Socket

@bluedynamics/cdk8s-plone

Package Overview
Dependencies
Maintainers
0
Versions
82
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bluedynamics/cdk8s-plone

Provides a CMS Plone Backend and Frontend for Kubernetes with cdk8s

latest
Source
npmnpm
Version
0.0.81
Version published
Maintainers
0
Created
Source

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

FAQs

Package last updated on 28 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts