containerd / containerd/runwasi

Windows support

Open
#49 7 comments 6 reactions 1 assignee Claimed by @jsturtevant View on GitHub
Dominant language
Rust
Stars
1.3k
Forks
131
PR merge metrics
No merged PRs in 30d

Description

Currently we cannot use this project on Windows. This is an umbrella issue to track Windows support. There may be more items added as the work progresses.

~The project doesn't currently build:~ it builds since https://github.com/containerd/runwasi/pull/238 🎉

```
cargo build
Compiling zstd-safe v5.0.2+zstd.1.5.2
Compiling zstd-sys v2.0.4+zstd.1.5.2
Compiling ittapi-sys v0.3.2
Compiling wasmtime-runtime v2.0.2
Compiling cranelift-wasm v0.89.2
Compiling psm v0.1.21
Compiling uapi v0.2.10
Compiling uapi-proc v0.0.5
Compiling num-traits v0.2.15
Compiling ttrpc v0.6.1
Compiling ittapi v0.3.2
Compiling cap-fs-ext v0.26.1
error[E0425]: cannot find function `geteuid` in crate `libc`
--> C:\Users\jstur\.cargo\registry\src\github.com-1ecc6299db9ec823\uapi-proc-0.0.5\src\lib.rs:16:34
|
16 | root: unsafe { libc::geteuid() == 0 },
| ^^^^^^^ help: a function with a similar name exists: `getpid`

Some errors have detailed explanations: E0412, E0422, E0425, E0432, E0433.
For more information about an error, try `rustc --explain E0412`.
error: could not compile `ttrpc` due to 58 previous errors
error: failed to run custom build command for `uapi v0.2.10
```

At a minimum the following tasks need to be completed:

- [x] https://github.com/containerd/ttrpc-rust/issues/132
- [x] implementation in https://github.com/containerd/ttrpc-rust/pull/172
- [x] https://github.com/containerd/rust-extensions/issues/4
- [x] https://github.com/containerd/rust-extensions/pull/139
- [x] [Ensure can ~build~ and run test image on windows](https://github.com/containerd/runwasi/pull/41#issuecomment-1357997502)
- [x] ~https://github.com/microsoft/hcsshim/pull/1688~
- [x] https://github.com/deislabs/containerd-wasm-shims/issues/89
- [x] can be solved via: https://github.com/spinkube/spin-operator/pull/184
- [x] https://github.com/containerd/runwasi/issues/108
- [x] proposal for WASI image in containerd: https://docs.google.com/document/d/11shgC3l6gplBjWF1VJCWvN_9do51otscAm0hBDGSSAc/edit
- [x] https://github.com/containerd/runwasi/pull/147
- [x] https://github.com/containerd/containerd/pull/8699
- [ ] Support in runwasi
- [x] refactor usage of nix in runwasi
- [x] #238
- [x] turn linters on https://github.com/containerd/runwasi/pull/238#discussion_r1288760267
- [x] ~refactor the cgroup setup to run only on Windows~ our cgroup support was removed #221
- [ ] Add Windows e2e tests
- [ ] enable [this test](https://github.com/containerd/runwasi/pull/340/files#diff-3e3d094b7b6575d0efb5f9deb185c8872747adab940a3a79f138f12e3b9d931fR25) on Windows.
- [x] convert harded coded sockets to named pipes on windows for instance
- [x] Upgrade to protobuff 3.x - https://github.com/containerd/runwasi/pull/81
- [x] https://github.com/containers/oci-spec-rs/pull/127 :https://github.com/containerd/runwasi/blob/514235eb6e73a3d7b469aace0390e66c12381299/crates/containerd-shim-wasm/src/sandbox/manager.rs#L207
- [ ] (low priority) Add ability to parse and layout file system. May not be needed since, we've moved to WASM OCI images which means containerd provides a blank disk and can solve other file system deps with https://github.com/bytecodealliance/wasi-virt. Need to looking to see if scratch space is expected?
- [ ] Add shim [implementations](https://github.com/containerd/runwasi/blob/main/crates/containerd-shim-wasm/src/sys/windows/container/instance.rs)
- [ ] poc - https://github.com/jsturtevant/runwasi/commit/5ca95bb38ec0c5125946a7d91afd02a645cd1a6e
- [ ] launch shim as separate job process and load the OCI layers
- [ ] Likely require some of the work in https://github.com/jsturtevant/power-process to launch job object with Arg zero
- [x] https://github.com/containerd/rust-extensions/issues/205 - needed to load wasm modules from containerd
- [ ] Add network namespace logic
- [ ] using https://github.com/jsturtevant/hcn-rs see https://github.com/jsturtevant/runwasi/commit/5ca95bb38ec0c5125946a7d91afd02a645cd1a6e

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.