DES Kubernetes deployment¶
This document describe the installation on Kubernetes of the Digital Enterprise Server
Prerequisites¶
Kubernetes environment
kubectl with a valid configuration connected to an existing cluster
A running reverse proxy (we recommend nginx)
Load balancer configured with a public ip address
Cert manager for Let’s Encrypt (optional, certificate can be manually configured)
Trisotech License
Latest helm chart (contact support@trisotech.com)
Digital Enterprise Server deployment¶
The Digital Enterprise Server deployment use a Helm chart which template Kubernetes yaml files. Options can be set using ‘--set <option>=<value>
’. Here is a simplified list of options:
Option |
Description |
---|---|
image.tag* |
tag of the image (v12.7.2 as of this writting) |
image.repository |
repository of the image if using an external registry |
image.maintenanceImage |
repository of the maintenance image if using an external registry |
image.pullSecrets |
name of the pull secret if using an external registry |
license |
Trisotech Digital Enterprise Suite license |
ingress.hosts[0]* |
domain name of the main ingress |
ingress.tls [False] |
enable tls for the ingress[es] |
storage.size [30Gi] |
size of the dynamically created volume |
storage.storageClassName |
Storage Class name (Set a non-default StorageClass) |
timezone [UTC] |
system timezone (see /usr/share/zoneinfo/ for available zones) |
Warning
storage.size could only be updated if supported by the storage class (see ALLOWVOLUMEEXPANSION value with kubectl get sc)
Other advanced configurations are possible, see Digital Enterprise Server - Advanced Configurations.
Deploy the Digital Enterprise Server using the Trisotech registry:
helm upgrade --install \
--set image.tag=<TAG> \
--set licence=<LICENSE> \
--set ingress.hosts[0]=<DNS NAME> \
--set ingress.tls=true \
--wait \
--namespace=des \
--create-namespace \
--atomic \
des des-<TAG>.tgz
Deploy the Digital Enterprise Server using an external docker registry:
docker login registry.trisotech.com -u user -p <LICENSE>
docker pull registry.trisotech.com/des/platform:<TAG>
docker pull registry.trisotech.com/des/engine:<TAG>
docker pull registry.trisotech.com/des/scripts:latest
docker tag registry.trisotech.com/des/platform:<TAG> <EXTERNAL REGISTRY>/des/platform:<TAG>
docker tag registry.trisotech.com/des/engine:<TAG> <EXTERNAL REGISTRY>/des/engine:<TAG>
docker tag registry.trisotech.com/des/scripts:latest <EXTERNAL REGISTRY>/des/scripts:latest
docker push <EXTERNAL REGISTRY>/des/platform:<TAG>
docker push <EXTERNAL REGISTRY>/des/engine:<TAG>
docker push <EXTERNAL REGISTRY>/des/scripts:latest
helm upgrade --install \
--set image.tag=<TAG> \
--set image.repository=<EXTERNAL REGISTRY>/des/platform \
--set maintenanceImage=<EXTERNAL REGISTRY>/des/scripts:latest \
--set ingress.hosts[0]=<DNS NAME> \
--set ingress.tls=true \
--wait \
--namespace=des \
--create-namespace \
--atomic \
des des-<TAG NUMBER>.tgz
Upgrade procedure¶
The DES upgrade is done using the helm --reuse-values
parameter which ensure previous configuration is keep. Any new option can be added / changed using --set option=value
parameter. Here is an example of an upgrade which change the DES image tag:
helm upgrade \
--reuse-values \
--set image.tag=<TAG> \
--wait \
--namespace=des \
--atomic \
des des-1.0.0.tgz
Warning
Make sure you use a numbered version and not latest because it allows to rollback to a previous deployment in case of errors (using latest will rollback to the same image). Using latest can also result in running a newer image if the pod is evicted because the default pull policy forces a check to the registry before restarting the pod.