Deploying Agents Using a Helm Chart

This procedure describes how to deploy Agents in a Kubernetes cluster by adding the BMC-provided Helm chart repository for the Agent to your Kubernetes environment and then installing the provided Helm chart.

If you require SSL/TLS communication with the deployed Agent, ensure that you perform this task on a computer that supports the required setup. For more information, see Setting Up SSL/TLS Communication with an Agent.

Begin

  1. Add a repository named controlm to contain the Helm charts of the Agent that is obtained from the Control-M Repository by running the following command:

    helm repo add controlm https://controlm-charts.s3.us-west-2.amazonaws.com/

    If you do not have Internet access from the machine where you plan to run the Helm installation, do the following:

    1. On a machine with Internet access, use the following URL to obtain a compressed TGZ file of the Helm chart:

      https://controlm-charts.s3.us-west-2.amazonaws.com/controlm-agent-9.22.100.tgz

    2. Copy the TGZ file to the machine where you plan to run the Helm installation.

    3. Skip to the helm install command step. In this command, specify the pathname of the controlm-agent-9.22.100.tgz file instead of controlm/controlm-agent (the path to the chart in the repository).

  2. Ensure that the controlm repository is listed as one of your repositories by running the following command:

    helm repo list

  3. List the charts within the new controlm repository by running the following command:

    helm search repo controlm

    The chart for the Agent installation is named saas-controlm-agent.

  4. Obtain Control-M/Server details, including server name, hostname, port, and IP (if the hostname is not accessible, as might be in a cloud) from your Control-M Administrator.

    The Control-M Administrator can use the ctm config servers::get API command to obtain the server name and hostname.

    From the returned results, the "name" and "host" values correspond to the server.name and server.host parameters, respectively, in the next step.

  5. Run the helm install command with the parameter values that you want to set, as described in Helm-Installation-Parameters.

    Copy
    helm install <releaseName> controlm/controlm-agent --version 9.22.100 \
    --set server.name=LocalControlM --set server.host=controlm --set server.port=7005 --set server.ip=10.20.30.40 \
    --set api.endpoint=https://controlm:8443/automation-api \
    --set api.token=<apiToken> \
    --set pvc.storageClass=efs-sc

    Where:

    • <releaseName> is a name for this installation instance.

      The name can contain up to 53 characters. Supported characters are lowercase letters, numeric characters, and the hyphen and period characters. Ensure that the first and last characters are alphanumeric.

    • --version switch ensures that you use the proper version of the Helm chart from the Control-M Repository.

    • --set switch is used with string-type parameters. For array-type or object-type parameters, use the --set-json switch.

    • If you want to use a non-default image, include the image.tag parameter. For example:

      • For an MFT base image, set this parameter to 9.22.100-k8s-mft-openjdk.

      • For other types of custom images, see Docker Container Image.

    For more examples for various use cases, see Agent-Deployment-Scenarios.

Before deployment starts, requirements are verified, including whether the Agent image version matches the Helm chart version and whether the Control-M Automation API version is equal to or above the minimum required. If you receive an error, see Troubleshooting and Messages.

Deployment might take several minutes. To monitor the status of the rollout, run the following command:

kubectl rollout status statefulset/<releaseName>-sts