Skip to content

Fix subsets inheriting service chaining requirement from whole app #3136

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

itowlson
Copy link
Collaborator

Fixes #2915 and #3088

This explores the approach of putting host requirements on components instead of on the app, meaning that app splitting and multi-trigger Just Work without any shenanigans.

The approach is much nicer than the previous attempt in #3093, but needs a bit more testing. The error behavious for existing trigger binaries is not lovely but that may not be possible to control since those binaries are already out there (and fixes itself when the triggers are rebuilt against these versions of the Spin crates).

@itowlson itowlson force-pushed the host-reqs-on-components-waah-waah-waah branch from 54361c4 to 5658cca Compare May 20, 2025 00:03
@itowlson itowlson marked this pull request as ready for review May 20, 2025 00:04
@itowlson itowlson requested review from lann and kate-goldenring May 20, 2025 00:04
@itowlson
Copy link
Collaborator Author

This adds a must-understand entry to the lockfile. Thinking about what this will affect:

CNCF projects:

  • SpinKube: will likely need to update to work with OCIs pushed by versions that incorporate this
  • Trigger plugins: (cron, sqs, mqtt, command): should update to work with revved Spin CLI, but the situations in which un-updated triggers fail will be ones in which they fail today (albeit they may now fail with worse error messages), so I don't think this risks a huge regression - and once updated they will work in situations where un-updated ones fail

Vendor projects:

  • Fermyon (Cloud, FWF): services may take this update when suitable, but client plugins must not update until the services understand the new must-understand

I don't think this needs a lockfile version bump - the existing must-understand framework handles it, although the error messaging could do with improvement. Open to being persuaded otherwise of course though!

As well as the new integration test, I tested by rebuilding the cron trigger against the new Spin crates, and it appeared to run correctly in apps that included service-chained HTTP. Not sure about the practicalities of adding that to the integration tests though.

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.

Local Service Chaining blocks spin start Feature check is not properly done at trigger level
1 participant