Proposal: Freeze v1 Interfaces and Adopt Nested Multi-Runner Configuration #5316
edersonbrilhante
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
The multi-runner module currently exposes many flat variables that are tightly coupled to the EC2 provider. The current
multi_runner_configshape is also closely coupled to the EC2 implementation.As the project adds new compute providers, scale-set orchestration, and alternatives to SSM such as DynamoDB, continuing to add provider-specific flat variables will make the module increasingly difficult to maintain and extend.
The recent work in #5251, #5260, #5299, and #5295 appears to be moving toward provider-neutral boundaries for compute, orchestration, and storage.
Would it make sense to move toward one nested multi-runner configuration model and eventually deprecate both the single-runner configuration and the current flat
multi_runner_configvariables?I would also suggest freezing both v1 configuration models now. We should stop adding support for new features to the single-runner configuration and the flat
multi_runner_configv1, except for critical bug and security fixes. New capabilities should be implemented only in the nested configuration model.A possible migration path could be:
multi_runner_configvariables.The nested model could organize configuration by responsibility and avoid adding more variables such as
prefix_somethingfor every new feature. Shared settings could be defined once underglobal, while each entry inmulti_runner_configwould represent an independent runner configuration.For example:
globalwould contain shared defaults, while eachmulti_runner_configmap entry would be a runner configuration. Lane-specific values could override the global defaults. The exact naming and nesting could be refined with maintainer and user feedback.Compute, orchestration, and storage providers could then be selected independently per runner lane. Storage may also be better modeled by capability—such as bootstrap, cache, configuration, and metadata—rather than exposing only backend-specific settings. This would allow SSM, DynamoDB, or other implementations to be introduced without coupling the whole configuration model to one backend.
Questions for maintainers and users
multi_runner_configv1 also be frozen and become a compatibility layer rather than the long-term API?multi_runner_configmap entry represent an independent runner configuration?All reactions