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-keyin 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
Log into your OpenShift cluster, using your OpenShift user credentials:
oc loginIf you installed the operators in All namespaces on the cluster mode, you will need to use a project other than
openshift-operatorsin 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
Create a
IntegrationAssemblyYAML file. For example, you could create a file calledassembly.yamlwith the following example configuration. Update the values as indicated:For
metadata.namespace, enter your project (namespace) name.Change the value of
spec.license.accepttotrueif 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 storageclassesThis 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: es1If you need advanced configuration options, see Configuring an assembly.
Apply the yaml file to the cluster
oc apply assembly.yamlGet the status of the assembly by running the following command in the project (namespace) where it was deployed:
oc get integrationassembly