Parameters in the Custom Resource File

Here is the list of parameters for the Digital.ai Deploy Custom Resource (CR). The following table lists the parameters available in the Digital.ai Deploy’s daideploy_cr.yaml file and their default values.

Parameter Description Default
K8sSetup.Platform The platform on which you install the chart. AWSEKS/AzureAKS/GoogleGKE/PlainK8s
AdminPassword Admin password for xl-deploy If user does not provide password, random 10 character alphanumeric string will be generated
XldMasterCount Number of master replicas 3
XldWorkerCount Number of worker replicas 3
ServerImageRepository Image repository name for the master xebialabs/xl-deploy
WorkerImageRepository Image repository name for the worker (deploy-task-engine) xebialabs/deploy-task-engine
ImageTag Image tag 22.2.0
ImagePullPolicy Image pull policy, Defaults to Always if image tag is ’latest’,set to IfNotPresent Always
ImagePullSecret Specifies docker-registry secret names. Secrets must be manually created in the namespace NA
xldLicense Convert xl-deploy.lic files content to base64 here NA
RepositoryKeystore Convert keystore.jks files content to base64 here NA
KeystorePassphrase Passphrase for keystore.jks file NA
HealthProbes Would you like a HealthProbes to be enabled? true
HealthProbesLivenessTimeout Delay before liveness probe is initiated 90
HealthProbesReadinessTimeout Delay before readiness probe is initiated 90
HealthProbeFailureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded 12
HealthPeriodScans How often to perform the probe 10
Persistence.Enabled Enable persistence using PVC true
Persistence.Annotations Annotations for the PVC {}
Persistence.AccessMode PVC Access Mode for volume ReadWriteOnce
Persistence.StorageClass XLD PVC Storage Class for volume. NA
Persistence.XldMasterPvcSize XLD Master PVC Storage Request for volume. For production grade setup, size must be changed 10Gi
Persistence.XldWorkerPvcSize XLD Worker PVC Storage Request for volume. For production grade setup, size must be changed 10Gi
resources CPU/Memory resource requests/limits. User can change the parameter accordingly NA
nodeSelector Node labels for pod assignment {}
tolerations Toleration labels for pod assignment []
affinity Affinity labels for pod assignment {}
deploy.configurationManagement.centralConfiguration.configuration.enabled Enable configuration management on a central configuration - currently it is only deleting configuration files on the pod startup true
deploy.configurationManagement.centralConfiguration.configuration.resetFiles List of the files that will be deleted during central configuration pod startup []
deploy.configurationManagement.master.configuration.enabled Enable configuration management on a master - currently it is only deleting configuration files on the pod startup true
deploy.configurationManagement.master.configuration.resetFiles List of the files that will be deleted during master pod startup []
deploy.configurationManagement.worker.configuration.enabled Enable configuration management on a worker - currently it is only deleting configuration files on the pod startup true
deploy.configurationManagement.worker.configuration.resetFiles List of the files that will be deleted during master pod startup []
haproxy-ingress.install Install haproxy subchart. If you have haproxy already installed, set install to false false
haproxy-ingress.controller.kind Type of deployment, DaemonSet or Deployment Deployment
haproxy-ingress.controller.service.type Kubernetes Service type for haproxy. It can be changed to LoadBalancer or NodePort LoadBalancer
ingress.Enabled Exposes HTTP and HTTPS routes from outside the cluster to services within the cluster true
ingress.annotations Annotations for ingress controller See haproxy and nginx setup below table.
ingress.path You can route an Ingress to different Services based on the path /
ingress.hosts DNS name for accessing ui of Digital.ai Deploy example.com
ingress.tls[].secretName Secret file that contains the tls private key and certificate example-secretsName
ingress.tls[].hosts DNS name for accessing ui of Digital.ai Deploy using tls. example.com
nginx-ingress-controller.install Install nginx-controller subchart. If you have nginx already installed, set install to false true
nginx-ingress-controller.kind Type of deployment, DaemonSet or Deployment Deployment
nginx-ingress-controller.service.type Kubernetes Service type for nginx. It can be changed to LoadBalancer or NodePort LoadBalancer
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.replication.enabled Enable replication false
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 contain sensitive information
Note: This parameter 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 he storage Class that needs to be defined as PostgreSQL NA
postgresql.persistence.size PVC Storage Request for PostgreSQL volume 50Gi
postgresql.persistence.existingClaim Provide an existing PersistentVolumeClaim, the value is evaluated as a template. NA
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 []
UseExistingDB.Enabled If you want to use an existing database, change postgresql.install to false. false
UseExistingDB.XLD_DB_URL Database URL for xl-deploy NA
UseExistingDB.XLD_DB_USERNAME Database User for xl-deploy NA
UseExistingDB.XLD_DB_PASSWORD Database Password for xl-deploy NA
rabbitmq.install Install rabbitmq chart. If you have an existing message queue deployment, set install to false. true
rabbitmq.auth.username RabbitMQ application username guest
rabbitmq.auth.password RabbitMQ application password random 24 character long alphanumeric string
rabbitmq.auth.erlangCookie Erlang cookie DEPLOYRABBITMQCLUSTER
rabbitmq.memoryHighWatermark Memory high watermark 500MB
rabbitmq.service.nodePort Node port 5672
rabbitmq.extraPlugins Additional plugins to add to the default configmap rabbitmq_shovel,rabbitmq_shovel_management,rabbitmq_federation,rabbitmq_federation_management,rabbitmq_amqp1_0,rabbitmq_management
rabbitmq.replicaCount Number of replicas 3
rabbitmq.rbac.create If true, create & use RBAC resources true
rabbitmq.service.type Type of service to create ClusterIP
rabbitmq.persistence.enabled If set to True, persistent volume claims are created true
rabbitmq.persistence.storageClass The storage class that must be defined as RabbitMQ NA
rabbitmq.persistence.size Persistent volume size 20Gi
rabbitmq.persistence.annotations Persistent volume annotations {}
rabbitmq.persistence.resources Persistent Volume resources {}
UseExistingMQ.Enabled If you want to use an existing Message Queue change rabbitmq.instal to false false
UseExistingMQ.XLD_TASK_QUEUE_USERNAME Username for xl-task queue NA
UseExistingMQ.XLD_TASK_QUEUE_PASSWORD Password for xl-task queue NA
UseExistingMQ.XLD_TASK_QUEUE_DRIVER_CLASS_NAME Driver Class Name for xl-deploy task queue NA
UseExistingMQ.XLD_TASK_QUEUE_URL URL for xl-deploy task queue NA
centralConfiguration.replicas Central configuration replica count 1
centralConfiguration.image.repository Central configuration repository to use xebialabs/central-configuration
centralConfiguration.persistence.pvcSize Central cofiguration Persistent volume size 500M
centralConfiguration.migrateFromEmbedded Put here to true in case you need to migrate the configuration from the embedded central configuration on the deploy master. false

The value of the ingress.annotations depends on the which installation is enabled: haproxy or nginx.

Following are default settings that needs to be set in case of haproxy installation (haproxy-ingress.install: true)

      kubernetes.io/ingress.class: haproxy-dai-xld
      ingress.kubernetes.io/ssl-redirect: "false"
      ingress.kubernetes.io/rewrite-target: /
      ingress.kubernetes.io/affinity: cookie
      ingress.kubernetes.io/session-cookie-name: SESSION_XLD
      ingress.kubernetes.io/session-cookie-strategy: prefix
      ingress.kubernetes.io/config-backend: |
        option httpchk GET /ha/health HTTP/1.0

Watch for the ingress.class value in the example, same unique on the cluster, value should be set on the following parameters in case of haproxy installation:

  • haproxy-ingress.controller.ingressClass

Following are default settings that needs to be set in case of nginx installation (nginx-ingress-controller.install: true), and that is also set in the default configuration:

      kubernetes.io/ingress.class: nginx-dai-xld
      nginx.ingress.kubernetes.io/affinity: cookie
      nginx.ingress.kubernetes.io/proxy-connect-timeout: "60"
      nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
      nginx.ingress.kubernetes.io/proxy-send-timeout: "60"
      nginx.ingress.kubernetes.io/rewrite-target: /
      nginx.ingress.kubernetes.io/session-cookie-name: SESSION_XLD
      nginx.ingress.kubernetes.io/ssl-redirect: "false"

Watch for the ingress.class value in the example, same unique on the cluster, value should be set on the following parameters in case of nginx installation:

  • nginx-ingress-controller.extraArgs.ingress-class
  • nginx-ingress-controller.ingressClassResource.controllerClass
  • nginx-ingress-controller.ingressClassResource.name

If you need to update default properties apply changes in the CR.