Skip to content

Add seqera.executor.providerConfig option#7335

Merged
pditommaso merged 5 commits into
masterfrom
seqera-provider-config
Jul 15, 2026
Merged

Add seqera.executor.providerConfig option#7335
pditommaso merged 5 commits into
masterfrom
seqera-provider-config

Conversation

@pditommaso

@pditommaso pditommaso commented Jul 14, 2026

Copy link
Copy Markdown
Member

Summary

Adds a seqera.executor.providerConfig configuration 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.providerConfig already exists in the sched API and SchedClient.createRun() already forwards it — but the Seqera executor never populated it and there was no config surface for it.

Changes

providerConfig option

  • ExecutorOpts: new Map<String,String> providerConfig config option (parsed like the existing taskEnvironment).
  • SeqeraExecutor.createRun(): sets .providerConfig(seqeraConfig.providerConfig) on the CreateRunRequest.
  • Docs: document seqera.executor.providerConfig in the config reference.

Config validation fixes (both surfaced while testing the option above)

  • ConfigValidator: recognize parameterized Map<K,V> options. 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 — e.g. seqera.executor.providerConfig.lazyPull and the pre-existing seqera.executor.taskEnvironment.*. Now the raw type is resolved.
  • WaveConfig: declare wave.build.compression as a map option so wave.build.compression.mode (and level/force) are recognized (the field previously had no @ConfigOption, so SpecNode dropped it).

Usage

// nextflow.config
seqera.executor.providerConfig = [ lazyPull: 'true' ]

wave.build.compression.mode = 'estargz'

For example, lazyPull enables experimental lazy eStargz container pulling on the aws-vm backend (see seqeralabs/sched#669), which pairs with Wave-built eStargz images.

Tests

  • ExecutorOptsTest (populated + null providerConfig), SeqeraExecutorTest (createRun forwards providerConfig).
  • ConfigValidatorTest (isMapType recognizes raw + parameterized map types).

🤖 Generated with Claude Code

pditommaso and others added 2 commits July 14, 2026 23:44
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>
@pditommaso pditommaso requested a review from a team as a code owner July 14, 2026 22:15
@netlify

netlify Bot commented Jul 14, 2026

Copy link
Copy Markdown

Deploy Preview for nextflow-docs canceled.

Name Link
🔨 Latest commit 28352b0
🔍 Latest deploy log https://app.netlify.com/projects/nextflow-docs/deploys/6a57a4098a403b0008649374

pditommaso and others added 2 commits July 15, 2026 08:54
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>
@pditommaso pditommaso requested a review from bentsherman July 15, 2026 13:50
Comment thread plugins/nf-wave/src/main/io/seqera/wave/plugin/config/WaveConfig.groovy Outdated
@bentsherman

Copy link
Copy Markdown
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>
@pditommaso pditommaso merged commit 5b8ce02 into master Jul 15, 2026
15 checks passed
@pditommaso pditommaso deleted the seqera-provider-config branch July 15, 2026 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants