Skip to content

Tags

Tags give the ability to mark specific points in history as being important
This project is mirrored from https://github.com/neondatabase/autoscaling. Pull mirroring updated .
  • v0.7.3-alpha2
    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-alpha1
    v0.7.3-alpha1
    
    This is a pre-release just for building and distributing images.
    Do not deploy anything from this release.
  • v0.7.2
    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.1
    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.0
    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.0
    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.2
    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.1
    v0.5.1
    
    Hotfix release, fixes a panic on autoscaler-agent dump-state requests.
  • v0.5.0
    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.17
    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.16
    v0.1.16
    
    Hotfix release, fixes a panic that occurs when billing is enabled.
  • v0.1.15
    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.14
    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.13
  • v0.1.12
    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.11
    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.10
    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.9
    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.8
    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.7
    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.