This project is mirrored from https://github.com/neondatabase/autoscaling.
Pull mirroring updated .
-
v0.7.3-alpha2905d2f96 · ·
v0.7.3-alpha2 This is a pre-release just for building and distributing images. Do not deploy anything from this release.
-
v0.7.3-alpha14961062b · ·
v0.7.3-alpha1 This is a pre-release just for building and distributing images. Do not deploy anything from this release.
-
v0.7.23eeeeee9 · ·
v0.7.2 This is a hotfix release that reverts a change in behavior from v0.7.0: Alongside the change to allow fractional CPU, #172 changed the billing value type to a float. This was incorrect, fixed by #244.
-
v0.7.1af3fa227 · ·
v0.7.1 This is a hotfix release that fixes a bug with v0.7.0: On Kubernetes nodes with cgroups v1, the NeonVM runner was failing to read cgroup CPU information due to a bad path. This, in turn, prevented any successful reconciling for VMs on these nodes, which - among other things - prevented autoscaling from functioning for these VMs.
-
v0.7.013a351e9 · ·
v0.7.0 This release contains bugfixes, new features, major public-facing API changes, *and* inter-component API changes. Live-upgrading is possible but must be done carefully. Read the "Upgrade path from v0.6.0" section at the end for more info. Breaking API changes: - Upgraded to Kubernetes 1.24 (#132) - VMs may have fractional CPU values (#172) Features: - Improve scaling bounds validation (#190) - Make api.ScalingBounds (for scaling annotations) public (#181) - informant: Respect max file cache size (#182) - agent: Add runner panics metrics (#180) - agent: Rework (improve!) scaling algorithm (#195) - In general, scaling should be much smoother now. There's still some work to do in this area (particularly around downscaling), but overall, a step that should be fairly impactful. - agent->informant health checks (#203) - Support for fractional CPU (#172) - !!! - NeonVM: Add current usage annotation to runner pod (#231) - NeonVM: Allow disabling service links (#235) Fixes: - VirtualMachineSpec.PodResources now sets the pod's resources (#138) - autoscaler-agents no longer produce logs about VM updates that aren't on their node (#186) - Fix NeonVM CRD still including VirtualMachineSpec.ServiceAccountName (#188) - plugin: Fix Unreserve verdict format string in logs (#206) - agent: Stop informant server when context canceled (#214) - This was the cause of a pretty notable goroutine leak that should now be fixed. See #196 - agent: Fix log for /unregister response (#224) - agent: Fix inverted 'ErrServerClosed' check (#225) - This may have been causing spurious error logs and silencing actual errors. - Add node affinity to NeonVM's kube-multus-ds DaemonSet (#236) - agent: Fix deadlock on invalid plugin response (#237) Protocol changes: - agent->informant health checks are now supported, but not required (#203) - NeonVM CRD now supports fractional CPU - all of min/use/max. (#172) - NeonVM controller -> runner makes requests to /cpu_current and /cpu_change endpoints to get/set fractional CPU via the runner's cgroup manipulations. (#172) - agent->plugin resource requests can now request fractional CPU (#172) - plugin->agent permits can now return fractional CPU (#172) - note: plugin does not return fractional CPU unless the agent supports it. This makes it possible to do upgrades without significant downtime. (#238) Other changes: - Upgraded to Go 1.20 (#130) - agent/metrics: Make request error labels self-consistent (#193) - Mark scheduler with `priorityClassName: system-cluster-critical` (#227) Upgrade path from v0.6.0: note: each step produces a "valid" state - the system will operate successfully. It is not recommended to stay in a partial upgrade for long, because they have not been tested as much. 1. Upgrade NeonVM controllers v0.6.0 -> v0.7.0 2. Upgrade autoscale-scheduler v0.6.0 -> v0.7.0 - note: it is ok to change to a compute unit with fractional CPU at this step! Old autoscaler-agents will be given a multiplied CU so it has an integer number of CPUs. 3. Upgrade autoscaler-agent v0.6.0 -> v0.7.0 note: Upgrading the vm-informant can be done at any point. Its protocol changes are opt-in.
-
v0.6.073748102 · ·
v0.6.0 This release contains bugfixes, new features, and minor public-facing API changes, but no inter-component API changes. Breaking API changes: - NeonVM: Removed VirtualMachineSpec.ServiceAccountName (#140) - NeonVM: Make vm-builder specific to Neon, with new vm-builder-generic for general-purpose use. vm-builder-generic is *almost* the same as the previous vm-builder, but it does not include vector by default (#133) - Require label "autoscaling.neon.tech/enabled=true" for autoscaling to be enabled (#38) Features: - Allow annotation "autoscaling.neon.tech/bounds=..." to override scaling bounds (#128) - NeonVM: add --quiet flag to vm-builder[-generic], which is off by default. Builds are more verbose without it. (#169) - agent, plugin: Add prometheus metrics (#92, #174, #175) - agent: Better config validation (#177) Fixes: - agent: always log informant register errors (#165) - agent: fix runner log prefix (#159) - NeonVM: fix ENTRYPOINT, CMD handling when there's mutiple strings (#184) No protocol changes. Upgrade path from v0.5.2: - No ordering requirements.
-
v0.5.25bd75b77 · ·
v0.5.2 This release incorporates a handful of bugfixes and some new features. It is entirely inter-compatible with v0.5.1, with the exception of a minor change in the scheduler's "dump state" output. Features: - agent, plugin: Reimplement migration under load. (#112) - Note: The overlay network that allows VMs to preserve their IP addresses is not currently functional. Fixes: - plugin: Don't reject resource requests that aren't a multiple of the compute unit if the VM's resources are constrained to make satisfying that requirement impossible. (#108) - plugin: Fix missing JSON tags for Buffer and CapacityPressure in podResourceState. (#107) - Note: this changes the "dump state" JSON output - agent: Don't return from /suspend until NeonVM requests finished. This helps avoid possibilities of multiple autoscaler-agents acting at the same time. - agent/billing: panic if VM store unexpectedly stopped (#110) No protocol changes. Upgrade path from v0.5.1: - No ordering requirements.
-
-
v0.5.0a7d5ec0b · ·
v0.5.0 This release marks the first release where NeonVM has been merged into the same repository. It was last at v0.4.6, so we've bumped to v0.5.0 as a kind of clean slate. Features: - Added "dump state" endpoints to autoscaler-agent and scheduler plugin. Refer to https://github.com/neondatabase/autoscaling/pull/76 for more information. (The endpoints are enabled by default). No protocol changes. There have been significant changes to testing - everything is run by the Makefile now. Refer to https://github.com/neondatabase/autoscaling/pull/91 for more information. Upgrade path from v0.1.17 / v0.4.6: - No ordering requirements.
-
v0.1.17bbc3bdd6 · ·
v0.1.17 No new features. Fixes: - agent/billing: consumption event duplication fixed (#94) No protocol changes. Upgrade path from v0.1.16: - No ordering requirements.
-
-
v0.1.15815f2205 · ·
v0.1.15 Features: - billing: add additional active_time metric - testing: add initial e2e tests and framework Fixes: - informant: improvements to process monitoring and signal handling No protocol changes. Upgrade path from v0.1.14: - No ordering requirements.
-
v0.1.140b082ec2 · ·
v0.1.14 Features: - vm-informant: Integration with Neon file cache (#47) - scheduler, agent: Add pprof endpoints on port 7777 (#71, #70) Fixes: - scheduler, agent: Termination signal handling should be improved (#70, f3f1c38fe2) No protocol changes. Upgrade path from v0.1.13: - No ordering requirements.
-
-
v0.1.128cc032ce · ·
v0.1.12 No new features. Fixes: - Scheduler no longer spins 1+ CPU No protocol changes. Upgrade path from v0.1.11: - No ordering requirements.
-
v0.1.11b23c7763 · ·
v0.1.11 Hotfix release, fixes a panic case while handling VMs, introduced in v0.1.9. Upgrade path from v0.1.10: - No ordering requirements. Only the scheduler is updated.
-
v0.1.10f02ca611 · ·
v0.1.10 No new features. Changes: - Use resource requests (not limits) for non-VM pods No protocol changes. Upgrade path from v0.1.9: - No ordering requirements.
-
v0.1.9ffce57a7 · ·
v0.1.9 Features: - agent: VM billing events pushing added Protocol changes: - Allow nil metrics in agent->plugin messages - agent<->plugin version to v1.1 Refer to pkg/api/VERSIONING.md for compatibility information. Upgrade path from v0.1.8: - Deploy scheduler v0.1.9 BEFORE the updated autoscaler-agent. - No requirements relating to vm-informant.
-
v0.1.8f680d6b4 · ·
v0.1.8 No features added. Protocol changes: - Added versioning to agent->plugin messages, initial set at v1.0. Refer to pkg/api/VERSIONING.md for compatibility information. Upgrade path from v0.1.7: - Deploy autoscaler-agent v0.1.7 BEFORE the updated scheduler. - No requirements relating to vm-informant.
-
v0.1.7f0364157 · ·
v0.1.7 Features: - plugin: Allow unknown JSON fields in agent messages. This should allow future changes to be non-breaking. Upgrade path from v0.1.6: - This release is fully compatible with v0.1.6; any release order is acceptible.