Skip to content

manics/kubernetes-omero

Repository files navigation

Kubernetes OMERO

CI Status

Kubernetes Helm charts for OMERO.

Quick start

Add the OMERO Helm chart repository:

helm repo add omero https://www.manicstreetpreacher.co.uk/kubernetes-omero/
helm repo update

Optionally create your OMERO.server and OMERO.web Helm configuration files. You can use test-omero-server.yaml and test-omero-web.yaml as examples.

Create a PostgreSQL database, and add the credentials to your OMERO.server chart configuration file. For testing you could use the bitnami/postgresql Helm chart:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm upgrade --install postgresql bitnami/postgresql -f test-postgresql.yaml

Install OMERO.server and OMERO.web

helm upgrade --install omero-server omero/omero-server -f test-omero-server.yaml
helm upgrade --install omero-web omero/omero-web -f test-omero-web.yaml

For the full set of configuration options see

Storage volumes

You can define existing PersistentVolumeClaims to use for PostgreSQL and OMERO.server data storage.

Alternatively PersistentVolumes can be automatically created using dynamic provisioning if supported by your cluster. These volumes will not be deleted by helm delete to reduce the likehood of inadvertent data loss, and will be reused if the chart is re-installed. You must delete the PVCs manually if you want a fresh installation.

Breaking changes

OMERO.server 0.4.0

OMERO.web 0.4.0

  • Kubernetes 1.21+ is required.

Development

Install build dependencies:

pip install dev-requirements.txt

Install chart dependencies:

helm dependency update omero-server/
helm dependency update omero-web/

Install a test server on K3S (assumes the default ingress and dynamic local volumes are enabled):

helm upgrade --install omero-server ./omero-server -f test-omero-server.yaml
helm upgrade --install omero-web ./omero-web -f test-omero-web.yaml

Wait for all pods to be ready:

kubectl get pods

Optionally check logs:

kubectl logs -f statefulset/omero-server
kubectl logs -f deploy/omero-web

Get the OMERO.server 4064 external port mapping:

kubectl get svc omero-server -o jsonpath='{.spec.ports[0].nodePort}'

Release process

Tags and Docker images are automatically pushed when the Chart.yaml versions are changed. Charts are versioned independently. GitHub tags are prefixed with the component name.

This is all handled using Chartpress.

See: