Skip to content

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

@jason810496

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
No fields configured for issues without a type.

Projects

Status

Ready

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions