Control-M for Kubernetes Overview

Control-M for Kubernetes enables you to

  • Run one or more pods to completion in a Kubernetes cluster. This enables you to integrate Control-M capabilities, such as advanced scheduling criteria, status monitoring, and SLA management.

  • Use the containerized Agents that run in Kubernetes to run additional jobs that consume remote services from outside of the Kubernetes cluster. This enables you to run the Agents on an optimized and highly scalable platform while executing a variety of workloads in a secure and fully automated manner.

The Control-M SaaS for Kubernetes solution contains the following components:

  • A Control-M/Agent image that resides in the Docker Hub. You can deploy it directly from Docker Hub or copy it into your internal container registry. Several Agent images are provided, with combinations of the following main components:

    • Control-M/Agent, including Control-M Application Integrator and Control-M Automation CLI.

    • The back-end part of the Kubernetes plug-in, which is powered by Control-M Application Integrator.

    • Java 21 (OpenJDK), provided in the default BMC-provided container image.

      If you want to incorporate your own Java, BMC provides you with a different container image without Java.

  • A Helm chart that is used to deploy the Agent image within the Kubernetes cluster in a specific namespace. The Helm chart is provided through an official BMC repository. You can use it remotely or download it to your environment and use it locally.

  • The front-end part of the Kubernetes plug-in in Control-M SaaS. The plug-in enables you to create and monitor Kubernetes jobs and connection profiles through Control-M SaaS. Connection profiles for this plug-in are centralized, that is, stored in the Control-M database and available to multiple Agents.

Kubernetes Solution Architecture

The following diagram demonstrates how the components of Control-M for Kubernetes are incorporated into a Kubernetes cluster and how they enable you to run one or more pods to completion.

In this example, two Agents are deployed as cluster pods.

Kubernetes Solution Architecture

This setup has the following main features:

  • The Agent pods run as a StatefulSet, so that the hostname is identified consistently across pod restarts. This enables Control-M/Server to identify the Agent continuously and consistently.

  • Agent pods use a persistent volume, so that job data and the Agent state are kept during pod restarts.

  • The Agents belong to a host group (automatically created), to ensure high availability and load balancing between the Agents.

  • The Kubernetes plug-in adds a Kubernetes-type job to Control-M SaaS, which enables you to run one or more pods to completion in your Application namespace.

    The plug-in is responsible for the following stages in the execution of the Kubernetes-type job in Control-M SaaS:

    1. Starts a Kubernetes job entity that runs one or more Application pods in the Application namespace in the Kubernetes cluster.

    2. From Control-M SaaS, monitors the status of the job in Kubernetes until it ends when the Application pods finish running.

    3. Captures the pod logs for display in the Control-M job output.

    4. Deletes the Kubernetes job entity to free cluster resources.

  • You can include additional plug-ins within the Agent pods, so that the containerized Agents can run additional job types and execute a variety of workloads that consume remote services from outside of the Kubernetes cluster (for example, on the cloud). Supported plug-ins are plug-ins that you create through Control-M Application Integrator and BMC-provided Control-M Integrations. Deployment of these plug-ins into the Agents is dynamic, based on ConfigMaps that list the plug-in IDs, as well as required certificates and proxy settings.

For an example of an end-to-end setup, see Application Team Implementation. For an example of an upgrade, see End-to-End Upgrade.

Control-M for Kubernetes Component Versions

The following table lists the current versions of the various components in Control-M for Kubernetes:

Component

Current Version

Helm Chart

9.21.310

Agent Image

9.21.310

Control-M/Agent

9.0.21.300

Control-M Application Integrator

9.0.21.308 (Patch 8)

Kubernetes Plug-in

2.1.00

Java

21

For more information about how to obtain and deploy the various components, see Setting Up Control-M for Kubernetes.