Decision runtime parameters

If a parameter is absent or has no value, then it means that the operator and Automation Decision Services 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
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.)
archive_storage_type The type of decision archive storage. Possible values are:
  • fs sets the decision archive to be stored on the file system.
  • s3 sets the decision archive to be stored on an S3 (Simple Storage Service) object storage system.
Note: This value cannot be changed after decision archives have been deployed to the runtime.
fs
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.

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.

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.

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
s3.bucket_name The name of the s3 bucket / container. N/A
s3.region The connection region depends on the storage platform and type (local, regional, or multi-regional) and on the connection type (public, private, or direct). For example, for a public regional connection in Europe on IBM Cloud, you can choose eu-de
s3.storage_region On IBM Cloud, the storage region depends on the type of connection region and of bucket storage (standard, long-term, ...). For example, for a standard bucket storage type and eu-de connection region, the storage region is set to eu-de-standard.

This parameter is optional with a MinIO server.

s3.server_url The URL of the S3 storage system. The connection URL depends on the platform, the type of region (multi-region, unique region, or local region), and the type of endpoint ( public, private, direct). For example, on IBM Cloud: https://s3.eu-de.cloud-object-storage.appdomain.cloud
s3.secret_name The name of the secret that contains the credentials to connect to the S3 storage system. If the secret is not set, an anonymous connection is attempted.
s3.connection_timeout The S3 connection timeout, in milliseconds. A value of 0 means an infinite timeout and is not recommended. This setting is handled by the Amazon S3 SDK. For more information, see https://aws.amazon.com/sdk-for-java/.

The default value is 10000.

s3.request_timeout A zero value or negative value disables this feature. This setting is handled by the Amazon S3 SDK. For more information, see https://aws.amazon.com/sdk-for-java/.

The default value is 0.

storage_decision_check_status_interval

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

Type: integer

The default value is 30000.
Table 2. 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.target_cpu_average_utilization Determines when a new pod is created, based on the value of resources.requests.cpu. 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_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 MongoDB 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
persistence.resources.requests.storage

The size of the Persistent Volume (PV) requested through a Persistent Value Claim (PVC) for the runtime instance. A string that represents a Kubernetes byte quantity.

The PVC refers to the storage class that is defined by shared_configuration.storage_configuration.sc_fast_file_storage_classname, if applicable. The required minimum performance for the volume is 300 IOPS, as defined on IBM Cloud.

Applicable only when S3 compatible storage is configured.

 
persistence.storage_class_name

If decision_runtime_service.persistence.use_dynamic_provisioning is true, define the name of the storage class that is requested for the persistent volume of the runtime.

Applicable only when S3 compatible storage is configured.

 
persistence.use_dynamic_provisioning

Boolean. Controls the type of persistent storage claim that is created for the runtime.

Applicable only when S3 compatible storage is configured.

true
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 3. License Service parameters for decision runtime
Parameters Description Default/Example values
spec.decision_runtime.ils.flush_interval The number of seconds between each attempt to send a metric to License Service. Default value is 600.