Skip to content

nuxeo/nuxeo-helm-chart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nuxeo Helm Chart

This chart bootstraps a Nuxeo deployment on a Kubernetes cluster using the Helm package manager.

WARNING The nuxeo chart is not production-ready by default. It suits for a development or staging environment such as preview.

Currently, there is a single version of this chart for all the versions of Nuxeo.

The code samples below rely on the Helm 3 command line.

Scope

By default, this chart deploys the strict minimum to have Nuxeo running with:

  • emptyDir volume for binaries.
  • H2 database.
  • Elasticsearch embedded.
  • Chronicle Queue for the WorkManager and Nuxeo Streams.

To make a "real" deployment of Nuxeo in Kubernetes, you can have a look at:

TL;DR

helm repo add nuxeo https://chartmuseum.platform.dev.nuxeo.com/
helm install my-release nuxeo/nuxeo

Installing the Chart

The nuxeo chart can be installed either:

  • Remotely, from the Nuxeo chart repository.
  • Locally, from a checkout of this GitHub repository.

Remote Installation

To install the chart from the Nuxeo chart respository, add this repository to the Helm configuration:

helm repo add nuxeo https://chartmuseum.platform.dev.nuxeo.com/

Then, use nuxeo/nuxeo as a replacement of NUXEO_CHART in the commands below.

Local Installation

To install the chart from a checkout of this GitHub repository, use nuxeo as a replacement of NUXEO_CHART in the commands below.

Installation Command Sample

To install the nuxeo chart:

helm install RELEASE_NAME NUXEO_CHART

You can override any value of the base values.yaml file by creating your own myvalues.yaml file and pass it to the helm install command:

helm install RELEASE_NAME NUXEO_CHART --values=myvalues.yaml

You can also pass values directly to the helm install command:

helm install RELEASE_NAME NUXEO_CHART --set nuxeo.image.tag=x.y.z

For example, to install some packages using a Nuxeo CLID:

helm install RELEASE_NAME NUXEO_CHART --set nuxeo.packages=nuxeo-web-ui,nuxeo-drive --set nuxeo.clid=NUXEO_CLID

To see the templates of the installed release:

helm get manifest RELEASE_NAME

Upgrading an Existing Deployment

For example, to pull another nuxeo image:

helm upgrade RELEASE_NAME NUXEO_CHART --set image.tag=2023.x

Uninstalling the Chart

helm uninstall RELEASE_NAME

Parameters

The following tables lists some of the configurable parameters of this chart and their default values. See values.yaml for the complete list.

Parameter Description Default
nuxeo.image.repository Nuxeo image name docker-private.packages.nuxeo.com/nuxeo/nuxeo
nuxeo.image.tag Nuxeo image tag 2023

Versioning and Releasing

When a pull request is merged to master:

  • The patch version of the chart is automatically incremented.
  • The chart is released to the Platform CI's ChartMuseum.
  • A GitHub tag is created.

See the Jenkinsfile for more details.

The major and minor versions can be incremented manually.

Full Deployment

To deploy Nuxeo along with MongoDB, Elasticsearch and Kafka, one way is to use Helmfile to deploy multiple charts. You can have a look at this helmfile sample.

To run it, you need to:

  • Install the helmfile command line.
  • Clone this repository or download the examples directory.
  • In the examples directory, run:
helmfile --namepsace=NAMESPACE sync

NAMESPACE is the target Kubernetes namespace for the various Helm releases.

The parameters of the nuxeo chart, such as the Nuxeo image, can be configured in the values-nuxeo.yaml.gotmpl file.

The parameters of the mongodb, elasticsearch and kafka charts can be configured in the values-CHART.yaml files.

Note: these values are just sample values. The related charts need a fine-grained configuration to be suitable for production, see the available values for each one of them: