Decision runtime parameters

If a parameter is absent or has no value, then it means that the operator and Decision Intelligence Client Managed Software pattern refer to the default value. You can overwrite the default value by entering a new value in your custom resource.

Table 1. spec.decision_runtime parameters
Parameters Description Default/Example values
affinity Optional. Kubernetes affinity rules for decision runtime pods. It overrides spec.affinity. It must conform to Kubernetes core/v1.Affinity specification.

For more information, see Kubernetes Affinity and Anti-Affinity External link opens a new window or tab.

null (It uses spec.affinity if it is set.)
enabled A flag to control whether the decision runtime must be deployed or not.

The default value is false.

When the enabled parameter for Decision Designer is set to true, then the enabled parameter for the decision runtime is set to true by default.

If the enabled parameter for the decision runtime is false and the enabled parameter for Decision Designer is true, an error message is displayed.

enable_access_logging Toggle access logs entries into pod logs on standard output. false
admin_secret_name The name of the secret that encapsulates all the sensitive data of the decision runtime. <instance>-ads-runtime-secret
allowed_origins A comma-separated list of origins that are allowed to access the decision runtime domain. If set to "*", the decision runtime domain is publicly accessible without any access control checks. null (The decision runtime domain is NOT accessible.)
authentication_mode The authentication mode to access the runtime. Either basic or zen. zen
decision_runtime_service.fs_group

Sets the securityContext.fsGroup field of pods instantiated for the corresponding services.

For more information, see the Kubernetes documentation External link opens a new window or tab.

This parameter is optional. Type int (positive or null).
deployment_profile_size A flag to control the default CPU/memory resources and replica count to be applied to decision runtime services and pods. Possible values are: small, medium, large, and extra-large.

This parameter allows you to override the Cloud Pak shared_configuration.sc_deployment_profile_size parameter.

Note: The horizontal pod autoscaler is configured with an extra-large profile size.
small
event_emitter.allow_missing_events Determines the behavior of the event emitter when its internal queue is full.
  • If true, then events are dropped when the queue is full.
  • If false, then event emission is synchronized with the execution of the decision, slowing it down as a consequence.

In all cases, failure to emit an event does not prevent a decision from running.

true
event_emitter.enabled

Enables the event emitter in the decision runtime to send events to an Apache Kafka cluster.

The default value is false. You can change it to true if you want to send events to any Kafka instance or external standalone Business Automation Insights.

event_emitter.dequeuer_threads

Specifies how many threads are polling the events queue to send the events to the Kafka topic.

If this parameter is not set, the number of threads is computed at the decision runtime start based on the number of CPU allocated to the runtime.

null
event_emitter.kafka_bootstrap_servers

A comma-separated list of host/port pairs that is used for establishing the initial connection to the Kafka cluster.

For example: host1:port1, and host2:port2.

For more information, see the Kafka documentation External link opens a new window or tab.

Mandatory if the event emitter is enabled.
event_emitter.kafka_connection_secret_name

Name of a Kubernetes secret that contains the user credentials for authentication on the Kafka cluster.

When the kafka_sasl_mechanism parameter is set to PLAIN or SCRAM-SHA-512, the secret must contain keys kafka-username and kafka-password.

Optionally, the secret can contain a key kafka-server-certificate associated to a PEM-encoded TLS certificate that allows to establish TLS trust when connecting to the Kafka cluster.

In all cases, The TLS trust certificates configured with other parameters such as spec.trusted_certificate_list and spec.decision_runtime.decision_runtime_service.tls.certs_config_map_name in the decision runtime are also used when connecting to the Kafka cluster.

Mandatory when the kafka_sasl_mechanism parameter is set to PLAIN or SCRAM-SHA-512.
event_emitter.kafka_producers_count The number of Kafka producers. Recommended value is 1. 1
event_emitter.kafka_properties_config_map_name

Some custom Kafka client parameters can be added the same way as in https://kafka.apache.org/documentation/#producerconfigs External link opens a new window or tab.

null
event_emitter.kafka_sasl_mechanism

The SASL mechanism that is used for user authentication on the Kafka cluster when the parameter kafka_security_protocol is set to SASL_SSL.

Valid values:
  • PLAIN
  • SCRAM-SHA-512
PLAIN
event_emitter.kafka_security_protocol

Protocol that is used to communicate with the Kafka cluster.

Valid values:
  • PLAINTEXT for communication with no TLS encryption and no user authentication
  • SASL_SSL for communication with TLS encryption and a SASL-based user authentication.
SASL_SSL
event_emitter.kafka_topic Name of the Kafka topic that is used to send events. Mandatory if the event emitter is enabled.
event_emitter.queue_capacity The decision runtime queues its events before it sends them asynchronously to the Kafka topic. This parameter controls how many events can be contained in the queue. 50000
resources.limits.ephemeral_storage The ephemeral storage limit for the decision runtime container. For details depending on profile size, see System requirements
resources.requests.ephemeral_storage The ephemeral storage requested for the decision runtime container. For details depending on profile size, see System requirements
storage_decision_check_status_interval

The interval, in milliseconds, between checks and updates of the cached decisions.

Type: integer

The default value is 30000.
tolerations Optional. Kubernetes tolerations for decision runtime pods. It overrides spec.tolerations. It must be an array conforming to Kubernetes core/v1.Toleration specification.

For more information, see Kubernetes Taints and Tolerations External link opens a new window or tab.

null (It uses spec.tolerations if it is set.)
Table 2. spec.decision_runtime parameters for database configuration
Parameters Description Default/Example values
database.use_embedded

A flag to control whether to use the EDB Postgres database or not.

false (It cannot be changed to true.)
database.current_schema

The name of the schema in the database for the decision runtime.

If you are using a PostgreSQL server hosted on IBM Cloud® Databases for PostgreSQL, the current_schema value must be specified as a comma-separated list composed of the schema name for the decision runtime followed by ibm_extension. For example, ads, ibm_extension.

ads
database.hostname

Hostname of the remote PostgreSQL server.

 
database.name

The name of the database for the decision runtime in the PostgreSQL server.

adsruntime
database.port

TCP port number of the remote PostgreSQL server.

5432
database.secret_name

The name of the secret with credentials for roles to connect to the PostgreSQL database.

 
database.ssl_mode

The level of TLS protection when Decision Designer is connecting to the remote PostgreSQL server. Valid modes are disable, allow, prefer, require, verify-ca and verify-full. These modes are defined in the PostgreSQL client documentation External link opens a new window or tab.

verify-full
database.ssl_secret_name

The name of the secret with TLS certificates for the administration role of the decision runtime.

 
database.jdbc_driver.driver_image.repository The registry and namespace where the custom JDBC container image is located. For example: myregistry/custom_jdbc_driver
database.jdbc_driver.driver_image.tag The tag of the custom JDBC container image. It must not be used when digest is used. For example: 0.0.1
database.jdbc_driver.driver_image.digest The digest of the custom JDBC container image. It must not be used when tag is used. For example: sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
database.jdbc_driver.driver_name The name of the JDBC driver

For example: software.amazon.jdbc.Driver

Default: org.postgresql.Driver

database.jdbc_driver.driver_protocol The protocol for the JDBC driver.

For example: jdbc:aws-wrapper:postgresql

Default: jdbc:postgresql

database.jdbc_driver.driver_path The path to the directory containing JDBC driver files. Default: /jdbc/postgresql
Table 3. spec.decision_runtime.decision_runtime_service parameters
Parameters Description Default/Example values
autoscaling.enabled Specifies whether horizontal pod autoscaling is enabled or not. Default value is false, except in the case of an extra-large deployment profile size.
autoscaling.max_replicas Maximum number of replicas. 5
autoscaling.min_replicas Minimum number of replicas. 2
autoscaling.metrics Metrics specifications for scaling decisions Automatically calculated based on resource limits.
autoscaling.behavior Extra parameters (tolerance, stabilization window, …) as defined in Configurable scaling behavior External link opens a new window or tab. Kubernetes defaults.
(Deprecated) autoscaling.target_cpu_average_utilization Determines when a new pod is created, based on the value of resources.requests.cpu. From 26.0.0, use autoscaling.target_cpu_utilization_percentage instead. Default value is 160, which means that a new pod is created when the CPU usage is more than 1.6 the value of resources.requests.cpu.
cache.config.expiry

An optional XML fragment to configure how decision service archives expire in the cache.

Three expiry types are supported:

  • time to live (ttl): the maximum time an entry can remain in the cache
  • time to idle (tti): the maximum time an entry can remain untouched
  • no expiry (none): entries do not expire (the default)
For example, to configure a time-to-live expiry of 15 minutes:
<expiry>
  <ttl unit="minutes">15</ttl>
</expiry>

The value of the unit attribute is one of "nanos", "micros", "millis", "seconds", "minutes", "hours", or "days".

none
cache.config.resources Specifies the maximum size of the decision service archives cache. The cache size can be expressed as a number of entries, or as a memory size. When the maximum value is reached, one or more entries are evicted from the cache.
For example, to configure a cache with at most 100 entries:
<heap unit="entries">100</heap>
To configure a cache that cannot occupy more than 250 MB of memory:
<heap unit="MB">250</heap>

The value of the unit attribute is one of "entries", "B", "kB", "MB", "GB", "TB", "PB".

<heap unit="entries">100</heap>
decision_runtime_service.affinity Optional. Kubernetes affinity rules for decision runtime service pods. It overrides decision_runtime.affinity and spec.affinity. It must conform to Kubernetes core/v1.Affinity specification.

For more information, see Kubernetes Affinity and Anti-Affinity External link opens a new window or tab.

null (It uses decision_runtime.affinity if it is set.)
decision_runtime_service.tolerations Optional. Kubernetes tolerations for decision runtime service pods. It overrides decision_runtime.tolerations and spec.tolerations. It must be an array conforming to Kubernetes core/v1.Toleration specification.

For more information, see Kubernetes Taints and Tolerations External link opens a new window or tab.

null (It uses decision_runtime.tolerations if it is set.)
decision_selection.cache.config.expiry Same as cache.config.expiry parameter. Same as cache.config.expiry parameter.
decision_selection.cache.config.resources Same as cache.config.resources parameter. Same as cache.config.resources parameter.
decision_selection.threads The maximum number of threads that perform updates of the decision selection results cache concurrently. 1
decision_selection.update_interval The interval, in milliseconds, between decision selection results cache updates. 120000 (2 minutes )
decision_selection.query_interval The interval, in milliseconds, between the execution of decision selection storage queries in the same thread. This delay is intended to reduce the possible bursts of database operations when the selection results cache has a large number of entries. 1000 (1 second )
image.digest The image digest name of the container, if you prefer to use the digest instead of the tag. Digest has priority over tag.  
image.repository The registry and namespace where the container images are located. cp.icr.io/cp/cp4a/ads/ads-runtime
metadata.cache.config.check_interval Integer. The interval, in milliseconds, between two metadata cache updates. 30000
metadata.cache.config.expiry An optional XML fragment to configure how metadata expire in the cache. The syntax is identical to cache.config.expiry. none
metadata.cache.config.manager.threads Integer. The number of threads that perform metadata cache updates. 1
metadata.cache.config.resources Specifies the maximum size of the metadata cache. The syntax is identical to cache.config.resources. For more information about profile size values, see System requirements
pod_disruption_budget.enabled Used to know if PDB has to be created for the runtime service. Defaults to the global spec.enable_pdb value.
pod_disruption_budget.maxUnavailable See https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget. No default as mutually exclusive with minAvailable.
pod_disruption_budget.minAvailable See https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget. Default:
  • 0 for 1 replica to allow pod disruption during maintenance.
  • 1 when replicas >= 2
pod_disruption_budget.unhealthyPodEvictionPolicy See https://kubernetes.io/docs/tasks/run-application/configure-pdb/#unhealthy-pod-eviction-policy. Default: AlwaysAllow
replica_count The number of desired replicas of the container. Ignored if autoscaling.enabled is set to true. Default value is 1 in starter mode, 2 in any other installation mode.
resources.limits.cpu Specifies the CPU limit for the container. 2
resources.limits.memory Specifies the memory limit for the container. 2Gi
resources.requests.cpu Specifies the CPU request for the container. 1
resources.requests.memory Specifies the memory request for the container. 512Mi
stack_trace_enabled A flag that controls whether the decision runtime includes an exception stack trace in the response payload when an incident occurs. false
tls.allow_self_signed A flag that controls whether self-signed certificates are allowed or not to connect to decision storage or ML providers. false
tls.certs_config_map_name The name of the ConfigMap that holds the TLS certificates. null (optional)
tls.enabled A flag that controls whether TLS is required for decision storage or for ML providers connections (HTTPS protocol). Not present. TLS is supported in all cases when connecting to ML providers.
tls.verify_hostname A flag that controls whether hostnames of TLS certificates are verified to connect to decision storage or ML providers. false
Table 4. Usage Metering Service parameters for decision runtime
Parameters Description Default/Example values
spec.usage_metrics.reporter.cronjob_schedules

Use this parameter to specify the frequency of reporting usage metrics from Decision Intelligence Client Managed Software to IBM® Usage Metering Service (UMS).

Use UNIX cron format.

For more information, see Metering and tracking usage for decision runtime.

Default value is 3/20 * * * *.

It means at X:03, X:23 and X:43 for each X hour.