ELMA365 On-Premises / Installing to Kubernetes cluster

Installing to Kubernetes cluster


Optionally ELMA365 can be deployed to an already working Kubernetes cluster. The ELMA365 deployment package consists of two Helm charts:


  • elma365-extension. This chart includes a set of databases and data storages that is necessary for ELMA365 operation. You also can apply custom PostgreSQL, MongoDB, Redis databases, and S3 object storage.
  • elma365. This chart contains the ELMA365 main package.


The installation is done in two steps and uses Helm v.3:


Installing the elma365-extension chart


  1. Fill out the variables in the values-extensions.yaml file. If you are using custom databases you can disable the installation of the databases included in the package by default.
  2. If a specific namespace is required, include it in the installation command string.
  3. Run the command:


helm install elma365-extensions ./elma365-extensions -f values-extensions.yaml [-n namespace]


Installing elma365 charts


  1. Fill out the variables in the in the values-elma365.yaml file.
  2. If you need to restore the ELMA365 dump, run the elma365db.sh script located in the elma365 chart before the installation .
  3. Run the following command:


helm install elma365 ./elma365 -f values-elma365.yaml --timeout=30m [-n namespace]


  1. Save the values-elam365.yaml file for future updates.
  2. To create the dump of the installation you can run the elma365db.sh script with the command:


./elma365db.sh --dump --namespace elma365 --path /backup/path/ [--kubeconfig /path/to/config --context prod]


Updating ELMA365 version

Replace the values-elma365.yaml file in the new chart with the one that was saved during the installation. Then, run the command:


helm upgrade elma365 ./elma365 -f values-elma365.yaml --timeout=30m [-n namespace]




You can delete the charts by running the following commands:


helm uninstall elma365 [-n namespace]


helm uninstall elma365-extensions [-n namespace] 


Requirements for the Kubernetes configuration


The installed version of the Kubernetes cluster must support Kubernetes API v.2. The pods must be granted proxy access to the external network.

If you using a microk8s software distribution as a ready-made Kubernetes cluster, make sure that the following components are installed:


  • storage - Default storage class
  • dns - CoreDNS
  • rbac - RBAC
  • ingress - Ingress controller
  • helm3 - Helm3


To enable a component, use the microk8s.enable command. For example, you can enable the ingress in the following way:


microk8s.enable ingress


The Ingress controller configuration settings must be as follows:


  - containerPort: 80
    hostPort: 80
    protocol: TCP
  - containerPort: 443
    hostPort: 443
    protocol: TCP

If the Kubernetes in Docker (KinD) is used for the cluster installation, then the ingress controller must be enabled for deployment.

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
- role: control-plane
    kind: InitConfiguration
        node-labels: "ingress-ready=true"
  - containerPort: 80
    hostPort: 80
    protocol: TCP
  - containerPort: 443
    hostPort: 443
    protocol: TCP



Helm-charts Download Links

elma365-extension: https://dl.elma365.com/onPremise/chart/latest/elma365-extensions.tar.gz

elma365: https://dl.elma365.com/onPremise/chart/latest/elma365.tar.gz

addons: https://dl.elma365.com/onPremise/chart/latest/addons.tar.gz

You can also download a specific ELMA365 version, for example, 2021.10.5:

elma365-extension: https://dl.elma365.com/onPremise/chart/master/elma365-extensions-2021.10.5.tar.gz

elma365: https://dl.elma365.com/onPremise/chart/master/elma365-2021.10.5.tar.gz


Found a typo? Highlight the text, press ctrl + enter and notify us