Configuring Automation Decision Services

Before you install, configure the custom resource YAML file for your Automation Decision Services deployment.

Before you begin

Make sure you follow the instructions in Preparing to install Automation Decision Services where you configure important settings such as secrets, certificates, and persistent volumes.

Procedure

  1. Specify which components to deploy and how to access them from outside the cluster.

    To do so, set the following parameters in the custom resource YAML file:

    Table 1. Basic Automation Decision Services configuration parameters
    Parameter Description Default
    ads_configuration.decision_designer.enabled A flag to control whether Decision Designer is deployed or not. false
    ads_configuration.decision_runtime.enabled A flag to control whether the decision runtime is deployed or not. false
    ads_configuration.deployment_profile_size A flag to control the default CPU/memory resources and replica count to be applied to Automation Decision Services services and pods. Possible values are: small, medium, large, and extra-large. small
      ads_configuration:
        # Actually overloaded by other values below
        deployment_profile_size: "small"
    
        decision_designer:
          enabled: true
          deployment_profile_size: "medium"
    
        decision_runtime:
          enabled: true
          deployment_profile_size: "large"
    

    The subsequent steps 2-6 are optional.

  2. Optional: If you do not want to keep the default values of the Decision Designer container services, set the resources requests and limits.
    The Decision Designer containers include:
    • mongo
    • git_service
    • parsing_service
    • run_service
    • credentials_service
    • embedded_build_service
    • rest_api
    Specify the values of the following parameters for each container.
    Table 2. Decision Designer containers configuration parameters
    Parameter Description
    image.repository The registry and namespace where the container images are located.
    image.tag The image tag name of the container.
    replica_count The number of desired replica of the container.
    resource.limits.memory Specifies the memory limit for the container.
    resource.limits.cpu Specifies the CPU limit for the container.
    resource.requests.memory Specifies the memory request for the container.
    resource.requests.cpu Specifies the CPU request for the container.
    For example:
    ads_configuration:
      rest_api:
        image:
          repository: "cp.icr.io/ads-runtime"
        replica_count: "4"
        resources:
          limits:
            memory: "2G"
            cpu: "2000m"
          requests:
            memory: "512"
            cpu: "500m"
    

    For more information about the default resource values of the Decision Designer container services, see System requirements.

    For more information about Decision Designer configuration parameters, see Automation Decision Services configuration parameters.

  3. Optional: If you do not want to keep the default values of the decision runtime container service, set the resources requests and limits as well as the horizontal autoscaling.

    Specify the values of the following parameters.

    Table 3. Decision runtime container configuration parameters
    Parameter Description
    image.repository The registry and namespace where the container images are located.
    image.tag The image tag name of the container.
    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.
    replica_count The number of desired replica of the container. Ignored if autoscaling.enabled is set to true. Default value is 1 in starter mode, 2 in any other installation mode.
    resource.limits.memory Specifies the memory limit for the container. Default value is 2Gi.
    resource.limits.cpu Specifies the CPU limit for the container. Default limit is 2.
    resource.requests.memory Specifies the memory request for the container. Default is 512Mi.
    resource.requests.cpu Specifies the CPU request for the container. Default is 1.
    autoscaling.enabled Specifies whether horizontal pod autoscaling is enabled or not. Default value is false in the small, medium, and large modes, true in the extra-large installation mode.
    autoscaling.min_replicas Minimum number of replicas. Default value is 2.
    autoscaling.max_replicas Maximum number of replicas. Default value is 5.
    autoscaling.target_cpu_average_utilization Determines when a new pod is created, based on the value of resource.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 resource.requests.cpu.
    For example, if you do NOT want to use horizontal pod autoscaling:
    ads_configuration:
      decision_runtime_service:
        image:
          repository: "cp.icr.io/ads-runtime"
        replica_count: "4"
        autoscaling:
          enabled: false
        resources:
          limits:
            memory: "2Gi"
            cpu: "2000m"
          requests:
            memory: "512Mi"
            cpu: "500m"
    
    For example, if you DO want to use horizontal pod autoscaling:
    ads_configuration:
      decision_runtime_service:
        image:
          repository: "cp.icr.io/ads-runtime"
        autoscaling:
          enabled: true
          min_replicas: 2
          max_replicas: 5
          target_cpu_average_utilization: 160
        resources:
          limits:
            memory: "2Gi"
            cpu: "2000m"
          requests:
            memory: "512Mi"
            cpu: "1000m"
    
    

    For more information about the default resources values of the decision runtime container service, see System requirements.

    For more information about decision runtime configuration parameters, see Automation Decision Services parameters.
  4. Optional: You can specify additional labels for the Automation Decision Services pods.
    For example:
    ads_configuration:
      decision_runtime: 
        labels: 
           key: value
      decision_runtime_service:
        labels:
          key: value    # overrides decision_runtime.labels.key
          key2: value2  # addition specific to decision_runtime_service
          ..
    
      decision_designer:
        labels:
          key:value
    
      mongo:
        labels:
          key: value
    • The labels section under the decision_designer element adds labels to all deployments and pod that compose Decision Designer (rest-api, git-service, run-service, and credentials-service).
    • The labels section under the decision_runtime element adds labels to all deployments and pod that compose the decision runtime (decision-runtime-service).

    You can also specify labels in the more specialized sections for each deployment, such as git_service, and decision_runtime_service. These specialized labels override the ones in the general sections.

    For more information about the syntax for the individual label keys and values, see the Kubernetes documentation.

    Restriction: Labels that use the prefixes kubernetes.io, icp4a.ibm.com, and ads.ibm.com are reserved and forbidden in these labels sections. Same for the release label.
  5. Optional: Set any other configuration parameters in the custom resource YAML file. Refer to Preparing to install Automation Decision Services where you might have defined important settings such as secrets, certificates, and persistent volumes.
    Note: All the parameters mentioned in this page can be found under the ads_configuration section of the custom resource (CR) file.
    For a complete list of configuration parameters, see Automation Decision Services configuration parameters

What to do next

Continue to configure the other capabilities that are in your CR file, and make sure that you complete the last step Validating the YAML in your custom resource file before you apply the CR to the operator.