Skip to main content
The allows you to run Python and Bash scripts in your pipelines via the Script Pushdown component. The is a lightweight script interpreter that can be installed in parallel with your in a Hybrid SaaS deployment. You can choose to install the as part of any deployment. For details of deployment, read overview and the relevant installation documents for your infrastructure. Script Pushdown is a component that allows you to include Bash and Python scripts in a orchestration pipeline. Your script is stored within the pipeline, and at runtime the script is pushed to the via SSH to execute the script in your cloud infrastructure. The includes both Python 3 and Bash interpreters; therefore you only need a single to execute all your scripts in a project. A maximum of one can be installed with each instance. To scale up to use additional s, you must deploy additional instances. Read Scaling best practices for guidance.

Deploying a shared script runner

A can be added to each you install in your cloud infrastructure. You should follow the documentation to create a , but additionally set the following optional parameters. The specific method to set these will depend on your platform and deployment method, but the parameters remain the same in every case. This process assumes you’re deploying a new . To add a to an existing instance, read Adding the to an existing Maia runner.
  • Enable Script Runner: Set to true to deploy the service. No resources are created when set to false. If this parameter is set to false (the default), then the following three parameter settings are irrelevant and ignored.
  • Script Runner Size: The size determines CPU and memory available for running scripts. This is independent of the size, and should be sized purely based on the volume and complexity of scripts you will push to this runner. Select from small (the default), medium, large, and xlarge, based on the following:
    You must ensure that your is correctly sized to run the expected load imposed by your scripts. performs no checks on script performance or resource requirements.
  • Script Runner Container Image URL: The container image for the . Use an image that corresponds to your platform requirements:
  • Runner Authorized SSH Keys: Enter the SSH public keys that the will trust. For example, use the following command to create an SSH key pair:

Adding the shared script runner to an existing Maia runner

Your existing instances can be updated to include the , without redeploying the underlying infrastructure. This requires a minimum version of 11.445.2. Runner versions before 11.445.2 should be updated to a newer version before adding the . The process for adding the depends on the deployment orchestrator (Kubernetes or otherwise).

Kubernetes deployments (EKS, AKS, GKE)

The default way to configure the is to add a scriptRunner: block to your Helm values file. You can add this block to your existing my-values.yaml file, or use a separate YAML file dedicated to configuration. Set the following values:
  • enabled: true.
  • Image repo (image.repository).
  • SSH keypair (authorizedKeys and privateKey). The chart does not auto-generate these. For keys that span multiple lines, use the YAML | block scalar syntax:
  • Cloud-specific service account (serviceAccount.roleArn for AWS, clientId for Azure, and serviceAccountEmail for Google Cloud).
You can find a full example of the scriptRunner block, including the image repository, tag, resource sizing, and cloud-specific fields, in the runner Helm chart’s values.yaml file. Then apply the values file:
Alternatively, you can set these values directly on the command line with helm upgrade --set and --set-file, without editing a values file. The Helm chart handles everything else: deploys the new pod, creates the service account, and enables networking. The existing pod gets a rolling restart to inject MTLN_SCRIPT_RUNNER_HOST.
The scriptRunner block was added to the Helm chart on May 29, 2026. If you’re on an older chart version, you may need to update your chart before the scriptRunner block is available.

Non-Kubernetes deployments (ECS, Azure Container Apps)

Add enable_script_runner = true to the existing terraform.tfvars and run terraform apply. All new resources are created automatically. In ECS, enabling Service Connect triggers a rolling replacement of existing runner tasks. In Azure Container Apps, the deployment name must be no more than 11 characters, or the plan will fail.

Managing a shared script runner

You can stop and restart the service from within the cloud platform. Read your appropriate platform documentation for instructions on stopping and starting services. Matillion may issue updates from time to time. To update to a newer version, restart the service. This automatically pulls the new maia-script-runner:latest image from the appropriate image repository.

Importing libraries

The includes the Python Standard Library for Python version 3.12.x. No other libraries are included by default, but you can import any other Python 3-compatible library. You’ll need to install the required libraries in your cloud storage (Amazon S3 bucket, Azure Blob Storage container, or GCS bucket) and specify that location in the environment variable EXTENSION_LIBRARY_LOCATION. For more information, read Installing Python libraries. To use these additional Python libraries, you’ll need to include appropriate imports in your Python script, following standard Python practice.

Default user

The default user for the is mtln.