I’ve very proud to announce the second release of xenvman!
This release contains some backward-incompatible changes to the HTTP API but it also introduces some very exciting and useful features.
Live environment reconfiguration
This is the biggest feature in the release, I think. Basically now we’re able to change the environment composition while it is running! We can:
- Stop running containers
- Resume stopped containers
- Start new containers inside an environment by executing new templates
This new feature is very helpful for testing distributed services, for example. You can simulate node departure by stopping a container and conversely a node arrival can be achieved by creating a new container on the fly.
This is all done using a new PATCH env endpoint.
This feature relates to the previous one. If we can update the
environment composition on the fly, we can no longer hardcode
hostname -> IP mappings into
We solve this by injecting a special dynamic discovery agent container
into an environment. It’s basically a simple DNS proxy
which can be configured/updated using HTTP API. And so every time
there’s a change in environment configuration,
the agent over exposed port and updates it accordingly.
The agent forwards all the requests for unknown mappings to a
DNS server of choice (default is
Old (static) discovery can still be enabled by changing disable_discovery option.
Here’s a picture, providing a visual distinction between static and dynamic discovery modes.
A new simple web UI has been integrated into
Nothing fancy, but it still allows you to:
- Inspect currently running environments
- Terminate environments
- Browse through available templates, including all available template parameters.
2.0.0 brings along quite some useful features, and
definitely simplifies my daily work, testing-wise.
There’s a chance it can be useful to other people too.
Don’t hesitate to drop me a line if you find it useful for your tasks or for whatever question/feedback you might have.