Kubernetes Helm charts for OMERO.
Add the OMERO Helm chart repository:
helm repo add omero https://manics.github.io/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
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.
-
PostgreSQL is no longer automatically deployed due to the complexity of managing major version upgrades. You are strongly recommended to deploy a PostgreSQL server separately, for example:
-
using a Helm chart such as bitnami/postgresql
-
using an operator such as
which generally provide better support for major PostgreSQL upgrades
-
using a managed service such as Amazon RDS or Google Cloud SQL
-
-
Kubernetes 1.21+ is required.
- Kubernetes 1.21+ is required.
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}'
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: