DES OpenShift deployment¶
This document describe the installation on OpenShift of the Digital Enterprise Server
Prerequisites¶
OpenShift environment
oc with a valid configuration connected to an existing cluster
helm (see Helm documentation)
kubectl utility connected to the cluster (kubectl commands can be directly replaced with oc)
Gitlab credentials
DNS entries pointing to the load balancer (public ip address)
tls certificate with key for https
Digital Enterprise Server deployment¶
The Digital Enterprise Server deployment use a Helm chart which template OpenShift 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 |
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 |
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 oc get sc)
Note
the route can be manually provisioned using oc expose svc … and setting ingress.enabled=false
Deploy the Digital Enterprise Server using the Trisotech registry:
helm upgrade --install \
--set image.tag=<TAG> \
--set trisotechToken=<TRISOTECH TOKEN> \
--set ingress.hosts[0]=<DNS NAME> \
--wait \
--namespace=des \
--create-namespace \
--atomic \
des des-1.0.0.tgz
Deploy the Digital Enterprise Server using an external docker registry:
docker login registry.gitlab.com -u trisotechclients -p <TRISOTECH TOKEN>
docker pull registry.gitlab.com/trisotech/digital-enterprise-suite/digital-enterprise-suite/platform:<TAG>
docker pull registry.gitlab.com/trisotech/digital-enterprise-suite/maintenance-scripts:latest
docker tag registry.gitlab.com/trisotech/digital-enterprise-suite/digital-enterprise-suite/platform:<TAG> <EXTERNAL REGISTRY>/digital-enterprise-suite/platform:<TAG>
docker tag registry.gitlab.com/trisotech/digital-enterprise-suite/maintenance-scripts:latest <EXTERNAL REGISTRY>/maintenance-scripts:latest
docker push <EXTERNAL REGISTRY>/digital-enterprise-suite/platform:<TAG>
docker push <EXTERNAL REGISTRY>/maintenance-scripts:latest
helm upgrade --install \
--set image.tag=<TAG> \
--set image.repository=<EXTERNAL REGISTRY>/digital-enterprise-suite \
--set maintenanceImage=<EXTERNAL REGISTRY>/maintenance-scripts:latest \
--set ingress.hosts[0]=<DNS NAME> \
--wait \
--namespace=des \
--create-namespace \
--atomic \
des des-1.0.0.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.