All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for
network_bridge
setting @Gibheer
PrivateUser
being overwritten with wrong value @Gibheer- Ensure required services are started in Debian test image
- Ensure correct Go version is used to build tests
- Update Debian test image
- Update Go to v1.20
- Update Nomad to v1.4.4
- Fix go installation in Makefile
- Update Nomad to v1.3.1
- Use Debian bullseye image for driver tests
- Support for downloading images from a Docker Registry
- Update broken image URLs used in unit tests
- Support for
private_users
andprivate_users_ownership
flags (#26)
- Update Nomad to v1.2.0
- Improve drive API documentation @blaggacao (#25)
- Update Go to v1.17
- Support for new
memory_max
setting
- Update to Nomad v1.1.0
- Lower log level of passed arguments to systemd-nspawn to DEBUG
- Support for group level network stanza
- Ensure tests are always built on code changes
- Run "apt update" in Actions pipeline
- Adjust Nginx example to use group network stanza
- Update to Nomad v1.0.2
- Support for running containers without private networking.
- Support for running multiple containers in the same network-zone.
- GitHub Actions CI pipeline for automated builds and tests
- Ensure all test resources are cleaned up.
- Ensure all test containers are properly stopped.
- Fixed a bug which caused tasks to not be recovered on Nomad restarts (#17)
- Support for granting additional capabilities to containers. @mateuszlewko
- Support for all new options of
resolv_conf
added in Systemd 246. @mateuszlewko - Ensure images can be safely downloaded in parallel.
- Ported tests from
exec
driver to this project. They cover basic functionality like starting, stopping, killing, destroying tasks and executing commands in them. - Added Makefile for common build operations.
- Improved error message if systemd-nspawn fails to start a task.
NewNspawnDriver()
now returns a driver with the default config settings.
- Fixed a runtime panic which occurred if a task had no resources assigned.
- Support for Nomad
bridge
networking mode. This also enables the use of Consul Connect. - Output the error why systemd-nspawn fails on startup. It is added to the logs and shown in the WebUi.
- Support for
volume_mount
stanza. Volumes are enabled by default and can be disabled by settingvolumes = false
inside the driver config.
- Support for downloading images via the
systemd-importd
API. - Example for downloading images.
- Use built-in Nomad executor plugin to manage tasks.
- Stats monitoring of running tasks. CPU and memory usage is now displayed correctly.
- Support for task signals.
nomad alloc signal
is now working. - Bind task directories into started containers.
- Added CHANGELOG to project.
- Support for command execution inside tasks.
nomad alloc exec
is now working in containers started with theboot
parameter. - Validate configuration before trying to start a task. The driver will not try to start tasks with invalid configuration.
- Naming of started containers now matches the schema of the docker driver
<task-name>-<allocID>
.
- Fixed argument parsing for
volatile
andconsole
options.
Initial release. A minimal implementation to be able to run containers with
systemd-nspawn
- Start/stop/recover tasks is working.
- Small subset of possible
systemd-nspawn
arguments configurable. - Private networking enabled by default.
- Port forwarding is working the same way as in docker driver.
- Stats monitoring.
- Enforce memory limits on started containers.
- Example config and job files.
- README with argument reference.