Installing the server in HCL Cloud Kubernetes Service#

You can install a containerized version of the HCL™ Launch server in an HCL Cloud Kubernetes Service. The UrbanCode Deploy server is installed using a Helm chart. After the server is installed, you can manage it with the ICP Management console.

Prior to installing UrbanCode Deploy, the following prerequisites must be met.

Prerequisite Description
Prepare your HCL Cloud Kubernetes Service cluster. Configure the cluster
To install the server image using the Helm command-line client, install kubectl and then set up the Helm CLI (command line interface). Install and set up kubectlInstall and set up the Helm CLI
The containerized server, like the on-premises version, requires a database. The database can be installed in any location that can be accessed by the cluster, such as an on-premise location or in a cluster. Install database.Note: Unlike the on-premises version of HCL Launch, the containerized version does not support the Apache Derby database.

| |The installation material consists of an HCL Passport Advantage archive (PPA) file, that contains a Docker image and a Helm chart. Helm is the Kubernetes package management tool. Helm charts are packages similar to debs and rpms packages. Download the PPA file for your operating system from the HCL Passport Advantage website. PPA files are available for x86, Z Linux systems and PowerPC (LE).|Load PPA archive file| |Two persistent volumes are required for UrbanCode Deploy. One volume holds the JDBC driver or drivers and the other contains the server's /appdata directory.If your Kubernetes cluster does NOT support dynamic persistent volumes, you need to manually create and set up storage volumes in your cluster.

Note: If your Kubernetes cluster supports dynamic storage provisioning, this prerequisite is not required. Storage is automatically managed.

|Create persistent volumes| |Secret - A Kubernetes Secret object must be created to store the initial UrbanCode Deploy administrator password and the password used to access the database mentioned above. These passwords are retrieved during Helm chart installation. The secret must be named 'HelmReleaseName-secrets' where 'HelmReleaseName' is the release name you give when installing this Helm chart or you can create a secret with any name and pass the name as a Helm Chart parameter value.| The secret can be created either by using the Cluster Console or using the kubectl CLI.

``` echo -n 'admin' | base64 YWRtaW4= echo -n '1f2d1e2e67df' | base64 MWYyZDFlMmU2N2Rm


 Create a file named secret.yaml with the following contents, using your Helm Relese name and base64 encoded values.

 ```
apiVersion: v1
kind: Secret
metadata:
  name: MyRelease-secrets
type: Opaque
data:
  initpassword: YWRtaW4=
  dbpassword: MWYyZDFlMmU2N2Rm

Create the Secret using kubectl apply

``` kubectl apply -f ./secret.yaml


 Delete or shred the secret.yaml file.

 |
|Copy the JDBC drivers to the extLib persistent volume created in your Kubernetes cluster.| Use a `ConfigMap` to copy the JDBC files into the persistent volume.

 This sample YAML file describes a ConfigMap resource with a shell script, named script.sh. The script performs a `wget` command to pull the MySQL.jar file from a web server and copy it to the `${UCD_HOME}/ext_lib/` directory in the container. In order for the image initialization code to find and execute the script, the script **must** be named script.sh.

 ```
kind: ConfigMap
apiVersion: v1
metadata:
  name: user-script
data:
  script.sh: |
    #!/bin/bash
    echo "Running script.sh..."
    if [ ! -f ${UCD_HOME}/ext_lib/mysql-jdbc.jar ] ; then
      which wget
      if [ $? -ne 0 ]; then
        apt-get update -y
        echo "Installing wget..."
        apt-get install wget -y
      fi
      echo "Copying file(s)..."    
      wget http://hostname/ucd-extlib/mysql-jdbc.jar
      mv mysql-jdbc.jar ${UCD_HOME}/ext_lib/
      echo "Done copying."
    else
      echo "File ${UCD_HOME}/ext_lib/mysql-jdbc.jar already exists."
    fi

To create your own ConfigMap, make a copy using the copy icon provided, place the content in a file called userscript.yaml and run the following command:

kubectl apply -f user-script.yaml

|

This task installs the containerized version of the HCL Launch server in an HCL Cloud Kubernetes Service (IKS) cluster. After the server is installed, you can manage it with the ICP Management console.

  1. Complete the steps in Before you begin.

  2. Perform the following actions to use the UrbanCode Deploy image.

    1. Download the archive from Passport Advantage.

    2. From the downloaded UrbanCode Deploy image archive, eExtract the archive with tar -xzf [archive].

    3. In the images folder, load the image archive to Docker with docker image load -i [image archive].

    4. Tag and push the image to the Docker registry of your choice.

  3. Perform the following actions to use the UrbanCode Deploy Helm chart.

    1. Extract the archive with tar -xzf [archive].

    2. In the charts folder, extract the chart archive with tar -xzf [chart archive]. The chart is found in the ibm-ucd-prod directory.

    3. Copy values.yaml file. Name the copied file myvalues.yaml. Edit myvalues.yaml to specify values for your installation. Refer to the README.md file for details.

  4. Install the Helm chart with the release name my-ucd-release and connect to the specified database.

    $ helm install --name my-ucd-release -f myvalues.yaml ibm-ucd-prod

    This command sets database parameters. Other parameters may also be required. If parameters aren't specified with the --set flag, their values will default to the values specified in the values.yaml file.

    Refer to Helm chart configuration parameters for a list of the parameters that can be set during installation.

  5. See NOTES.txt associated with this chart for verification instructions.

    Use the following command to uninstall and delete the my-ucd-release deployment.

    $ helm delete --purge --tls my-ucd-release

    The command removes all the Kubernetes resources associated with the chart and deletes the release.

Access your containerized instance of HCL Launch.

Parent topic: Installing the server in a Kubernetes cluster

Related information

Helm chart configuration parameters