Skip to content

Helm driven approach

In this approach, we deploy Orthanc with a single helm command, using our self-built Orthanc Helm Chart stored in the orthanc sub-directory.

Architecture

The orthanc Helm Chart automates many activities, including the creation of certificates for the three FQDNs, installation of PostgreSQL using dependency chart, configuring the orthanc workload, and setting up an ingress for HTTP and DICOM traffic.

The Helm Chart dependency tree looks like this:

                     +--------------+
                     | Parent chart |
        +------------|   Orthanc    |-----------+
        |            --------+------+           |
        |                                       |
        v                                       v
+-------+-------+                       +--------+------+
|  Sub-chart    |                       |   Sub-chart   |
| PostgreSQL HA |                       |    Traefik    |
+---------------+                       +---------------+

Once the Parent chart has been deployed, the required kubernetes objects (including the ones from the sub-charts) are all deployed and it may take a minute for the Pods to come to READY states. Below is an illustration of Kubernetes objects:

Diagram

Preparation

Instead of publishing in a Helm Repository, the Orthanc Helm chart simply keeps the files in the local sub-directory orthanc. In order to deploy, we need to clone this repo first and enter the helm directory from command terminal:

$ git clone git@github.com:digihunch/korthweb.git
$ cd helm/

We also need to install Helm client. The Helm client uses the kubectl's connection profile.

Deployment

Since we're in the helm directory, we can update dependency and install the chart:

$ helm dependency update orthanc
$ helm install orthweb orthanc --create-namespace --namespace orthweb 

The installation should be completed once it prints the node. You can monitor the pod status in the orthweb namespace untill all pods are up and running.

Troubleshooting

If you need to uninstall it and remove persistent data, simply run:

helm -n orthweb uninstall orthweb && kubectl -n orthweb delete pvc -l app.kubernetes.io/component=postgresql 

Then the uninstall is done and persistent volumes are removed.