Parameters in the Custom Resource File

Here is the list of the main parameters for the Digital.ai Release Custom Resource (CR). The following table lists the parameters available in the Digital.ai Release’s dairelease_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-release If user does not provide password, random 10 character alphanumeric string will be generated
replicaCount Number of release replicas 3
ImageRepository Image repository name xebialabs/xl-release
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
xlrLicense Convert xl-release.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.Size XLR PVC Storage Request for volume. For production grade setup, size must be changed 5Gi
Persistence.StorageClass XLR PVC Storage Class for volume. NA
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 {}
release.configurationManagement.configuration.enabled Enable configuration management on a release - currently it is only deleting configuration files on the pod startup true
release.configurationManagement.configuration.resetFiles List of the files that will be deleted during a release 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 Release 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 Release 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-xlr
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.XLR_DB_URL Database URL for xl-release NA
UseExistingDB.XLR_DB_USER Database User for xl-release NA
UseExistingDB.XLR_DB_PASS Database Password for xl-release NA
UseExistingDB.XLR_REPORT_DB_URL Database URL for xlr_report NA
UseExistingDB.XLR_REPORT_DB_USER Database User for xlr_report NA
UseExistingDB.XLR_REPORT_DB_PASS Database Password for xlr_report 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 RELEASERABBITMQCLUSTER
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.XLR_TASK_QUEUE_USERNAME Username for xl-task queue NA
UseExistingMQ.XLR_TASK_QUEUE_PASSWORD Password for xl-task queue NA
UseExistingMQ.XLR_TASK_QUEUE_NAME Name for xl-task queue NA
UseExistingMQ.XLR_TASK_QUEUE_URL URL for xl-release task queue NA

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-xlr
      ingress.kubernetes.io/ssl-redirect: "false"
      ingress.kubernetes.io/rewrite-target: /
      ingress.kubernetes.io/affinity: cookie
      ingress.kubernetes.io/session-cookie-name: JSESSIONID
      ingress.kubernetes.io/session-cookie-strategy: prefix
      ingress.kubernetes.io/config-backend: |
        option httpchk GET /ha/health HTTP/1.0

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-xlr
      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: JSESSIONID
      nginx.ingress.kubernetes.io/ssl-redirect: "false"

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