Skip to content

ExecutableCoordinator: rename bundles_folder, accept list[str], switch coordinator config to dict-keyed shape #66940

Description

@jason810496

Background

ExecutableCoordinator currently reads its bundle directory from
[executable] bundles_folder:

# providers/sdk/executable/src/airflow/providers/sdk/executable/coordinator.py:123
bundles_folder = conf.get("executable", "bundles_folder", fallback=None)

The Java side has just hit the same problem and is tracking the same
refactor under #66836:

  1. bundles_folder is easy to confuse with Airflow's Dag bundle concept.
  2. Single string is too narrow - users need multiple bundle directories.
  3. Top-level coordinators config should be a dict keyed by coordinator
    name to enable lazy init and clean per-coordinator kwargs.

#66451 already landed the dict-keyed shape for JavaCoordinator; this
issue ports the same shape onto ExecutableCoordinator.

What needs to happen

  1. Rename [executable] bundles_folder to a clearer key (e.g.
    executables_root or bundles_root). Bake the rename into
    providers/sdk/executable/provider.yaml and the docs.
  2. Accept list[str]: scan every directory in order.
  3. Allow per-coordinator kwargs (executable_path, env,
    working_dir) under [sdk] coordinators keyed by name, matching
    the shape Improve coordinator construction to support language runtime configs #66451 settled on for Java.

Acceptance criteria

  • New config shape is the documented form; old bundles_folder is
    removed (or aliased with a deprecation warning if a release has
    already been cut).
  • Multiple bundle directories scan correctly.
  • E2E tests cover the new shape.

Context


Drafted-by: Claude Code (Opus 4.7) (no human review before posting)

Metadata

Metadata

Assignees

Labels

area:providersgo-sdkLabel to track work items for golang task sdkkind:featureFeature Requestspriority:highHigh priority bug that should be patched quickly but does not require immediate new release

Type

No type

Projects

Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions