Using Automation assets

About Automation assets

Automation assets allows you to share integration assets across instances in Cloud Pak for Integration. Storing assets, such as JSON schemas, within this repository allows them to be accessed directly within the user interface of certain Integration capabilities. For example, an OpenAPI specification asset stored in the repository can be directly imported within the IBM API Connect user interface.

Assets can be located in remote repositories, such as Git. This allows users to take advantage of the versioning capability offered by the remote repository. Assets stored in a remote repository are read-only. See Remotes for more information.

Using Automation assets

Important: If you want the Automation assets catalog to be auto-initialized and include App Connect templates from an auto-created remote, you must enable the AI feature.
Platform UI

You can access Automation assets in Platform UI.

Automation assets Header

To add assets, select the Add Assets button. You then get a prompt to add an asset from your machine.

File-type viewers

Built into the Automation assets is support for viewers corresponding to different file types. Files are automatically opened in their associated viewer when selected from either the scroll view or the assets table.

Asset code

All nonbinary text files have an option to view the associated text underlying the file. If the asset type does not have additional viewer support, the default text viewer is presented. However, if there is additional viewer support, the text view can be opened by clicking the Code button.

Below are asset types that have additional support:

  • Open API - Explore the details of an Open API specification asset stored in the repository. Click any particular call to see further details. Click Code to see the actual code.

    Open API Visualiser
  • JSON Schema - Explore the details of a JSON schema by selecting a particular field. Click Code to see the actual code.

    JSON Schema Visualiser
  • Designer API Implementation and Designer Event Driven Flow - The viewer lets you review the contents of the given asset and it also presents cards presenting either the API or the event connections between different triggers.

    Designer Event Visualiser
  • PDF - The visualizer lets you to review the contents of a PDF file.

  • Image - The image viewer lets you to view image files, provided they are of one of the supported types listed above.

  • Avro Schema - The visualizer validatingwebhookconfigurations you to see JSON records for Avro schemas.

  • Robotic Process Automation Bot - The visualizer lets you to see the associated contents of the Robotic Process Automation Bot.

Remotes

The Automation assets can include assets in a remote Git repository. Any Git implementation can be used, as long as it supports one of the following:

  • No authorization

  • SSH key authorization

Assets stored in a remote repository are read-only.

Click Remotes on the Automation assets. The Remote listing page appears.

To add a new remote repository, click Create Remote. A blank configuration page appears. Complete the fields as needed. The Git URL is automatically tested.

Automation assets config

Sync Options

When creating a remote you can select the interval at which remotes are synchronised. This can be done by selecting the dropdown menu under the Automatic sync options tab, and select from one of the possible intervals.

Important: If you want the Automation assets catalog to be auto-initialized and include App Connect templates from an auto-created remote, *you must enablSelecting an automatic sync option requires 25m CPU and 100Mi memory per remote.
Sync Options

Branch Selector

After adding the remote URL, you can select a remote branch by selecting the branch from the drop down menu under the Branch label. Branch Selector

Type Selector

When creating a remote, you can select which type of assets are imported from that given remote. This can be done by selecting from one of the supported asset types, below the Asset Types label.

Type Selector

SSH Key Auth

You can use an SSH key to access the remote repository. To use SSH, complete these steps:

  1. Select Use SSH authentication.

  2. Copy the key presented in the dialog.

  3. Configure your Git repository to use the copied key. For Github, see Github help.

  4. Set the Git URL to the correct address. For a Github repository, this address begins with git@github.com.

    Automation assets config
  5. Click Create Remote. Once the synchronization completes, the new remote is listed.

    Asset remotes
  6. The Automation assets automatically resynchronizes with the remote repository at the interval you set, at the point of adding the remote. Click the Edit icon to set the synchronization interval.

Employing user-supplied keys

You can employ user-supplied SSH keys rather than the default. Complete the following steps to use your own keys:

  1. Locate or generate the SSH keys you want to use. This must be an RSA key, with no newline or whitespace characters.

  2. Make sure the remote repository is configured to use this keypair.

  3. Log in to the cluster using the oc login command.

  4. Change to the namespace used for the Automation assets.

  5. Edit the secret containing the Automation assets keypair.

    oc edit secret <operand name>-ibm-integration-asset-repository-ssh-keypair

    Set data:id_rsa to the base 64 encoded private key and data:id_rsa.pub to the base 64 encoded public key.

  6. Enable the secret changes to take effect with the following command:

    oc scale deployment/<operand name>-ibm-integration-asset-repository-api --replicas=0
    oc scale deployment/<operand name>-ibm-integration-asset-repository-api --replicas=3

