v0.28.0 Large release after a while - lots of PRs without external changes, and then a hanful all at once. Features: - plugin: Make auto- live migration opt-in (#781) - plugin: Count shouldDeny from Reserve (#891) - new metric: autoscaling_plugin_reserve_should_deny_total - agent: Track more liveness in vm-stuck metrics (#855) - plugin: Add eventQueueSet metrics (#875) - new metric: autoscaling_plugin_eventqueue_depth - new metric: autoscaling_plugin_eventqueue_adds_total - new metric: autoscaling_plugin_eventqueue_duration_seconds - neonvm: Support resizeable swap via sized mkswap (#887) Breaking changes: - neonvm: Remove support for pre-v0.7.0 neonvm-runner versions (#836) - agent/billing: Make clients generic and allow >1 (#890) - Config format changed. See PR for details. - agent: Make billing config non-optional (#890) - neonvm: Changed type of VirtualMachine.Spec.Guest.Settings.Swap Protocol changes: - agent,plugin: Remove unused metrics from api.Metrics (#750) Fixes: - Sync versioning in VERSIONING.md and plugin (#894) - DISALLOWS versions <v3.0, which should have already been the case. - agent: Add missing validationf or .metrics.requestTimeoutSeconds (#892) Other changes: - api/vminfo: Move flags & scaling config to new Config field (#781) - plugin: Use api.VmConfig for per-VM settings (#781) - plugin: Don't fail in Reserve() (#891) - neonvm-runner: Log parallel errors before returning (#893) - agent,api: Remove custom Format()s for complex types (#902) Upgrade path from v0.27.0: - neonvm MUST be upgraded before any Go client libraries, if the client does any interactions with VMs with swap enabled. - the scheduler MUST be upgraded before the autoscaler-agents.