Installing a Helm release of ODM for production

You install ODM for production on Certified Kubernetes by using a Helm chart, which you must download from IBM Passport Advantage®.

Before you begin

Before you install, make sure that you prepare your environment. For more information, see Preparing to install ODM for production and Customizing ODM for production.

If Helm is not installed in your Kubernetes cluster, install it. See ODM detailed system requirements.

About this task

To install ODM for production, you need to download the archive from IBM Passport Advantage (PPA) to get the Helm chart.

Then, you have two options to access the container images:

  • Using the IBM Entitled registry with your IBMid

    Choose this option if you have an internet access from your cluster. You need to create a secret in your cluster and set the pull secrets and repository parameters during the Helm installation.

  • Using the downloaded archive from IBM Passport Advantage (PPA)

    Choose this option if you have your own private Docker registry or no internet access. The PPA archive contains both the Helm chart and the Docker images. You can then run commands to load, tag, and push the images to your Docker registry.

Note: You can install multiple instances of ODM in a single namespace without any conflict between the different release names.

The following procedure must be executed as a namespace administrator.

Procedure

  1. Download the PPA to get the Helm chart.
    1. Download the IBM Operational Decision Manager images from IBM Passport Advantage (PPA).

      To view the list of Passport Advantage eAssembly installation images, refer to the ODM download documents.

    2. Extract the file that contains both the Helm chart and the images.

      The name of the file includes the chart version number.

      tar xvzf PPA_NAME.tar.gz
    3. Switch to the extracted folder.
      $ cd PPA_NAME
  2. Access the container images.

    Option 1: Using the IBM Entitled registry with your IBMid

    1. Log in to MyIBM Container Software Library with the IBMid and password that are associated with the entitled software.
    2. In the Container software library tile, verify your entitlement on the View library page, and then go to Get entitlement key to retrieve the key.
    3. Create a pull secret by running a kubectl create secret command.
      $ kubectl create secret docker-registry <REGISTRY_SECRET> --docker-server=cp.icr.io --docker-username=cp \
      --docker-password="<API_KEY_GENERATED>" --docker-email=<USER_EMAIL>
      Where
      • <REGISTRY_SECRET> is the secret name.
      • <API_KEY_GENERATED> is the entitlement key from the previous step. Make sure you enclose the key in double quotation marks.
      • <USER_EMAIL> is the email address that is associated with your IBMid.
      Note: The cp.icr.io value for the docker-server parameter is the only registry domain name that contains the images. You must set the docker-username to cp to use an entitlement key as docker-password.
    4. Make a note of the secret name so that you can set it for the image.pullSecrets parameter when you run a helm install of your containers. The image.repository parameter must be set to cp.icr.io/cp/cp4a/odm.

    Option 2: Using the download archives from IBM Passport Advantage (PPA)

    In this case, you must install Docker.

    1. Load the container images from the extracted folder into your Docker registry.
      1. Load the container images into your internal Docker registry.
        $ for name in images/*.tar.gz; do echo $name && docker image load --input $name ; done
      2. Tag the images loaded locally with your registry name.
        $ docker tag odm-decisionserverconsole:<IMAGE_TAG_NAME> <REGISTRY_URL>/odm-decisionserverconsole:<IMAGE_TAG_NAME>
        $ docker tag dbserver:<IMAGE_TAG_NAME> <REGISTRY_URL>/dbserver:<IMAGE_TAG_NAME>
        $ docker tag odm-decisioncenter:<IMAGE_TAG_NAME> <REGISTRY_URL>/odm-decisioncenter:<IMAGE_TAG_NAME>
        $ docker tag odm-decisionserverruntime:<IMAGE_TAG_NAME> <REGISTRY_URL>/odm-decisionserverruntime:<IMAGE_TAG_NAME>
        $ docker tag odm-decisionrunner:<IMAGE_TAG_NAME> <REGISTRY_URL>/odm-decisionrunner:<IMAGE_TAG_NAME>
      3. Log in to your Docker Registry.
        $ docker login REGISTRY_URL -u <REGISTRY_USER_NAME>

        When prompted, enter your registry password.

      4. Push the images to your registry.
        $ docker push <REGISTRY_URL>/odm-decisioncenter:<IMAGE_TAG_NAME>
        $ docker push <REGISTRY_URL>/odm-decisionserverconsole:<IMAGE_TAG_NAME>
        $ docker push <REGISTRY_URL>/odm-decisionserverruntime:<IMAGE_TAG_NAME>
        $ docker push <REGISTRY_URL>/odm-decisionrunner:<IMAGE_TAG_NAME>
        $ docker push <REGISTRY_URL>/dbserver:<IMAGE_TAG_NAME>
    2. Create a pull secret to access your registry by running a kubectl create secret command.
      $ kubectl create secret docker-registry <REGISTRY_SECRET> --docker-server=<REGISTRY_URL> --docker-username=<REGISTRY_USER_NAME> \
      --docker-password="<REGISTRY_USER_PASSWORD>" --docker-email=<REGISTRY_USER_EMAIL>
    3. Make a note of the secret name so that you can set it for the image.pullSecrets parameter when you run a helm install of your containers. The image.repository parameter must be set to <REGISTRY_URL>.
  3. Install a Kubernetes release with the default configuration and a name of my-odm-prod-release by using the following command.
    $ helm install release_name \ 
       --set license=true \
       --set image.pullSecrets=<REGISTRY_SECRET> \ 
       --set image.repository=<REGISTRY_URL> \ 
       chart/ibm-odm-prod-<version>.tgz

    Where <REGISTRY_URL> corresponds to cp.icr.io/cp/cp4a/odm in the case of IBM Entitled Registry.

    The package is deployed asynchronously in a matter of minutes, and is composed of several services.

    To set the helm parameters and configure the installation, refer to Reference.

  4. List the helm releases in your cluster.
    $ helm ls

    The release is an instance of the ibm-odm-prod chart. All the Operational Decision Manager components are now running in a Kubernetes cluster.

    To verify a deployment, go to the Completing post-deployment tasks.