Coder v1.22 has been released!
Coder v1.22 brings speed optimizations to the developer experience, including faster Container-based Virtual Machines (CVMs) and direct point-to-point connections between the developer and the workspace when working from the Coder CLI.
Container-based virtual machines (CVMs) are a popular way to launch Coder workspaces. Using CVMs, you can run more of your familiar development tools, including Docker, Podman, systemd, and more, inside your workspace container. By default, CVMs maintain a separate cache in each persistent volume, rather than sharing the cache across users and workspaces.
In this release, we have introduced cached CVMs as an alpha feature, which unpacks images' root filesystems using a sidecar container that runs alongside envbox. This improves workspace startup performance, reduces disk utilization through sharing, and uses node pull credentials, if available.
P2P Workspace Connections
Point-to-point (P2P) connectivity between you and your workspace is now available when using the Coder CLI and SSH. This functionality reduces latency and improves connection reliability, as it avoids the need to proxy the traffic through a TURN server.
For teams with developers all over the globe, this enables the lowest latency from any developer to any workspace. We've observed the latency from our workstation to workspace decrease from up to 10ms since enabling P2P workspace connections. P2P workspace connections can be enabled in the admin console.
Read more about this in our blog post: Rearchitecting Coder’s networking with WebRTC
As part of this release we have also introduced various improvements, enhancements, and bug fixes. These include:
- A Helm check will prevent users from being able to install Coder to an unsupported version of Kubernetes by requiring a minimum version for install.
- Base CPU and memory requirements are now part of the "Create Workspace" UI when based on Packaged images.
- Backend improvements for behavior around user deletion.
- Username validation now clarifies what input is not acceptable and why.