Replies: 1 comment
|
I went through the existing Kubernetes material for OpenDJ to see what the chart can build on:
and whatever else a search of Artifact Hub, GitHub and the web turns up:
SummaryNone of them can be reused as a chart as is. Gluu is the one real prior art: it ran OpenDJ 4 with automatic replication in Kubernetes for years, and it also documented why it gave up on part of it. The others are useful as a list of what to take over as ideas and what to avoid. The biggest gaps turned out to be in our Docker image rather than in any chart, so I filed those first:
I would fix these in the image before the chart, so that the chart stays a thin layer and plain Gluu: the prior art that mattersGluu shipped OpenDJ as the LDAP store of its cloud-native edition, on its own fork of the same OpenDJ 4 code base (gluu-opendj4). The chart is Apache-2.0. The image's source repository is no longer public, but the scripts can be read in What to take over:
What not to take over:
Their April 2024 write-up explains why they withdrew multi-cluster (multi-region) replication in Kubernetes:
They keep OpenDJ only for a single multi-AZ cluster. The chart should start from the same scope. @moabu, you wrote that post and most of the Gluu OpenDJ chart, including the Serf and multi-regional work and the
The sources
Why forgeops' replication model does not portforgeops gives every pod the same configuration and lets the servers find each other through
Also note that its What is worth taking over as ideas:
Pitfalls seen in vladk1m0's chart
Our own OpenShift template
The chart should not inherit any of this, and it should come with the lesson that an untested manifest rots. Once the chart is in (Helm works on OpenShift too), I would retire the template rather than maintain both. Proposed changes to the plan above
|
Uh oh!
There was an error while loading. Please reload this page.
Summary
Add an official Helm chart so OpenDJ can be deployed on any Kubernetes cluster, and test it in GitHub Actions on every change.
Motivation
Today the only orchestration artifact in the repo is an OpenShift Template (
opendj-packages/opendj-openshift-template/opendj-openshift-template.yaml). It useskind: Template, which is OpenShift-specific and cannot be applied with plainkubectl, and it is explicitly limited to a single replica ("Scaling to more than one replica is not supported"). There is no native, portable Kubernetes deployment path, and OpenDJ's core feature — multi-master replication — is not covered.A Helm chart would give users a portable, parameterized, well-documented way to run OpenDJ on Kubernetes (including OpenShift), and would also let us cover multi-replica replication.
Proposal
Add a Helm chart under
opendj-packages/opendj-helm/providing:openidentityplatform/opendjimage) withvolumeClaimTemplatesfor the database, changelog, logs and config.dsreplication) using the stable pod DNS names, enablingreplicas > 1.topologySpreadConstraints.helm installexample) to replace the currentTODO: add urls.Testing in CI
Add a dedicated workflow (triggered only on changes under the chart path) that:
chart-testing (ct lint).helm template+kubeconform.helm-unittest.kindcluster and runsct install, which installs the chart and executes Helmtesthooks (a test pod that runsldapsearchagainst the service to confirm LDAP responds).Benefits
kubectl/helm-native deployment on any Kubernetes distribution.Alternatives considered
Vote to raise the priority 🖐️
All reactions