Parameters

For deployments on test environments, using most of the parameters with their default values in the values.yaml file, should suffice.

For deployments on production environments, you must configure all the parameters required for your AWS OpenShift production setup, in the values.yaml file. The table in the next section lists these parameters and their default values, which can be overridden as per your setup requirements and workload.

Mandatory parameters

Note: To install the helm chart on an AWS OpenShift cluster, you must override the default values of certain parameters, and specify the values, in the values.yaml file. These parameters are:

  1. route.hosts: Hostname for accessing UI of Digital.ai Deploy
  2. xldLicense: The license file for Digital.ai Deploy should be converted to the base64 format
  3. RepositoryKeystore: The RepositoryKeystore file for Digital.ai Deploy should be converted to the base64 format
  4. KeystorePassphrase: The passphrase for the RepositoryKeystore
  5. Persistence.StorageClass: Storage Class to be defined as AWS OpenShift cluster
  6. postgresql.persistence.storageClass: Storage Class to be defined as PostgreSQL
  7. rabbitmq-ha.persistentVolume.storageClass: Storage Class to be defined as RabbitMQ

Note: If you are planning to use an existing MQ and existing database, you will need to configure the enivronment variables, in the values.yaml file.

See using existing DB and using existing MQ for more information.

Parameter details

The following table lists the configurable parameters of the Digital.ai Deploy chart along with their default values.

