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.