ELMA365 On-Premises / Install ELMA365 to Kubernetes

Install ELMA365 to Kubernetes

 

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 can also use custom PostgreSQL, MongoDB, Redis databases and S3 object storage. In this case, you need to specify the connection strings for the values from the elma365 chart. Note that you can disable the installation of the corresponding components in the values-extensions.yaml file by setting their values to false“ (for example, for PostgreSQL, work with global.postgresql.enabled). If all five components of the chart are set to false, the chart does not need to be installed. Learn more about connecting to external databases in Create external databases.
  • elma365. This chart contains the ELMA365 main package.

 

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

 

Install 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 all the installation command strings.
  3. Run the command:

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

Install the elma365 chart

 

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

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

  1. Run the following command:

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

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

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

Update ELMA365 to a new version

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

 

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

If database connection strings are changed during the update, restart all services using the following command:

kubectl default rollout restart deploy [-n namespace] && kubectl default rollout restart ds [-n namespace]

Uninstall

 

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:

 

extraPortMappings:
  - 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
nodes:
- role: control-plane
  kubeadmConfigPatches:
    kind: InitConfiguration
    nodeRegistration:
      kubeletExtraArgs:
        node-labels: "ingress-ready=true"
  extraPortMappings:
  - 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