Container Orchestration Jobs

The following topics describe job attributes for jobs that perform container orchestration:

AWS ECS Job

AWS Elastic Container Service (ECS) is a container management service that enables you to execute, stop, manage, and monitor containerized applications in a cluster.

To create an AWS ECS job, see Creating a Job. For more information about this plug-in, see Control-M for AWS ECS.

The following table describes the AWS ECS job attributes.

Attribute

Description

Connection Profile

Determines the authorization credentials that are used to connect Control-M to AWS ECS, as described in AWS ECS Connection Profile Parameters.

Rules:

  • Characters: 1−30

  • Case sensitive: Yes

  • Invalid characters: Blank spaces.

Action

Determines one of the following actions to perform on AWS ECS:

  • Preset JSON: Executes the task according to the attributes that you define in this job.

  • Manual JSON: Executes the task according to the JSON parameters that you supply in the Parameters attribute.

Parameters

Defines the parameters, in JSON format, that enable you to control how the AWS ECS task executes.

For a description of this JSON syntax, see RunTask in the AWS ECS API Reference.

Copy
"Parameters"
{
   "cluster": "ECSIntegrationCluster",
   "launchType": "FARGATE",
   "networkConfiguration":
   {
      "awsvpcConfiguration":
      {
         "assignPublicIp": "ENABLED",
         "securityGroups": ["sg-01e4a5bfac4189d10"],
         "subnets": ["subnet-045ddaf41d4852fd7"]
      }
   },
   "overrides":
   {
      "containerOverrides": [
      {
         "command":["/bin/sh -c 'whoami'"],
         "environment": [
            {
               "name":"var1",
               "value":"hello"
            } ],
         "name":"IntegrationURI"
      } ]
   },
   "taskDefinition":"ECSIntegrationTask"
}

ECS Cluster Name

Defines the ECS cluster on the AWS ECS platform where the job executes.

An ECS cluster is a logical group of tasks and services.

ECS Task Definition

Defines the task definition on the AWS ECS platform.

The task definition describes the container image, command, environment variables, and other parameters that execute your application.

Launch Type

Determines the type infrastructure where your tasks and services execute:

  • Fargate: Executes your application on a virtual machine that is automatically provisioned and managed.

  • EC2: Executes your application on a predefined AWS EC2 virtual machine that you provision and manage.

  • External: Executes your application on a different virtual machine that you define in the AWS ECS platform.

Assign Public IP

Determines whether the job has a public internet protocol (IP).

  • Yes

  • No

Network Security Groups

Defines which network security group your task is connected to, through the elastic network interface, which is a virtual network card that controls inbound and outbound traffic.

Network Subnets

Defines the virtual subnet, which determines the IP addresses for the task.

Override Container

Defines which override container to use that overrides the default container image, command, or other settings specified in the task definition.

Override Command

Defines the command to execute in the container that overrides any command specified in the task definition.

Environment Variables

Defines the environment variables for the container, which are used to manage the container and pass information to the application that executes inside it.

Logs

Determines whether the logs from the AWS ECS platform appear at the end of the Control-M job output.

  • Get Logs

  • Don't Get Logs

Status Polling Frequency

Determines the number of seconds to wait before checking the status of the job.

Default: 10

Failure Tolerance

Determines the number of times to check the job status before ending Not OK.

Default: 5

GCP Cloud Run Job

GCP Cloud Run is a container management service that enables you to execute, stop, manage, and monitor containerized applications in a cluster.

To create a GCP Cloud Run job, see Creating a Job. For more information about this plug-in, see Control-M for GCP Cloud Run.

The following table describes the GCP Cloud Run job attributes.

Parameter

Description

Connection Profile

Determines the authorization credentials that are used to connect Control-M to GCP Cloud Run, as described in Container Orchestration Connection Profiles.

Rules:

Characters: 1−30

Case sensitive: Yes

Invalid characters: Blank spaces.

Project ID

Defines the ID of the predefined Google Cloud project that holds your configured APIs, authentication information, billing details, and job resources.

Location

Determines the region where the GCP Cloud Run job executes.

us-central1:

Job Name

Defines the unique job name set in GCP Cloud Run.

Overrides Specification

Defines the parameters, in JSON format, to override when the job executes, as shown in the following example:

Copy
{
  "containerOverrides": [
    {
      object (ContainerOverride)
    }
  ],
  "taskCount": integer,
  "timeout": string
}

Status Polling Frequency

Determines the number of seconds to wait before checking the job status.

Default: 5

Kubernetes Job

The Kubernetes job enables you to run a pod to completion in a Kubernetes-based cluster.

To deploy and run a Kubernetes job, ensure that you have set up Helix Control-M for Kubernetes, as described in Setting Up Control-M for Kubernetes.

For more information about this plug-in, see Helix Control-M for Kubernetes.

Parameter

Description

ConnectionProfile

Determines the authorization credentials that are used to connect Control-M to Kubernetes, as described in Kubernetes Connection Profile Parameters.

Job Spec YAML

Defines the settings of the job in Kubernetes.

Upload the YAML file that contains the job settings.

Copy
apiVersion: batch/v1
kind: Job
metadata:
  name: {{job_yaml_file_params:jobname}}
spec:
  template:
    spec:
      nodeSelector:
        kubernetes.io/os: linux
      containers:
      - name: busybox0
        image: busybox
        command: ["echo",  "Hello {{job_yaml_file_params:subject}}"]
      restartPolicy: Never
  backoffLimit: 4

Job Spec Parameters

Defines input parameters required by the Kubernetes job, as pairs of name and value.

{"jobname":"ctmjob-%%ORDERID","iterations":"10","delay":"20"}

Get Pod Logs

Determines whether to fetch logs of the pods of the Kubernetes job upon completion and append to the Control-M job output. The maximum output size is 10 megabytes.

  • Get Logs

  • Do Not Get

Default: Get Logs

OS Exit Code

Determines whether to include an OS return code from the Application pod in the Control-M job output. This is supported for a Kubernetes job without retries (backofflimit: 0) of a single-container pod. Introduced in Control-M for Kubernetes 9.0.21.205.

Valid values:

  • No print

  • Print code of single pod

Default: No print

Job Cleanup

Determines whether to delete Kubernetes resources that were created for the job.

  • Delete Job

  • Keep

Default: Delete Job

Job Status Polling Interval

Determines the number of seconds between status checks of the Kubernetes job.

Default: 20 seconds