Repository navigation
Release cortex 0.8.0 - #1485
Merged
Merged
Release cortex 0.8.0#1485
Conversation
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [kube-prometheus-stack](https://redirect.github.com/prometheus-operator/kube-prometheus) ([source](https://redirect.github.com/prometheus-community/helm-charts)) | patch | `92.17.0` → `92.17.1` | --- ### Release Notes <details> <summary>prometheus-community/helm-charts (kube-prometheus-stack)</summary> ### [`v92.17.1`](https://redirect.github.com/prometheus-community/helm-charts/releases/tag/kube-prometheus-stack-92.17.1) kube-prometheus-stack collects Kubernetes manifests, Grafana dashboards, and Prometheus rules combined with documentation and scripts to provide easy to operate end-to-end Kubernetes cluster monitoring with Prometheus using the Prometheus Operator. #### What's Changed - \[prometheus-yet-another-cloudwatch-exporter] Add extraManifests, revisionHistoryLimit and enableServiceLinks by [@​korenp0](https://redirect.github.com/korenp0) in [#​7434](https://redirect.github.com/prometheus-community/helm-charts/pull/7434) - \[prometheus-statsd-exporter] Add Gateway API HTTPRoute support by [@​somaz94](https://redirect.github.com/somaz94) in [#​7025](https://redirect.github.com/prometheus-community/helm-charts/pull/7025) - \[prometheus-postgres-exporter] fix rule rendering, [#​5508](https://redirect.github.com/prometheus-community/helm-charts/issues/5508) by [@​fredericve](https://redirect.github.com/fredericve) in [#​5509](https://redirect.github.com/prometheus-community/helm-charts/pull/5509) - \[kube-prometheus-stack] Update kube-prometheus-stack dependency non-major updates by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7476](https://redirect.github.com/prometheus-community/helm-charts/pull/7476) #### New Contributors - [@​korenp0](https://redirect.github.com/korenp0) made their first contribution in [#​7434](https://redirect.github.com/prometheus-community/helm-charts/pull/7434) - [@​fredericve](https://redirect.github.com/fredericve) made their first contribution in [#​5509](https://redirect.github.com/prometheus-community/helm-charts/pull/5509) **Full Changelog**: <prometheus-community/helm-charts@kube-prometheus-stack-92.17.0...kube-prometheus-stack-92.17.1> </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Berlin) - Branch creation - "after 6pm every weekday,every weekend,before 8am every weekday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/cobaltcore-dev/cortex). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjIwMi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…r-operator to v1.4.0 (#1469) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [github.com/cobaltcore-dev/openstack-hypervisor-operator](https://redirect.github.com/cobaltcore-dev/openstack-hypervisor-operator) | `v1.3.0` → `v1.4.0` |  |  |  |  | --- ### Release Notes <details> <summary>cobaltcore-dev/openstack-hypervisor-operator (github.com/cobaltcore-dev/openstack-hypervisor-operator)</summary> ### [`v1.4.0`](https://redirect.github.com/cobaltcore-dev/openstack-hypervisor-operator/releases/tag/v1.4.0): interface-aware certificates [Compare Source](https://redirect.github.com/cobaltcore-dev/openstack-hypervisor-operator/compare/v1.3.0...v1.4.0) ### v1.4.0 Interface-aware node certificates, server-side apply across controllers, and fixes for chart credentials and the onboarding handover gate. ####⚠️ Upgrade notes - **Certificates now include Calico interface addresses.** New flags `--certificate-interface-include-regex` (default `^vlan_[0-9]+$`) and `--certificate-interface-exclude-regex` (default empty, wins over include), exposed in Helm as `controllerManager.manager.env.certificateInterfaceIncludeRegex` / `certificateInterfaceExcludeRegex`. Empty include admits all interfaces; invalid regexes prevent startup. - **Certificate addresses are filtered to unzoned global-unicast IPs.** Loopback, link-local, multicast, and zoned addresses are dropped, and IPv4-mapped IPv6 addresses are canonicalised. Review certificates if you relied on such an address. #### New features ##### Interface IPs in node certificates Certificates previously covered only Node status addresses, so connections over additional interfaces (for example Calico-reported VLANs) failed TLS validation. Matching addresses from the `projectcalico.org/Interfaces` annotation are now merged in and deduplicated. The exclude regex wins over the include regex. The controller applies the full Certificate spec on every Node event, so address changes trigger reissuance by cert-manager. #### Bug fixes ##### Chart no longer renders an empty `OS_USERNAME` The chart previously rendered `OS_USERNAME` from values, producing an empty environment variable when unset. The username now comes from `SERVICE_USERNAME` in the chart secret, alongside the password, and rendering fails when neither `secret.serviceUsername` nor `controllerManager.manager.env.osUsername` is set. ##### TraitsUpdated is set when custom traits are already in sync Reconcile returned early when the desired and recorded custom traits matched, without setting `TraitsUpdated`. Since that condition gates handover, hypervisors without custom traits could never finish onboarding. The controller now reports success from the recorded state, compares traits order-insensitively, queries placement only when spec and status diverge, and removes stray traits in one pass. #### Internals - `OnboardingController`, `TraitsController`, and Certificate creation migrated to server-side apply. Seeding only claims conditions owned by each controller. - Nova ID lookup and initial conditions are applied in one pass, avoiding SSA pruning of IDs owned by a single field manager. - Certificate creation drops the retry-on-conflict loop and re-applies the full spec on each reconcile. #### Dependencies & tooling - Go 1.27.2 → 1.27.3; k8s.io/\* 0.37.1 → 0.37.2; cert-manager v1.21.2 → v1.21.3 - prometheus/common v0.72.1 → v0.73.0 - Security: `golang.org/x/net` v0.61.0 → v0.62.0 - golangci-lint v2.14.0 → v2.15.0; CI actions refreshed; Renovate `minimumReleaseAge` set to 3 days **Full Changelog**: <cobaltcore-dev/openstack-hypervisor-operator@v1.3.0...v1.4.0> </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Berlin) - Branch creation - "after 6pm every weekday,every weekend,before 8am every weekday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/cobaltcore-dev/cortex). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yMDQuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjIwNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary Fixes the quota enforcement filter to use the correct CR state semantics from issue 547: only `confirmed` CRs count toward CR capacity (and are therefore deducted when computing PAYG headroom). Previously, `FilterQuotaEnforcement` used `spec.IsActive()` which included both `confirmed` and `guaranteed` states. The quota controller's `CRStateFilter` already existed but also defaulted to both states. This PR aligns both defaults to `confirmed` only, matching the ticket spec: > quota = PAYG capacity + CR capacity, where CR capacity covers only CRs in state `confirmed` Changes: - Adds `CRStateFilter` option to `FilterQuotaEnforcementOpts` (configurable, mirrors the quota controller config) - Replaces hardcoded `spec.IsActive()` with `crStateIncluded()` backed by the new option - Drops `guaranteed` from the default filter in both the enforcement filter and the quota controller config - Updates tests to reflect that `guaranteed` CRs are excluded by the default filter The `guaranteed` removal also anticipates #675 (drop guaranteed state from Cortex entirely), avoiding a future compile-error in these defaults. --------- Signed-off-by: juliusclausnitzer <julius.clausnitzer@sap.com>
…schema (#1438) Refactors the CR and CR Reservation CRD schemas as groundwork for the VM CRD lifecycle integration: - Allocation tracking: moved from Spec.Allocations → Status.Allocation (canonical); scheduler now writes only an annotation, controller confirms into status - Generation tracking: replaced custom ParentGeneration/ObservedParentGeneration handshake with standard conditions[Ready].ObservedGeneration - Allocation accounting: rewritten to support multi-slot spanning with a two-pass algorithm - Grace period removed: replaced with live VMSource.GetVM() on every reconcile - Billing sub-struct: flat fields on CR status moved into Status.Billing - Resource key normalization: "memory"/"vcpus" → hv1.ResourceMemory/hv1.ResourceCPU --------- Signed-off-by: Marcel <156897072+mblos@users.noreply.github.com>
Signed-off-by: Markus Wieland <markus.wieland@sap.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | Type | Update | |---|---|---|---|---|---|---|---| | [github.com/ironcore-dev/ironcore](https://redirect.github.com/ironcore-dev/ironcore) | `v0.8.0` → `v0.9.0` |  |  |  |  | require | minor | | [kube-prometheus-stack](https://redirect.github.com/prometheus-operator/kube-prometheus) ([source](https://redirect.github.com/prometheus-community/helm-charts)) | `92.17.1` → `92.18.0` |  |  |  |  | | minor | --- ### Release Notes <details> <summary>ironcore-dev/ironcore (github.com/ironcore-dev/ironcore)</summary> ### [`v0.9.0`](https://redirect.github.com/ironcore-dev/ironcore/releases/tag/v0.9.0) [Compare Source](https://redirect.github.com/ironcore-dev/ironcore/compare/v0.8.0...v0.9.0) #### Changes ####⚠️ Breaking - Include network interface status in IRI response [@​maxmoehl](https://redirect.github.com/maxmoehl) ([#​1578](https://redirect.github.com/ironcore-dev/ironcore/issues/1578)) - Bump etcd to latest 3.7.x [@​friegger](https://redirect.github.com/friegger) ([#​1575](https://redirect.github.com/ironcore-dev/ironcore/issues/1575)) - ensure v0.8.0 based config has been deployed (including the etcd 3.6.x upgrade) - Bump k8s.io/\* deps to v0.37 and controller-runtime v0.25.0 [@​Rohit-0505](https://redirect.github.com/Rohit-0505) ([#​1553](https://redirect.github.com/ironcore-dev/ironcore/issues/1553)) #### 🐛 Bug Fixes - Do not try to load leaderelect config if not configured [@​maxmoehl](https://redirect.github.com/maxmoehl) ([#​1576](https://redirect.github.com/ironcore-dev/ironcore/issues/1576)) #### 🧰 Maintenance - Bump the go-dependencies group with 3 updates @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​1588](https://redirect.github.com/ironcore-dev/ironcore/issues/1588)) - Bump github.com/ironcore-dev/controller-utils from 0.14.1-0.20260904065051-9ddd709051f4 to 0.15.0 in the go-dependencies group @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​1585](https://redirect.github.com/ironcore-dev/ironcore/issues/1585)) - Bump the go-dependencies group with 2 updates @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​1583](https://redirect.github.com/ironcore-dev/ironcore/issues/1583)) - Bump the go-dependencies group with 2 updates @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​1582](https://redirect.github.com/ironcore-dev/ironcore/issues/1582)) - Bump github.com/onsi/gomega from 1.43.1 to 1.44.0 in the go-dependencies group @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​1581](https://redirect.github.com/ironcore-dev/ironcore/issues/1581)) - Bump the go-dependencies group with 3 updates @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) ([#​1579](https://redirect.github.com/ironcore-dev/ironcore/issues/1579)) - Remove GODEBUG workaround for gengo v1 [@​maxmoehl](https://redirect.github.com/maxmoehl) ([#​1577](https://redirect.github.com/ironcore-dev/ironcore/issues/1577)) - Bump etcd to latest 3.7.x [@​friegger](https://redirect.github.com/friegger) ([#​1575](https://redirect.github.com/ironcore-dev/ironcore/issues/1575)) - Bump k8s.io/\* deps to v0.37 and controller-runtime v0.25.0 [@​Rohit-0505](https://redirect.github.com/Rohit-0505) ([#​1553](https://redirect.github.com/ironcore-dev/ironcore/issues/1553)) </details> <details> <summary>prometheus-community/helm-charts (kube-prometheus-stack)</summary> ### [`v92.18.0`](https://redirect.github.com/prometheus-community/helm-charts/releases/tag/kube-prometheus-stack-92.18.0) [Compare Source](https://redirect.github.com/prometheus-community/helm-charts/compare/kube-prometheus-stack-92.17.1...kube-prometheus-stack-92.18.0) kube-prometheus-stack collects Kubernetes manifests, Grafana dashboards, and Prometheus rules combined with documentation and scripts to provide easy to operate end-to-end Kubernetes cluster monitoring with Prometheus using the Prometheus Operator. #### What's Changed - \[prometheus-statsd-exporter] Probe /-/healthy and /-/ready instead of /health by [@​junkerderprovinz](https://redirect.github.com/junkerderprovinz) in [#​7424](https://redirect.github.com/prometheus-community/helm-charts/pull/7424) - \[prometheus-adapter] Add schedulerName and runtimeClassName support by [@​somaz94](https://redirect.github.com/somaz94) in [#​7108](https://redirect.github.com/prometheus-community/helm-charts/pull/7108) - \[kube-state-metrics] Default to Linux nodes by [@​adityareddy-dev](https://redirect.github.com/adityareddy-dev) in [#​7483](https://redirect.github.com/prometheus-community/helm-charts/pull/7483) - \[prometheus-redis-exporter] Update dependency oliver006/redis_exporter to v1.97.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7485](https://redirect.github.com/prometheus-community/helm-charts/pull/7485) - \[prometheus-mysql-exporter] Keep resources on exporter with proxy by [@​adityareddy-dev](https://redirect.github.com/adityareddy-dev) in [#​7489](https://redirect.github.com/prometheus-community/helm-charts/pull/7489) - \[CI] Update helm/kind-action action to v1.15.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7499](https://redirect.github.com/prometheus-community/helm-charts/pull/7499) - \[prom-label-proxy] Omit unused proxy config mount by [@​adityareddy-dev](https://redirect.github.com/adityareddy-dev) in [#​7493](https://redirect.github.com/prometheus-community/helm-charts/pull/7493) - \[kube-prometheus-stack] Update kube-state-metrics Docker tag to v9 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​7500](https://redirect.github.com/prometheus-community/helm-charts/pull/7500) #### New Contributors - [@​junkerderprovinz](https://redirect.github.com/junkerderprovinz) made their first contribution in [#​7424](https://redirect.github.com/prometheus-community/helm-charts/pull/7424) **Full Changelog**: <prometheus-community/helm-charts@kube-prometheus-stack-92.17.1...kube-prometheus-stack-92.18.0> </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Berlin) - Branch creation - "after 6pm every weekday,every weekend,before 8am every weekday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/cobaltcore-dev/cortex). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yMDQuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjIwNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary Makes `crStateFilter` a single Helm-controlled value that drives both consumers, and removes the Go-level fallback defaults so an empty config means "no CR states count" rather than silently falling back to a hardcoded set. Previously the filter (`FilterQuotaEnforcementOpts.CRStateFilter`) and the quota controller (`QuotaControllerConfig.CRStateFilter`) each had their own Go default of `[confirmed]`. These two **must stay in sync** — the filter deducts CR amounts from PAYG headroom using the same states the controller uses to derive `PaygUsage` — yet the sync was enforced only by matching hardcoded defaults and a code comment. ## Changes - **Helm**: new `kvm.crStateFilter` value (default `[confirmed]`) in the nova bundle, wired via a YAML anchor into both: - `conf.crStateFilter` → `conf.json` → quota controller - `filter_quota_enforcement` step params on each KVM pipeline → filter - **Go**: removed `defaultCRStateFilter` from the filter and the `CRStateFilter` default from `DefaultQuotaControllerConfig` / `ApplyDefaults`. An empty filter now means no CR states count; the deployment supplies the intended set. - **Tests**: added a `testQuotaConfig()` helper and defaulted the filter test runner's unset case to `[confirmed]`, mirroring the Helm-supplied default so existing cases keep their semantics. The controller's runtime logic (`isCRStateIncluded`) was already config-driven and needs no change — only the source of the value moved from Go to Helm. --------- Signed-off-by: juliusclausnitzer <julius.clausnitzer@sap.com>
And reuse the messages parsing code to infer the pipeline name. Signed-off-by: Philipp Matthes <p.matthes@sap.com>
Signed-off-by: Markus Wieland <markus.wieland@sap.com>
Signed-off-by: Markus Wieland <markus.wieland@sap.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | debian | | digest | `f6b08b0` → `a72b443` | | debian | final | digest | `f6b08b0` → `a72b443` | --- ### Configuration 📅 **Schedule**: (in timezone Europe/Berlin) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/cobaltcore-dev/cortex). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yMDQuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjIwNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…1484) Polishes the failover host controller and fixes a probe bug. The path finder now ignores every reservation type while probing the scheduler, not just failover host reservations: probes reason about whether a host could hold the evacuated workload once it is cleared (AssumeEmptyHosts), so committed-resource, failover and in-flight reservation blocks would otherwise understate a candidate's capacity and distort the failover graph. On the polish side, the partition description now spells out the full flavor list instead of truncating it, so an individual flavor missing from one of the partitions that support many flavors can be spotted at a glance. The CortexNovaFailoverHostCalculationStalled alert window is bumped to 60 minutes so a slow partitioning pass over a large, flavor-rich fleet does not trip it. Finally, the calculation loop now emits info logging when significant steps finish (cluster snapshot, seed enumeration, path finding, partitioning) plus progress logging every ~10% of seeds probed, since a pass can take minutes. Signed-off-by: Philipp Matthes <p.matthes@sap.com>
The filter_image_properties is a safety mechanism to avoid customers from spawning kvm vms with a non-kvm image. Previously we handled an unset image (or unset image properties) as an error. We surfaced frequent occurrences also as a pipeline event and error. However, since some vms may not have this information set (boot from volume) we should only check for alignment if an image was specified. This also allows us to simplify the failover calls to the compute pipeline, which don't have to provide these image properties anymore, removing unnecessary extra logic. Signed-off-by: Philipp Matthes <p.matthes@sap.com>
SoWieMarkus
requested review from
PhilippMatthes,
auhlig,
juliusclausnitzer,
mblos and
umswmayj
as code owners
November 5, 2026 14:32
Contributor
|
🚀 Release workflow triggered — the release agent is preparing the release for this PR. |
Merged
mblos
approved these changes
Nov 5, 2026
juliusclausnitzer
approved these changes
Nov 5, 2026
Release prep for #1485: changelog entry and helm chart version bumps. Merge this before merging #1485. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: cortex-ai-agents[bot] <279748396+cortex-ai-agents[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Contributor
Test Coverage ReportTest Coverage 📊: 71.8% |
bump app version [skip ci] ``` bumped cortex: sha-b74c4f13 -> sha-06024c69 bumped cortex-shim: sha-63f36907 -> sha-821050ce bumped cortex-postgres: sha-7f53e4df -> sha-e2e2980d ``` Signed-off-by: PhilippMatthes <27271818+PhilippMatthes@users.noreply.github.com> Signed-off-by: Markus Wieland <markus.wieland@sap.com> Co-authored-by: PhilippMatthes <27271818+PhilippMatthes@users.noreply.github.com> Co-authored-by: Markus Wieland <markus.wieland@sap.com>
SoWieMarkus
enabled auto-merge
November 5, 2026 15:43
mblos
approved these changes
Nov 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release cortex 0.8.0
Release PR #1485 — 2026-11-05
Bumped Versions
DecisionCRD removed: Thecortex.cloud_decisionscustom resource definition has been fully deleted (type file, CRD YAML, all controller references). Any tooling usingkubectl get decisionsor importing the Decision type must be removed. Decision state KPI metrics for Cinder, Manila, and Nova are no longer emitted.CommittedResourceCRD schema change (#1438) — Allocation tracking has moved fromSpec.CommittedResourceReservation.AllocationstoStatus.CommittedResourceReservation.Allocation. Billing fields have been consolidated into a newStatus.Billingsub-struct (AssignedInstances,UsedResources,LastReconcileAt,ObservedGeneration). The flat billing fields onCommittedResourceStatus(AssignedInstances,UsedResources,LastUsageReconcileAt,UsageObservedGeneration) are retained but deprecated. Generation tracking has been migrated fromParentGeneration/ObservedParentGenerationto standard Kubernetes conditions withObservedGenerationsignaling.ReservationCRD schema expanded (#1438) — NewStatus.CommittedResourceReservation.Allocationfield replaces spec-level allocations.PrimaryResourcefield added toCommittedResourceReservationSpec.CreationTimestamponCommittedResourceAllocationis deprecated. Resource keys are normalised to canonicalhv1.ResourceNameconstants.specfields have been removed from the Pipeline CRD.kvm.crStateFilterincortex-nova/values.yaml(defaults to["confirmed"]). Removed KPI alert templates for Cinder/Manila/Nova decision-state metrics.Bug Fixes
Quota: unify CR state filter to confirmed-only default (#1461) — Aligned
FilterQuotaEnforcementand the quota controller to count onlyconfirmedCRs toward capacity, droppingguaranteedfrom the default filter. This prepares for the future removal of the guaranteed state.Move CR reservation allocations from spec to status (#1438) — Major CRD refactor: allocation tracking moved to
Status.Allocation, allocation accounting rewritten for multi-slot spanning, grace period replaced with liveVMSource.GetVM()lookup, and billing fields grouped intoStatus.Billing.Fix location of flavor group client (#1481) — Corrected the import path for the flavor group client after the Nova API directory reorganisation.
Polish failover host controller & fix probe reservation handling (#1484) — The path finder now ignores all reservation types during capacity probes (not just failover), so capacity is no longer understated when probing. Alert window bumped to 60 minutes; partition descriptions now show the full flavor list; progress logging added for long passes.
Don't enforce image properties when unset in compute pipeline (#1483) — Boot-from-volume VMs no longer cause spurious image property alignment errors. Image property checks are now only applied when an image is actually specified, simplifying failover scheduling calls.
Chores & Refactoring
Clean up scheduling pipeline (#1464) — General scheduling pipeline code clean-up: the
Decisiontype is fully removed, test helpers are deduplicated, and pipeline controller signatures are simplified to use the newcompute.Request/compute.Placementtypes.Drive CR state filter from a single Helm value (#1472) — Eliminated duplicated Go-level defaults for the CR state filter.
kvm.crStateFilteris now the single source of truth, wired into both the quota controller and the enforcement filter via a YAML anchor.Remove deprecated failover package (#1479) — Removed the deprecated failover package as a dependency from the failover host controller; reuses shared message-parsing code for pipeline name inference.
Move Nova-specific types into
api/external/nova/(#1480) — Introducedplacement_types.go(typedFlavorSpec,Capability,HypervisorFamily,RequestedDestination,InstanceGroupSpec, and trait/capability parsing helpers) andmessages.go(Nova wire types, intent constants, request/response structs) with full test coverage. This separates Nova wire-format types from the internal scheduling API.Dependency Updates
kube-prometheus-stackgithub.com/sapcc/go-bits0cf0269github.com/cobaltcore-dev/openstack-hypervisor-operatordebian:trixie-slima72b443cortex.cloud_decisionsdeleted: The Decision CRD YAML has been removed from the Helm CRDs folder. Ensure any existing Decision resources are cleaned up before or during upgrade. If your CI/CD pipeline applies CRDs separately, remove the oldcortex.cloud_decisionsCRD manifest.cortex.cloud_committedresources: The newStatus.AllocationandStatus.Billingfields will be empty after upgrade until the controllers reconcile. The deprecated flat billing fields are still populated during a transition period — migrate consumers toStatus.Billingbefore the next major release.cortex.cloud_reservations: Spec-levelAllocationsare deprecated; the controller now writes toStatus.CommittedResourceReservation.Allocation. Existing spec-level allocations will be migrated automatically.kvm.crStateFilter: A new required key. The default is["confirmed"], which changes behavior if your deployment previously countedguaranteedCRs toward quota. Review quota behavior in staging before rollout.Contributors: @SoWieMarkus, @PhilippMatthes, @mblos, @renovate[bot], @cortex-ai-agents[bot]
PR: #1485 | Commits: 14 | Files changed: 100 | +3,728 / −7,181
Dependencies