If you configured Automation assets to automatically synchronize with the remote repository, complete these additional steps:

  1. Click Remotes to see the list of available remote repositories.

  2. Click the Edit icon (pencil icon) for the remote you need to edit.

  3. Select Never in the Automatic sync options field.

    Automation assets config
  4. Click Edit Remote. The page with the list of available remotes opens.

  5. Click the EditEdit icon for the remote you want to edit.

  6. Select the previously set value in the Automatic sync options field.

  7. Click Edit Remote. The page with the list of available remotes opens.

The new keys are now used. Repeat this process for each remote you want to use new keypairs.

AI-powered asset recommendations

Automation assets provides an AI-powered recommendations feature using Watson natural language processing (NLP) within Designer to provide recommendations from templates that are stored within Automation assets. You can describe your intent by using English natural language, and Watson Insights is used to recommend up to three matching templates that are the best semantic matches for your utterance.

When the feature is enabled, your Automation assets instance includes an auto-created remote that contains App Connect templates. The remote and templates cannot be deleted; they can only be removed if the feature is disabled.

Learn more about the asset recommendations feature in Designer in the App Connect documentation.

Flow-generation AI service

In addition to asset recommendations, Automation assets also includes a flow-generation AI service that works with Designer. You can generate an event-driven flow by describing your integration scenario in English natural language. The flow-generation AI service parses the text and then attempts to construct a flow with the identified connectors, event, and actions. You can preview the generated flow and then open it in the flow editor for further editing.

Learn more about the flow-generation AI service in Designer in the App Connect documentation.

Enable AI-powered features for use with Designer

When creating an Automation assets instance, you can enable the Designer AI-powered features. To do so, either set the spec.designerAIFeatures.enabled value to true directly in the Automation assets CR, or select one of the sample "with AI enabled" tiles in Platform UI, as shown:

Automation assets with AI enabled tiles

Learn more about AI features in the App Connect documentation.

After you've created your instance, you can also choose to enable the feature by editing the Automation assets CR to set the spec.designerAIFeatures.enabled value. Advanced options allow you to specify NLP and GOFA (AMR, IKG, Planner, Server) related images, and the associated replica count and resource defaults.

Enable Designer AI features

If you are enabling the AI-powered features in an air-gapped environment, you must update the auto-created remote URL to point to a clone of the App Connect templates Git repository that is hosted on the air-gapped network.

Disabling the AI-powered features

To create or use Automation assets without making asset recommendations or flow generation available in Designer, ensure that the spec.designerAIFeatures.enabled value is set to false in the Automation assets CR. You can use the OpenShift web console, OpenShift CLI, or Platform UI to make this update.

Supported file types

To prevent the upload of malicious files, only the file types specified below are supported in Automation assets:

  • Any non-binary text file

  • Code files: .json, .yaml, .yml, .avsc, .wal

  • Text files: .zip, .pdf

  • Images: .svg,.png, .jpg, .webp, .bmp, .gif, .avif

Advanced configuration options

To configure the advanced options, Log in to the Platform UI. Click Integration instances and select a deployed instance of automation assets, then click YAML.

Use the following table for reference.

Available options:

Field name Description
Designer AI features Flag to enable AI-powered asset recommendations and flow-generation.
GOFA AMR image The Docker registry location for pulling the GOFA AMR image
GOFA Server image The Docker registry location for pulling the GOFA Server image
GOFA IKG image The Docker registry location for pulling the GOFA IKG image
GOFA Planner image The Docker registry location for pulling the GOFA Planner image
Automation assets NLP image Use a custom image for the Automation assets NLP container.
Automation assets API image The Docker registry location for pulling the Automation assets API image
Automation assets UI image The Docker registry location for pulling the Automation assets UI image
Automation assets CouchDB image The Docker registry location for pulling the Automation assets CouchDB image
Image pull policy Configure whether you want images to be pulled every time, only if they're not present, or never
Image pull secrets Configure the secret used for pulling images. If you're using the Entitled Registry and have created a secret for that, you should use that secret here.
Replicas Number of replicas that each service has. The default is 3. Tip: Couch replicas are fixed during the first installation of your Automation assets. Changes to replicas after installation will only affect the UI and API services.
Annotations Additional annotations to be added to Automation assets pods.
Node Selector If you wish to assign the pods to a subset of the nodes of your cluster, you can use multiple Node Selectors. For more information, see Assigning Pods to Nodes in the Kubernetes documentation. Note: This setting only applies to Automation assets UI and API pods. CouchDB pods aren't affected.
Resources Use the Resources section to override the default resource request and limit values. You can set limit and request values for the Automation assets API, UI, GOFA and NLP pods and CouchDB pods. Any values not configured here default to the values listed in "Default values:". For more information about request and limit values, see Requests and limits in the Kubernetes documentation. Important: For a given resource, if you set the request, you must also set the limit, and if you want to set the limit, you must also set the request. CouchDB search and management values are now deprecated and have no effect. To increase the resources available to the CouchDB container, use the "CouchDB db" resource values. Default values: The following values are the defaults for each resource. The request and limit values are the same for each resource. Important: You cannot create an Automation assets with values smaller than the following: Automation assets API CPU: 200m. Automation assets API Memory: 150Mi.Automation assets UI CPU: 200m. Automation assets UI Memory: 150Mi. CouchDB DB CPU: 300m. CouchDB DB Memory: 700Mi

To disable runtime checks, add the annotation com.ibm.cp4i/disable-webhook-runtime-checks: true to the Automation assets YAML:

metadata:
  annotations:
    com.ibm.cp4i/disable-webhook-runtime-checks: true

Deploying previous instance versions

Important: If you want the Automation assets catalog to be auto-initialized and include App Connect templates from an auto-created remote, *you must enablAvoid deploying previous instances, this is documented for awareness only. Previous instances can conflict with the installation of the Platform UI.

To deploy an earlier instance version of the Automation assets capability (v.2021.1 - 2021.4), complete the following steps:

  1. Log into the OpenShift console.

  2. Click Operators > OperatorHub and find the IBM Automation foundation core operator. Install the latest version of the operator in the same namespace and scope as your IBM Automation foundation assets operator.

  3. Create an AutomationUIConfig instance from the IBM Automation foundation core operator. For more information see AutomationUIConfig Important: You nust use an RWX storage class. Click Operators > Installed Operators > IBM Automation foundation Core operator > Create AutomationUIConfig.

    AutomationUIConfig
  4. Create an Automation assets instance by using the procedure in Automation assets deployment.

Cluster-scoped permissions required by operator

The Automation assets operator requires the following cluster-scoped permissions:

  • Manage admission webhooks: The Automation assets operator uses admission webhooks to provide immediate validation and feedback about the creation and modification of Automation assets instances. The permission to manage webhooks is required for the operator to register these actions.

    • API Groups: admissionregistration.k8s.io

    • Resources: validatingwebhookconfigurations

    • Verbs: create, delete, get, list, patch, update, watch

  • Manage namespaces: When installing the Automation assets operator namespace-scoped, a label is applied to the namespace to ensure that the Automation assets webhook only validates Custom Resources in that namespace.

    • API Groups:

    • Resources: namespaces

    • Verbs: get, list, patch, update

    Tip: If you want the Automation assets catalog to be auto-initialized and include App Connect templates from an auto-created remote, *you must enablAPI Groups is empty because it's a core resource.
  • List storage classes: This allows the Automation assets operator to identify and validate that the specified storage classes selected by the user exist.

    • API Groups: storage.k8s.io

    • Resources: storageclasses

    • Verbs: get, list, watch

  • List cluster versions: The Automation assets operator requires access to the cluster version so it can detect what version of OpenShift the user is running and give guidance on version compatibility.

    • API Groups: config.openshift.io

    • Resources: clusterversions

    • Verbs: list, get

Troubleshooting

For information about known issues, workarounds, and troubleshooting information, see Known Limitations.

  • You try to set up the default remote created with the Designer AI feature enabled, and it doesn't work automatically.

    If you are seeing an issue with the IBM App Connect templates remote not working automatically after you have enabled the Designer AI feature, you need to either allow the cluster environment you are using to access github.com or clone the repository (https://github.com/ot4i/app-connect-templates/tree/cp4i-templates) and host it on another git provider that is accessible from the cluster.