Installation
Before you begin (Prerequisites)
-
Trisotech Digital Enterprise Suite License (received from support@trisotech.com)
-
A Kubernetes environment
-
The
kubectl
command line utility with a valid configuration connected to an existing cluster. -
The
helm
command line utility with a valid configuration connected to an existing cluster. -
A Kubernetes Ingress Controller (GKE Load Balancer, AWS ALB, AKS Application Gateway, nginx, Kong, … )
-
Installation
This installation procedure fetches the container images and helm charts from Trisotech official container registry (registry.trisotech.com). To use a private container registry, you will need to follow the instruction under the Private Container Registry page.
The installation is templated using helm charts.
Downloading the DES helm chart
Login to the trisotech registry using this command:
helm registry login -u license registry.trisotech.com
When prompted for a password, use the Trisotech license (DES or DDC) to authenticate.
Download the helm chart using this command:
helm pull oci://registry.trisotech.com/des/charts/des --version <VERSION>
Replace <VERSION> with the current version of the Digital Enteprise Suite. You can consult our release notes page to find the latest version available.
Installing using helm
Default installation can be done using this command:
helm upgrade --install \
--set image.tag=v<VERSION> \
--set license=<LICENSE> \
--set ingress.hosts[0]=<DNS_NAME> \
--wait \
--namespace=des \
--create-namespace \
--atomic \
des des-<VERSION>.tgz
Replace <VERSION> with the current version of the Digital Enteprise Suite. You can consult our release notes page to find the latest version available.
The <VERSION> is replaced by X.X.X but Trisotech tags its container images with a lower case v before X.X.X. ex: The DES container image for version 12.0.0 is tagger v12.0.0 in the container registry. However, helm charts are tagged simply with a numeric version X.X.X without the v prefix.
|
Replace <DNS_NAME>
with the ingress host name to use. This is the URL under which the DES will be accessible.
You can also add multiple ingress names. |
If you wish to install in a different namespace than des
, you can change that value in the --namespace=des
command line option.
Customizing the ingress controller
By default, the chart will use an nginx
ingress by setting the ingress className to nginx
. It will also by default generate annotations for nginx ingress and for the Let’s Encrypt
certificate manager. These extra annotations should be ignored by another ingress controller.
Ingress Controller
To change the ingress controller to a different ingress class, add the command line parameter to the helm installation:
--set ingress.className=nginx
You can also additional ingress annotations by adding the command line parameter(s) to the helm installation:
--set ingress.annotations."my\.ingress\.annotation"=value1 --set ingress.annotations."my\.other\.ingress\.annotation"=value2 ...
TLS
To generate a tls
section to the ingress to instruct the controller on which hosts require tls (https) and where the secret containing the certificate is, you can add the command line parameter(s) to the helm installation:
--set ingress.tls=true
This adds a tls section to the ingress with a secret named des-des-tls
that you will need to fill with the tls secret.
To create this secret, you will need to create a secret containing:
Variable |
Definition |
NAME |
The helm instance name ( |
KEY |
The file containing the RSA key |
CERT |
The certificate with chain |
The certificate must contains all intermediates and the root certificate. They must be concatenated in order of precision (certificate, intermediate certificate, root certificate) |
Here is the command to add the tls secret:
kubectl create secret tls des-des-tls \
--key=<KEY> \
--cert=<CERT>
Using nginx and Let’s Encrypt
If there is no existing ingress controller, the DES can work with the open source nginx ingress controller using https certificates managed by Let’s Encrypt.
First install nginx using helm:
kubectl create namespace ingress-basic
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm upgrade --install nginx-ingress ingress-nginx/ingress-nginx \
--namespace ingress-basic \
--create-namespace \
--set rbac.create=true
Then install the certificate manager from Let’s Encrypt:
kubectl create namespace cert-manager
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--set installCRDs=true
Confirm that each pod is in running state:
kubectl get pods --namespace cert-manager
Create the cluster issuer (Cert-Manager configuration):
cat << EOF > cluster-issuer.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: <EMAIL_ADDRESS>
privateKeySecretRef:
name: letsencrypt
solvers:
- http01:
ingress:
class: nginx
EOF
kubectl apply -f cluster-issuer.yaml
Replacing <EMAIL_ADDRESS>
with your email address.
Customizing storage
By default, the requested storage will be of the default storage class with a size of 30Gi
.
You can see the default storage class by executing the command kubectl get storageclass
and looking at which one of the storage is marked with a (default) annotation after its name. You may also want to choose a storage class that allows resizing of the volume (ALLOWVOLUMEEXPANSION property) also displayed by this command.
storage.size can only be updated after installation if supported by the storage class (see ALLOWVOLUMEEXPANSION value) |
To change from the default storage class to a different one, add the command line parameter to the helm installation:
--set storage.storageClassName=my-storage-class
The chosen storage class is required to support extended file attributes. |
To change the disk size, add the command line parameter to the helm installation:
--set storage.size=30Gi
Replace the size with the size that you would want.
Customizing Logging
Logging can be adapted to the log ingestor used by setting the logging helm variables.
Customizing the timezone
By default, the pod clock will be set to UTC
. We do not recommend changing that value, but if desired, set the timezone based on Wikipedia for TZ values in the helm command line.
--set timezone=UTC
And changing the value from UTC
to America/New_York
, Europe/Paris
, …
Initial Configuration
Please refer to the Administration section to continue the setup.
You will need to first setup a User Provider and add Client Access Licenses.
If you need to configure managed identities, please see follow the instructions here.
Also, make sure to go through the orientation course for administrators available in the application selection menu under Orientation
.