Release Notes

Internal changes

  • The agent source is now organized as a “opensvc” python package.

  • The om commands can be run using python -m opensvc <args>.

  • The daemon is launched using python -m opensvc.daemon.

  • Support out-of-tree drivers. They are looked up in a site-opensvc package installed in sys.path.

  • status.json and object configuration files are no long overwriten (write in a tempfile and atomic rename).

  • Provisioning code is now merged in the resource drivers, instead of in a separate file.

  • Move the resource drivers keyword definitions to the driver file.

  • On object build, prepare resource driver class arguments using only the keyword dictionnary.

  • Use pytest instead of nose for unit testing.

  • Discover available API handlers instead of hardcoding the list.

  • Allow drivers to register their own api handlers.

Policy changes

  • Python 2.6 is no longer supported as an interpreter.

  • Set pr status to n/a instead of undef when the resource handles no disks.

  • Report n/a for disk.raw devices with no evaluated devs.

  • Serialize volume creation cluster-wide.

New Features

  • Automatically reinstall files projected from cfg/sec keys into volumes upon content changes.

  • Support piping ini-format configuration files to om create.

  • Support om create --config <uri to json content>.

  • Auto provision disk.loop resources when hosted on shm.

  • Add the GET /object_status API handler.

  • Add –confirm to the run action.

  • Add user/group/perm/dirperm keywords to the volume resource driver.

  • Support the enter action on container.lxc resources.

  • Add a container.zone provisioner.

  • Add node capabilities detection on daemon startup.

  • Allow edit and edit --key on usr objects.

  • Add a provisioner to the disk.drbd driver.

  • Support drbd9 connection mesh and multi-slave.

  • Support volume path translation in app resource keywords.

  • Add the app.retcodes keyword.

  • Add a --format compact option to om mon, for clusters with many nodes.

  • Add a cluster.default_mon_format node/cluster keyword to define om mon default format to compact by default.

  • Display the daemon init progress in om mon.

  • Support ubuntu 20.04 CNI location.

  • Dump daemon threads stack on SIGUSR1.

  • Support piping binary data to om <sec> add --key <key> --from -`.

New Drivers

  • drbd pool

New Commands

om node drain

Agent Migration

Live migration from 2.0 to 2.1 requires no particular precaution.