ELMA365 Standard On-premise > Installing ELMA365 Standard / 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]

 

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

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

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

elma365: https://dl.elma365.com/onPremise/chart/release/elma365-2021.5.2.tar.gz