Add seqera.executor.providerConfig option#7335
Merged
Merged
Conversation
Expose a Map<String,String> 'providerConfig' option on the seqera.executor scope and wire it into CreateRunRequest.providerConfig, so backend-specific provider settings (e.g. lazyPull) are forwarded to the scheduler. The sched API and SchedClient already carry the field. Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
✅ Deploy Preview for nextflow-docs canceled.
|
ConfigValidator.isMapOption only matched raw Map.class, so a Map<String,String> option (which reflects as a ParameterizedType) was treated as a scope and its sub-keys warned as 'Unrecognized config option'. Resolve the raw type so declared map options such as seqera.executor.providerConfig and seqera.executor.taskEnvironment accept arbitrary sub-keys. Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
The compression field lacked @ConfigOption, so SpecNode dropped it and wave.build.compression.mode warned as unrecognized. Declare it as a map option. Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
bentsherman
reviewed
Jul 15, 2026
Member
|
PR looks good, aside from my one comment. That line can be deleted |
…ig.groovy [ci fast] Co-authored-by: Ben Sherman <bentshermann@gmail.com> Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
bentsherman
approved these changes
Jul 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a
seqera.executor.providerConfigconfiguration option that forwards backend-specific provider settings to the Seqera scheduler when creating a run, and fixes two config-validation gaps that otherwise flag valid sub-keys as unrecognized.CreateRunRequest.providerConfigalready exists in the sched API andSchedClient.createRun()already forwards it — but the Seqera executor never populated it and there was no config surface for it.Changes
providerConfig option
ExecutorOpts: newMap<String,String> providerConfigconfig option (parsed like the existingtaskEnvironment).SeqeraExecutor.createRun(): sets.providerConfig(seqeraConfig.providerConfig)on theCreateRunRequest.seqera.executor.providerConfigin the config reference.Config validation fixes (both surfaced while testing the option above)
ConfigValidator: recognize parameterizedMap<K,V>options.isMapOptiononly matched rawMap.class, so aMap<String,String>option (which reflects as aParameterizedType) was treated as a scope and its sub-keys warned as Unrecognized config option — e.g.seqera.executor.providerConfig.lazyPulland the pre-existingseqera.executor.taskEnvironment.*. Now the raw type is resolved.WaveConfig: declarewave.build.compressionas a map option sowave.build.compression.mode(andlevel/force) are recognized (the field previously had no@ConfigOption, soSpecNodedropped it).Usage
For example,
lazyPullenables experimental lazy eStargz container pulling on theaws-vmbackend (see seqeralabs/sched#669), which pairs with Wave-built eStargz images.Tests
ExecutorOptsTest(populated + nullproviderConfig),SeqeraExecutorTest(createRunforwardsproviderConfig).ConfigValidatorTest(isMapTyperecognizes raw + parameterized map types).🤖 Generated with Claude Code