Deploying an assembly by using the CLI

An assembly is an instance type that you can use to deploy multiple instances of other IBM Cloud Pak® for Integration instances and components from the same YAML file. This feature simplifies ease of instance creation and management, in part by supplying default configurations for complex elements, such as certificates and high availability.

You can also author and deploy assemblies using the canvas in the Platform UI. For more information, see Using the assembly canvas.

Before you begin

  • If your OpenShift cluster is online, and you have not already created a secret called ibm-entitlement-key in the namespace where the instance will be created, see Finding and applying your entitlement key by using the UI (online installation).

  • An OpenShift cluster administrator has created one or more storage classes that support ReadWriteOnce (RWO). For more information, see Storage considerations.

  • You have already installed the IBM Cloud Pak for Integration operator. If you have not already done so, see Installing the operators.

  • You have installed all operators for the components that you are deploying with the assembly. Operators that are used by assemblies (followed by the component name used in the assembly) are:

    • IBM App Connect (IntegrationRuntime)

    • IBM Event Streams (EventStreams)

    • IBM MQ (QueueManager)

    • A certificate manager, such as cert-manager Operator for Red Hat OpenShift (QueueManager)

  • If you want to allow assembly templates to be shared across your organization, Automation assets is already installed. For more information on installing Automation assets, see Deploying an instance by using the Platform UI or Automation assets deployment by using the CLI.

Procedure

  1. Log into your OpenShift cluster, using your OpenShift user credentials:

    oc login
  2. If you installed the operators in All namespaces on the cluster mode, you will need to use a project other than openshift-operators in which to deploy the instance.

    • If needed, create a new project for this purpose by running:

      oc new-project <project_name>

      For example:

      oc new-project integration
  3. Create a IntegrationAssembly YAML file. For example, you could create a file called assembly.yaml with the following example configuration. Update the values as indicated:

    • For metadata.namespace, enter your project (namespace) name.

    • Change the value of spec.license.accept to true if you accept the Cloud Pak for Integration license agreement. For more information, see Licensing.

    • For spec.storage.readWriteOnce.class, specify a storage class that supports ReadWriteOnce (RWO) volumes. To get a list of available storage classes, run:

      oc get storageclasses

      This command returns a list of available storage classes. For details about storage support and configuration, see Storage considerations.

    • Set any other configuration values as appropriate. The assembly supplies default configurations for each managed instance. You can customize your configuration with any part of the full specification supported by that managed instance.
      Important: Once an instance is deployed through an assembly, the instance has to be managed through this assembly. Therefore, editing the Kubernetes resource of the specific instance is not permitted.

    Example configuration file:

    apiVersion: integration.ibm.com/v1beta1
    kind: IntegrationAssembly
    metadata:
      name: example
      namespace: integration
    spec:
      version: 16.1.1
      license:
        accept: true
        license: L-QYVA-B365MB
        use: CloudPakForIntegrationNonProduction
      storage:
        readWriteOnce:
          class: <storage-class>
      managedInstances:
        list:
        - kind: QueueManager
          metadata:
            name: qm1
        - kind: EventStreams
          metadata:
            name: es1

    If you need advanced configuration options, see Configuring an assembly.

  4. Apply the yaml file to the cluster

    oc apply assembly.yaml
  5. Get the status of the assembly by running the following command in the project (namespace) where it was deployed:

    oc get integrationassembly
Important: Managed instances created with an assembly can be edited or deleted only in the assembly Kubernetes resource, as shown in the following examples.