Skip to Content
This documentation is provided with the HEAT environment and is relevant for this HEAT instance only.

Runners

Runners are containerized services within HEAT that execute node processing for one or more Node Templates. They provide the underlying runtime logic required to handle your data workflows - whether they’re simple transformations or specialized machine-learning tasks.

You can specify your own runners with your own dependencies and code to run securely inside the HEAT infrastructure, leveraging our HEAT Runtime to support claiming tasks, accessing data sources and otherwise interfacing with HEAT.

How Runners Work

  1. Task Invocation
    When a node in a Session becomes ready to process data (i.e., its dependencies are satisfied), the HEAT scheduler looks up the Runner associated with that node’s Node Template.

  2. Container Provisioning
    If the Runner isn’t already active - or if more capacity is needed - HEAT spins up a container within Kubernetes based on the container image configured for that Runner.

  3. Unit of Work
    The Runner uses the runtime to retrieve a suitable a task describing the data inputs, node configuration, and any additional parameters. It should then perform the required work (e.g., data enrichment, analytics, or format conversion) and use the runtime to post the result back to the HEAT platform.

  4. Resource Management
    Different Runners can have unique CPU and memory limits, allowing HEAT to scale up or down according to demand. Once the processing is finished and no more compatible tasks remain for a period, the Runner may gracefully shut down to free resources.

Defining Runners

You can create and configure Runners using the HEAT API, specifying:

  • Name & Description
    A human-readable label and summary.
  • Container Image
    The Docker (or OCI-compliant) image to deploy, e.g., heatglobal.azurecr.io/heat-runner-legacy:latest.
  • CPU & Memory Limits
    Kubernetes resource constraints (e.g., "cpuLimit": "1", "memoryLimit": "1Gi").
  • Feature or Internal Name
    Identifies the broader feature set or specialized capability provided by the Runner (e.g., “heat-core” is used for our internal tooling and runners).
  • Enabled/Disabled
    Whether the Runner is currently available for task scheduling.

Here’s an example JSON snippet representing a legacy Runner configured for backward compatibility:

{ "id": 2, "name": "legacy-runner", "containerImage": "heatglobal.azurecr.io/heat-runner-legacy:latest", "cpuLimit": "1", "memoryLimit": "1Gi", "description": "Legacy runner for V1 based support. Use only for backward compatibility.", "enabled": true, "featureInternalName": "heat-core" }