Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

docs: fix configuration reference discrepancies#976

Open
robsyme wants to merge 12 commits intomaster from
fix-wave-docs-config-discrepancies
Open

docs: fix configuration reference discrepancies #976
robsyme wants to merge 12 commits intomaster from
fix-wave-docs-config-discrepancies

Conversation

@robsyme
Copy link
Member

@robsyme robsyme commented Feb 6, 2026
edited
Loading

Summary

Systematic audit of Wave documentation against source code, triggered by customer crash when enabling blob cache without static credentials. Fixes 10 categories of discrepancies across 5 doc files.

Crash-inducing fixes

  • Remove blobCache.enabled: false from K8s install example — causes crash loop due to Micronaut eager-loading (install/kubernetes.md)
  • Mark blobCache.storage.accessKey/secretKey as required — code unconditionally passes to AwsBasicCredentials.create(), NPE if null (configuration.md)
  • Fix build.cache from nested object to flat stringBuildConfig.groovy binds as @Value('${wave.build.cache}') String, not a map (configure-wave.md)

Silent misconfiguration fixes

  • Fix blobCache.requestsCpu/Memory property paths — docs said flat blobCache.requestsCpu, code uses blobCache.k8s.resources.requests.cpu; also adds undocumented limits properties
  • Fix urlSignatureDuration path — docs nested under cloudflare, code binds at blobCache.url-signature-duration
  • Fix wave.build.cleanup — property renamed to wave.cleanup.strategy in Sep 2024

Default value corrections

  • blobCache: status.delay 5s→2s, status.duration 5d→1h, timeout 5m→10m
  • scan.enabled: true→false
  • Container images: updated to Seqera-hosted images (public.cr.seqera.io/wave/...)
  • Rate limits: all 4 defaults wrong (e.g. build.anonymous 25/1d→10/1h)
  • httpclient retry.multiplier: 1.0→1.75

Phantom property removal

  • wave.build.logs.bucket — removed from code in May 2025; updated across configuration.md, db-migration.md, migrations/1-21-0.md
  • wave.build.logs.prefix — auto-computed, never configurable
  • wave.build.singularity-image-arm64 — removed from codebase

Other

  • Document node-selector value format (key=value)

All discrepancies verified on both master and v1.32.2.

Files changed

  • docs/configuration.md — bulk of fixes
  • docs/configure-wave.md — build cache YAML structure
  • docs/install/kubernetes.md — remove crash-inducing example
  • docs/db-migration.md — remove phantom logs.bucket reference
  • docs/migrations/1-21-0.md — remove phantom logs.bucket reference

Test plan

  • Verify docs render correctly in Docusaurus
  • Spot-check 3-4 property names against source code
  • Confirm blobCache stanza is absent from K8s install ConfigMap example

🤖 Generated with Claude Code

@robsyme robsyme marked this pull request as ready for review February 6, 2026 22:05
Copy link
Collaborator

@pditommaso pditommaso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well done!

Copy link
Member

@pditommaso I cannot merge this PR, it contains unverified commits

Copy link
Member Author

robsyme commented Feb 12, 2026

Ah, I hadn't realized that wave requires signing. I'll rebase with signed commits.

robsyme added 12 commits February 12, 2026 16:11
... example
The blobCache stanza with enabled: false causes a crash loop due to
Micronaut eager-loading related beans. The stanza must be omitted
entirely when blob cache is not desired.
Ref: FD-7221
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
Source: application.yml overrides the @value annotation default of 2.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
...64, update image defaults
- wave.build.cleanup -> wave.cleanup.strategy (CleanupConfig.groovy:40)
- wave.build.singularity-image-arm64 removed (no longer exists in source)
- buildkit image: moby/buildkit -> public.cr.seqera.io/wave/buildkit
- singularity image: quay.io v3.11.4 -> public.cr.seqera.io/wave v4.2.1-r4
Source: application.yml, CleanupConfig.groovy
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
wave.build.logs.bucket does not exist in source code. wave.build.logs.prefix
is auto-computed from wave.build.logs.path. Updated all references to
clarify that logs.path and locks.path take full paths (S3 URIs or local).
Source: BuildConfig.groovy lines 138, 146, 206
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
Source: K8sHelper.groovy line 96
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
scan.enabled defaults to false per ScanEnabled.groovy.
Scanner image is wave/scanner, not aquasec/trivy.
Source: ScanEnabled.groovy:34, application.yml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
build.anonymous: 25/1d -> 10/1h, build.authenticated: 100/1h -> 10/1m,
pull.anonymous: 250/1h -> 100/1h, pull.authenticated: 2000/1m -> 100/1m
Source: RateLimiterConfig.groovy lines 44-59
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
Property is bound as wave.blobCache.url-signature-duration, not nested
under wave.blobCache.cloudflare.
Source: BlobCacheConfig.groovy line 102
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
Property paths were flat (blobCache.requestsCpu) but the actual bindings
are nested (blobCache.k8s.resources.requests.cpu). Also adds the
undocumented limits.cpu and limits.memory properties.
Source: BlobCacheConfig.groovy lines 86-99
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
status.delay: 5s -> 2s, status.duration: 5d -> 1h, timeout: 5m -> 10m
Source: BlobCacheConfig.groovy lines 43, 54, 57
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
These credentials are unconditionally passed to AwsBasicCredentials.create()
in S3ClientFactory, causing NPE if null. IAM-based auth is not yet
supported for blob cache.
Ref: FD-7221
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
wave.build.cache is bound as a simple String in BuildConfig.groovy,
not a nested object with enabled/repository sub-properties.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rob Syme <rob.syme@gmail.com>
@robsyme robsyme force-pushed the fix-wave-docs-config-discrepancies branch from 0394f50 to 71939fd Compare February 12, 2026 21:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@pditommaso pditommaso pditommaso left review comments

@justinegeffen justinegeffen justinegeffen approved these changes

@munishchouhan munishchouhan munishchouhan approved these changes

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Comments

AltStyle によって変換されたページ (->オリジナル) /