Skip to main content
Version: Deploy 22.2

Parameters in the Custom Resource File

This topic provides a 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.

ParameterDescriptionDefault
K8sSetup.PlatformThe platform on which you install the chart.AWSEKS/AzureAKS/GoogleGKE/PlainK8s
AdminPasswordAdmin password for xl-deployIf user does not provide password, random 10 character alphanumeric string will be generated
XldMasterCountNumber of master replicas3
XldWorkerCountNumber of worker replicas3
ServerImageRepositoryImage repository name for the masterxebialabs/xl-deploy
WorkerImageRepositoryImage repository name for the worker (deploy-task-engine)xebialabs/deploy-task-engine
ImageTagImage tag22.2.0
ImagePullPolicyImage pull policy, Defaults to Always if image tag is ’latest’,set to IfNotPresentAlways
ImagePullSecretSpecifies docker-registry secret names. Secrets must be manually created in the namespaceNA
xldLicenseConvert xl-deploy.lic files content to base64 hereNA
RepositoryKeystoreConvert keystore.jks files content to base64 hereNA
KeystorePassphrasePassphrase for keystore.jks fileNA
HealthProbesWould you like a HealthProbes to be enabled?true
HealthProbesLivenessTimeoutDelay before liveness probe is initiated90
HealthProbesReadinessTimeoutDelay before readiness probe is initiated90
HealthProbeFailureThresholdMinimum consecutive failures for the probe to be considered failed after having succeeded12
HealthPeriodScansHow often to perform the probe10
Persistence.EnabledEnable persistence using PVCtrue
Persistence.AnnotationsAnnotations for the PVC
Persistence.AccessModePVC Access Mode for volumeReadWriteOnce
Persistence.StorageClassXLD PVC Storage Class for volume.NA
Persistence.XldMasterPvcSizeXLD Master PVC Storage Request for volume. For production grade setup, size must be changed10Gi
Persistence.XldWorkerPvcSizeXLD Worker PVC Storage Request for volume. For production grade setup, size must be changed10Gi
resourcesCPU/Memory resource requests/limits. User can change the parameter accordinglyNA
nodeSelectorNode labels for pod assignment
tolerationsToleration labels for pod assignment[]
affinityAffinity labels for pod assignment
deploy.configurationManagement.centralConfiguration.configuration.enabledEnable configuration management on a central configuration - currently it is only deleting configuration files on the pod startuptrue
deploy.configurationManagement.centralConfiguration.configuration.resetFilesList of the files that will be deleted during central configuration pod startup[]
deploy.configurationManagement.master.configuration.enabledEnable configuration management on a master - currently it is only deleting configuration files on the pod startuptrue
deploy.configurationManagement.master.configuration.resetFilesList of the files that will be deleted during master pod startup[]
deploy.configurationManagement.worker.configuration.enabledEnable configuration management on a worker - currently it is only deleting configuration files on the pod startuptrue
deploy.configurationManagement.worker.configuration.resetFilesList of the files that will be deleted during master pod startup[]
haproxy-ingress.installInstall haproxy subchart. If you have haproxy already installed, set install to falsefalse
haproxy-ingress.controller.kindType of deployment, DaemonSet or DeploymentDeployment
haproxy-ingress.controller.service.typeKubernetes Service type for haproxy. It can be changed to LoadBalancer or NodePortLoadBalancer
ingress.EnabledExposes HTTP and HTTPS routes from outside the cluster to services within the clustertrue
ingress.annotationsAnnotations for ingress controllerSee haproxy and nginx setup below table.
ingress.pathYou can route an Ingress to different Services based on the path/
ingress.hostsDNS name for accessing ui of Digital.ai Deployexample.com
ingress.tls[].secretNameSecret file that contains the tls private key and certificateexample-secretsName
ingress.tls[].hostsDNS name for accessing ui of Digital.ai Deploy using tls.example.com
nginx-ingress-controller.installInstall nginx-controller subchart. If you have nginx already installed, set install to falsetrue
nginx-ingress-controller.kindType of deployment, DaemonSet or DeploymentDeployment
nginx-ingress-controller.service.typeKubernetes Service type for nginx. It can be changed to LoadBalancer or NodePortLoadBalancer
postgresql.installpostgresql chart with single instance. Install postgresql chart. If you have an existing database deployment, set install to false.true
postgresql.postgresqlUsernamePostgreSQL user (creates a non-admin user when postgresqlUsername is not postgres)postgres
postgresql.postgresqlPasswordPostgreSQL user passwordrandom 10 character alphanumeric string
postgresql.replication.enabledEnable replicationfalse
postgresql.postgresqlExtendedConf.listenAddressesSpecifies the TCP/IP address(es) on which the server is to listen for connections from client applications*
postgresql.postgresqlExtendedConf.maxConnectionsMaximum total connections500
postgresql.initdbScriptsSecretSecret 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.portPostgreSQL port5432
postgresql.persistence.enabledEnable persistence using PVCtrue
postgresql.persistence.storageClasshe storage Class that needs to be defined as PostgreSQLNA
postgresql.persistence.sizePVC Storage Request for PostgreSQL volume50Gi
postgresql.persistence.existingClaimProvide an existing PersistentVolumeClaim, the value is evaluated as a template.NA
postgresql.resources.requestsCPU/Memory resource requestsrequests: memory: 1Gi memory: cpu: 250m
postgresql.resources.limitsLimitslimits: memory: 2Gi, limits: cpu: 1
postgresql.nodeSelectorNode labels for pod assignment
postgresql.affinityAffinity labels for pod assignment
postgresql.tolerationsToleration labels for pod assignment[]
UseExistingDB.EnabledIf you want to use an existing database, change postgresql.install to false.false
UseExistingDB.XLD_DB_URLDatabase URL for xl-deployNA
UseExistingDB.XLD_DB_USERNAMEDatabase User for xl-deployNA
UseExistingDB.XLD_DB_PASSWORDDatabase Password for xl-deployNA
rabbitmq.installInstall rabbitmq chart. If you have an existing message queue deployment, set install to false.true
rabbitmq.auth.usernameRabbitMQ application usernameguest
rabbitmq.auth.passwordRabbitMQ application passwordrandom 24 character long alphanumeric string
rabbitmq.auth.erlangCookieErlang cookieDEPLOYRABBITMQCLUSTER
rabbitmq.memoryHighWatermarkMemory high watermark500MB
rabbitmq.service.nodePortNode port5672
rabbitmq.extraPluginsAdditional plugins to add to the default configmaprabbitmq_shovel,rabbitmq_shovel_management,rabbitmq_federation,rabbitmq_federation_management,rabbitmq_amqp1_0,rabbitmq_management
rabbitmq.replicaCountNumber of replicas3
rabbitmq.rbac.createIf true, create & use RBAC resourcestrue
rabbitmq.service.typeType of service to createClusterIP
rabbitmq.persistence.enabledIf set to True, persistent volume claims are createdtrue
rabbitmq.persistence.storageClassThe storage class that must be defined as RabbitMQNA
rabbitmq.persistence.sizePersistent volume size20Gi
rabbitmq.persistence.annotationsPersistent volume annotations
rabbitmq.persistence.resourcesPersistent Volume resources
UseExistingMQ.EnabledIf you want to use an existing Message Queue change rabbitmq.instal to falsefalse
UseExistingMQ.XLD_TASK_QUEUE_USERNAMEUsername for xl-task queueNA
UseExistingMQ.XLD_TASK_QUEUE_PASSWORDPassword for xl-task queueNA
UseExistingMQ.XLD_TASK_QUEUE_DRIVER_CLASS_NAMEDriver Class Name for xl-deploy task queueNA
UseExistingMQ.XLD_TASK_QUEUE_URLURL for xl-deploy task queueNA
centralConfiguration.replicasCentral configuration replica count1
centralConfiguration.image.repositoryCentral configuration repository to usexebialabs/central-configuration
centralConfiguration.persistence.pvcSizeCentral cofiguration Persistent volume size500M
centralConfiguration.migrateFromEmbeddedPut 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.