github attune-io/attune v0.1.30

6 hours ago

What's New in v0.1.30

v0.1.30 waits for CPU samples before it derives memory from memoryFromCpuRatio. When a metrics query fails, the policy retries on the short data-collection interval instead of waiting a full cooldown.

Highlights

  • Policies that set memory.memoryFromCpuRatio no longer treat Prometheus memory gauges or a VPA memory target as the memory recommendation while CPU samples are still missing.
  • Ready MetricsUnavailable now requeues at min(cooldown, queryStep) with no extra jitter, the same interval InsufficientData already used.

memoryFromCpuRatio

  • Memory recommendations could come from usage gauges while CPU samples were still missing. A valid memoryFromCpuRatio now waits for a CPU recommendation. Ready stays InsufficientData and retries at min(cooldown, queryStep). The Collecting data: X/Y message counts CPU samples only. Auto does not apply during that wait (#820, #822).

  • A brief CPU gap could drop a good derived rec and leave a leftover usage rec. Under a valid ratio, Attune keeps only a prior rec whose memory explanation names memoryFromCpuRatio. A leftover usage rec is dropped. When explanations are stripped from status, a ratio origin note is kept so the next CPU gap can still reuse that rec (#823).

  • An invalid ratio (abc, 0, NaN, or above 1000) could stall the wait path. Those values are ignored and Attune uses the memory signal. The webhook still rejects them when admission is enabled (#823).

MetricsUnavailable

  • A metrics query error waited a full cooldown (default 1h, plus up to 2m jitter) before retrying. Ready MetricsUnavailable now uses the same short requeue as InsufficientData. A policy with cooldown: 2h and the default 5m step retries every 5 minutes. Resize spacing is unchanged once Ready is Monitoring (#823).

Compatibility

Surface Requires
Existing policies without memoryFromCpuRatio Unchanged, except the MetricsUnavailable retry interval
memoryFromCpuRatio Waits for CPU; no fallback to memory gauges or a VPA memory target
Tested Kubernetes versions 1.32 through 1.36 (1.37 experimental)

Upgrade notes

  1. Upgrade the chart to 0.1.30, or set image.tag to 0.1.30 or v0.1.30.
  2. Pull ghcr.io/attune-io/attune:v0.1.30 or ghcr.io/attune-io/attune:0.1.30. Both tags point at the same digest.
  3. CRDs are unchanged for this release. Helm still does not upgrade CRDs on helm upgrade; apply them only if you skipped a previous release that added CEL rules.
  4. If you set memoryFromCpuRatio and lowered minimumDataPoints, first recommendations wait until CPU samples exist (typically two cAdvisor scrapes). Ready stays InsufficientData during that wait instead of showing a usage-based memory rec.
  5. Scripts that treated MetricsUnavailable as a full-cooldown pause will see retries at queryStep (default 5m).

See Upgrading for this section and earlier releases.

Full changelog

v0.1.29...v0.1.30

Don't miss a new attune release

NewReleases is sending notifications on new releases.