spinkube / containerd-shim-spin

A ContainerD shim for running Spin Applications.
Apache License 2.0
71 stars 13 forks source link

How to pass options to shim? #115

Open matsbror opened 6 months ago

matsbror commented 6 months ago

I need to run spin with the --disable-pooling option because my RISCV64 and Aarch64 boards only have 39 bit virtual addresses and thus cannot make the 6T mmap that Wasmtime pooling allocator makes. How can I pass that option to the shim?

vdice commented 6 months ago

I'll let @jsturtevant and/or other maintainers chime in re: generic wasmtime or spin runtime configurability but I did want to mention that there happens to be a recent PR in Spin relating to the specific use case mentioned above. See https://github.com/fermyon/spin/pull/2508. The intention there is to not require any specific config for running properly in such environments as mentioned above (i.e. it should dynamically disable pooling) . When the shim bumps to the future Spin release with the aforementioned logic included, specific wasmtime/Spin config should no longer be necessary for this scenario.

jsturtevant commented 6 months ago

We don't have a story right now for passing configuration to the shim to configure the underlying runtime. Would spin's runtime-config.toml be an appropriate place for this? Another option might be via https://github.com/WebAssembly/wasi-runtime-config?

Potentially, we could do something with https://github.com/containerd/runwasi/issues/573 but need some more design work on how to make that generic.

radu-matei commented 5 months ago

@matsbror I think this issue is addressed in https://github.com/fermyon/spin/pull/2508 specifically.

The broader context for other config options that we would pass is still relevant though.

matsbror commented 5 months ago

My issue has been resolved so the issue can be closed, but I think there could be a need to pass config options to the shim, still.

calebschoepp commented 5 months ago

I also have a need to pass config options to the shim. Specifically I want to be able to set the environment variables RUST_LOG and OTEL_EXPORTER_OTLP_ENDPOINT for the Shim.

As a SpinKube user I'd love to be able to set these values in my SpinApp CR, but I'm not sure if that is possible or the right design choice.