v0.4.0
Pre-releaseKrustlet v0.4.0 focuses on Windows support, Init Containers, and testing improvements. For more details on what isn't implemented yet, see the Known Issues section.
Because this is pre-release software, there are no backwards compatibility guarantees for the Rust API or functionality. However, we will do our best to document any breaking changes in future releases.
Caveats
Please note that this is NOT production-ready software, but it is in a usable state. The WASI standard and wasmtime are still under heavy development, and because of this there are key features (like networking) that are missing; these will appear in the future. However, there is networking support available in wasCC.
Notable Features/Changes
- Windows support has been added, including pre-built binaries. There are also build scripts written for PowerShell when building on Windows. Please consult the documentation to understand some of the caveats when running on Windows.
- We now have full Init Container support in the WASI provider. Init Containers are not supported on waSCC due to it being an entirely different runtime where Init Containers don't make much sense.
- The waSCC provider now supports automatic port allocation when
nodePortisn't specified - The e2e test suite was greatly expanded and made more flexible
ImagePullPolicyis now respected in both providers
Breaking changes
The oci-distribution crate has unexported the Client's version and auth methods as they are only meant to be used internally. The Client fetch_manifest_digest method now requires an &mut self.
Known Issues/Missing Features
- Cloud volume mounting support
- Kubernetes networking support. The waSCC provider currently exposes the service on one of the node's ports, but there is nothing that updates
Services orEndpoints - Support for all pod phases/conditions (
ContainerCreating,CrashLoopBackoff, etc.). However, please note that running and error conditions are supported, so you'll know if your pod is in an erroneous state - Unsupported workloads (such as those dropped automatically onto a node like kube-proxy) can enter an error loop. This is more of a nuisance that will cause some logging noise, but not impact the running of Krustlet
- Modifying a bare pod's image is not implemented. Nothing will error, but Krustlet will not restart the "container"
- TLS bootstrapping does not auto-renew certificates when they are close to expiry
What's next?
Our next anticipated version is 0.5.0 (although we will cut a 0.4.1 if necessary). You can see a full list of issues planned for 0.5 in the milestone. We expect 0.5.0 to contain some major breaking changes, particularly around the Provider API. However, we believe these changes will make it easier for developers to write their own providers and simplify the process for updating pod statuses. These changes will be clearly documented in the 0.5 release notes
Thanks
We also want to express a huge thanks to all of those in the community who contributed to this
release. We appreciate your efforts in making this project a success.
Contributors to 0.4
Installation
Download Krustlet 0.4.0:
Check out our installation
docs for information on how
to install Krustlet.