Parameter Description Default
XldMasterCount Number of master replicas 3
XldWorkerCount Number of worker replicas 3
ImageRepository Image name xebialabs/xl-deploy
ImageTag Image tag 10.0
ImagePullPolicy Image pull policy, Defaults to ’Always’ if image tag is ’latest’,set to ’IfNotPresent’ Always
ImagePullSecret Specify docker-registry secret names. Secrets must be manually created in the namespace nil
route.Enabled use openshift route true
route.annotations Annotations for route haproxy.router.openshift.io/cookiename: ”SESSION\XLD” haproxy.router.openshift.io/disable_cookies: ”false” haproxy.router.openshift.io/rewrite-target: ”/”
route.path path component for path based routes /
route.hosts externally-reachable hostname app.example.com
route.tls.key Secret file which holds the tls private key nil
route.tls.certificate DNS name for accessing ui of Digital.ai Deploy using tls nil
route.tls.caCertificate DNS name for accessing ui of Digital.ai Deploy using tls nil
tls.insecureEdgeTerminationPolicy By default only Edge Termination is supported with Deploy Redirect
AdminPassword Admin password for xl-deploy If user does not provide password, random 10 character alphanumeric string will be generated
xldLicense Convert xl-deploy.lic files content to base64 nil
RepositoryKeystore Convert keystore.jks files content to base64 nil
KeystorePassphrase Passphrase for keystore.jks file nil
resources CPU/Memory resource requests/limits. User can change the parameter accordingly nil
postgresql.install postgresql chart with single instance. Install postgresql chart. If you have an existing database deployment, set ’install’ to ’false’. true
postgresql.postgresqlUsername PostgreSQL user (creates a non-admin user when postgresqlUsername is not postgres) postgres
postgresql.postgresqlPassword PostgreSQL user password random 10 character alphanumeric string
postgresql.postgresqlExtendedConf.listenAddresses Specifies the TCP/IP address(es) on which the server is to listen for connections from client applications ’*’
postgresql.postgresqlExtendedConf.maxConnections Maximum total connections 500
postgresql.initdbScriptsSecret Secret with initdb scripts that contain sensitive information (Note: can be used with initdbScriptsConfigMap or initdbScripts). The value is evaluated as a template. postgresql-init-sql-xld
postgresql.service.port PostgreSQL port 5432
postgresql.persistence.enabled Enable persistence using PVC true
postgresql.persistence.storageClass PVC Storage Class for PostgreSQL volume Nil
postgresql.persistence.size PVC Storage Request for PostgreSQL volume 50Gi
postgresql.persistence.existingClaim Provide an existing PersistentVolumeClaim, the value is evaluated as a template. nil
postgresql.resources.requests CPU/Memory resource requests requests: memory: 1Gi memory: cpu: 250m
postgresql.resources.limits Limits limits: memory: 2Gi, limits: cpu: 1
postgresql.nodeSelector Node labels for pod assignment {}
postgresql.affinity Affinity labels for pod assignment {}
postgresql.tolerations Toleration labels for pod assignment []
postgresql.volumePermissions.securityContext.runAsUser User ID for the init container auto
postgresql.securityContext.enabled Enable security context false
postgresql.containerSecurityContext.enabled Enable container security context false
postgresql.shmVolume.chmod.enabled Run at init chmod 777 of the /dev/shm (ignored if volumePermissions.enabled is false) false
UseExistingDB.Enabled If you want to use an existing database, change ’postgresql.install’ to ’false’. false
UseExistingDB.XL_DB_URL Database URL for xl-deploy nil
UseExistingDB.XL_DB_USERNAME Database User for xl-deploy nil
UseExistingDB.XL_DB_PASSWORD Database Password for xl-deploy nil
rabbitmq-ha.install Install rabbitmq chart. If you have an existing message queue deployment, set ’install’ to ’false’. true
rabbitmq-ha.rabbitmqUsername RabbitMQ application username guest
rabbitmq-ha.rabbitmqPassword RabbitMQ application password random 24 character long alphanumeric string
rabbitmq-ha.rabbitmqErlangCookie Erlang cookie DEPLOYRABBITMQCLUSTER
rabbitmq-ha.rabbitmqMemoryHighWatermark Memory high watermark 500MB
rabbitmq-ha.rabbitmqNodePort Node port 5672
rabbitmq-ha.extraPlugins Additional plugins to add to the default configmap rabbitmq_shovel,rabbitmq_shovel_management,rabbitmq_federation,rabbitmq_federation_management,rabbitmq_jms_topic_exchange,rabbitmq_management,
rabbitmq-ha.replicaCount Number of replica 3
rabbitmq-ha.rbac.create If true, create & use RBAC resources true
rabbitmq-ha.service.type Type of service to create ClusterIP
rabbitmq-ha.persistentVolume.enabled If true, persistent volume claims are created true
rabbitmq-ha.persistentVolume.storageClass PVC StorageClass for RabbitMQ data volume Nil
rabbitmq-ha.persistentVolume.size Persistent volume size 20Gi
rabbitmq-ha.persistentVolume.annotations Persistent volume annotations {}
rabbitmq-ha.persistentVolume.resources Persistent Volume resources {}
rabbitmq-ha.persistentVolume.requests CPU/Memory resource requests requests: memory: 250Mi memory: cpu: 100m
rabbitmq-ha.persistentVolume.limits Limits limits: memory: 550Mi, limits: cpu: 200m
rabbitmq-ha.definitions.policies HA policies to add to definitions.json {”name”: ”ha-all”,”pattern”: ”.*”,”vhost”: ”/”,”definition”: {”ha-mode”: ”all”,”ha-sync-mode”: ”automatic”,”ha-sync-batch-size”: 1}}
rabbitmq-ha.definitions.globalParameters Pre-configured global parameters {”name”: ”cluster_name”,”value”: ””}
rabbitmq-ha.prometheus.operator.enabled Enabling Prometheus Operator false
UseExistingMQ.Enabled If you want to use an existing Message Queue, change ’rabbitmq-ha.install’ to ’false’ false
UseExistingMQ.XLD_TASK_QUEUE_USERNAME Username for xl-deploy task queue nil
UseExistingMQ.XLD_TASK_QUEUE_PASSWORD Password for xl-deploy task queue nil
UseExistingMQ.XLD_TASK_QUEUE_URL URL for xl-deploy task queue nil
UseExistingMQ.XLD_TASK_QUEUE_DRIVER_CLASS_NAME Driver Class Name for xl-deploy task queue nil
HealthProbes Would you like a HealthProbes to be enabled true
HealthProbesLivenessTimeout Delay before liveness probe is initiated 120
HealthProbesReadinessTimeout Delay before readiness probe is initiated 120
HealthProbeFailureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded 12
HealthPeriodScans How often to perform the probe 10
nodeSelector Node labels for pod assignment {}
tolerations Toleration labels for pod assignment []
affinity Affinity labels for pod assignment {}
Persistence.Enabled Enable persistence using PVC true
Persistence.StorageClass PVC Storage Class for volume nil
Persistence.Annotations Annotations for the PVC {}
Persistence.AccessMode PVC Access Mode for volume ReadWriteOnce
Persistence.XldExportPvcSize XLD Master PVC Storage Request for volume. For production grade setup, size must be changed 10Gi
Persistence. XldWorkPvcSize XLD Worker PVC Storage Request for volume. For production grade setup, size must be changed 5Gi

Adding license and keystore to the values.yaml file

Before you proceed to install the Deploy helm chart:

  • Convert the Deploy license and the repository keystore files to the base64 format
  • Provide the output of the commands below, as values in the values.yaml file

To convert the xldLicense into base64 format, run the following command:

cat <License.lic> | base64 -w 0

To convert the RepositoryKeystore, into base64 format, run the following command

cat <keystore.jks> | base64 -w 0

Adding the StorageClass to the values.yaml file

You can add the StorageClass you have created for Deploy, Postgres, and RabbitMQ services respectively in the values.yaml file, so that it looks like this:

In the below example we have shown gp2 as the storage option for RabbitMQ, and aws-efs as the storage option used for Deploy and Postgres service

Persistence:
  Enabled: true
  ## Choose storage class provided by your cloud provider, example "ssd" on GKE, AWS and OpenStack
  StorageClass: "aws-efs"
Postgres:
  persistence:
    enabled: true
    storageClass: "aws-efs"
RabbitMQ:
  persistence:
    enabled: true
    storageClass: "gp2"

Next Step