Installation with Kubernetes and Helm

Components of the Helm chart

The following components can be addressed and installed via the Helm chart. Some components are optional.

Components of the Deployment
Component Product Classification (core/optional) Provision

CadenzaWeb

CadenzaWeb

core

Disy registry

CadenzaWeb-Configuration

Configuration for Cadenza

core

Disy registry/own registry

MonitoringBackend

Prometheus

optional (not a part of the helm chart)

Docker Hub

MonitoringFrontend

Grafana

optional (not a part of the helm chart)

Docker Hub

Loggingbackend

FluentBit+Opensearch

optional

Docker Hub

Loggingfrontend

Opensearch Dashboards

optional

Docker Hub

IngressController

NGINX IngressController

core (not a part of the helm chart)

Docker Hub

Required images not available on Docker Hub
Component Image Provision

CadenzaWeb

registry-ext.disy.net/cadenza/cadenza-web

Disy Registry

CadenzaWeb-Configuration

TBD

Disy Registry

You will need credentials (username/password) to be able to pull the CadenzaWeb-Image from the disy Registry. Please get in touch with your account representative to receive these credentials.
External dependencies of the deployment
Component Hint

Mailserver

Access to an SMTP server is required to operate the ReportScheduler functionality. This is not part of the deployment but must be provided. It must be ensured that the application has access to the server (technical user, firewall rules if necessary)

Install with Command Line Interface

If the custom-values.yaml is prepared with the desired settings, type this command to deploy cadenza in the desired namespace:

We will use my-cadenza and my-namespace as examples for release and namespace names throughout this document. You will have to use unique release name and namespaces per installation.
helm install my-cadenza oci://registry-ext.disy.net/cadenza-helm/cadenza --version 9.x.x -f -v custom-values.yaml -n my-namespace

Check if the Installation is Completed

If the installation via helm was successful, a message is displayed after completion of the installation.

NAME: my-release
LAST DEPLOYED: Wed Dec 20 15:04:39 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
Congratulations! Your application is deployed successfully.

This message just shows that the helm chart was correctly installed. The deployed pod still might be in a pending state and might not be running!

The pod where CadenzaWeb is running, should have a STATUS: Running. To check this do the following:

kubectl get pods -n my-namespace

You should see an output similar to this:

NAME                             READY   STATUS    RESTARTS   AGE
CadenzaWeb                       1/1     Running   0          2m

If the Pod where CadenzaWeb should run still not have STATUS: Running after a few minutes, check the ressources and the logs of the Pod:

kubectl describe pod <pod_name> -n my-namespace
kubectl logs <pod_name> -n my-namespace
NAME                             READY   STATUS    RESTARTS   AGE
CadenzaWeb                       1/1     Pending   0          2m

In this case, the namespace might need more ressources to be able to run the software.

How to update a helm release

Helm’s upgrade mechanism can be used to make simple changes to the deployment. Changes to the installation-specific custom-values.yaml can thus be implemented without a new installation. This mechanism can also be used to apply a newer version of the Cadenza configuration and repositories.

  • Update using a custom-values.yaml file:

helm upgrade --install my-cadenza oci://registry-ext.disy.net/cadenza-helm/cadenza --version <new-version> -n my-namespace -f values.yaml

Other options

  • Deployment with CI/CD Pipeline

  • Deployment with GitOps tool (e.g. Argo CD)