This chart aims to deploy the Nuxeo platform in a development or staging environment, such as preview in Jenkins X.
WARNING The
nuxeo
chart is not production-ready. It can be configured to deploy external services, such asMongoDB
,PostgreSQL
,Elasticsearch
. Yet, the subcharts referenced as dependencies often have a variant more suitable for production, for examplemongodb-replicaset
vsmongodb
orredis-ha
vsredis
. Also, persistence is disabled by default in all the subcharts.
Currently, there is a single version of this chart for all the versions of Nuxeo.
This chart has the following dependencies as subcharts:
To list the chart dependencies:
helm dependency list nuxeo
To run Nuxeo with MongoDB, PostgreSQL, Kafka, etc., you need to enable the related dependencies.
When the chart is deployed directly, these dependencies are controlled by the following tags in the values.yaml file:
tags:
mongodb: false
postgresql: false
elasticsearch: false
kafka: false
redis: false
To enable any of these, just set the corresponding tag to true
when installing the chart:
# deploy MongoDB along with Nuxeo
helm install nuxeo --set tags.mongodb=true
When the chart is deployed as a dependency of another chart, these dependencies are controlled by setting values such as nuxeo.mongodb.deploy
or nuxeo.elasticsearch.deploy
to true
.
For example, let's take a chart using the nuxeo
chart as a dependency, which can be the case of a preview
chart in Jenkins X:
dependencies:
- name: nuxeo
version: 0.1.0
repository: http://jenkins-x-chartmuseum:8080
alias: nuxeo
In this case, you can enable MongoDB and Elasticsearch, or any of the other supported subcharts, with the following values in the values.yaml
file of the preview
chart:
nuxeo:
mongodb:
deploy: true
elasticsearch:
deploy: true
To install some dependency subcharts, e.g. mongodb
and elasticsearch
, without installing Nuxeo:
nuxeo:
enable: false
tags:
mongodb: true
elasticsearch: true
This is useful to run the nuxeo unit tests in an production-like environment.
If you enable some dependencies, make sure you download the related charts before:
helm dependency update nuxeo
To install the nuxeo
chart:
helm install nuxeo --name RELEASE_NAME
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 nuxeo --name RELEASE_NAME -f myvalues.yaml
You can also pass values directly to the helm install
command:
helm install nuxeo --name RELEASE_NAME --set nuxeo.image.tag=x.y.z
For example, to install some packages using a Nuxeo CLID:
helm install nuxeo --name RELEASE_NAME --set nuxeo.packages=nuxeo-web-ui,nuxeo-drive --set nuxeo.clid=NUXEO_CLID
In the same way, you can override any subchart value by using the subchart name as a prefix:
helm install nuxeo --name RELEASE_NAME --set mongodb.persistence.enabled=true
To see the templates of the inatalled chart:
helm get manifest RELEASE_NAME
For example, to enable persistence for the binaries and logs:
helm upgrade RELEASE_NAME --set nuxeo.persistence.enabled=true nuxeo
helm delete --purge RELEASE_NAME
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.enable |
Enable Nuxeo | true |
nuxeo.image.repository |
Nuxeo image name | docker.packages.nuxeo.com/nuxeo/nuxeo |
nuxeo.image.tag |
Nuxeo image tag | latest |
nuxeo.persistence.enabled |
Enable persistence of binaries and logs | false |
Follow the Minikube and Helm installation guides.
Below is the procedure for Ubuntu 18.04:
# Check VM support, the following command must output something
egrep --color 'vmx|svm' /proc/cpuinfo
# Update apt
sudo apt update && sudo apt upgrade
sudo apt install -y apt-transport-https
# Install latest VirtualBox package from https://www.virtualbox.org/wiki/Linux_Downloads
# Install kubectl
sudo snap install kubectl --classic
kubectl version
# Install Minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin
# Install helm
sudo snap install helm --classic
# Start with a bigger VM
minikube start --cpus 4 --memory 8192 --disk-size 10g
# Enable some addons
minikube addons enable ingress
minikube addons enable storage-provisioner
# Initialize Helm
helm init --history-max 200
# Enable incubator repository needed for Kafka
helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
helm repo update
# Test the dashboard
minikube dashboard
Try to deploy Nuxeo by installing the nuxeo
chart:
helm install \
--name my-nuxeo \
--debug \
--set nuxeo.packages=nuxeo-web-ui \
--set tags.mongodb=true \
--set tags.elasticsearch=true \
--set nuxeo.ingress.enabled=true \
--set nuxeo.clid='<insert the content of your instance.clid file in a single line replacing the new line with -->' \
nuxeo
Nuxeo will be exposed on http://$MINIKUBE IP/
.
When a pull request is merged to master:
- The patch version of the chart is automatically incremented.
- The chart is released to the Jenkins X ChartMuseum.
- A GitHub tag is created.
See the Jenkinsfile for more details.
The major and minor versions can be incremented manually.