Skip to content

Routing Runs to Dedicated Executors

By default, any online executor can pick up any run. If you have a resource-heavy workflow — one that needs more memory, a GPU, or specific hardware — or want to reserve a machine for one team's schedules, use tags to route runs to the executor that should handle them.

Say you've stood up one bigger executor for a memory-hungry KNIME workflow, while everything else keeps running on your existing shared executors.

Tag the dedicated executor

Set the tag either when the executor first registers, or afterwards on its detail page:

  • At registration — set INITIAL_TAGS in docker-compose.yml before starting the container, for example INITIAL_TAGS: large. This only applies the first time the executor registers.
  • After registration — open Executors, click the executor, and add large to its Tags field. Requires Admin.

Tag the environment or schedule

Add large as an Executor Tag on the environment (if every schedule using it should route to the dedicated executor) or on the schedule (if only that one schedule should). Environment and schedule tags are merged together, so you can tag broadly on the environment and add more specific tags per schedule.

Understand what tagging does — and doesn't — guarantee

Tagging the executor large does not reserve it exclusively for large-tagged runs. Runner's matching rule is: a tagged executor picks up any run sharing one of its tags, plus any run with no tags at all. So your new large executor will still pick up ordinary, untagged runs from anywhere else in the project whenever it's idle — it isn't dedicated yet, just additionally eligible.

To actually reserve it, make sure nothing else is tagless: tag your regular schedules and environments with something like standard, and keep the dedicated executor tagged only large (not standard). Since standard-tagged runs no longer share a tag with the large executor and are no longer tagless, they won't be dispatched there — leaving it free for the workflow that actually needs it. Your existing shared executors, tagged standard, keep handling everything else.

Verify

Open Executors to confirm the dedicated executor shows the large tag and is online. Trigger the heavy schedule with Run Now and check the run's Executor card to confirm it landed on the right one. If it stays pending, double-check that the tags on the executor and the schedule (or its environment) actually overlap — see How runs are dispatched for the full matching rules.

Was this page helpful?