chore(deps): pin dependencies #16

Open
Renovate wants to merge 1 commit from renovate/kubernetes-dependencies into main
Collaborator

This PR contains the following updates:

Package Update Change
alpine pinDigest → 294b683
authentik (source) pin 2026.8.x → 2026.8.4
bitnami/kubectl pinDigest → 9962c17
cert-manager (source) minor 1.20.4 → v1.21.2
cloudnative-pg (source) pin 0.29.x → 0.29.1
docker.io/alpine/kubectl minor 1.34.1 → 1.37.1
docker.io/library/busybox (source) pinDigest → fd7dc98
docker.io/livekit/livekit-server patch v1.13.8 → v1.13.10
docker.io/mikefarah/yq (source) pinDigest → 4b3d947
docker.io/wolveix/satisfactory-server pinDigest → ac252db
forgejo (source) minor 17.1.7 → 17.3.1
garage-operator minor 0.4.10 → 0.8.2
ghcr.io/bjw-s-labs/forgejo-runner pinDigest → 8b7a25c
ghcr.io/bjw-s-labs/helm/app-template minor 5.2.1 → 5.3.0
ghcr.io/element-hq/lk-jwt-service minor 0.7.0 → 0.9.0
ghcr.io/element-hq/matrix-authentication-service digest e089f10 → 085e372
ghcr.io/element-hq/synapse minor v1.162.0 → v1.163.0
ghcr.io/fluxcd/helm-controller pinDigest → 0d52fff
ghcr.io/fluxcd/kustomize-controller pinDigest → 2ebeaa3
ghcr.io/fluxcd/notification-controller pinDigest → 840f318
ghcr.io/fluxcd/source-controller pinDigest → 6a66931
kured (source) pin 6.x.x → 6.1.0
longhorn (source) pin 1.x → 1.13.0
renovate/renovate (source) minor 44.141.0 → 44.164.7
victoria-metrics-k8s-stack pin 0.95.x → 0.95.2

Release Notes

cert-manager/cert-manager (cert-manager)

v1.21.2

Compare Source

cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.

v1.21.2 fixes controller and webhook panics, data races, ACME renewal and HTTP-01 solver bugs, and a Gateway API dnsNames bug. It stops the ACME and Vault issuers copying untrusted HTTP response bodies into status conditions and Events, and tightens ambient AWS credential use for namespaced Vault Issuers. It also updates Go and several dependencies to fix reported security vulnerabilities.

All users should upgrade.

Changes by Kind

Bug or Regression
  • ACME Issuer response bodies are no longer reflected into Issuer status conditions or Kubernetes Events. Only ACME problem documents are surfaced (bounded in length); other responses are reported by HTTP status code alone, with the full error available in the controller logs. (#​9239, @​FelixPhipps)
  • Cap ACME server response bodies at 16 MiB to guard against unbounded-body denial-of-service. (#​9222, @​FelixPhipps)
  • De-duplicate dnsNames when multiple Gateway/ListenerSet listeners share a Secret (#​9234, @​speer)
  • Fix certificate renewal windows using February 29 cron schedules across non-leap century years. (#​9240, @​wieghx)
  • Fix validating webhook panics when AdmissionReview requests omit optional fields, by routing identity, approval, and resource validation on the always-present Resource/SubResource fields and denying (rather than silently allowing) requests with an unset or mismatched resource. As a side effect, validation is now also enforced for equivalent-converted requests on non-v1 API versions, which previously could skip validation. (#​9235, @​lunarwhite)
  • Fixed HTTP-01 solver cleanup so that a solver ingress, pod or service that has already been deleted no longer fails the cleanup with a NotFound error. (#​9278, @​arpitjain099)
  • Fixed a bug where replaces field was being populated for the wrong issuer on issuer changes (#​9236, @​hjoshi123)
  • Fixed a data race in the ACME HTTP-01 self-check that could occur when custom DNS servers were configured. (#​9313, @​shashankvarma499)
  • Fixed a panic in the certificates-issuing controller when a CertificateRequest has a failure time set but no Ready condition. (#​9238, @​thc1006)
  • Fixed a race in pkg/scheduler where the cleanup of a fired timer could cancel a newer timer scheduled for the same object, silently dropping a rescheduled poll. (#​9312, @​shashankvarma499)
  • Fixed an issue where the body of a non-Vault HTTP response from spec.vault.server could be copied into the Vault Issuer's Ready condition and its Kubernetes Events. Such responses now report only the HTTP status code, and Vault's own error messages are truncated before being persisted. (#​9262, @​FelixPhipps)
  • Ingress-shim no longer removes the applyset label from cached Ingress and Gateway objects (#​9314, @​KR-Ravindra)
  • The ACME HTTP-01 self-check no longer reflects the fetched response body in Challenge.status.reason, preventing disclosure of internal response contents reachable via redirects. The response is still available in the controller's debug logs. (#​9232, @​FelixPhipps)
  • The vault issuer no longer authenticates to Vault using the cert-manager controller's ambient AWS credentials for AWS IAM auth on a namespaced Issuer, unless ambient credentials are explicitly enabled via --issuer-ambient-credentials. ClusterIssuer and explicit serviceAccountRef (IRSA) configurations are unaffected. (#​9231, @​FelixPhipps)
Other (Cleanup or Flake)
  • Upgrade Go to 1.26.6, which includes security fixes to the go command, and the crypto/tls, encoding/asn1, encoding/xml, html/template, net, net/http, and net/url packages. (#​9151, @​wallrj)
  • Upgrade Go to 1.26.8. (#​9323, @​wallrj)
  • Bump google.golang.org/grpc to v1.83.2 to fix reported security vulnerabilities (#​9255, #​9317)
  • Bump golang.org/x/crypto to v0.56.0 to fix reported security vulnerabilities (#​9265)

v1.21.1

Compare Source

cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.

v1.21.1 fixes a controller panic for Certificates with spec.renewal.policy: Disabled, a regression in 1.21.0 which caused log spam and dropped Secret informer events, Issuers and ClusterIssuers getting stuck at Ready=False (InvalidSolver) when a referenced ACME DNS-01 solver Secret is created after the Issuer, and the commented Gateway API example in the Helm chart values. It also updates several dependencies to fix reported security vulnerabilities.

All users should upgrade.

Changes by Kind

Bug or Regression
  • Avoid controller panic if a Certificate sets spec.renewal.policy=Disabled (#​9038, @​sklirg)
  • Fix Issuer/ClusterIssuer stuck at Ready=False/InvalidSolver after a missing ACME DNS-01 solver Secret is created (#​9083, @​SebTardif)
  • Fix log spam and dropped Secret informer events for non-cert-manager Secrets, caused by a generics regression introduced in 1.21.0. (#​9037, @​wallrj-cyberark)
  • Fixed the commented Gateway API config example in the Helm chart values to use gatewayAPI.enabled instead of the invalid gatewayAPI.enable. (#​9012, @​mateenali66)
Other (Cleanup or Flake)
  • Bump golang.org/x/text to v0.40.0 to fix a reported security vulnerability (#​9039, @​wallrj-cyberark)
  • Bump google.golang.org/grpc to v1.82.1 to fix a reported security vulnerability (#​9063)
  • Bump github.com/google/cel-go to v0.29.0 to fix a reported security vulnerability (#​9072)
  • Bump go.opentelemetry.io/otel to v1.44.0 to fix a reported security vulnerability (#​9073)
  • Update distroless base images (#​9000, #​9025)

v1.21.0

Compare Source

cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.

cert-manager 1.21 brings ACME Renewal Information (ARI) support, AWS IAM authentication for the Vault issuer, several security hardening changes, and continued improvements to Gateway API integration and cainjector. There are three breaking changes related to Helm chart RBAC and metrics values — review them carefully before upgrading.

Known Issues

  • Controller crash-loops when a Certificate sets renewal.policy: Disabled: the new Certificate renewal policies feature (#​8258) causes a nil pointer dereference panic in the trigger controller whenever a Certificate's spec.renewal.policy is set to Disabled — pki.RenewalTime() returns (nil, nil) for that policy, but the caller unconditionally dereferences the result. This crashes the controller process (crash-loop) for any cluster with such a Certificate. Workaround: do not set renewal.policy: Disabled on any Certificate until this is fixed; remove the field (or set a different policy) from any Certificate that already has it, and restart the controller if it is currently crash-looping. See #​9031 for details.
  • Log spam for non-cert-manager-labelled Secret events: the typed predicates refactoring (#​8407) causes filteredEventHandler type assertion failures ("OnAdd missing Object", "OnUpdate missing ObjectOld", "OnDelete missing Object") for every non-cert-manager-labelled Secret event, multiplied by 7 certificate sub-controllers. This is cosmetic only — the affected controllers only need events from cert-manager-labelled Secrets (which arrive via the typed informer); the metadata informer events were always filtered out by predicates in previous versions. Issuer and ClusterIssuer controllers are not affected. See #​8994 for details.
  • Issuer/ClusterIssuer can get stuck at Ready: False, Reason: InvalidSolver and never self-correct: new eager validation of ACME solver Secrets (#​8255) means an Issuer/ClusterIssuer referencing a solver Secret (e.g. a DNS01 provider credential) that doesn't exist yet will correctly report Ready: False, but creating the missing Secret afterwards does not trigger re-reconciliation — the controller's Secret-watch logic was never updated to recognise solver Secrets. It will only recover on the next 10-hour informer resync, a change to the Issuer/ClusterIssuer's own spec, or a controller restart. Workaround: after creating the missing Secret, make a trivial edit to the Issuer/ClusterIssuer spec (or delete and recreate it) to force reconciliation. See #​9036 for details and a fix proposal.

Major Themes

Default tokenrequest RBAC removed from Helm chart

⚠️ Breaking change

The Helm chart no longer creates a default Role and RoleBinding granting the cert-manager controller permission to create tokens for its own ServiceAccount (serviceaccounts/token: create). No documented workflow requires this RBAC — the Route53 docs section that motivated it was removed in 2024.

If you use serviceAccountRef.name pointing at the controller ServiceAccount, you must now either create your own Role/RoleBinding granting serviceaccounts/token: create, or migrate to a dedicated ServiceAccount (recommended — see the Vault or Route53 documentation).

Restrict Challenge and Order RBAC in cert-manager-edit ClusterRole

⚠️ Potentially breaking change

The cert-manager-edit aggregate ClusterRole no longer grants create for challenges.acme.cert-manager.io or create, patch, update for orders.acme.cert-manager.io (GHSA-8rvj-mm4h-c258). These resources are internal to cert-manager's ACME workflow. Challenge patch and update are retained because users may need them to remove stuck finalizers.

This change was already shipped in v1.20.3 and v1.19.6, so if you are running one of those versions this will not be a breaking change. If you have tooling that creates Challenge or Order resources directly, you will need to grant those permissions explicitly.

Metrics port name and path Helm values removed

⚠️ Breaking change

The Helm values prometheus.servicemonitor.targetPort, prometheus.servicemonitor.path, and prometheus.podmonitor.path have been removed. The controller Service metrics port has been renamed from tcp-prometheus-servicemonitor to http-metrics. Because the Helm values schema uses additionalProperties: false, users who still have any of the removed keys in their values overrides will see a schema validation error on upgrade — remove them before upgrading. (#​8952)

ACME and Certificate Management
  • ACME Renewal Information (ARI): experimental support for RFC 9773 behind the ACMEUseARI feature gate. When enabled, cert-manager queries the ACME server's renewalInfo endpoint for the recommended renewal window, allowing servers like Let's Encrypt to proactively prompt renewal during mass revocations or CA key rollovers. (#​8798)
  • waitInsteadOfSelfCheck solver option: skip cert-manager's own self-check and instead wait a configured duration before asking the ACME server to validate. An escape hatch for split-horizon DNS and NAT hairpin environments. See configuration details. (#​8858)
  • AWS IAM authentication for Vault: the Vault issuer now supports IRSA, EKS Pod Identity, and ambient EC2/ECS credentials, removing the need for long-lived AWS Secrets. (#​8422)
  • Certificate renewal policies: a new renewalPolicies field on the Certificate API provides more expressive control over renewal scheduling, complementing renewBefore and renewBeforePercentage. (#​8258)
  • Configurable CertificateRequest retry backoff: the new --certificate-request-maximum-backoff-duration flag (default: 32 hours) caps the exponential backoff for failed CertificateRequests, useful for environments with scheduled CA maintenance windows. (#​8893)
  • Modern2026 PKCS#12 profile: a new FIPS 140-3 compatible encoding profile using AES-256 + SHA-256 KDFs instead of legacy 3DES/RC2. (#​8841)
  • Webhook certificate renewal after system suspend: the webhook now detects missed certificate renewals after system suspend (S3/S4) or VM live migration by polling wall-clock time, recovering within one minute of resume. (#​8464)
Gateway API and cainjector
  • HTTP01 ListenerSet parentRef fallback: the acme.cert-manager.io/http01-parentreffallback: "true" annotation causes cert-manager to use the parent Gateway for solver HTTPRoutes instead of the ListenerSet, enabling TLS-only ListenerSets to use a shared HTTP listener for ACME challenges. (#​8749)
  • cert-manager.io/ignore-tls-listeners annotation: exclude specific Gateway TLS listeners from certificate management. (#​8727)
  • Additional listener protocols: configurable listener protocols beyond the default set. (#​8683)
  • enableGatewayAPI configuration restructure: enableGatewayAPI and enableGatewayAPIListenerSet are deprecated in favor of gatewayAPI.enabled / gatewayAPI.enableListenerSet. The old fields continue to work. (#​8732)
  • CAInjectorMerging promoted to GA: unconditionally enabled; will be removed in a future release. (#​8583)
  • cainjector server-side apply unconditional: the ServerSideApply feature gate is deprecated. (#​8692)
  • cainjector --ignore-namespaces flag: skip specified namespaces when watching Secrets for injection. (#​8614)
Deployment and Observability
  • Venafi OAuth token observability: a new AuthFailed Issuer condition reason distinguishes bad credentials from transient errors. PANW NGTS is now supported as a Venafi backend. (#​8808, #​8779)
  • runtimeClassName support: configurable for cert-manager components and ACME HTTP01 solver pods. (#​8791, #​8976)
  • startupapicheck.ttlSecondsAfterFinished: opt-in automatic cleanup of the startupapicheck Job. (#​8523)
  • --acme-http01-solver-extra-labels: propagate global.commonLabels to dynamically-created ACME HTTP01 solver resources. (#​8761)
Notable Bug Fixes
  • Integer overflow in renewBeforePercentage: Certificates with durations longer than approximately 3 years were incorrectly rejected or assigned incorrect renewal times. (#​8947)
  • Infinite re-issuance loop: cert-manager no longer loops when an issuer returns an already-expired certificate. (#​8610)
  • ACME transient network errors: challenges no longer permanently fail on TLS handshake timeouts, DNS resolution failures, or context cancellation during nonce fetches and authorization waits. (#​8760)
  • DNS-over-HTTPS response body cap: response body reads are now bounded at 128 KB to prevent potential OOM. (#​8803)
  • Vault path traversal: the Vault issuer webhook now rejects .. path segments, preventing path.Join from silently resolving relative segments. (#​8930)
  • DNS issuer secrets validated before ready: prevents silent misconfiguration. (#​8255)

Community

As always, we'd like to thank all of the community members who helped in this release cycle, including all below who merged a PR and anyone that helped by commenting on issues, testing, or getting involved in cert-manager meetings. We're lucky to have you involved.

A special thanks to:

for their contributions, comments and support!

Also, thanks to the cert-manager maintainer team for their help in this release:

And finally, thanks to the cert-manager steering committee for their feedback in this release cycle:

Changes since v1.20.0

Feature
  • Add Venafi OAuth token request observability and a new AuthFailed Issuer condition reason to distinguish bad credentials from transient infrastructure errors. (#​8808, @​FelixPhipps)
  • Add certificateRequestMaximumBackoffDuration controller configuration option to cap retry backoff time for failed CertificateRequests. Configurable via config file, --certificate-request-maximum-backoff-duration CLI flag, or Helm value config.certificateRequestMaximumBackoffDuration. Defaults to 32 hours for backward compatibility. (#​8893, @​lunarwhite)
  • Add an optional waitInsteadOfSelfCheck field to ACME HTTP01 and DNS01 solvers so cert-manager can skip its own self-check and ask the ACME server to validate after a configured wait. (#​8858, @​wallrj)
  • Add configurable runtimeClassName support for cert-manager components and ACME HTTP01 solver pods. (#​8791, @​jsoref)
  • Add direct configurable runtimeClassName support for ACME HTTP01 solver pods via the acmesolver.runtimeClassName Helm value. (#​8976, @​erikgb)
  • Add new controller flag --acme-http01-solver-extra-labels, allowing Helm's global.commonLabels to propagate to all dynamically-created ACME HTTP01 solver resources (Pods, Services, Ingresses, or Gateway API HTTPRoutes). (#​8761, @​lunarwhite)
  • Add opt-in startupapicheck.ttlSecondsAfterFinished Helm value to enable automatic cleanup of the startupapicheck Job via the Kubernetes TTL-after-finished controller. (#​8523, @​dap0am)
  • Added ARI support through the ACMEUseARI feature gate. (#​8798, @​hjoshi123)
  • Added AWS IAM authentication support for Vault issuer, including IRSA (IAM Roles for Service Accounts) and ambient credentials (EC2/ECS). (#​8422, @​bitloi)
  • Added cert-manager.io/ignore-tls-listeners annotation for ignoring gwapi listeners. (#​8727, @​hjoshi123)
  • Added option to specify additional listener protocols the GatewayAPI integration will consider when creating certificates. (#​8683, @​ThatsMrTalbot)
  • Adds support for the Modern2026 go-pkcs12 profile and FIPS 140-3 (#​8841, @​seanorama)
  • Cainjector: A new flag --ignore-namespaces was added to the cainjector binary. It can be used to filter out namespaces from being watched for secrets to use for injectables. (#​8614, @​figaw)
  • Disabled client side rate-limiting if AP&F is enabled. (#​8757, @​hjoshi123)
  • Extend the Venafi/CyberArk integration to also support PANW NGTS. (#​8779, @​FelixPhipps)
  • Adding certificate renewal policies (#​8258, @​hjoshi123)
  • Make cainjector use SSA unconditionally and deprecate the ServerSideApply feature gate (#​8692, @​erikgb)
  • Processed annotations cert-manager.io/alt-names, cert-manager.io/ip-sans to Certificates generated from ingress like objects in cert-shim controllers. (#​8927, @​jabbrwcky)
  • Promote the CAInjectorMerging feature gate to GA (#​8583, @​Copilot)
  • When using ACME HTTP-01 with a ListenerSet, setting the annotation acme.cert-manager.io/http01-parentreffallback: "true" causes cert-manager to use the parent Gateway as the solver HTTPRoute parentRef instead of the ListenerSet. This enables TLS-only ListenerSets to rely on a shared Gateway HTTP listener for ACME challenges. (#​8749, @​apkatsikas)
Bug or Regression
  • BREAKING: The Helm chart no longer ships a default Role and RoleBinding granting the cert-manager controller ServiceAccount permission to create tokens for itself (serviceaccounts/token: create). This RBAC was added in v1.16 (#​7213) but no documented workflow requires it, and the motivating Route53 docs section was removed in Oct 2024. If you rely on serviceAccountRef.name pointing at the controller ServiceAccount (an undocumented pattern), you must now create your own Role and RoleBinding granting serviceaccounts/token: create on that ServiceAccount, or migrate to one of the documented patterns (IRSA ambient, or a dedicated ServiceAccount with its own RBAC). (#​8931, @​wallrj-cyberark)
  • ACME challenges no longer terminally fail on transient network errors (TLS handshake timeouts, DNS failures, context cancellation) during nonce fetches and authorization waits. The challenge controller returns the error and lets the workqueue retry with backoff. (#​8760, @​texasich)
  • Add dns issuer secrets validation before marking it as ready (#​8255, @​Peac36)
  • Add missing issuer finalizer RBAC to the order controller to support owner references (#​8654, @​erikgb)
  • ClusterIssuer metrics collector now correctly respects the enabled-controllers configuration, avoiding a redundant startup when only operating within a namespace. (#​8822, @​lunarwhite)
  • Fix Venafi TPP issuer setup and signing regression on master: restore authentication of the vcert connector in the client constructor, which was removed in #​8808. (#​8843, @​wallrj-cyberark)
  • Fix a performance issue in the certificateRequestApproval webhook where CertificateRequests referencing a GroupKind whose CRD is not yet installed would trigger repeated API server discovery queries on every admission request. Negative results are now cached for 30 seconds. (#​8651, @​mateenali66)
  • Fix webhook serving certificate not being renewed after system suspend. (#​8464, @​Peac36)
  • Fixed a rare panic in the trigger controller when a Certificate is deleted from the informer cache while a reconcile is in progress (e.g. during namespace teardown). (#​8962, @​hjoshi123)
  • Fixed an integer overflow in renewBeforePercentage calculations that caused Certificates with durations longer than approximately 3 years to be incorrectly rejected by validation or assigned incorrect renewal times. (#​8947, @​ThatsMrTalbot)
  • Fixed duplicate parentRef bug when both issuer config and annotations are present. (#​8619, @​hjoshi123)
  • Fixed infinite re-issuance loop when issuer returns an already expired certificate (#​8610, @​onurmicoogullari)
  • Fixed local e2e-setup-samplewebhook installation to use the samplewebhook image repository and tag from the saved image tarball manifest. (#​8821, @​wallrj)
  • Fixed potential OOM in DNS-over-HTTPS client by bounding response body read with io.LimitReader (128 KB cap). (#​8803, @​SebTardif)
  • Fixed validation of timezone-prefixed renewal window cron specs without a schedule. (#​8813, @​immanuwell)
  • Helm chart bugfix: rename image helper to avoid umbrella chart conflicts (#​8753, @​FelixPhipps)
  • Helm: Fix invalid YAML generated when both webhook.config and webhook.volumes are defined. (#​8664, @​jnohlgard)
  • Remove ACME Challenge create and Order create/patch/update from the cert-manager-edit aggregate ClusterRole to prevent direct manipulation of these internal resources (GHSA-8rvj-mm4h-c258). (#​8958, @​wallrj-cyberark)
  • Remove issuer owner reference from challenges blocking challenge garbage collection (#​8743, @​erikgb)
  • Update logic to identify and preserve the secret matching nextPrivateKeySecretName (#​8577, @​putongyong)
  • Vault Issuer webhook validation now rejects .. path segments in spec.vault.path and auth mount path fields, preventing path.Join from silently resolving relative segments before constructing the Vault API request. (#​8930, @​wallrj-cyberark)
Other (Cleanup or Flake)
  • API cleanup: removed deprecated ObjectReference (#​8625, @​inteon)
  • Remove Helm values prometheus.servicemonitor.targetPort, prometheus.servicemonitor.path, and prometheus.podmonitor.path. The metrics path is always /metrics and the target port is always http-metrics. Rename the controller service metrics port from tcp-prometheus-servicemonitor to http-metrics for consistency with other workloads. Users must remove these keys from their value overrides before upgrading. (#​8952, @​erikgb)
  • The enableGatewayAPI and enableGatewayAPIListenerSet fields on ControllerConfiguration are deprecated and moved into the gatewayAPI sub-struct as gatewayAPI.enabled and gatewayAPI.enableListenerSet. The old fields continue to work. (#​8732, @​ThatsMrTalbot)
  • Update base images to Debian 13 (#​8849, @​ltwongaa)
livekit/livekit (docker.io/livekit/livekit-server)

v1.13.10

Compare Source

Changed
  • sfu: forward the dependency descriptor for VP8 simulcast (#​4987)
  • sfu: keep VP8 descriptor frame numbers across migration (#​4989)
  • sfu: filter VP9 and AV1 simulcast temporal layers with the dependency descriptor (#​4991)
  • sfu: filter VP8 temporal layers by frame when the dependency descriptor is sent (#​4976)
  • sfu: switch VP8 temporal layers up with the dependency descriptor (#​4974)
  • sfu: pad the slot of a filtered packet that follows a sequence number gap (#​4983)
  • sfu: send padding in the slot of a dropped out-of-order packet (#​4979)
  • sfu: parse VP8 and VP9 payload descriptors without an allocation (#​4981)
  • DownTrack: arm key frame requester timer only while a layer lock is pending (#​4980)
  • turn: refuse TCP relays and limit relays to this host to media ports (#​4992)
  • agent endpoints: address an unnamed deployment as "_" (#​4997)
  • Add OSS Scanner build image and threat model (#​4995)
  • Update golang Docker tag to v1.27.1 (#​4985)
  • Update alpine Docker tag to v3.24.2 (#​4984)
  • Update module github.com/maxbrunsfeld/counterfeiter/v6 to v6.13.0 (#​4915)
Fixed
  • Send NACKs when processing RTX packets (#​5000)
  • sfu: send padding-only packets with no payload (#​4993)
  • rtc: release timed out pending tracks at the pending track limit (#​4998)
  • Fix nil pointer dereference in IOInfoService.UpdateIngressState (#​4806)
  • rtc: keep update cache eviction order when listing recent disconnects (#​4975)
  • fix(cli): return non-zero exit status on command errors (#​4888)
  • Disable AV1 for Firefox clients before 157 (#​4962)

v1.13.9

Compare Source

Please note that release v1.13.8 introduced a behaviour change that caused egress start failures explained in #​4955. This release restores the behaviour to what it was in v1.13.7 and before.

Changed
  • bump protocol and psrpc deps (#​4958)
  • sfu/buffer: parse the dependency descriptor without allocating (#​4953)
  • sfu/buffer: stop allocating per ingested packet (#​4951)
Fixed
  • v1 path: check for subscriber_allow_pause presence before using it (#​4957)
  • Cap forward-jump loops in SelectorDecisionCache (#​4952)
forgejo-helm/forgejo-helm (forgejo)

v17.3.1: 17.3.1

Compare Source

Bug Fixes
Continuous Integration
Miscellaneous Chores

v17.3.0: 17.3.0

Compare Source

Features
  • improve oauth handling for new Forgejo 16 Feature and Group Maps (#​1693) (28cf80c)
Bug Fixes
Continuous Integration
Miscellaneous Chores

v17.2.0: 17.2.0

Compare Source

Features
  • labels: Adding app.kubernetes.io/component label for services (#​1701) (21ed513)
Continuous Integration
Miscellaneous Chores
rajsinghtech/garage-operator (garage-operator)

v0.8.2

Compare Source

Bug Fixes

Documentation

Miscellaneous

Release

Testing

Upgrade notes

  • No CRD-breaking changes since v0.8.1. The only CRD change is description text on status.blockErrors and status.resyncQueueLength. Re-applying CRDs is optional. The built-in Garage image is still v2.4.1.
  • status.blockErrors and status.resyncQueueLength now read 0 when Garage was observed with no errors or an empty queue, and are left out when Garage could not be observed (#​477). Go API consumers: both fields are now pointers in v1beta1 and v1beta2.
  • GarageClusters gain an OperatorAdminTokenReady condition (#​476). When it is False, its message names the Pod or GarageNode that is blocking GarageKey/GarageBucket reconciliation.
  • While a node-local pool member is being removed, the pool DaemonSet briefly carries a garage.rajsingh.info/node-local-pool-membership-staging annotation and a node affinity that admits both the old and new activation tokens (#​479). This is internal: don't strip it with GitOps or drift tooling. It is removed when the hand-off finishes.

Contributors

Thanks to @​florissmit10 for #​476 and #​477, and for reporting #​471 and #​474, and to @​rajsinghtech and @​renovate[bot] for everything else in this release.

Full Changelog: https://github.com/rajsinghtech/garage-operator/compare/v0.8.1...v0.8.2

v0.8.1

Compare Source

Bug Fixes

Documentation

Release

Upgrade notes

  • Ingress website exposure is now opt-in. v0.8.0 granted the operator cluster-wide networking.k8s.io/ingresses write access and always watched Ingresses on every install. From v0.8.1 this is controlled by the chart value ingress.enabled (default false, like gatewayAPI.enabled), which renders the --enable-ingress flag (ENABLE_INGRESS env var for non-Helm installs), the Ingress RBAC rules (ClusterRole and namespace-scoped Roles) and the Ingress watch.
  • If you use spec.websiteExposure.ingress, set ingress.enabled=true (for example --set ingress.enabled=true). With --reuse-values from v0.8.0 the new value is absent and renders as disabled, so pass it explicitly. Without it the bucket reports WebsiteExposed=False with reason IngressDisabled; Ingresses already created by v0.8.0 stay in place and keep serving (and are still garbage-collected with their bucket) but are not reconciled or cleaned up until you enable it. Installs that do not use Ingress exposure need no change and now run without any Ingress RBAC.
  • Federation reconnects no longer redial remote peers that are already up, and a down peer with a known address is dialed at that address instead of the shared admin-endpoint host. This stops a reconnect pass from gossiping a cross-cluster-resolved address into the Garage peer book. No configuration change is needed.
  • No CRD or API changes since v0.8.0, and the built-in Garage image is unchanged (v2.4.1).
  • Rollback: reverting to v0.8.0 restores unconditional Ingress RBAC; no persisted state changes.

Contributors

Thanks to @​Faustvii for reporting #​460.

Full Changelog: https://github.com/rajsinghtech/garage-operator/compare/v0.8.0...v0.8.1

v0.8.0

Compare Source

Bug Fixes

Documentation

Features

Miscellaneous

Release

Testing

Upgrade notes

  • Garage v2.3.0 and v2.4.0 crash at start with any discovery configured: use v2.4.1 or newer (the built-in default) when enabling spec.discovery.
  • All API changes are additive. Re-apply CRDs (and upgrade the Helm chart) to pick up websiteExposure, the Bucket ID column, volumeAttributesClassName, the pod extras fields and layoutManagement.siteRole/status.layoutWriter (v1beta1 and v1beta2 both carry them).
  • volumeAttributesClassName needs a CSI driver and cluster with VolumeAttributesClass support. Pod extras and siteRole are no-ops until set.
  • RBAC gains networking.k8s.io/ingresses and gateway.networking.k8s.io/httproutes. Namespace-scoped installs get these in the namespace Role.
  • Rollback: older operators ignore websiteExposure. A cross-namespace exposure resource has no owner reference and would be orphaned if its bucket is deleted by an older operator; delete it manually in that case.

New Contributors

Thanks also to @​florissmit10 for #​431 and to everyone who reported issues.

Full Changelog: https://github.com/rajsinghtech/garage-operator/compare/v0.7.12...v0.8.0

v0.7.12

Compare Source

Bug Fixes

Release

v0.7.11

Compare Source

Bug Fixes

Features

Miscellaneous

Testing

Release

v0.7.10

Compare Source

Bug Fixes

Features

  • ensure vmanagedpvcfinalizer.kb.io validating webhook only intercepts PVCs managed by garage-operator (#​398) in #​398 by @​kevinvalk

Miscellaneous

Release

v0.7.9

Compare Source

Bug Fixes

Miscellaneous

Testing

Release

v0.7.8

Compare Source

Bug Fixes

Features

Miscellaneous

WIP

Release

v0.7.7

Compare Source

Bug Fixes

Miscellaneous

Refactoring

  • ensure S3 endpoints are consistent regardless of GarageCluster deployment mode by @​kevinvalk

Testing

WIP

Release

v0.7.6

Compare Source

Bug Fixes

Documentation

Features

Miscellaneous

Testing

Release

v0.7.5

Compare Source

Bug Fixes

Documentation

Features

Miscellaneous

Release

v0.7.4

Compare Source

Bug Fixes

Miscellaneous

Testing

Release

v0.7.3

Compare Source

What's new in v0.7

  • Node-local storage pools. A GarageCluster can now manage selector-driven HostPath pools as DaemonSets, with one durable Garage identity per Kubernetes Node. Pools can coexist with the existing PVC group, manually managed SMB/Ceph/PVC or external members, and gateways. Activation fences, HostPath ownership markers, serialized rollouts, and drain/layout proofs are built in. See the node-local pool guide.
  • Drain retries that keep their work. Temporary federated Admin API read failures now pause a storage drain without discarding exact block-repair worker IDs or launching duplicate full scans. Quiet and completion timers are cleared, while a real process UID change or missing worker still restarts the proof.
  • Reliable node-local convergence. Healthy clusters no longer report Failed when periodic controllers briefly contend for the serialized Garage layout lock while revalidating an active pool. A membership change still waiting for the lock reports WaitingForLayoutSync and retries automatically.
  • Node-derived failure domains. spec.zoneFrom.nodeLabel can derive each storage member's Garage zone from its Kubernetes Node.
  • Safer lifecycle operations. Layout updates now verify Garage's readback, layout rebuilds use an exact Pod credential, and drain, cycle, and externally managed cluster paths have stronger coverage.
  • Targeted block retries. Cluster-wide retries of specific block-resync errors now inventory which nodes report each hash and send exact requests only to those nodes. Already-cleared hashes are an idempotent no-op, while an incomplete inventory fails closed.
  • Verifiable release artifacts. The operator image and OCI Helm chart are keylessly signed and include build provenance. The image also includes an SPDX SBOM attestation, and install.yaml includes provenance.

Before upgrading

  • Existing clusters are unchanged unless spec.storage.nodeLocalPools is explicitly declared. This release does not automatically migrate storage.
  • Node-local pools require Kubernetes 1.27+, Garage v2.0+, a v1beta2 GarageCluster, enabled validating and conversion webhooks, a cluster-scoped operator installation, Node access, an Admin token, and pre-created production HostPaths with .garage-volume-id markers. Garage v2.3.0 is the tested default. Existing non-pool configurations retain the Kubernetes 1.25+ minimum.
  • If custom env or envFrom entries set Garage configuration or credential variables, follow the reserved environment variable migration before upgrading.

Thanks to @​florissmit10 for the original DaemonSet prototype and use case that the node-local pool design builds on.

Full changelog: https://github.com/rajsinghtech/garage-operator/compare/v0.6.29...v0.7.3

v0.7.2

Compare Source

v0.7.1

Compare Source

v0.7.0

Compare Source

v0.6.29

Compare Source

Bug Fixes

Miscellaneous

Release

v0.6.28

Compare Source

Bug Fixes

Release

v0.6.27

Compare Source

Bug Fixes

Miscellaneous

Release

v0.6.26

Bug Fixes

v0.6.21

Compare Source

Bug Fixes

Release

v0.6.20

Compare Source

Features

Release

v0.6.19

Compare Source

Bug Fixes

Features

Miscellaneous

Release

v0.6.18

Compare Source

Bug Fixes

Miscellaneous

v0.6.17

Compare Source

Bug Fixes

v0.6.16

Compare Source

Bug Fixes

v0.6.15

Compare Source

Bug Fixes

Features

Miscellaneous

v0.6.14

Compare Source

Bug Fixes

Miscellaneous

v0.6.13

Compare Source

Bug Fixes

Miscellaneous

v0.6.12

Compare Source

Bug Fixes

Miscellaneous

v0.6.11

Compare Source

Bug Fixes

v0.6.10

Compare Source

Gateway readiness probe passthrough

A small, additive operator change.

Added
  • spec.gateway.readinessProbe (*corev1.Probe) — override the gateway tier's readiness probe. Use it to supply a custom serving-aware gate, e.g. an exec probe that keeps a gateway in service as long as it can reach a read quorum. When unset, behavior is unchanged.
Why the default is a bind-only TCP check (and not admin /health)

A serving-aware /health readiness probe was prototyped and deliberately not made the default. /health is a cluster-wide consistent write-quorum signal: at replication.factor=2, losing a single storage node drops every partition below write-quorum, so /health returns 503 on every node (likewise during federation bootstrap before remote peers join). Behind a publishNotReadyAddresses: false Service (e.g. a Tailscale anycast), that would mark all gateways NotReady and withdraw the whole anycast — taking down reads too, even though read_quorum=1 means reads still work. So gateway readiness stays bind-only TCP (gateways keep serving reads), and the serving/quorum signal belongs in monitoring, not readiness. The passthrough is for operators who have a genuine read-capability gate.

Upgrade notes
  • Operator-only, non-disruptive: no Garage pod restart, gateway readiness default unchanged.
  • No API break — additive optional field; v1beta1 (gateway-as-bool) is unaffected.

v0.6.9

Compare Source

Federation signal & cross-region reachability

Two fixes found while analyzing a healthy federated cluster's PeerUnreachable condition. Both are signal-quality / reachability improvements — neither was an availability issue.

Bug fix — PeerUnreachable no longer cries wolf

The condition flagged dead roleless identities — node IDs Garage still remembers but that hold no layout role (e.g. a gateway whose metadata PVC was recreated, leaving its old identity in the peer list). For those the "ConnectClusterNodes will recover it" remediation is impossible (the node is gone), so the alarm was permanently noisy and buried the genuinely-actionable case. PeerUnreachable now flags only peers that hold a current-layout role or are draining — so a real missing member (roled cross-region gateway, or a stuck drain) still trips it, while discarded identities are ignored.

Hardening — per-pod gateway rpc_public_addr for cross-region reachability

A multi-pod gateway tier with a single gateway.rpcPublicAddr made every pod advertise the same hostname, so remote regions could reach only one of them (the rest showed "never seen"). The gateway tier now substitutes an {ordinal} placeholder per pod (symmetric with remoteClusters[].gatewayRpcEndpointTemplate); an address without the placeholder is used verbatim. A webhook warning fires when a unified multi-pod gateway tier sets a shared rpc_public_addr with no {ordinal}.

Upgrade notes
  • Operator-only upgrade — no Garage pod restart. The PeerUnreachable cleanup takes effect immediately.
  • The {ordinal} gateway support ships dormant: it changes nothing until spec.gateway.rpcPublicAddr uses the placeholder (which, on an existing tier, triggers a gateway config update + rolling restart). Adopt it when you want per-pod cross-region gateway peering.
  • No API/CRD changes.

v0.6.8

Compare Source

Federation gateway-tag fix

A focused follow-up to v0.6.7's gateway-outage work, closing the last federation edge case found during production gateway testing.

Bug fix
  • Federated imports kept gateways un-reapable (#​224). When one region imported another region's nodes into the shared layout, it tagged them with only the remote cluster name — dropping tier:gateway. If such an imported gateway role later orphaned (e.g. a gateway lost its identity), the tombstone reaper — which finds gateway roles by their tier:gateway tag — couldn't see it, so the dead role stuck in the layout. Imported nodes now carry the proper tier:gateway/tier:storage tags (the remote-name tag is retained for stale-node cleanup).
Hardening
  • Skip importing a down remote node, so a just-orphaned role isn't re-imported before its removal propagates across the federation.
  • Reaper backstop for tag-stripped orphans: in a unified Auto cluster, a local-zone capacity:null role with no live or operator-claimed owner is reaped even if a re-import stripped its tier tag — but only after it has been continuously down past the same dwell PeerUnreachable uses, so a transient blip or briefly-down federated peer is never reaped on a single snapshot.
  • Self-connection guard now compares the effective local zone (applying the empty→"default" fallback), so a cluster with an unset spec.zone correctly recognizes a remote configured zone: "default" as itself and never pulls its roles into the local zone.
Notes
  • No API/CRD changes. Operator-only upgrade — Garage pods and node identities are unaffected.
  • In a federated deployment, layoutManagement.autoApply: true is safe on v0.6.7+ (zone-scoped reaper) and this release further hardens the reaper against over-reaping imported roles.

v0.6.7

Compare Source

Bug fixes
  • Cross-region gateway tombstone churn (#​220). The gateway tombstone reaper is now scoped to the local zone, so one region no longer deletes another region's live gateway layout roles. Previously each region's reaper classified the other region's gateway roles as stale and removed them while the per-node controller kept re-adding them — endless layout churn that left the gateway key_table unsynced and S3 auth failing with 403.
  • Gateway identity lost on upgrade (#​221). Gateway nodes now keep a persistent metadata PVC and the operator adopts the existing claim instead of recreating it, so a gateway's Garage node identity survives operator/chart upgrades — no more orphaned layout roles.
  • Cross-region per-ordinal dial parser (#​218). The remote-gateway ordinal parser no longer hardcodes the garage-gateway- prefix and Atois the pod suffix, so per-ordinal dialing works for arbitrarily named gateway nodes.
Hardening (v0.6.7 backlog, #​219)
  • A status-update conflict (HTTP 409) no longer clobbers the reconcile's computed Phase / Health / conditions — status is now assembled inside the retry closure.
  • Buckets revoke key grants that were dropped from spec.keyPermissions instead of leaving them dangling.
  • Storage bootstrap admin calls get per-call 5s timeouts (parity with the gateway path), so one unreachable node can't stall the reconcile.
  • An auto scale-down that would drop live nodes below replication.factor is now refused with a StorageScaleDownBlocked condition rather than orphaning the layout role.
  • Factor migration tracks per-phase deadlines, so a slow phase can't silently consume the next phase's timeout budget.
  • 503 responses are classified and fast-requeued instead of treated as terminal errors.
  • Single-replica gateway tiers get a drainable PodDisruptionBudget (maxUnavailable=1).
  • New GatewayLayoutDegraded condition surfaces operator-owned gateway nodes that are missing from the layout.
  • Bucket-side key-permission reconcile skips re-issuing unchanged grants (less CRDT churn).
Docs
  • README validated against the shipped code — gateway topology, factor migration, and health conditions (#​217).
Upgrade notes
  • If you set layoutManagement.autoApply: false to work around the cross-region churn (#​220), you can re-enable it once all regions are on v0.6.7 — the reaper no longer fights across regions.
  • The operator upgrade is non-disruptive: Garage pods and node identities are unaffected.

v0.6.6

Compare Source

Highlights

Gateway-tier unification, a safe path to change the replication factor, and a round of availability hardening.

Features
  • Unified gateway tier (#​210). In a unified cluster, gateways now run as per-node GarageNodes — symmetric with storage. Each is a single-replica StatefulSet with a persistent metadata PVC (stable identity) and a capacity: nil layout role, so S3 key/bucket auth resolves locally instead of needing a quorum RPC to the storage tier. This release also adds race-safe layout apply and a richer cluster-health status surface.
  • Coordinated replication-factor migration (#​208, #​211). A new purge-cluster-layout annotation drives a resumable state machine to change replication.factor — the only safe way to do it, since the factor is fixed at layout creation upstream. It refuses federated clusters, requires at least N storage nodes, and tears down cleanly on abort (never leaves storage scaled to zero).
  • PeerUnreachable condition (#​212). Surfaces peers that have been continuously down beyond ~10 minutes in status.unreachablePeers, so a sustained-down node is visible without reading Garage internals.
Bug fixes & hardening
  • Pre-release review fixes (#​216): admin-client behavior, factor-migration teardown / override-refusal / init-container UID, gateway connectivity, and pods/exec RBAC.
  • Tolerate a factor-propagation race during migration validation that was flaking the main e2e suite (#​213).
Testing / CI
  • Ginkgo e2e split into 3 parallel lanes for faster runs (#​214).
  • Fixed the Single-Cluster phase flake (#​214) and the bucket-quota-update flake (#​215).

v0.6.5

Compare Source

Bug Fixes

v0.6.4

Compare Source

Bug Fixes

Miscellaneous

v0.6.3

Compare Source

Bug Fixes

v0.6.2

Compare Source

Bug Fixes

v0.6.1

Compare Source

Bug Fixes

v0.6.0

Compare Source

Features

Refactoring

v0.5.11

Compare Source

Bug Fixes

v0.5.10

Compare Source

Bug Fixes

Documentation

  • refresh README — gateway tier is StatefulSet+PVC in-layout, add cross-region peering by @​rajsinghtech

v0.5.9

Compare Source

Bug Fixes

v0.5.8

Compare Source

Bug Fixes

v0.5.7

Compare Source

Refactoring

v0.5.6

Compare Source

Refactoring

v0.5.5

Compare Source

Bug Fixes

Documentation

Testing

v0.5.4

Compare Source

Bug Fixes

v0.5.3

Compare Source

Bug Fixes

v0.5.2

Compare Source

Bug Fixes

v0.5.1

Compare Source

Bug Fixes

  • preserve served versions when webhooks disabled and default webhooks=true by @​rajsinghtech

v0.5.0

Compare Source

Bug Fixes

Features

Miscellaneous

bjw-s-labs/helm-charts (ghcr.io/bjw-s-labs/helm/app-template)

v5.3.0

Changelog:

Changed
element-hq/synapse (ghcr.io/element-hq/synapse)

v1.163.0

Compare Source

Changelog: https://github.com/element-hq/synapse/blob/release-v1.163/CHANGES.md

renovatebot/renovate (renovate/renovate)

v44.164.7

Compare Source

Bug Fixes
Miscellaneous Chores

v44.164.6

Compare Source

Build System

v44.164.5

Compare Source

Bug Fixes

v44.164.4

Compare Source

Bug Fixes
  • util/git: use non-empty passwords for token credentials on more platforms (#​47085) (969b3cb)

v44.164.3

Compare Source

Bug Fixes
Miscellaneous Chores

v44.164.2

Compare Source

Bug Fixes
  • platform/gitea,forgejo: use a non-empty password in token clone URLs (#​47076) (99132db)
  • util/git: use a non-empty password for token-only git credentials (#​47077) (a9677c3)
Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.41.0 (main) (#​47074) (c49d1be)
  • deps: update github/codeql-action action to v4.39.0 (main) (#​47075) (9602e06)

v44.164.1

Compare Source

Bug Fixes
  • platform/github: use x-access-token for personal access tokens in clone URLs (#​47073) (6cc8898)

v44.164.0

Compare Source

Features
  • datasource/go: look up modules from a go-import mod proxy (#​47044) (0876273)

v44.163.0

Compare Source

Features

v44.162.0

Compare Source

Features
  • util/http: fall back to go host rules for go-proxy requests (#​47043) (1dce2f8)

v44.161.2

Compare Source

Bug Fixes
  • manager/poetry: disable implicit PyPI when primary sources exist (#​46977) (ab62282)
Miscellaneous Chores

v44.161.1

Compare Source

Bug Fixes

v44.161.0

Compare Source

Features
Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.40.0 (main) (#​47057) (1f158f6)

v44.160.1

Compare Source

Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.39.0 (main) (#​47055) (69e9441)
Build System
  • deps: update dependency google-auth-library to v11.2.0 (main) (#​47056) (e2c5336)

v44.160.0

Compare Source

Features

v44.159.0

Compare Source

Features

v44.158.3

Compare Source

Bug Fixes
  • deps: update dependency github/gh-actions-lock to v0.2.0 (main) (#​46976) (129f078)

v44.158.2

Compare Source

Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.38.0 (main) (#​47051) (943658a)
Tests
  • manager/github-actions: update pinned version of gh actions-lock via Renovate (#​46987) (fc4719b)
Build System

v44.158.1

Compare Source

Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.37.0 (main) (#​47039) (6970c0b)
Build System

v44.158.0

Compare Source

Features

v44.157.1

Compare Source

Bug Fixes
Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.36.0 (main) (#​47029) (b2e0191)

v44.157.0

Compare Source

Features
Tests
Build System

v44.156.3

Compare Source

Bug Fixes
  • datasource/go: treat modules with go host rule credentials as private (#​47031) (28ed2ee)

v44.156.2

Compare Source

Bug Fixes
Tests

v44.156.1

Compare Source

Bug Fixes

v44.156.0

Compare Source

Features
Miscellaneous Chores

v44.155.9

Compare Source

Bug Fixes

v44.155.8

Compare Source

Build System

v44.155.7

Compare Source

Miscellaneous Chores
  • deps: update dependency katex@>=0.11.0 <0.18.2 to v0.19.0 (main) (#​47018) (5c074fd)
  • deps: update dependency shell-quote@>=1.8.4 <1.11.0 to v1.12.0 (main) (#​47019) (7c9f750)
Build System

v44.155.6

Compare Source

Bug Fixes
  • deps: override transitive dependencies flagged by pnpm audit (#​46996) (66c56b5)

v44.155.5

Compare Source

Bug Fixes
  • http: share concurrent identical cache provider requests (#​46627) (4dc30ea)

v44.155.4

Compare Source

Build System

v44.155.3

Compare Source

Bug Fixes
  • workers/reconfigure: pass default branch to extraction config (#​46997) (5a3bfc0)
Documentation
  • Correct platform feature support table for Dependency Dashboard (#​46777) (109fc99)

v44.155.2

Compare Source

Bug Fixes
  • datasource/gitea-tags: return no digest for a missing repo or tag (#​46984) (690da35)
  • workers/repository: keep lookup results out of the extract cache (#​46982) (ad515fb)
Miscellaneous Chores

v44.155.1

Compare Source

Bug Fixes
Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.32.1 (main) (#​46972) (9947ade)

v44.155.0

Compare Source

Features

v44.154.1

Compare Source

Bug Fixes

v44.154.0

Compare Source

Features
Bug Fixes
  • workers/global: apply hostRules and internalHostAccess when resolving globalExtends (#​46666) (cf46a67)

v44.153.1

Compare Source

Bug Fixes
  • metadata: strip git+ scheme prefix from source urls for changelog fetching (#​45941) (476456b)
  • platform/github: replace rendered alerts after smart truncation (#​45613) (179f69c)

v44.153.0

Compare Source

Features
  • manager/apm: scope per-package tags to their own package (#​46737) (7a03427)

v44.152.0

Compare Source

Features
Bug Fixes
Miscellaneous Chores
Code Refactoring
Tests
  • json-schema: validate internal presets against the schema (#​46686) (2e22e1a)

v44.151.5

Compare Source

Bug Fixes
Code Refactoring

v44.151.4

Compare Source

Bug Fixes
  • config/validation: don't warn about a restricted option encrypted at the top level (#​46941) (67fa755), closes #​43020
  • json-schema: specify missing additionalProperties for maps of values (#​46681) (df8fe3d)

v44.151.3

Compare Source

Bug Fixes
  • datasource/gitlab-tags: don't cache failed digest lookups (#​46904) (fdedac1)
  • datasource/gitlab-tags: encode the ref of digest lookups (#​46905) (a551698)
Documentation
  • update references to astral-sh/setup-uv to v10.3.0 (main) (#​46932) (b28f4eb)
  • update references to jaegertracing/jaeger to v2.22.0 (main) (#​46934) (cb8a6d6)
  • update references to renovatebot/github-action to v46.3.8 (main) (#​46931) (9c127ee)
Miscellaneous Chores
  • deps: update ossf/scorecard-action action to v2.5.0 (main) (#​46933) (fa41347)

v44.151.2

Compare Source

Bug Fixes
Build System

v44.151.1

Compare Source

Bug Fixes
Documentation

v44.151.0

Compare Source

Features
Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.31.2 (main) (#​46917) (2fa8494)

v44.150.1

Compare Source

Bug Fixes

v44.150.0

Compare Source

Features
Miscellaneous Chores

v44.149.3

Compare Source

Bug Fixes
Documentation
  • github: group App permissions by repository and organization (#​46898) (05c7494)
Miscellaneous Chores
  • deps: update dependency pnpm to v11.28.4 (main) (#​46907) (0d357aa)
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.31.1 (main) (#​46908) (324e6a1)
  • deps: update pnpm/setup action to v3.1.1 (main) (#​46906) (f52a8ae)
  • tools: allow ambient environment in agent hook simple-git (#​46899) (3fc4836)

v44.149.2

Compare Source

Bug Fixes
Miscellaneous Chores
  • deps: update astral-sh/setup-uv action to v10.3.0 (main) (#​46893) (0f667f9)

v44.149.1

Compare Source

Bug Fixes
Miscellaneous Chores

v44.149.0

Compare Source

Features
Documentation
  • docker-build-process: remove Containerbase Sidecar image (#​46880) (05ec2f8)

v44.148.6

Compare Source

Bug Fixes
Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.31.0 (main) (#​46875) (f4c5ff9)
Build System

v44.148.5

Compare Source

Bug Fixes
Miscellaneous Chores

v44.148.4

Compare Source

Bug Fixes
Miscellaneous Chores

v44.148.3

Compare Source

Bug Fixes

v44.148.2

Compare Source

Bug Fixes
Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.30.1 (main) (#​46855) (83f5f9b)

v44.148.1

Compare Source

Miscellaneous Chores
Build System
  • deps: update dependency handlebars to v4.7.10 [security] (main) (#​46854) (7fcc9ab)

v44.148.0

Compare Source

Features
Miscellaneous Chores
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.30.0 (main) (#​46849) (3bdfdf5)

v44.147.0

Compare Source

Features
  • config: merge mergeable env options with RENOVATE_CONFIG (#​46844) (d071998)

v44.146.3

Compare Source

Bug Fixes
  • json-schema: don't treat a map of values as a nested config (#​46673) (d4074b4)
Miscellaneous Chores
  • deps: update github/codeql-action action to v4.38.3 (main) (#​46846) (a9097d3)
Code Refactoring
Tests

v44.146.2

Compare Source

Bug Fixes

v44.146.1

Compare Source

Bug Fixes

v44.146.0

Compare Source

Features
  • datasource/gitlab-packages: replace getJsonUnchecked with validated getJson (#​44143) (c050119)
Miscellaneous Chores
  • deps: update dependency vite to v8.3.2 (main) (#​46839) (2d8963e)
  • deps: update ghcr.io/containerbase/devcontainer docker tag to v14.29.1 (main) (#​46840) (08c512d)

v44.145.3

Compare Source

Bug Fixes
  • manager/helmv3: strip repository path from ECR registry login (#​46837) (5239d49)

v44.145.2

Compare Source

Miscellaneous Chores
  • deps: update docker/dockerfile docker tag to v1.28.0 (main) (#​46833) (ddc717d)
  • deps: update jlumbroso/free-disk-space action to v2 (main) (#​46787) (250498b)
Build System

v44.145.1

Compare Source

Bug Fixes

v44.145.0

Compare Source

Features
Miscellaneous Chores

v44.144.1

Compare Source

Bug Fixes
  • exec: re-run install-tool when switching back to an earlier tool version (#​46823) (2ca2bc0)

v44.144.0

Compare Source

Features
Bug Fixes
Code Refactoring
Tests
Build System

v44.143.0

Compare Source

Features
  • manager/github-actions: extract slsa-framework/actions/*' withs (#​46792) (4ca515b)
Bug Fixes
Miscellaneous Chores
  • deps: update actions/download-artifact action to v8.0.2 (main) (#​46813) (ef0c32b)
  • deps: update actions/upload-artifact action to v7.0.2 (main) (#​46814) (f6a6e41)
Code Refactoring
Build System

v44.142.1

Compare Source

Bug Fixes
Code Refactoring
  • datasource: add fetchJson() helpers to the Datasource base class (#​46112) (f07b349)
  • datasource: derive github-release-attachments from github-releases (#​46186) (f03acf6)
  • datasource: normalise github getDigest signatures (#​46187) (290f5dc)
  • datasource: pass the http client through the Datasource constructor (#​46108) (ee0e84f)
  • datasource: share a base class across the git host *-tags datasources (#​46185) (dc5352d)
  • datasource: share the GitLab URL helpers across the GitLab datasources (#​46188) (42805af)

v44.142.0

Compare Source

Features
  • datasource/crate: use host rule credentials for git index registries (#​46574) (9d59ac5)
Bug Fixes
Miscellaneous Chores
Code Refactoring

Configuration

📅 Schedule: (UTC)

  • 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.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | alpine | pinDigest | → `294b683` | | [authentik](https://goauthentik.io) ([source](https://github.com/goauthentik/helm)) | pin | `2026.8.x` → `2026.8.4` | | bitnami/kubectl | pinDigest | → `9962c17` | | [cert-manager](https://cert-manager.io) ([source](https://github.com/cert-manager/cert-manager)) | minor | `1.20.4` → `v1.21.2` | | [cloudnative-pg](https://cloudnative-pg.io) ([source](https://github.com/cloudnative-pg/charts)) | pin | `0.29.x` → `0.29.1` | | docker.io/alpine/kubectl | minor | `1.34.1` → `1.37.1` | | [docker.io/library/busybox](https://hub.docker.com/_/busybox) ([source](https://github.com/docker-library/busybox)) | pinDigest | → `fd7dc98` | | [docker.io/livekit/livekit-server](https://github.com/livekit/livekit) | patch | `v1.13.8` → `v1.13.10` | | [docker.io/mikefarah/yq](https://mikefarah.gitbook.io/yq/) ([source](https://github.com/mikefarah/yq)) | pinDigest | → `4b3d947` | | docker.io/wolveix/satisfactory-server | pinDigest | → `ac252db` | | [forgejo](https://forgejo.org/) ([source](https://code.forgejo.org/forgejo-helm/forgejo-helm)) | minor | `17.1.7` → `17.3.1` | | [garage-operator](https://github.com/rajsinghtech/garage-operator) | minor | `0.4.10` → `0.8.2` | | ghcr.io/bjw-s-labs/forgejo-runner | pinDigest | → `8b7a25c` | | [ghcr.io/bjw-s-labs/helm/app-template](https://github.com/bjw-s-labs/helm-charts) | minor | `5.2.1` → `5.3.0` | | ghcr.io/element-hq/lk-jwt-service | minor | `0.7.0` → `0.9.0` | | ghcr.io/element-hq/matrix-authentication-service | digest | `e089f10` → `085e372` | | [ghcr.io/element-hq/synapse](https://github.com/element-hq/synapse) | minor | `v1.162.0` → `v1.163.0` | | [ghcr.io/fluxcd/helm-controller](https://github.com/fluxcd/helm-controller) | pinDigest | → `0d52fff` | | [ghcr.io/fluxcd/kustomize-controller](https://github.com/fluxcd/kustomize-controller) | pinDigest | → `2ebeaa3` | | [ghcr.io/fluxcd/notification-controller](https://github.com/fluxcd/notification-controller) | pinDigest | → `840f318` | | [ghcr.io/fluxcd/source-controller](https://github.com/fluxcd/source-controller) | pinDigest | → `6a66931` | | [kured](https://github.com/kubereboot/kured) ([source](https://github.com/kubereboot/charts)) | pin | `6.x.x` → `6.1.0` | | [longhorn](https://github.com/longhorn/longhorn) ([source](https://github.com/longhorn/charts)) | pin | `1.x` → `1.13.0` | | [renovate/renovate](https://renovatebot.com) ([source](https://github.com/renovatebot/renovate)) | minor | [`44.141.0` → `44.164.7`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.141.0&to=44.164.7) | | [victoria-metrics-k8s-stack](https://github.com/VictoriaMetrics/helm-charts) | pin | `0.95.x` → `0.95.2` | --- ### Release Notes <details> <summary>cert-manager/cert-manager (cert-manager)</summary> ### [`v1.21.2`](https://github.com/cert-manager/cert-manager/releases/tag/v1.21.2) [Compare Source](https://github.com/cert-manager/cert-manager/compare/v1.21.1...v1.21.2) cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters. v1.21.2 fixes controller and webhook panics, data races, ACME renewal and HTTP-01 solver bugs, and a Gateway API dnsNames bug. It stops the ACME and Vault issuers copying untrusted HTTP response bodies into status conditions and Events, and tightens ambient AWS credential use for namespaced Vault Issuers. It also updates Go and several dependencies to fix reported security vulnerabilities. All users should upgrade. #### Changes by Kind ##### Bug or Regression - ACME Issuer response bodies are no longer reflected into Issuer status conditions or Kubernetes Events. Only ACME problem documents are surfaced (bounded in length); other responses are reported by HTTP status code alone, with the full error available in the controller logs. ([#&#8203;9239](https://github.com/cert-manager/cert-manager/issues/9239), [@&#8203;FelixPhipps](https://github.com/FelixPhipps)) - Cap ACME server response bodies at 16 MiB to guard against unbounded-body denial-of-service. ([#&#8203;9222](https://github.com/cert-manager/cert-manager/issues/9222), [@&#8203;FelixPhipps](https://github.com/FelixPhipps)) - De-duplicate dnsNames when multiple Gateway/ListenerSet listeners share a Secret ([#&#8203;9234](https://github.com/cert-manager/cert-manager/issues/9234), [@&#8203;speer](https://github.com/speer)) - Fix certificate renewal windows using February 29 cron schedules across non-leap century years. ([#&#8203;9240](https://github.com/cert-manager/cert-manager/issues/9240), [@&#8203;wieghx](https://github.com/wieghx)) - Fix validating webhook panics when AdmissionReview requests omit optional fields, by routing identity, approval, and resource validation on the always-present Resource/SubResource fields and denying (rather than silently allowing) requests with an unset or mismatched resource. As a side effect, validation is now also enforced for equivalent-converted requests on non-v1 API versions, which previously could skip validation. ([#&#8203;9235](https://github.com/cert-manager/cert-manager/issues/9235), [@&#8203;lunarwhite](https://github.com/lunarwhite)) - Fixed HTTP-01 solver cleanup so that a solver ingress, pod or service that has already been deleted no longer fails the cleanup with a NotFound error. ([#&#8203;9278](https://github.com/cert-manager/cert-manager/issues/9278), [@&#8203;arpitjain099](https://github.com/arpitjain099)) - Fixed a bug where `replaces` field was being populated for the wrong issuer on issuer changes ([#&#8203;9236](https://github.com/cert-manager/cert-manager/issues/9236), [@&#8203;hjoshi123](https://github.com/hjoshi123)) - Fixed a data race in the ACME HTTP-01 self-check that could occur when custom DNS servers were configured. ([#&#8203;9313](https://github.com/cert-manager/cert-manager/issues/9313), [@&#8203;shashankvarma499](https://github.com/shashankvarma499)) - Fixed a panic in the certificates-issuing controller when a CertificateRequest has a failure time set but no Ready condition. ([#&#8203;9238](https://github.com/cert-manager/cert-manager/issues/9238), [@&#8203;thc1006](https://github.com/thc1006)) - Fixed a race in pkg/scheduler where the cleanup of a fired timer could cancel a newer timer scheduled for the same object, silently dropping a rescheduled poll. ([#&#8203;9312](https://github.com/cert-manager/cert-manager/issues/9312), [@&#8203;shashankvarma499](https://github.com/shashankvarma499)) - Fixed an issue where the body of a non-Vault HTTP response from `spec.vault.server` could be copied into the Vault Issuer's Ready condition and its Kubernetes Events. Such responses now report only the HTTP status code, and Vault's own error messages are truncated before being persisted. ([#&#8203;9262](https://github.com/cert-manager/cert-manager/issues/9262), [@&#8203;FelixPhipps](https://github.com/FelixPhipps)) - Ingress-shim no longer removes the applyset label from cached Ingress and Gateway objects ([#&#8203;9314](https://github.com/cert-manager/cert-manager/issues/9314), [@&#8203;KR-Ravindra](https://github.com/KR-Ravindra)) - The ACME HTTP-01 self-check no longer reflects the fetched response body in `Challenge.status.reason`, preventing disclosure of internal response contents reachable via redirects. The response is still available in the controller's debug logs. ([#&#8203;9232](https://github.com/cert-manager/cert-manager/issues/9232), [@&#8203;FelixPhipps](https://github.com/FelixPhipps)) - The `vault` issuer no longer authenticates to Vault using the cert-manager controller's ambient AWS credentials for AWS IAM auth on a namespaced `Issuer`, unless ambient credentials are explicitly enabled via `--issuer-ambient-credentials`. `ClusterIssuer` and explicit `serviceAccountRef` (IRSA) configurations are unaffected. ([#&#8203;9231](https://github.com/cert-manager/cert-manager/issues/9231), [@&#8203;FelixPhipps](https://github.com/FelixPhipps)) ##### Other (Cleanup or Flake) - Upgrade Go to 1.26.6, which includes security fixes to the go command, and the crypto/tls, encoding/asn1, encoding/xml, html/template, net, net/http, and net/url packages. ([#&#8203;9151](https://github.com/cert-manager/cert-manager/issues/9151), [@&#8203;wallrj](https://github.com/wallrj)) - Upgrade Go to 1.26.8. ([#&#8203;9323](https://github.com/cert-manager/cert-manager/issues/9323), [@&#8203;wallrj](https://github.com/wallrj)) - Bump `google.golang.org/grpc` to v1.83.2 to fix reported security vulnerabilities ([#&#8203;9255](https://github.com/cert-manager/cert-manager/issues/9255), [#&#8203;9317](https://github.com/cert-manager/cert-manager/issues/9317)) - Bump `golang.org/x/crypto` to v0.56.0 to fix reported security vulnerabilities ([#&#8203;9265](https://github.com/cert-manager/cert-manager/issues/9265)) ### [`v1.21.1`](https://github.com/cert-manager/cert-manager/releases/tag/v1.21.1) [Compare Source](https://github.com/cert-manager/cert-manager/compare/v1.21.0...v1.21.1) cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters. v1.21.1 fixes a controller panic for Certificates with `spec.renewal.policy: Disabled`, a regression in 1.21.0 which caused log spam and dropped Secret informer events, Issuers and ClusterIssuers getting stuck at `Ready=False` (`InvalidSolver`) when a referenced ACME DNS-01 solver Secret is created after the Issuer, and the commented Gateway API example in the Helm chart values. It also updates several dependencies to fix reported security vulnerabilities. All users should upgrade. #### Changes by Kind ##### Bug or Regression - Avoid controller panic if a Certificate sets spec.renewal.policy=Disabled ([#&#8203;9038](https://github.com/cert-manager/cert-manager/issues/9038), [@&#8203;sklirg](https://github.com/sklirg)) - Fix Issuer/ClusterIssuer stuck at Ready=False/InvalidSolver after a missing ACME DNS-01 solver Secret is created ([#&#8203;9083](https://github.com/cert-manager/cert-manager/issues/9083), [@&#8203;SebTardif](https://github.com/SebTardif)) - Fix log spam and dropped Secret informer events for non-cert-manager Secrets, caused by a generics regression introduced in 1.21.0. ([#&#8203;9037](https://github.com/cert-manager/cert-manager/issues/9037), [@&#8203;wallrj-cyberark](https://github.com/wallrj-cyberark)) - Fixed the commented Gateway API config example in the Helm chart values to use `gatewayAPI.enabled` instead of the invalid `gatewayAPI.enable`. ([#&#8203;9012](https://github.com/cert-manager/cert-manager/issues/9012), [@&#8203;mateenali66](https://github.com/mateenali66)) ##### Other (Cleanup or Flake) - Bump `golang.org/x/text` to v0.40.0 to fix a reported security vulnerability ([#&#8203;9039](https://github.com/cert-manager/cert-manager/issues/9039), [@&#8203;wallrj-cyberark](https://github.com/wallrj-cyberark)) - Bump `google.golang.org/grpc` to v1.82.1 to fix a reported security vulnerability ([#&#8203;9063](https://github.com/cert-manager/cert-manager/issues/9063)) - Bump `github.com/google/cel-go` to v0.29.0 to fix a reported security vulnerability ([#&#8203;9072](https://github.com/cert-manager/cert-manager/issues/9072)) - Bump `go.opentelemetry.io/otel` to v1.44.0 to fix a reported security vulnerability ([#&#8203;9073](https://github.com/cert-manager/cert-manager/issues/9073)) - Update distroless base images ([#&#8203;9000](https://github.com/cert-manager/cert-manager/issues/9000), [#&#8203;9025](https://github.com/cert-manager/cert-manager/issues/9025)) ### [`v1.21.0`](https://github.com/cert-manager/cert-manager/releases/tag/v1.21.0) [Compare Source](https://github.com/cert-manager/cert-manager/compare/v1.20.4...v1.21.0) cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters. cert-manager 1.21 brings ACME Renewal Information (ARI) support, AWS IAM authentication for the Vault issuer, several security hardening changes, and continued improvements to Gateway API integration and cainjector. There are three breaking changes related to Helm chart RBAC and metrics values — review them carefully before upgrading. #### Known Issues - **Controller crash-loops when a Certificate sets `renewal.policy: Disabled`**: the new Certificate renewal policies feature ([#&#8203;8258](https://github.com/cert-manager/cert-manager/issues/8258)) causes a nil pointer dereference panic in the trigger controller whenever a Certificate's `spec.renewal.policy` is set to `Disabled` — `pki.RenewalTime()` returns `(nil, nil)` for that policy, but the caller unconditionally dereferences the result. This crashes the controller process (crash-loop) for any cluster with such a Certificate. **Workaround**: do not set `renewal.policy: Disabled` on any Certificate until this is fixed; remove the field (or set a different policy) from any Certificate that already has it, and restart the controller if it is currently crash-looping. See [#&#8203;9031](https://github.com/cert-manager/cert-manager/issues/9031) for details. - **Log spam for non-cert-manager-labelled Secret events**: the typed predicates refactoring ([#&#8203;8407](https://github.com/cert-manager/cert-manager/issues/8407)) causes `filteredEventHandler` type assertion failures (`"OnAdd missing Object"`, `"OnUpdate missing ObjectOld"`, `"OnDelete missing Object"`) for every non-cert-manager-labelled Secret event, multiplied by 7 certificate sub-controllers. **This is cosmetic only** — the affected controllers only need events from cert-manager-labelled Secrets (which arrive via the typed informer); the metadata informer events were always filtered out by predicates in previous versions. Issuer and ClusterIssuer controllers are not affected. See [#&#8203;8994](https://github.com/cert-manager/cert-manager/issues/8994) for details. - **Issuer/ClusterIssuer can get stuck at `Ready: False, Reason: InvalidSolver` and never self-correct**: new eager validation of ACME solver Secrets ([#&#8203;8255](https://github.com/cert-manager/cert-manager/issues/8255)) means an Issuer/ClusterIssuer referencing a solver Secret (e.g. a DNS01 provider credential) that doesn't exist yet will correctly report `Ready: False`, but creating the missing Secret afterwards does not trigger re-reconciliation — the controller's Secret-watch logic was never updated to recognise solver Secrets. It will only recover on the next 10-hour informer resync, a change to the Issuer/ClusterIssuer's own spec, or a controller restart. **Workaround**: after creating the missing Secret, make a trivial edit to the Issuer/ClusterIssuer spec (or delete and recreate it) to force reconciliation. See [#&#8203;9036](https://github.com/cert-manager/cert-manager/issues/9036) for details and a fix proposal. #### Major Themes ##### Default `tokenrequest` RBAC removed from Helm chart > ⚠️ Breaking change The Helm chart no longer creates a default `Role` and `RoleBinding` granting the cert-manager controller permission to create tokens for its own ServiceAccount (`serviceaccounts/token: create`). No documented workflow requires this RBAC — the Route53 docs section that motivated it was removed in 2024. If you use `serviceAccountRef.name` pointing at the controller ServiceAccount, you must now either create your own `Role`/`RoleBinding` granting `serviceaccounts/token: create`, or migrate to a dedicated ServiceAccount (recommended — see the [Vault](https://cert-manager.io/docs/configuration/vault/) or [Route53](https://cert-manager.io/docs/configuration/acme/dns01/route53/) documentation). ##### Restrict Challenge and Order RBAC in `cert-manager-edit` ClusterRole > ⚠️ Potentially breaking change The `cert-manager-edit` aggregate ClusterRole no longer grants `create` for `challenges.acme.cert-manager.io` or `create`, `patch`, `update` for `orders.acme.cert-manager.io` ([`GHSA-8rvj-mm4h-c258`](https://github.com/cert-manager/cert-manager/security/advisories/GHSA-8rvj-mm4h-c258)). These resources are internal to cert-manager's ACME workflow. Challenge `patch` and `update` are retained because users may need them to remove stuck finalizers. This change was already shipped in v1.20.3 and v1.19.6, so if you are running one of those versions this will not be a breaking change. If you have tooling that creates Challenge or Order resources directly, you will need to grant those permissions explicitly. ##### Metrics port name and path Helm values removed > ⚠️ Breaking change The Helm values `prometheus.servicemonitor.targetPort`, `prometheus.servicemonitor.path`, and `prometheus.podmonitor.path` have been removed. The controller Service metrics port has been renamed from `tcp-prometheus-servicemonitor` to `http-metrics`. Because the Helm values schema uses `additionalProperties: false`, users who still have any of the removed keys in their values overrides will see a schema validation error on upgrade — remove them before upgrading. ([#&#8203;8952](https://github.com/cert-manager/cert-manager/issues/8952)) ##### ACME and Certificate Management - **ACME Renewal Information (ARI)**: experimental support for [RFC 9773](https://www.rfc-editor.org/rfc/rfc9773) behind the `ACMEUseARI` feature gate. When enabled, cert-manager queries the ACME server's `renewalInfo` endpoint for the recommended renewal window, allowing servers like Let's Encrypt to proactively prompt renewal during mass revocations or CA key rollovers. ([#&#8203;8798](https://github.com/cert-manager/cert-manager/issues/8798)) - **`waitInsteadOfSelfCheck` solver option**: skip cert-manager's own self-check and instead wait a configured duration before asking the ACME server to validate. An escape hatch for split-horizon DNS and NAT hairpin environments. See [configuration details](https://cert-manager.io/docs/configuration/acme/#skip-the-self-check-with-waitinsteadofselfcheck). ([#&#8203;8858](https://github.com/cert-manager/cert-manager/issues/8858)) - **AWS IAM authentication for Vault**: the Vault issuer now supports IRSA, EKS Pod Identity, and ambient EC2/ECS credentials, removing the need for long-lived AWS Secrets. ([#&#8203;8422](https://github.com/cert-manager/cert-manager/issues/8422)) - **Certificate renewal policies**: a new `renewalPolicies` field on the Certificate API provides more expressive control over renewal scheduling, complementing `renewBefore` and `renewBeforePercentage`. ([#&#8203;8258](https://github.com/cert-manager/cert-manager/issues/8258)) - **Configurable CertificateRequest retry backoff**: the new `--certificate-request-maximum-backoff-duration` flag (default: 32 hours) caps the exponential backoff for failed CertificateRequests, useful for environments with scheduled CA maintenance windows. ([#&#8203;8893](https://github.com/cert-manager/cert-manager/issues/8893)) - **Modern2026 [PKCS#12](https://github.com/PKCS/cert-manager/issues/12) profile**: a new FIPS 140-3 compatible encoding profile using AES-256 + SHA-256 KDFs instead of legacy 3DES/RC2. ([#&#8203;8841](https://github.com/cert-manager/cert-manager/issues/8841)) - **Webhook certificate renewal after system suspend**: the webhook now detects missed certificate renewals after system suspend (S3/S4) or VM live migration by polling wall-clock time, recovering within one minute of resume. ([#&#8203;8464](https://github.com/cert-manager/cert-manager/issues/8464)) ##### Gateway API and cainjector - **HTTP01 ListenerSet parentRef fallback**: the `acme.cert-manager.io/http01-parentreffallback: "true"` annotation causes cert-manager to use the parent Gateway for solver HTTPRoutes instead of the ListenerSet, enabling TLS-only ListenerSets to use a shared HTTP listener for ACME challenges. ([#&#8203;8749](https://github.com/cert-manager/cert-manager/issues/8749)) - **`cert-manager.io/ignore-tls-listeners` annotation**: exclude specific Gateway TLS listeners from certificate management. ([#&#8203;8727](https://github.com/cert-manager/cert-manager/issues/8727)) - **Additional listener protocols**: configurable listener protocols beyond the default set. ([#&#8203;8683](https://github.com/cert-manager/cert-manager/issues/8683)) - **`enableGatewayAPI` configuration restructure**: `enableGatewayAPI` and `enableGatewayAPIListenerSet` are deprecated in favor of `gatewayAPI.enabled` / `gatewayAPI.enableListenerSet`. The old fields continue to work. ([#&#8203;8732](https://github.com/cert-manager/cert-manager/issues/8732)) - **`CAInjectorMerging` promoted to GA**: unconditionally enabled; will be removed in a future release. ([#&#8203;8583](https://github.com/cert-manager/cert-manager/issues/8583)) - **cainjector server-side apply unconditional**: the `ServerSideApply` feature gate is deprecated. ([#&#8203;8692](https://github.com/cert-manager/cert-manager/issues/8692)) - **cainjector `--ignore-namespaces` flag**: skip specified namespaces when watching Secrets for injection. ([#&#8203;8614](https://github.com/cert-manager/cert-manager/issues/8614)) ##### Deployment and Observability - **Venafi OAuth token observability**: a new `AuthFailed` Issuer condition reason distinguishes bad credentials from transient errors. PANW NGTS is now supported as a Venafi backend. ([#&#8203;8808](https://github.com/cert-manager/cert-manager/issues/8808), [#&#8203;8779](https://github.com/cert-manager/cert-manager/issues/8779)) - **`runtimeClassName` support**: configurable for cert-manager components and ACME HTTP01 solver pods. ([#&#8203;8791](https://github.com/cert-manager/cert-manager/issues/8791), [#&#8203;8976](https://github.com/cert-manager/cert-manager/issues/8976)) - **`startupapicheck.ttlSecondsAfterFinished`**: opt-in automatic cleanup of the startupapicheck Job. ([#&#8203;8523](https://github.com/cert-manager/cert-manager/issues/8523)) - **`--acme-http01-solver-extra-labels`**: propagate `global.commonLabels` to dynamically-created ACME HTTP01 solver resources. ([#&#8203;8761](https://github.com/cert-manager/cert-manager/issues/8761)) ##### Notable Bug Fixes - **Integer overflow in `renewBeforePercentage`**: Certificates with durations longer than approximately 3 years were incorrectly rejected or assigned incorrect renewal times. ([#&#8203;8947](https://github.com/cert-manager/cert-manager/issues/8947)) - **Infinite re-issuance loop**: cert-manager no longer loops when an issuer returns an already-expired certificate. ([#&#8203;8610](https://github.com/cert-manager/cert-manager/issues/8610)) - **ACME transient network errors**: challenges no longer permanently fail on TLS handshake timeouts, DNS resolution failures, or context cancellation during nonce fetches and authorization waits. ([#&#8203;8760](https://github.com/cert-manager/cert-manager/issues/8760)) - **DNS-over-HTTPS response body cap**: response body reads are now bounded at 128 KB to prevent potential OOM. ([#&#8203;8803](https://github.com/cert-manager/cert-manager/issues/8803)) - **Vault path traversal**: the Vault issuer webhook now rejects `..` path segments, preventing `path.Join` from silently resolving relative segments. ([#&#8203;8930](https://github.com/cert-manager/cert-manager/issues/8930)) - **DNS issuer secrets validated before ready**: prevents silent misconfiguration. ([#&#8203;8255](https://github.com/cert-manager/cert-manager/issues/8255)) #### Community As always, we'd like to thank all of the community members who helped in this release cycle, including all below who merged a PR and anyone that helped by commenting on issues, testing, or getting involved in cert-manager meetings. We're lucky to have you involved. A special thanks to: - [@&#8203;Copilot](https://github.com/Copilot) - [@&#8203;FelixPhipps](https://github.com/FelixPhipps) - [@&#8203;Peac36](https://github.com/Peac36) - [@&#8203;SebTardif](https://github.com/SebTardif) - [@&#8203;apkatsikas](https://github.com/apkatsikas) - [@&#8203;bitloi](https://github.com/bitloi) - [@&#8203;dap0am](https://github.com/dap0am) - [@&#8203;figaw](https://github.com/figaw) - [@&#8203;immanuwell](https://github.com/immanuwell) - [@&#8203;jabbrwcky](https://github.com/jabbrwcky) - [@&#8203;jnohlgard](https://github.com/jnohlgard) - [@&#8203;jsoref](https://github.com/jsoref) - [@&#8203;ltwongaa](https://github.com/ltwongaa) - [@&#8203;lunarwhite](https://github.com/lunarwhite) - [@&#8203;mateenali66](https://github.com/mateenali66) - [@&#8203;onurmicoogullari](https://github.com/onurmicoogullari) - [@&#8203;putongyong](https://github.com/putongyong) - [@&#8203;seanorama](https://github.com/seanorama) - [@&#8203;texasich](https://github.com/texasich) for their contributions, comments and support! Also, thanks to the cert-manager maintainer team for their help in this release: - [@&#8203;SgtCoDFish](https://github.com/SgtCoDFish) - [@&#8203;ThatsMrTalbot](https://github.com/ThatsMrTalbot) - [@&#8203;erikgb](https://github.com/erikgb) - [@&#8203;hjoshi123](https://github.com/hjoshi123) - [@&#8203;inteon](https://github.com/inteon) - [@&#8203;maelvls](https://github.com/maelvls) - [@&#8203;munnerz](https://github.com/munnerz) - [@&#8203;wallrj](https://github.com/wallrj) - [@&#8203;wallrj-cyberark](https://github.com/wallrj-cyberark) And finally, thanks to the cert-manager steering committee for their feedback in this release cycle: - [@&#8203;FlorianLiebhart](https://github.com/FlorianLiebhart) - [@&#8203;TrilokGeer](https://github.com/TrilokGeer) - [@&#8203;ianarsenault](https://github.com/ianarsenault) - [@&#8203;ssyno](https://github.com/ssyno) #### Changes since v1.20.0 ##### Feature - Add Venafi OAuth token request observability and a new `AuthFailed` Issuer condition reason to distinguish bad credentials from transient infrastructure errors. ([#&#8203;8808](https://github.com/cert-manager/cert-manager/issues/8808), [@&#8203;FelixPhipps](https://github.com/FelixPhipps)) - Add `certificateRequestMaximumBackoffDuration` controller configuration option to cap retry backoff time for failed CertificateRequests. Configurable via config file, `--certificate-request-maximum-backoff-duration` CLI flag, or Helm value `config.certificateRequestMaximumBackoffDuration`. Defaults to 32 hours for backward compatibility. ([#&#8203;8893](https://github.com/cert-manager/cert-manager/issues/8893), [@&#8203;lunarwhite](https://github.com/lunarwhite)) - Add an optional `waitInsteadOfSelfCheck` field to ACME HTTP01 and DNS01 solvers so cert-manager can skip its own self-check and ask the ACME server to validate after a configured wait. ([#&#8203;8858](https://github.com/cert-manager/cert-manager/issues/8858), [@&#8203;wallrj](https://github.com/wallrj)) - Add configurable `runtimeClassName` support for cert-manager components and ACME HTTP01 solver pods. ([#&#8203;8791](https://github.com/cert-manager/cert-manager/issues/8791), [@&#8203;jsoref](https://github.com/jsoref)) - Add direct configurable `runtimeClassName` support for ACME HTTP01 solver pods via the `acmesolver.runtimeClassName` Helm value. ([#&#8203;8976](https://github.com/cert-manager/cert-manager/issues/8976), [@&#8203;erikgb](https://github.com/erikgb)) - Add new controller flag `--acme-http01-solver-extra-labels`, allowing Helm's `global.commonLabels` to propagate to all dynamically-created ACME HTTP01 solver resources (Pods, Services, Ingresses, or Gateway API HTTPRoutes). ([#&#8203;8761](https://github.com/cert-manager/cert-manager/issues/8761), [@&#8203;lunarwhite](https://github.com/lunarwhite)) - Add opt-in `startupapicheck.ttlSecondsAfterFinished` Helm value to enable automatic cleanup of the startupapicheck Job via the Kubernetes TTL-after-finished controller. ([#&#8203;8523](https://github.com/cert-manager/cert-manager/issues/8523), [@&#8203;dap0am](https://github.com/dap0am)) - Added ARI support through the ACMEUseARI feature gate. ([#&#8203;8798](https://github.com/cert-manager/cert-manager/issues/8798), [@&#8203;hjoshi123](https://github.com/hjoshi123)) - Added AWS IAM authentication support for Vault issuer, including IRSA (IAM Roles for Service Accounts) and ambient credentials (EC2/ECS). ([#&#8203;8422](https://github.com/cert-manager/cert-manager/issues/8422), [@&#8203;bitloi](https://github.com/bitloi)) - Added `cert-manager.io/ignore-tls-listeners` annotation for ignoring gwapi listeners. ([#&#8203;8727](https://github.com/cert-manager/cert-manager/issues/8727), [@&#8203;hjoshi123](https://github.com/hjoshi123)) - Added option to specify additional listener protocols the GatewayAPI integration will consider when creating certificates. ([#&#8203;8683](https://github.com/cert-manager/cert-manager/issues/8683), [@&#8203;ThatsMrTalbot](https://github.com/ThatsMrTalbot)) - Adds support for the Modern2026 go-pkcs12 profile and FIPS 140-3 ([#&#8203;8841](https://github.com/cert-manager/cert-manager/issues/8841), [@&#8203;seanorama](https://github.com/seanorama)) - Cainjector: A new flag `--ignore-namespaces` was added to the cainjector binary. It can be used to filter out namespaces from being watched for secrets to use for injectables. ([#&#8203;8614](https://github.com/cert-manager/cert-manager/issues/8614), [@&#8203;figaw](https://github.com/figaw)) - Disabled client side rate-limiting if AP\&F is enabled. ([#&#8203;8757](https://github.com/cert-manager/cert-manager/issues/8757), [@&#8203;hjoshi123](https://github.com/hjoshi123)) - Extend the Venafi/CyberArk integration to also support PANW NGTS. ([#&#8203;8779](https://github.com/cert-manager/cert-manager/issues/8779), [@&#8203;FelixPhipps](https://github.com/FelixPhipps)) - Adding certificate renewal policies ([#&#8203;8258](https://github.com/cert-manager/cert-manager/issues/8258), [@&#8203;hjoshi123](https://github.com/hjoshi123)) - Make cainjector use SSA unconditionally and deprecate the ServerSideApply feature gate ([#&#8203;8692](https://github.com/cert-manager/cert-manager/issues/8692), [@&#8203;erikgb](https://github.com/erikgb)) - Processed annotations `cert-manager.io/alt-names`, `cert-manager.io/ip-sans` to Certificates generated from ingress like objects in cert-shim controllers. ([#&#8203;8927](https://github.com/cert-manager/cert-manager/issues/8927), [@&#8203;jabbrwcky](https://github.com/jabbrwcky)) - Promote the CAInjectorMerging feature gate to GA ([#&#8203;8583](https://github.com/cert-manager/cert-manager/issues/8583), [@&#8203;Copilot](https://github.com/Copilot)) - When using ACME HTTP-01 with a ListenerSet, setting the annotation `acme.cert-manager.io/http01-parentreffallback: "true"` causes cert-manager to use the parent Gateway as the solver HTTPRoute parentRef instead of the ListenerSet. This enables TLS-only ListenerSets to rely on a shared Gateway HTTP listener for ACME challenges. ([#&#8203;8749](https://github.com/cert-manager/cert-manager/issues/8749), [@&#8203;apkatsikas](https://github.com/apkatsikas)) ##### Bug or Regression - **BREAKING**: The Helm chart no longer ships a default `Role` and `RoleBinding` granting the cert-manager controller ServiceAccount permission to create tokens for itself (`serviceaccounts/token: create`). This RBAC was added in v1.16 ([#&#8203;7213](https://github.com/cert-manager/cert-manager/issues/7213)) but no documented workflow requires it, and the motivating Route53 docs section was removed in Oct 2024. If you rely on `serviceAccountRef.name` pointing at the controller ServiceAccount (an undocumented pattern), you must now create your own `Role` and `RoleBinding` granting `serviceaccounts/token: create` on that ServiceAccount, or migrate to one of the documented patterns (IRSA ambient, or a dedicated ServiceAccount with its own RBAC). ([#&#8203;8931](https://github.com/cert-manager/cert-manager/issues/8931), [@&#8203;wallrj-cyberark](https://github.com/wallrj-cyberark)) - ACME challenges no longer terminally fail on transient network errors (TLS handshake timeouts, DNS failures, context cancellation) during nonce fetches and authorization waits. The challenge controller returns the error and lets the workqueue retry with backoff. ([#&#8203;8760](https://github.com/cert-manager/cert-manager/issues/8760), [@&#8203;texasich](https://github.com/texasich)) - Add dns issuer secrets validation before marking it as ready ([#&#8203;8255](https://github.com/cert-manager/cert-manager/issues/8255), [@&#8203;Peac36](https://github.com/Peac36)) - Add missing issuer finalizer RBAC to the order controller to support owner references ([#&#8203;8654](https://github.com/cert-manager/cert-manager/issues/8654), [@&#8203;erikgb](https://github.com/erikgb)) - ClusterIssuer metrics collector now correctly respects the enabled-controllers configuration, avoiding a redundant startup when only operating within a namespace. ([#&#8203;8822](https://github.com/cert-manager/cert-manager/issues/8822), [@&#8203;lunarwhite](https://github.com/lunarwhite)) - Fix Venafi TPP issuer setup and signing regression on master: restore authentication of the vcert connector in the client constructor, which was removed in [#&#8203;8808](https://github.com/cert-manager/cert-manager/issues/8808). ([#&#8203;8843](https://github.com/cert-manager/cert-manager/issues/8843), [@&#8203;wallrj-cyberark](https://github.com/wallrj-cyberark)) - Fix a performance issue in the certificateRequestApproval webhook where CertificateRequests referencing a GroupKind whose CRD is not yet installed would trigger repeated API server discovery queries on every admission request. Negative results are now cached for 30 seconds. ([#&#8203;8651](https://github.com/cert-manager/cert-manager/issues/8651), [@&#8203;mateenali66](https://github.com/mateenali66)) - Fix webhook serving certificate not being renewed after system suspend. ([#&#8203;8464](https://github.com/cert-manager/cert-manager/issues/8464), [@&#8203;Peac36](https://github.com/Peac36)) - Fixed a rare panic in the trigger controller when a Certificate is deleted from the informer cache while a reconcile is in progress (e.g. during namespace teardown). ([#&#8203;8962](https://github.com/cert-manager/cert-manager/issues/8962), [@&#8203;hjoshi123](https://github.com/hjoshi123)) - Fixed an integer overflow in `renewBeforePercentage` calculations that caused Certificates with durations longer than approximately 3 years to be incorrectly rejected by validation or assigned incorrect renewal times. ([#&#8203;8947](https://github.com/cert-manager/cert-manager/issues/8947), [@&#8203;ThatsMrTalbot](https://github.com/ThatsMrTalbot)) - Fixed duplicate `parentRef` bug when both issuer config and annotations are present. ([#&#8203;8619](https://github.com/cert-manager/cert-manager/issues/8619), [@&#8203;hjoshi123](https://github.com/hjoshi123)) - Fixed infinite re-issuance loop when issuer returns an already expired certificate ([#&#8203;8610](https://github.com/cert-manager/cert-manager/issues/8610), [@&#8203;onurmicoogullari](https://github.com/onurmicoogullari)) - Fixed local `e2e-setup-samplewebhook` installation to use the samplewebhook image repository and tag from the saved image tarball manifest. ([#&#8203;8821](https://github.com/cert-manager/cert-manager/issues/8821), [@&#8203;wallrj](https://github.com/wallrj)) - Fixed potential OOM in DNS-over-HTTPS client by bounding response body read with io.LimitReader (128 KB cap). ([#&#8203;8803](https://github.com/cert-manager/cert-manager/issues/8803), [@&#8203;SebTardif](https://github.com/SebTardif)) - Fixed validation of timezone-prefixed renewal window cron specs without a schedule. ([#&#8203;8813](https://github.com/cert-manager/cert-manager/issues/8813), [@&#8203;immanuwell](https://github.com/immanuwell)) - Helm chart bugfix: rename image helper to avoid umbrella chart conflicts ([#&#8203;8753](https://github.com/cert-manager/cert-manager/issues/8753), [@&#8203;FelixPhipps](https://github.com/FelixPhipps)) - Helm: Fix invalid YAML generated when both `webhook.config` and `webhook.volumes` are defined. ([#&#8203;8664](https://github.com/cert-manager/cert-manager/issues/8664), [@&#8203;jnohlgard](https://github.com/jnohlgard)) - Remove ACME Challenge `create` and Order `create`/`patch`/`update` from the cert-manager-edit aggregate ClusterRole to prevent direct manipulation of these internal resources (GHSA-8rvj-mm4h-c258). ([#&#8203;8958](https://github.com/cert-manager/cert-manager/issues/8958), [@&#8203;wallrj-cyberark](https://github.com/wallrj-cyberark)) - Remove issuer owner reference from challenges blocking challenge garbage collection ([#&#8203;8743](https://github.com/cert-manager/cert-manager/issues/8743), [@&#8203;erikgb](https://github.com/erikgb)) - Update logic to identify and preserve the secret matching nextPrivateKeySecretName ([#&#8203;8577](https://github.com/cert-manager/cert-manager/issues/8577), [@&#8203;putongyong](https://github.com/putongyong)) - Vault Issuer webhook validation now rejects `..` path segments in `spec.vault.path` and auth mount path fields, preventing `path.Join` from silently resolving relative segments before constructing the Vault API request. ([#&#8203;8930](https://github.com/cert-manager/cert-manager/issues/8930), [@&#8203;wallrj-cyberark](https://github.com/wallrj-cyberark)) ##### Other (Cleanup or Flake) - API cleanup: removed deprecated ObjectReference ([#&#8203;8625](https://github.com/cert-manager/cert-manager/issues/8625), [@&#8203;inteon](https://github.com/inteon)) - Remove Helm values `prometheus.servicemonitor.targetPort`, `prometheus.servicemonitor.path`, and `prometheus.podmonitor.path`. The metrics path is always `/metrics` and the target port is always `http-metrics`. Rename the controller service metrics port from `tcp-prometheus-servicemonitor` to `http-metrics` for consistency with other workloads. Users must remove these keys from their value overrides before upgrading. ([#&#8203;8952](https://github.com/cert-manager/cert-manager/issues/8952), [@&#8203;erikgb](https://github.com/erikgb)) - The `enableGatewayAPI` and `enableGatewayAPIListenerSet` fields on `ControllerConfiguration` are deprecated and moved into the `gatewayAPI` sub-struct as `gatewayAPI.enabled` and `gatewayAPI.enableListenerSet`. The old fields continue to work. ([#&#8203;8732](https://github.com/cert-manager/cert-manager/issues/8732), [@&#8203;ThatsMrTalbot](https://github.com/ThatsMrTalbot)) - Update base images to Debian 13 ([#&#8203;8849](https://github.com/cert-manager/cert-manager/issues/8849), [@&#8203;ltwongaa](https://github.com/ltwongaa)) </details> <details> <summary>livekit/livekit (docker.io/livekit/livekit-server)</summary> ### [`v1.13.10`](https://github.com/livekit/livekit/releases/tag/v1.13.10) [Compare Source](https://github.com/livekit/livekit/compare/v1.13.9...v1.13.10) ##### Changed - sfu: forward the dependency descriptor for VP8 simulcast ([#&#8203;4987](https://github.com/livekit/livekit/issues/4987)) - sfu: keep VP8 descriptor frame numbers across migration ([#&#8203;4989](https://github.com/livekit/livekit/issues/4989)) - sfu: filter VP9 and AV1 simulcast temporal layers with the dependency descriptor ([#&#8203;4991](https://github.com/livekit/livekit/issues/4991)) - sfu: filter VP8 temporal layers by frame when the dependency descriptor is sent ([#&#8203;4976](https://github.com/livekit/livekit/issues/4976)) - sfu: switch VP8 temporal layers up with the dependency descriptor ([#&#8203;4974](https://github.com/livekit/livekit/issues/4974)) - sfu: pad the slot of a filtered packet that follows a sequence number gap ([#&#8203;4983](https://github.com/livekit/livekit/issues/4983)) - sfu: send padding in the slot of a dropped out-of-order packet ([#&#8203;4979](https://github.com/livekit/livekit/issues/4979)) - sfu: parse VP8 and VP9 payload descriptors without an allocation ([#&#8203;4981](https://github.com/livekit/livekit/issues/4981)) - DownTrack: arm key frame requester timer only while a layer lock is pending ([#&#8203;4980](https://github.com/livekit/livekit/issues/4980)) - turn: refuse TCP relays and limit relays to this host to media ports ([#&#8203;4992](https://github.com/livekit/livekit/issues/4992)) - agent endpoints: address an unnamed deployment as "\_" ([#&#8203;4997](https://github.com/livekit/livekit/issues/4997)) - Add OSS Scanner build image and threat model ([#&#8203;4995](https://github.com/livekit/livekit/issues/4995)) - Update golang Docker tag to v1.27.1 ([#&#8203;4985](https://github.com/livekit/livekit/issues/4985)) - Update alpine Docker tag to v3.24.2 ([#&#8203;4984](https://github.com/livekit/livekit/issues/4984)) - Update module github.com/maxbrunsfeld/counterfeiter/v6 to v6.13.0 ([#&#8203;4915](https://github.com/livekit/livekit/issues/4915)) ##### Fixed - Send NACKs when processing RTX packets ([#&#8203;5000](https://github.com/livekit/livekit/issues/5000)) - sfu: send padding-only packets with no payload ([#&#8203;4993](https://github.com/livekit/livekit/issues/4993)) - rtc: release timed out pending tracks at the pending track limit ([#&#8203;4998](https://github.com/livekit/livekit/issues/4998)) - Fix nil pointer dereference in IOInfoService.UpdateIngressState ([#&#8203;4806](https://github.com/livekit/livekit/issues/4806)) - rtc: keep update cache eviction order when listing recent disconnects ([#&#8203;4975](https://github.com/livekit/livekit/issues/4975)) - fix(cli): return non-zero exit status on command errors ([#&#8203;4888](https://github.com/livekit/livekit/issues/4888)) - Disable AV1 for Firefox clients before 157 ([#&#8203;4962](https://github.com/livekit/livekit/issues/4962)) ### [`v1.13.9`](https://github.com/livekit/livekit/releases/tag/v1.13.9) [Compare Source](https://github.com/livekit/livekit/compare/v1.13.8...v1.13.9) Please note that release v1.13.8 introduced a behaviour change that caused egress start failures explained in [#&#8203;4955](https://github.com/livekit/livekit/issues/4955). This release restores the behaviour to what it was in v1.13.7 and before. ##### Changed - bump protocol and psrpc deps ([#&#8203;4958](https://github.com/livekit/livekit/issues/4958)) - sfu/buffer: parse the dependency descriptor without allocating ([#&#8203;4953](https://github.com/livekit/livekit/issues/4953)) - sfu/buffer: stop allocating per ingested packet ([#&#8203;4951](https://github.com/livekit/livekit/issues/4951)) ##### Fixed - v1 path: check for subscriber_allow_pause presence before using it ([#&#8203;4957](https://github.com/livekit/livekit/issues/4957)) - Cap forward-jump loops in SelectorDecisionCache ([#&#8203;4952](https://github.com/livekit/livekit/issues/4952)) </details> <details> <summary>forgejo-helm/forgejo-helm (forgejo)</summary> ### [`v17.3.1`](https://code.forgejo.org/forgejo-helm/forgejo-helm/releases/tag/v17.3.1): 17.3.1 [Compare Source](https://code.forgejo.org/forgejo-helm/forgejo-helm/compare/v17.3.0...v17.3.1) ##### Bug Fixes - do not configure internal token for Forgejo v18+ ([#&#8203;1803](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1803)) ([aedba1e](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/aedba1ebef78d36821a3760ebea91ed0d1a24e81)) ##### Continuous Integration - **deps:** update dependency helm to v4.3.1 (main) ([#&#8203;1792](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1792)) ([ebba5ad](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/ebba5adc67474cf4c817846b9dcd19e265e9008f)) ##### Miscellaneous Chores - **deps:** update dependency prettier to v3.9.10 (main) ([#&#8203;1766](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1766)) ([bdd374e](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/bdd374eb35b1ed6cc6f87510629646752a660968)) - **deps:** update node.js to v24.22.0 (main) ([#&#8203;1787](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1787)) ([c938683](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/c938683382f6d1d8dfb60c1d5b7fad3ff4d822cb)) ### [`v17.3.0`](https://code.forgejo.org/forgejo-helm/forgejo-helm/releases/tag/v17.3.0): 17.3.0 [Compare Source](https://code.forgejo.org/forgejo-helm/forgejo-helm/compare/v17.2.0...v17.3.0) ##### Features - improve oauth handling for new Forgejo 16 Feature and Group Maps ([#&#8203;1693](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1693)) ([28cf80c](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/28cf80cde4131ff33195ed86b8f8808021d24dd7)) ##### Bug Fixes - **deps:** update forgejo docker tag to v15.0.10 (main) ([#&#8203;1754](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1754)) ([fe3ef9d](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/fe3ef9d2fd8db24186b3416f1b5b62c69d4e57fe)) ##### Continuous Integration - **deps:** update actions/setup-node action to v7.1.0 (main) ([#&#8203;1716](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1716)) ([391cc28](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/391cc282f5be6e99ef06cb6a49514188cf45df4c)) - use latest release for eol v11 ([#&#8203;1776](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1776)) ([63d6647](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/63d6647f74b1ea74e07be3e5fb008bd4dc7f3496)) ##### Miscellaneous Chores - **deps:** lock file maintenance (main) ([#&#8203;1744](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1744)) ([9bbe874](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/9bbe87409de35f20fae7e31ab5953686eea4e229)) - **deps:** update dependency conventional-changelog-conventionalcommits to v10.4.1 (main) ([#&#8203;1717](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1717)) ([8157982](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/8157982941f9c103163e1136ae11db9fb581ccdc)) - **deps:** update pnpm to v11.28.4 (main) ([#&#8203;1715](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1715)) ([fdda355](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/fdda35532d470bef27764a5ab249084071517c48)) - **deps:** update pnpm to v11.28.5 (main) ([#&#8203;1718](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1718)) ([0063bd8](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/0063bd8f9e3a37f4d53ad7ff47445f954ce02abc)) ### [`v17.2.0`](https://code.forgejo.org/forgejo-helm/forgejo-helm/releases/tag/v17.2.0): 17.2.0 [Compare Source](https://code.forgejo.org/forgejo-helm/forgejo-helm/compare/v17.1.7...v17.2.0) ##### Features - **labels:** Adding app.kubernetes.io/component label for services ([#&#8203;1701](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1701)) ([21ed513](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/21ed513eff708023dd3ffa25ddbe172e9399aaf7)) ##### Continuous Integration - **deps:** update dependency helm-unittest to v1.2.0 (main) ([#&#8203;1711](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1711)) ([b6567e2](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/b6567e2f7c1f44fbce5f17973a4d7852292f4376)) - **deps:** update dependency helm-unittest to v1.2.1 (main) ([#&#8203;1712](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1712)) ([81063ab](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/81063ab8b456a5321c86b8fba6da148576a8ac36)) - **deps:** update dependency kubectl to v1.37.1 (main) ([#&#8203;1703](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1703)) ([f6fefa0](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/f6fefa00105dd67a0592a8a80c4f1c4ebaa18efc)) - **deps:** update k3s (patch) (main) (patch) ([#&#8203;1709](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1709)) ([7909297](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/7909297df7e04af253fa96e63a2e4737f2ab4d40)) ##### Miscellaneous Chores - **deps:** lock file maintenance (main) ([#&#8203;1687](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1687)) ([30ef0cc](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/30ef0cc681b0c1320f5dcc2637f1272d5838dfe5)) - **deps:** update dependency lint-staged to v17.6.0 (main) ([#&#8203;1707](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1707)) ([f4409f3](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/f4409f33d851048e0defc9f55f3db90538e46632)) - **deps:** update dependency prettier to v3.9.7 (main) ([#&#8203;1700](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1700)) ([c509501](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/c509501ddbf129ec7cae7d61a270c73528a61753)) - **deps:** update dependency prettier to v3.9.8 (main) ([#&#8203;1702](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1702)) ([1a7d8c8](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/1a7d8c85107ec8307e3a9ec1d2b4f6f82be94321)) - **deps:** update dependency prettier to v3.9.9 (main) ([#&#8203;1705](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1705)) ([5898f86](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/5898f86cb4aa3626df996aec9b4ccaf70b2fae2f)) - **deps:** update pnpm to v11.27.1 (main) ([#&#8203;1704](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1704)) ([06b1082](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/06b10827c9a3ffd1b5a9e4f4b9c09f23489389da)) - **deps:** update pnpm to v11.28.0 (main) ([#&#8203;1706](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1706)) ([ddb4f9d](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/ddb4f9db73a7794e21267cc5eba915a3dcff7fae)) - **deps:** update pnpm to v11.28.1 (main) ([#&#8203;1708](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1708)) ([b73cc98](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/b73cc98be0d526e70ba79aada5dc9ce1bfdb82cd)) - **deps:** update pnpm to v11.28.2 (main) ([#&#8203;1710](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1710)) ([8ce0565](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/8ce0565bd4a5f6fbb4eadb6ebf0aa908dacea886)) - **deps:** update pnpm to v11.28.3 (main) ([#&#8203;1713](https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1713)) ([031a925](https://code.forgejo.org/forgejo-helm/forgejo-helm/commits/031a925d37e176de5067b340865d7ce96bdc948e)) </details> <details> <summary>rajsinghtech/garage-operator (garage-operator)</summary> ### [`v0.8.2`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.8.2) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.8.1...v0.8.2) #### Bug Fixes - keep survivor pods during member removal ([#&#8203;471](https://github.com/rajsinghtech/garage-operator/issues/471)) ([#&#8203;479](https://github.com/rajsinghtech/garage-operator/issues/479)) in [#&#8203;479](https://github.com/rajsinghtech/garage-operator/pull/479) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - update module sigs.k8s.io/gateway-api to v1.6.3 ([#&#8203;487](https://github.com/rajsinghtech/garage-operator/issues/487)) in [#&#8203;487](https://github.com/rajsinghtech/garage-operator/pull/487) by [@&#8203;renovate](https://github.com/renovate)\[bot] - requeue right after a factor migration fails ([#&#8203;488](https://github.com/rajsinghtech/garage-operator/issues/488)) in [#&#8203;488](https://github.com/rajsinghtech/garage-operator/pull/488) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - surface dynamic Admin token blocker as a GarageCluster condition ([#&#8203;476](https://github.com/rajsinghtech/garage-operator/issues/476)) in [#&#8203;476](https://github.com/rajsinghtech/garage-operator/pull/476) by [@&#8203;florissmit10](https://github.com/florissmit10) - ignore GarageCluster status-only updates in the primary watch ([#&#8203;482](https://github.com/rajsinghtech/garage-operator/issues/482)) in [#&#8203;482](https://github.com/rajsinghtech/garage-operator/pull/482) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - populate resync queue and block error status from Garage ([#&#8203;477](https://github.com/rajsinghtech/garage-operator/issues/477)) in [#&#8203;477](https://github.com/rajsinghtech/garage-operator/pull/477) by [@&#8203;florissmit10](https://github.com/florissmit10) - re-claim own staged import for down remote nodes ([#&#8203;468](https://github.com/rajsinghtech/garage-operator/issues/468)) ([#&#8203;478](https://github.com/rajsinghtech/garage-operator/issues/478)) in [#&#8203;478](https://github.com/rajsinghtech/garage-operator/pull/478) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - keep claiming own staged stale-node removal when a layout Apply is retried ([#&#8203;467](https://github.com/rajsinghtech/garage-operator/issues/467)) in [#&#8203;467](https://github.com/rajsinghtech/garage-operator/pull/467) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - finish Auto→Manual ejection after a partial hand-off ([#&#8203;466](https://github.com/rajsinghtech/garage-operator/issues/466)) in [#&#8203;466](https://github.com/rajsinghtech/garage-operator/pull/466) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Documentation - note real Garage reports alias conflicts as 400, not 409 ([#&#8203;492](https://github.com/rajsinghtech/garage-operator/issues/492)) in [#&#8203;492](https://github.com/rajsinghtech/garage-operator/pull/492) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - full redundancy status and FullyReplicated condition ([#&#8203;474](https://github.com/rajsinghtech/garage-operator/issues/474)) ([#&#8203;485](https://github.com/rajsinghtech/garage-operator/issues/485)) in [#&#8203;485](https://github.com/rajsinghtech/garage-operator/pull/485) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) (design doc only; not implemented in this release) - document --enable-ingress/--enable-gateway-api for raw-manifest installs ([#&#8203;464](https://github.com/rajsinghtech/garage-operator/issues/464)) in [#&#8203;464](https://github.com/rajsinghtech/garage-operator/pull/464) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - update azure/setup-kubectl digest to [`bda439f`](https://github.com/rajsinghtech/garage-operator/commit/bda439f) ([#&#8203;489](https://github.com/rajsinghtech/garage-operator/issues/489)) in [#&#8203;489](https://github.com/rajsinghtech/garage-operator/pull/489) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.27 docker digest to [`162be52`](https://github.com/rajsinghtech/garage-operator/commit/162be52) ([#&#8203;480](https://github.com/rajsinghtech/garage-operator/issues/480)) in [#&#8203;480](https://github.com/rajsinghtech/garage-operator/pull/480) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.27 docker digest to [`1e93e00`](https://github.com/rajsinghtech/garage-operator/commit/1e93e00) ([#&#8203;473](https://github.com/rajsinghtech/garage-operator/issues/473)) in [#&#8203;473](https://github.com/rajsinghtech/garage-operator/pull/473) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Release - v0.8.2 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Testing - upgrade lane from the released v0.8.1 chart to the PR build ([#&#8203;484](https://github.com/rajsinghtech/garage-operator/issues/484)) in [#&#8203;484](https://github.com/rajsinghtech/garage-operator/pull/484) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - fault sweeps for remote connect and role import ([#&#8203;483](https://github.com/rajsinghtech/garage-operator/issues/483)) in [#&#8203;483](https://github.com/rajsinghtech/garage-operator/pull/483) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - run the Garage admin client against real Garage v2.0.0, v2.4.1 and main-v2 ([#&#8203;481](https://github.com/rajsinghtech/garage-operator/issues/481)) in [#&#8203;481](https://github.com/rajsinghtech/garage-operator/pull/481) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - fault-injection harness for partial-failure idempotency ([#&#8203;469](https://github.com/rajsinghtech/garage-operator/issues/469)) in [#&#8203;469](https://github.com/rajsinghtech/garage-operator/pull/469) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - capture Garage pod logs and both sites' layouts when multi-cluster layout convergence fails ([#&#8203;465](https://github.com/rajsinghtech/garage-operator/issues/465)) in [#&#8203;465](https://github.com/rajsinghtech/garage-operator/pull/465) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Upgrade notes - **No CRD-breaking changes since v0.8.1.** The only CRD change is description text on `status.blockErrors` and `status.resyncQueueLength`. Re-applying CRDs is optional. The built-in Garage image is still v2.4.1. - `status.blockErrors` and `status.resyncQueueLength` now read `0` when Garage was observed with no errors or an empty queue, and are left out when Garage could not be observed ([#&#8203;477](https://github.com/rajsinghtech/garage-operator/issues/477)). Go API consumers: both fields are now pointers in v1beta1 and v1beta2. - GarageClusters gain an `OperatorAdminTokenReady` condition ([#&#8203;476](https://github.com/rajsinghtech/garage-operator/issues/476)). When it is False, its message names the Pod or GarageNode that is blocking GarageKey/GarageBucket reconciliation. - While a node-local pool member is being removed, the pool DaemonSet briefly carries a `garage.rajsingh.info/node-local-pool-membership-staging` annotation and a node affinity that admits both the old and new activation tokens ([#&#8203;479](https://github.com/rajsinghtech/garage-operator/issues/479)). This is internal: don't strip it with GitOps or drift tooling. It is removed when the hand-off finishes. #### Contributors Thanks to [@&#8203;florissmit10](https://github.com/florissmit10) for [#&#8203;476](https://github.com/rajsinghtech/garage-operator/issues/476) and [#&#8203;477](https://github.com/rajsinghtech/garage-operator/issues/477), and for reporting [#&#8203;471](https://github.com/rajsinghtech/garage-operator/issues/471) and [#&#8203;474](https://github.com/rajsinghtech/garage-operator/issues/474), and to [@&#8203;rajsinghtech](https://github.com/rajsinghtech) and [@&#8203;renovate](https://github.com/renovate)\[bot] for everything else in this release. **Full Changelog**: <https://github.com/rajsinghtech/garage-operator/compare/v0.8.1...v0.8.2> ### [`v0.8.1`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.8.1) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.8.0...v0.8.1) #### Bug Fixes - gate Ingress website exposure behind ingress.enabled ([#&#8203;460](https://github.com/rajsinghtech/garage-operator/issues/460)) ([#&#8203;461](https://github.com/rajsinghtech/garage-operator/issues/461)) in [#&#8203;461](https://github.com/rajsinghtech/garage-operator/pull/461) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - skip ConnectNode for peers already up and avoid cross-cluster address fallback ([#&#8203;462](https://github.com/rajsinghtech/garage-operator/issues/462)) in [#&#8203;462](https://github.com/rajsinghtech/garage-operator/pull/462) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Documentation - make the Ingress opt-in upgrade note safe for chart-bump version rewriting ([#&#8203;463](https://github.com/rajsinghtech/garage-operator/issues/463)) in [#&#8203;463](https://github.com/rajsinghtech/garage-operator/pull/463) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Release - v0.8.1 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Upgrade notes - **Ingress website exposure is now opt-in.** v0.8.0 granted the operator cluster-wide `networking.k8s.io/ingresses` write access and always watched Ingresses on every install. From v0.8.1 this is controlled by the chart value `ingress.enabled` (default `false`, like `gatewayAPI.enabled`), which renders the `--enable-ingress` flag (`ENABLE_INGRESS` env var for non-Helm installs), the Ingress RBAC rules (ClusterRole and namespace-scoped Roles) and the Ingress watch. - **If you use `spec.websiteExposure.ingress`, set `ingress.enabled=true`** (for example `--set ingress.enabled=true`). With `--reuse-values` from v0.8.0 the new value is absent and renders as disabled, so pass it explicitly. Without it the bucket reports `WebsiteExposed=False` with reason `IngressDisabled`; Ingresses already created by v0.8.0 stay in place and keep serving (and are still garbage-collected with their bucket) but are not reconciled or cleaned up until you enable it. Installs that do not use Ingress exposure need no change and now run without any Ingress RBAC. - Federation reconnects no longer redial remote peers that are already up, and a down peer with a known address is dialed at that address instead of the shared admin-endpoint host. This stops a reconnect pass from gossiping a cross-cluster-resolved address into the Garage peer book. No configuration change is needed. - No CRD or API changes since v0.8.0, and the built-in Garage image is unchanged (v2.4.1). - Rollback: reverting to v0.8.0 restores unconditional Ingress RBAC; no persisted state changes. #### Contributors Thanks to [@&#8203;Faustvii](https://github.com/Faustvii) for reporting [#&#8203;460](https://github.com/rajsinghtech/garage-operator/issues/460). **Full Changelog**: <https://github.com/rajsinghtech/garage-operator/compare/v0.8.0...v0.8.1> ### [`v0.8.0`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.8.0) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.12...v0.8.0) #### Bug Fixes - align importKey validation with Garage v2.3 grammar and surface Garage 400 ([#&#8203;457](https://github.com/rajsinghtech/garage-operator/issues/457)) in [#&#8203;457](https://github.com/rajsinghtech/garage-operator/pull/457) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - update sigs.k8s.io/json digest to [`11ed52e`](https://github.com/rajsinghtech/garage-operator/commit/11ed52e) ([#&#8203;455](https://github.com/rajsinghtech/garage-operator/issues/455)) in [#&#8203;455](https://github.com/rajsinghtech/garage-operator/pull/455) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module sigs.k8s.io/gateway-api to v1.6.2 ([#&#8203;446](https://github.com/rajsinghtech/garage-operator/issues/446)) in [#&#8203;446](https://github.com/rajsinghtech/garage-operator/pull/446) by [@&#8203;renovate](https://github.com/renovate)\[bot] - keep idle buckets and keys refreshing from Garage ([#&#8203;444](https://github.com/rajsinghtech/garage-operator/issues/444)) in [#&#8203;444](https://github.com/rajsinghtech/garage-operator/pull/444) by [@&#8203;ninuxio](https://github.com/ninuxio) - update module github.com/onsi/gomega to v1.44.0 ([#&#8203;439](https://github.com/rajsinghtech/garage-operator/issues/439)) in [#&#8203;439](https://github.com/rajsinghtech/garage-operator/pull/439) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update k8s to v0.37.1 ([#&#8203;437](https://github.com/rajsinghtech/garage-operator/issues/437)) in [#&#8203;437](https://github.com/rajsinghtech/garage-operator/pull/437) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring to v0.94.1 ([#&#8203;435](https://github.com/rajsinghtech/garage-operator/issues/435)) in [#&#8203;435](https://github.com/rajsinghtech/garage-operator/pull/435) by [@&#8203;renovate](https://github.com/renovate)\[bot] - recover missing GarageKey credentials safely ([#&#8203;433](https://github.com/rajsinghtech/garage-operator/issues/433)) in [#&#8203;433](https://github.com/rajsinghtech/garage-operator/pull/433) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - wait for local identities before import ([#&#8203;432](https://github.com/rajsinghtech/garage-operator/issues/432)) in [#&#8203;432](https://github.com/rajsinghtech/garage-operator/pull/432) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Documentation - VolumeAttributesClass ([#&#8203;445](https://github.com/rajsinghtech/garage-operator/issues/445)), pod extras ([#&#8203;441](https://github.com/rajsinghtech/garage-operator/issues/441)), layout-writer site ([#&#8203;442](https://github.com/rajsinghtech/garage-operator/issues/442)) design records ([#&#8203;451](https://github.com/rajsinghtech/garage-operator/issues/451)) in [#&#8203;451](https://github.com/rajsinghtech/garage-operator/pull/451) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - describe v0.8.x as the current release line ([#&#8203;459](https://github.com/rajsinghtech/garage-operator/issues/459)) in [#&#8203;459](https://github.com/rajsinghtech/garage-operator/pull/459) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Features - guard discovery against Garage v2.3.0/v2.4.0 and document Kubernetes discovery RBAC ([#&#8203;456](https://github.com/rajsinghtech/garage-operator/issues/456)) in [#&#8203;456](https://github.com/rajsinghtech/garage-operator/pull/456) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - initContainers, extraContainers and extraVolumes on pod templates ([#&#8203;452](https://github.com/rajsinghtech/garage-operator/issues/452)) in [#&#8203;452](https://github.com/rajsinghtech/garage-operator/pull/452) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - layoutManagement.siteRole Writer|Follower for federated layouts ([#&#8203;453](https://github.com/rajsinghtech/garage-operator/issues/453)) in [#&#8203;453](https://github.com/rajsinghtech/garage-operator/pull/453) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - volumeAttributesClassName for operator-managed volumes ([#&#8203;454](https://github.com/rajsinghtech/garage-operator/issues/454)) in [#&#8203;454](https://github.com/rajsinghtech/garage-operator/pull/454) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - add websiteExposure for Ingress and Gateway API routing… ([#&#8203;440](https://github.com/rajsinghtech/garage-operator/issues/440)) in [#&#8203;440](https://github.com/rajsinghtech/garage-operator/pull/440) by [@&#8203;littlejo](https://github.com/littlejo) - remember adopted bucketId in status so spec.bucketId can be removed ([#&#8203;431](https://github.com/rajsinghtech/garage-operator/issues/431)) in [#&#8203;431](https://github.com/rajsinghtech/garage-operator/pull/431) by [@&#8203;florissmit10](https://github.com/florissmit10) #### Miscellaneous - add v2.4.1 default, v2.0.0 floor, kubernetes_discovery lane and nightly main-v2 canary ([#&#8203;458](https://github.com/rajsinghtech/garage-operator/issues/458)) in [#&#8203;458](https://github.com/rajsinghtech/garage-operator/pull/458) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - update docker.io/library/golang:1.27 docker digest to [`e0174e5`](https://github.com/rajsinghtech/garage-operator/commit/e0174e5) ([#&#8203;447](https://github.com/rajsinghtech/garage-operator/issues/447)) in [#&#8203;447](https://github.com/rajsinghtech/garage-operator/pull/447) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update dependency buildx to v0.37.2 ([#&#8203;448](https://github.com/rajsinghtech/garage-operator/issues/448)) in [#&#8203;448](https://github.com/rajsinghtech/garage-operator/pull/448) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update dependency golangci/golangci-lint to v2.14.0 ([#&#8203;438](https://github.com/rajsinghtech/garage-operator/issues/438)) in [#&#8203;438](https://github.com/rajsinghtech/garage-operator/pull/438) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update dependency kubectl to v1.37.1 ([#&#8203;436](https://github.com/rajsinghtech/garage-operator/issues/436)) in [#&#8203;436](https://github.com/rajsinghtech/garage-operator/pull/436) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Release - v0.8.0 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Testing - widen Auto→Manual ejection timeout to deflake ([#&#8203;449](https://github.com/rajsinghtech/garage-operator/issues/449)) in [#&#8203;449](https://github.com/rajsinghtech/garage-operator/pull/449) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Upgrade notes - Garage v2.3.0 and v2.4.0 crash at start with any discovery configured: use v2.4.1 or newer (the built-in default) when enabling `spec.discovery`. - All API changes are additive. Re-apply CRDs (and upgrade the Helm chart) to pick up `websiteExposure`, the `Bucket ID` column, `volumeAttributesClassName`, the pod extras fields and `layoutManagement.siteRole`/`status.layoutWriter` (v1beta1 and v1beta2 both carry them). - `volumeAttributesClassName` needs a CSI driver and cluster with VolumeAttributesClass support. Pod extras and `siteRole` are no-ops until set. - RBAC gains `networking.k8s.io/ingresses` and `gateway.networking.k8s.io/httproutes`. Namespace-scoped installs get these in the namespace Role. - Rollback: older operators ignore `websiteExposure`. A **cross-namespace** exposure resource has no owner reference and would be orphaned if its bucket is deleted by an older operator; delete it manually in that case. #### New Contributors - [@&#8203;littlejo](https://github.com/littlejo) made their first contribution in [#&#8203;440](https://github.com/rajsinghtech/garage-operator/pull/440) - [@&#8203;ninuxio](https://github.com/ninuxio) made their first contribution in [#&#8203;444](https://github.com/rajsinghtech/garage-operator/pull/444) Thanks also to [@&#8203;florissmit10](https://github.com/florissmit10) for [#&#8203;431](https://github.com/rajsinghtech/garage-operator/issues/431) and to everyone who reported issues. **Full Changelog**: <https://github.com/rajsinghtech/garage-operator/compare/v0.7.12...v0.8.0> ### [`v0.7.12`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.7.12) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.11...v0.7.12) #### Bug Fixes - aggregate node-disconnected alert expression ([#&#8203;428](https://github.com/rajsinghtech/garage-operator/issues/428)) in [#&#8203;428](https://github.com/rajsinghtech/garage-operator/pull/428) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Release - v0.7.12 ([#&#8203;429](https://github.com/rajsinghtech/garage-operator/issues/429)) in [#&#8203;429](https://github.com/rajsinghtech/garage-operator/pull/429) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.7.11`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.7.11) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.10...v0.7.11) #### Bug Fixes - update module github.com/prometheus/client_golang to v1.24.1 ([#&#8203;425](https://github.com/rajsinghtech/garage-operator/issues/425)) in [#&#8203;425](https://github.com/rajsinghtech/garage-operator/pull/425) by [@&#8203;renovate](https://github.com/renovate)\[bot] - use server-side apply for generated metadata ([#&#8203;421](https://github.com/rajsinghtech/garage-operator/issues/421)) in [#&#8203;421](https://github.com/rajsinghtech/garage-operator/pull/421) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - update module github.com/onsi/gomega to v1.43.1 ([#&#8203;414](https://github.com/rajsinghtech/garage-operator/issues/414)) in [#&#8203;414](https://github.com/rajsinghtech/garage-operator/pull/414) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module github.com/onsi/ginkgo/v2 to v2.33.0 ([#&#8203;415](https://github.com/rajsinghtech/garage-operator/issues/415)) in [#&#8203;415](https://github.com/rajsinghtech/garage-operator/pull/415) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module sigs.k8s.io/controller-runtime to v0.25.1 ([#&#8203;410](https://github.com/rajsinghtech/garage-operator/issues/410)) in [#&#8203;410](https://github.com/rajsinghtech/garage-operator/pull/410) by [@&#8203;renovate](https://github.com/renovate)\[bot] - deflake multicluster bootstrap ([#&#8203;405](https://github.com/rajsinghtech/garage-operator/issues/405)) in [#&#8203;405](https://github.com/rajsinghtech/garage-operator/pull/405) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Features - expose bucket quota metrics ([#&#8203;422](https://github.com/rajsinghtech/garage-operator/issues/422)) in [#&#8203;422](https://github.com/rajsinghtech/garage-operator/pull/422) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - expose bucket website URLs in generated secrets in [#&#8203;420](https://github.com/rajsinghtech/garage-operator/pull/420) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - update docker.io/library/golang:1.27 docker digest to [`3680233`](https://github.com/rajsinghtech/garage-operator/commit/3680233) ([#&#8203;419](https://github.com/rajsinghtech/garage-operator/issues/419)) in [#&#8203;419](https://github.com/rajsinghtech/garage-operator/pull/419) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.27 docker digest to [`1cfcdb1`](https://github.com/rajsinghtech/garage-operator/commit/1cfcdb1) ([#&#8203;418](https://github.com/rajsinghtech/garage-operator/issues/418)) in [#&#8203;418](https://github.com/rajsinghtech/garage-operator/pull/418) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.27 docker digest to [`03fd17c`](https://github.com/rajsinghtech/garage-operator/commit/03fd17c) ([#&#8203;417](https://github.com/rajsinghtech/garage-operator/issues/417)) in [#&#8203;417](https://github.com/rajsinghtech/garage-operator/pull/417) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update orhun/git-cliff-action digest to [`a9a9552`](https://github.com/rajsinghtech/garage-operator/commit/a9a9552) ([#&#8203;416](https://github.com/rajsinghtech/garage-operator/issues/416)) in [#&#8203;416](https://github.com/rajsinghtech/garage-operator/pull/416) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update codecov/codecov-action digest to [`303a32d`](https://github.com/rajsinghtech/garage-operator/commit/303a32d) ([#&#8203;413](https://github.com/rajsinghtech/garage-operator/issues/413)) in [#&#8203;413](https://github.com/rajsinghtech/garage-operator/pull/413) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update actions ([#&#8203;412](https://github.com/rajsinghtech/garage-operator/issues/412)) in [#&#8203;412](https://github.com/rajsinghtech/garage-operator/pull/412) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update codecov/codecov-action digest to [`0b35c9e`](https://github.com/rajsinghtech/garage-operator/commit/0b35c9e) ([#&#8203;411](https://github.com/rajsinghtech/garage-operator/issues/411)) in [#&#8203;411](https://github.com/rajsinghtech/garage-operator/pull/411) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update gcr.io/distroless/static:nonroot docker digest to [`2293b36`](https://github.com/rajsinghtech/garage-operator/commit/2293b36) ([#&#8203;409](https://github.com/rajsinghtech/garage-operator/issues/409)) in [#&#8203;409](https://github.com/rajsinghtech/garage-operator/pull/409) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update dependency buildx to v0.37.1 ([#&#8203;408](https://github.com/rajsinghtech/garage-operator/issues/408)) in [#&#8203;408](https://github.com/rajsinghtech/garage-operator/pull/408) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Testing - wait for observed layout status ([#&#8203;426](https://github.com/rajsinghtech/garage-operator/issues/426)) in [#&#8203;426](https://github.com/rajsinghtech/garage-operator/pull/426) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Release - v0.7.11 ([#&#8203;427](https://github.com/rajsinghtech/garage-operator/issues/427)) in [#&#8203;427](https://github.com/rajsinghtech/garage-operator/pull/427) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.7.10`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.7.10) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.9...v0.7.10) #### Bug Fixes - update module github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring to v0.94.0 ([#&#8203;401](https://github.com/rajsinghtech/garage-operator/issues/401)) in [#&#8203;401](https://github.com/rajsinghtech/garage-operator/pull/401) by [@&#8203;renovate](https://github.com/renovate)\[bot] - deflake e2e setup/teardown and update x/mod in [#&#8203;402](https://github.com/rajsinghtech/garage-operator/pull/402) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - ensure generate metadata does not overwrite existing and unmanaged metadata ([#&#8203;400](https://github.com/rajsinghtech/garage-operator/issues/400)) in [#&#8203;400](https://github.com/rajsinghtech/garage-operator/pull/400) by [@&#8203;kevinvalk](https://github.com/kevinvalk) - converge managed resource drift and cleanup in [#&#8203;396](https://github.com/rajsinghtech/garage-operator/pull/396) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - update module github.com/onsi/ginkgo/v2 to v2.32.2 ([#&#8203;395](https://github.com/rajsinghtech/garage-operator/issues/395)) in [#&#8203;395](https://github.com/rajsinghtech/garage-operator/pull/395) by [@&#8203;renovate](https://github.com/renovate)\[bot] - repair drifted GarageNode identity labels ([#&#8203;393](https://github.com/rajsinghtech/garage-operator/issues/393)) in [#&#8203;393](https://github.com/rajsinghtech/garage-operator/pull/393) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Features - ensure vmanagedpvcfinalizer.kb.io validating webhook only intercepts PVCs managed by garage-operator ([#&#8203;398](https://github.com/rajsinghtech/garage-operator/issues/398)) in [#&#8203;398](https://github.com/rajsinghtech/garage-operator/pull/398) by [@&#8203;kevinvalk](https://github.com/kevinvalk) #### Miscellaneous - update dependency helm to v4.3.0 ([#&#8203;404](https://github.com/rajsinghtech/garage-operator/issues/404)) in [#&#8203;404](https://github.com/rajsinghtech/garage-operator/pull/404) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.27 docker digest to [`f44f6e8`](https://github.com/rajsinghtech/garage-operator/commit/f44f6e8) ([#&#8203;403](https://github.com/rajsinghtech/garage-operator/issues/403)) in [#&#8203;403](https://github.com/rajsinghtech/garage-operator/pull/403) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update dependency golangci/golangci-lint to v2.13.0 ([#&#8203;342](https://github.com/rajsinghtech/garage-operator/issues/342)) in [#&#8203;342](https://github.com/rajsinghtech/garage-operator/pull/342) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update dxflrs/garage docker tag to v2.4.1 ([#&#8203;394](https://github.com/rajsinghtech/garage-operator/issues/394)) in [#&#8203;394](https://github.com/rajsinghtech/garage-operator/pull/394) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Release - v0.7.10 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.7.9`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.7.9) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.8...v0.7.9) #### Bug Fixes - repair node-local-pool Pod routing labels ([#&#8203;386](https://github.com/rajsinghtech/garage-operator/issues/386)) in [#&#8203;386](https://github.com/rajsinghtech/garage-operator/pull/386) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - keep federated RPC recovery reachable behind layout guards ([#&#8203;385](https://github.com/rajsinghtech/garage-operator/issues/385)) in [#&#8203;385](https://github.com/rajsinghtech/garage-operator/pull/385) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - pin Garage v2.4.0 with matching digest ([#&#8203;383](https://github.com/rajsinghtech/garage-operator/issues/383)) in [#&#8203;383](https://github.com/rajsinghtech/garage-operator/pull/383) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - update docker.io/library/golang:1.27 docker digest to [`512690a`](https://github.com/rajsinghtech/garage-operator/commit/512690a) ([#&#8203;380](https://github.com/rajsinghtech/garage-operator/issues/380)) in [#&#8203;380](https://github.com/rajsinghtech/garage-operator/pull/380) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Testing - wait for federated layout convergence ([#&#8203;384](https://github.com/rajsinghtech/garage-operator/issues/384)) in [#&#8203;384](https://github.com/rajsinghtech/garage-operator/pull/384) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Release - v0.7.9 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.7.8`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.7.8) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.7...v0.7.8) #### Bug Fixes - update module sigs.k8s.io/controller-runtime to v0.25.0 ([#&#8203;165](https://github.com/rajsinghtech/garage-operator/issues/165)) in [#&#8203;165](https://github.com/rajsinghtech/garage-operator/pull/165) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update k8s by [@&#8203;renovate](https://github.com/renovate)\[bot] - keep COSI client pinned to v1alpha2 API by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - preserve status update failures ([#&#8203;379](https://github.com/rajsinghtech/garage-operator/issues/379)) in [#&#8203;379](https://github.com/rajsinghtech/garage-operator/pull/379) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - fail closed when GarageNode inputs are unavailable ([#&#8203;377](https://github.com/rajsinghtech/garage-operator/issues/377)) in [#&#8203;377](https://github.com/rajsinghtech/garage-operator/pull/377) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Features - volume-group data sources for Auto PVCs ([#&#8203;381](https://github.com/rajsinghtech/garage-operator/issues/381)) in [#&#8203;381](https://github.com/rajsinghtech/garage-operator/pull/381) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - keep documented install pins in sync with chart-bump by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### WIP - regenerate artifacts for Kubernetes 0.37 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Release - v0.7.8 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.7.7`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.7.7) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.6...v0.7.7) #### Bug Fixes - update module github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring to v0.93.1 ([#&#8203;316](https://github.com/rajsinghtech/garage-operator/issues/316)) in [#&#8203;316](https://github.com/rajsinghtech/garage-operator/pull/316) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module github.com/stretchr/testify to v1.12.1 ([#&#8203;335](https://github.com/rajsinghtech/garage-operator/issues/335)) in [#&#8203;335](https://github.com/rajsinghtech/garage-operator/pull/335) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module go.yaml.in/yaml/v3 to v3.0.5 ([#&#8203;319](https://github.com/rajsinghtech/garage-operator/issues/319)) in [#&#8203;319](https://github.com/rajsinghtech/garage-operator/pull/319) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module github.com/onsi/gomega to v1.43.0 ([#&#8203;354](https://github.com/rajsinghtech/garage-operator/issues/354)) in [#&#8203;354](https://github.com/rajsinghtech/garage-operator/pull/354) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module github.com/onsi/ginkgo/v2 to v2.32.1 ([#&#8203;317](https://github.com/rajsinghtech/garage-operator/issues/317)) in [#&#8203;317](https://github.com/rajsinghtech/garage-operator/pull/317) by [@&#8203;renovate](https://github.com/renovate)\[bot] - avoid repeated key status updates for denials by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - import strings for permission status details by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - keep valid GarageKeys healthy when foreign references are denied by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - make one-wave manual installs converge by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - surface safe non-empty deletion handling by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - tidy Go modules after updates by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - preserve explicit denied permission failures by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - keep permission lookup failures fatal by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - allow empty allBuckets during SSA migration by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - preserve Auto PVCs during lost-source recovery by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - pin joining node layout work to existing peer by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - [#&#8203;351](https://github.com/rajsinghtech/garage-operator/issues/351) by filtering garagenode on generationchanges by [@&#8203;kevinvalk](https://github.com/kevinvalk) #### Miscellaneous - update docker.io/library/golang:1.27 docker digest to [`7543a96`](https://github.com/rajsinghtech/garage-operator/commit/7543a96) ([#&#8203;363](https://github.com/rajsinghtech/garage-operator/issues/363)) in [#&#8203;363](https://github.com/rajsinghtech/garage-operator/pull/363) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.27 docker digest to [`4013ae0`](https://github.com/rajsinghtech/garage-operator/commit/4013ae0) ([#&#8203;357](https://github.com/rajsinghtech/garage-operator/issues/357)) in [#&#8203;357](https://github.com/rajsinghtech/garage-operator/pull/357) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.27 docker digest to [`0ecdc2a`](https://github.com/rajsinghtech/garage-operator/commit/0ecdc2a) ([#&#8203;350](https://github.com/rajsinghtech/garage-operator/issues/350)) in [#&#8203;350](https://github.com/rajsinghtech/garage-operator/pull/350) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Refactoring - ensure S3 endpoints are consistent regardless of GarageCluster deployment mode by [@&#8203;kevinvalk](https://github.com/kevinvalk) #### Testing - cover one-wave manual bootstrap by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - retry dual-version and layout observations by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - pin standalone e2e node images by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - allow full auto-node drain convergence by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - close remaining async E2E observation gaps by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - release teardown PVC finalizers by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - wait for federated layout convergence by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - clean generated namespace contents before teardown by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - wait for settled manual layout before adding node by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - make sharded e2e teardown deterministic by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - make controller undeploy cleanup idempotent by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - order management handle teardown safely by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - make e2e CRD cleanup idempotent by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - fix webhook port allocation parsing by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - handle service target ports in webhook probe by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - satisfy Go lint for command helpers by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - harden e2e synchronization and cleanup by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### WIP - skip denied GarageBucket key references by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Release - v0.7.7 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.7.6`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.7.6) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.5...v0.7.6) #### Bug Fixes - pin resolvable amd64 distroless digest by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - correct design record navigation by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - include bucket policy compatibility field by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - preserve bucket compatibility columns by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - populate Status.Endpoints for management-handle GarageCluster by [@&#8203;gwiersma](https://github.com/gwiersma) - ignore bookkeeping-only layout drains by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - surface real connectivity errors and support CLUSTER_DOMAIN env var ([#&#8203;331](https://github.com/rajsinghtech/garage-operator/issues/331)) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Documentation - explain deletion retention policy by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Features - add deletion retention policy by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - update gcr.io/distroless/static:nonroot docker digest to [`1c2c046`](https://github.com/rajsinghtech/garage-operator/commit/1c2c046) ([#&#8203;344](https://github.com/rajsinghtech/garage-operator/issues/344)) in [#&#8203;344](https://github.com/rajsinghtech/garage-operator/pull/344) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang docker tag to v1.27 ([#&#8203;341](https://github.com/rajsinghtech/garage-operator/issues/341)) in [#&#8203;341](https://github.com/rajsinghtech/garage-operator/pull/341) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update golang docker tag to v1.27 ([#&#8203;343](https://github.com/rajsinghtech/garage-operator/issues/343)) in [#&#8203;343](https://github.com/rajsinghtech/garage-operator/pull/343) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.26 docker digest to [`45a5f7a`](https://github.com/rajsinghtech/garage-operator/commit/45a5f7a) ([#&#8203;340](https://github.com/rajsinghtech/garage-operator/issues/340)) in [#&#8203;340](https://github.com/rajsinghtech/garage-operator/pull/340) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker/setup-buildx-action digest to [`37fe631`](https://github.com/rajsinghtech/garage-operator/commit/37fe631) ([#&#8203;338](https://github.com/rajsinghtech/garage-operator/issues/338)) in [#&#8203;338](https://github.com/rajsinghtech/garage-operator/pull/338) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.26 docker digest to [`0d1d3a7`](https://github.com/rajsinghtech/garage-operator/commit/0d1d3a7) ([#&#8203;332](https://github.com/rajsinghtech/garage-operator/issues/332)) in [#&#8203;332](https://github.com/rajsinghtech/garage-operator/pull/332) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Testing - tolerate layout contention during node rejoin by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - allow manual federation retry by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - fix api-manual-mode DrainPrepared timeout flake by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - fix two node-local-pools/auto-mode-pernode CI flakes by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Release - v0.7.6 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.7.5`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.7.5) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.4...v0.7.5) #### Bug Fixes - escape namespace in CEL validation by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - reserve a global alias only when the add will happen by [@&#8203;roaldhacquebord](https://github.com/roaldhacquebord) #### Documentation - add credentials design to navigation by [@&#8203;Skiepp](https://github.com/Skiepp) - render Mermaid diagrams by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - remove quickstart tutorial by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - complete migration and storage guidance by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - clarify migration and storage references by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - align cross-namespace and operational guidance by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - align gateway COSI and condition guidance by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - complete operator documentation by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - publish operator documentation site by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Features - select source namespaces by labels by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - emit AWS shared credentials file by [@&#8203;Skiepp](https://github.com/Skiepp) #### Miscellaneous - update dependency helm to v4.2.4 ([#&#8203;322](https://github.com/rajsinghtech/garage-operator/issues/322)) in [#&#8203;322](https://github.com/rajsinghtech/garage-operator/pull/322) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.26 docker digest to [`2632668`](https://github.com/rajsinghtech/garage-operator/commit/2632668) ([#&#8203;323](https://github.com/rajsinghtech/garage-operator/issues/323)) in [#&#8203;323](https://github.com/rajsinghtech/garage-operator/pull/323) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update docker.io/library/golang:1.26 docker digest to [`5822931`](https://github.com/rajsinghtech/garage-operator/commit/5822931) ([#&#8203;320](https://github.com/rajsinghtech/garage-operator/issues/320)) in [#&#8203;320](https://github.com/rajsinghtech/garage-operator/pull/320) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update major-actions to v5 ([#&#8203;321](https://github.com/rajsinghtech/garage-operator/issues/321)) in [#&#8203;321](https://github.com/rajsinghtech/garage-operator/pull/321) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Release - v0.7.5 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.7.4`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.7.4) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.3...v0.7.4) #### Bug Fixes - publish authoritative local alias status by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - close credential and federation CI races by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - close remaining hardening regressions by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - preserve gateway retirement safety across stale cache by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - satisfy federated layout admission by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - harden operator reconciliation and CI by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - fix kubeconform archive installation by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Testing - verify local aliases through v2.2 list API by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - verify aliases and clean drift fixtures exactly by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - align single-cluster assertions with Garage APIs by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - allow federation status requeue to converge by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - retain federation evidence across reconcile noise by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - accept shared federation layout winner by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Release - v0.7.4 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.7.3`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.7.3) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.2...v0.7.3) #### What's new in v0.7 - **Node-local storage pools.** A GarageCluster can now manage selector-driven HostPath pools as DaemonSets, with one durable Garage identity per Kubernetes Node. Pools can coexist with the existing PVC group, manually managed SMB/Ceph/PVC or external members, and gateways. Activation fences, HostPath ownership markers, serialized rollouts, and drain/layout proofs are built in. See the [node-local pool guide](https://github.com/rajsinghtech/garage-operator/blob/v0.7.3/docs/node-local-pools.md). - **Drain retries that keep their work.** Temporary federated Admin API read failures now pause a storage drain without discarding exact block-repair worker IDs or launching duplicate full scans. Quiet and completion timers are cleared, while a real process UID change or missing worker still restarts the proof. - **Reliable node-local convergence.** Healthy clusters no longer report Failed when periodic controllers briefly contend for the serialized Garage layout lock while revalidating an active pool. A membership change still waiting for the lock reports WaitingForLayoutSync and retries automatically. - **Node-derived failure domains.** spec.zoneFrom.nodeLabel can derive each storage member's Garage zone from its Kubernetes Node. - **Safer lifecycle operations.** Layout updates now verify Garage's readback, layout rebuilds use an exact Pod credential, and drain, cycle, and externally managed cluster paths have stronger coverage. - **Targeted block retries.** Cluster-wide retries of specific block-resync errors now inventory which nodes report each hash and send exact requests only to those nodes. Already-cleared hashes are an idempotent no-op, while an incomplete inventory fails closed. - **Verifiable release artifacts.** The operator image and OCI Helm chart are keylessly signed and include build provenance. The image also includes an SPDX SBOM attestation, and install.yaml includes provenance. #### Before upgrading - Existing clusters are unchanged unless spec.storage.nodeLocalPools is explicitly declared. This release does not automatically migrate storage. - Node-local pools require Kubernetes 1.27+, Garage v2.0+, a v1beta2 GarageCluster, enabled validating and conversion webhooks, a cluster-scoped operator installation, Node access, an Admin token, and pre-created production HostPaths with .garage-volume-id markers. Garage v2.3.0 is the tested default. Existing non-pool configurations retain the Kubernetes 1.25+ minimum. - If custom env or envFrom entries set Garage configuration or credential variables, follow the [reserved environment variable migration](https://github.com/rajsinghtech/garage-operator/blob/v0.7.3/MIGRATION.md#reserved-garage-environment-variables-v070) before upgrading. Thanks to [@&#8203;florissmit10](https://github.com/florissmit10) for the original DaemonSet prototype and use case that the node-local pool design builds on. **Full changelog:** <https://github.com/rajsinghtech/garage-operator/compare/v0.6.29...v0.7.3> ### [`v0.7.2`](https://github.com/rajsinghtech/garage-operator/compare/v0.7.1...v0.7.2) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.1...v0.7.2) ### [`v0.7.1`](https://github.com/rajsinghtech/garage-operator/compare/v0.7.0...v0.7.1) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.7.0...v0.7.1) ### [`v0.7.0`](https://github.com/rajsinghtech/garage-operator/compare/v0.6.29...v0.7.0) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.29...v0.7.0) ### [`v0.6.29`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.29) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.28...v0.6.29) #### Bug Fixes - restore PVC labels and annotations ([#&#8203;290](https://github.com/rajsinghtech/garage-operator/issues/290)) in [#&#8203;290](https://github.com/rajsinghtech/garage-operator/pull/290) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - update module github.com/go-logr/logr to v1.4.4 ([#&#8203;288](https://github.com/rajsinghtech/garage-operator/issues/288)) in [#&#8203;288](https://github.com/rajsinghtech/garage-operator/pull/288) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Miscellaneous - update actions/setup-python action to v7 ([#&#8203;285](https://github.com/rajsinghtech/garage-operator/issues/285)) in [#&#8203;285](https://github.com/rajsinghtech/garage-operator/pull/285) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Release - v0.6.29 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.28`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.28) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.27...v0.6.28) #### Bug Fixes - migrate EmptyDir legacy StatefulSets without requiring PVCs ([#&#8203;287](https://github.com/rajsinghtech/garage-operator/issues/287)) in [#&#8203;287](https://github.com/rajsinghtech/garage-operator/pull/287) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Release - v0.6.28 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.27`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.27) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.26...v0.6.27) #### Bug Fixes - propagate type: EmptyDir into per-node GarageNodes ([#&#8203;284](https://github.com/rajsinghtech/garage-operator/issues/284)) in [#&#8203;284](https://github.com/rajsinghtech/garage-operator/pull/284) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - align verify-generated job to actions/setup-go\@&#8203;v7 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - update actions/setup-go action to v7 ([#&#8203;282](https://github.com/rajsinghtech/garage-operator/issues/282)) in [#&#8203;282](https://github.com/rajsinghtech/garage-operator/pull/282) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Release - v0.6.27 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.26`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.26) #### Bug Fixes - retain ID when running pod is unreachable ([#&#8203;281](https://github.com/rajsinghtech/garage-operator/issues/281)) in [#&#8203;281](https://github.com/rajsinghtech/garage-operator/pull/281) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.21`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.21) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.20...v0.6.21) #### Bug Fixes - propagate spec.storage.env and envFrom to auto-mode GarageNodes ([#&#8203;273](https://github.com/rajsinghtech/garage-operator/issues/273)) in [#&#8203;273](https://github.com/rajsinghtech/garage-operator/pull/273) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - make GrantAccess idempotent — look up by recorded account ID, never mint on lookup failure ([#&#8203;271](https://github.com/rajsinghtech/garage-operator/issues/271)) in [#&#8203;271](https://github.com/rajsinghtech/garage-operator/pull/271) by [@&#8203;antonioacg](https://github.com/antonioacg) #### Release - v0.6.21 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.20`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.20) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.19...v0.6.20) #### Features - connectTo-only management handle for existing clusters ([#&#8203;269](https://github.com/rajsinghtech/garage-operator/issues/269)) ([#&#8203;270](https://github.com/rajsinghtech/garage-operator/issues/270)) in [#&#8203;270](https://github.com/rajsinghtech/garage-operator/pull/270) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Release - v0.6.20 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.19`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.19) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.18...v0.6.19) #### Bug Fixes - update module github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring to v0.92.1 ([#&#8203;267](https://github.com/rajsinghtech/garage-operator/issues/267)) in [#&#8203;267](https://github.com/rajsinghtech/garage-operator/pull/267) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module github.com/onsi/gomega to v1.42.1 ([#&#8203;259](https://github.com/rajsinghtech/garage-operator/issues/259)) in [#&#8203;259](https://github.com/rajsinghtech/garage-operator/pull/259) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Features - make grafana configmap annotations configurable ([#&#8203;268](https://github.com/rajsinghtech/garage-operator/issues/268)) in [#&#8203;268](https://github.com/rajsinghtech/garage-operator/pull/268) by [@&#8203;PendaGTP](https://github.com/PendaGTP) #### Miscellaneous - update ghcr.io/devcontainers/features/docker-in-docker docker tag to v4 ([#&#8203;264](https://github.com/rajsinghtech/garage-operator/issues/264)) in [#&#8203;264](https://github.com/rajsinghtech/garage-operator/pull/264) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update major-actions ([#&#8203;263](https://github.com/rajsinghtech/garage-operator/issues/263)) in [#&#8203;263](https://github.com/rajsinghtech/garage-operator/pull/263) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Release - v0.6.19 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.18`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.18) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.17...v0.6.18) #### Bug Fixes - stale appVersion + CI guard ([#&#8203;260](https://github.com/rajsinghtech/garage-operator/issues/260)), bucket name in key secret ([#&#8203;261](https://github.com/rajsinghtech/garage-operator/issues/261)) ([#&#8203;262](https://github.com/rajsinghtech/garage-operator/issues/262)) in [#&#8203;262](https://github.com/rajsinghtech/garage-operator/pull/262) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - update module github.com/onsi/ginkgo/v2 to v2.32.0 ([#&#8203;258](https://github.com/rajsinghtech/garage-operator/issues/258)) in [#&#8203;258](https://github.com/rajsinghtech/garage-operator/pull/258) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring to v0.92.0 ([#&#8203;256](https://github.com/rajsinghtech/garage-operator/issues/256)) in [#&#8203;256](https://github.com/rajsinghtech/garage-operator/pull/256) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Miscellaneous - update major-actions to v7 ([#&#8203;257](https://github.com/rajsinghtech/garage-operator/issues/257)) in [#&#8203;257](https://github.com/rajsinghtech/garage-operator/pull/257) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update actions to v4.2.2 ([#&#8203;255](https://github.com/rajsinghtech/garage-operator/issues/255)) in [#&#8203;255](https://github.com/rajsinghtech/garage-operator/pull/255) by [@&#8203;renovate](https://github.com/renovate)\[bot] ### [`v0.6.17`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.17) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.16...v0.6.17) #### Bug Fixes - CRD allOf enum conflict and STS replica drift on unsuspend ([#&#8203;254](https://github.com/rajsinghtech/garage-operator/issues/254)) in [#&#8203;254](https://github.com/rajsinghtech/garage-operator/pull/254) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.16`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.16) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.15...v0.6.16) #### Bug Fixes - normalize IPv6-mapped IPv4 in cluster status addr, prefer live node on IP match by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - update module github.com/onsi/gomega to v1.42.0 ([#&#8203;251](https://github.com/rajsinghtech/garage-operator/issues/251)) in [#&#8203;251](https://github.com/rajsinghtech/garage-operator/pull/251) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module github.com/onsi/ginkgo/v2 to v2.31.0 ([#&#8203;250](https://github.com/rajsinghtech/garage-operator/issues/250)) in [#&#8203;250](https://github.com/rajsinghtech/garage-operator/pull/250) by [@&#8203;renovate](https://github.com/renovate)\[bot] ### [`v0.6.15`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.15) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.14...v0.6.15) #### Bug Fixes - reap stale storage role when a node's identity changes in place ([#&#8203;249](https://github.com/rajsinghtech/garage-operator/issues/249)) in [#&#8203;249](https://github.com/rajsinghtech/garage-operator/pull/249) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - add kubebuilder:default=false to bool fields to prevent Terraform config drift ([#&#8203;247](https://github.com/rajsinghtech/garage-operator/issues/247)) in [#&#8203;247](https://github.com/rajsinghtech/garage-operator/pull/247) by [@&#8203;rajsinghtechbot](https://github.com/rajsinghtechbot) #### Features - support metricRelabelings on the cluster ServiceMonitor ([#&#8203;248](https://github.com/rajsinghtech/garage-operator/issues/248)) in [#&#8203;248](https://github.com/rajsinghtech/garage-operator/pull/248) by [@&#8203;kbpersonal](https://github.com/kbpersonal) #### Miscellaneous - update actions to v4.2.1 ([#&#8203;246](https://github.com/rajsinghtech/garage-operator/issues/246)) in [#&#8203;246](https://github.com/rajsinghtech/garage-operator/pull/246) by [@&#8203;renovate](https://github.com/renovate)\[bot] ### [`v0.6.14`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.14) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.13...v0.6.14) #### Bug Fixes - update module github.com/onsi/ginkgo/v2 to v2.30.0 ([#&#8203;245](https://github.com/rajsinghtech/garage-operator/issues/245)) in [#&#8203;245](https://github.com/rajsinghtech/garage-operator/pull/245) by [@&#8203;renovate](https://github.com/renovate)\[bot] - forward-only edge gateway status ([#&#8203;243](https://github.com/rajsinghtech/garage-operator/issues/243)) + feat: graceful node cycle ([#&#8203;231](https://github.com/rajsinghtech/garage-operator/issues/231)) ([#&#8203;244](https://github.com/rajsinghtech/garage-operator/issues/244)) in [#&#8203;244](https://github.com/rajsinghtech/garage-operator/pull/244) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - update major-actions to v4 ([#&#8203;242](https://github.com/rajsinghtech/garage-operator/issues/242)) in [#&#8203;242](https://github.com/rajsinghtech/garage-operator/pull/242) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update actions to v3.21.0 ([#&#8203;241](https://github.com/rajsinghtech/garage-operator/issues/241)) in [#&#8203;241](https://github.com/rajsinghtech/garage-operator/pull/241) by [@&#8203;renovate](https://github.com/renovate)\[bot] ### [`v0.6.13`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.13) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.12...v0.6.13) #### Bug Fixes - count GarageNodes by clusterRef, not cluster label, in Auto-mode status ([#&#8203;240](https://github.com/rajsinghtech/garage-operator/issues/240)) in [#&#8203;240](https://github.com/rajsinghtech/garage-operator/pull/240) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - proactively reap dead remote gateway roles; skip gateways from PeerUnreachable; allow GarageKey on Degraded ([#&#8203;239](https://github.com/rajsinghtech/garage-operator/issues/239)) in [#&#8203;239](https://github.com/rajsinghtech/garage-operator/pull/239) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - publicEndpoint.loadBalancer.perNode now works for gateway-only clusters ([#&#8203;238](https://github.com/rajsinghtech/garage-operator/issues/238)) in [#&#8203;238](https://github.com/rajsinghtech/garage-operator/pull/238) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - update major-actions to v7 ([#&#8203;232](https://github.com/rajsinghtech/garage-operator/issues/232)) in [#&#8203;232](https://github.com/rajsinghtech/garage-operator/pull/232) by [@&#8203;renovate](https://github.com/renovate)\[bot] ### [`v0.6.12`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.12) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.11...v0.6.12) #### Bug Fixes - heal immutable-StatefulSet-selector mismatch (orphan-recreate) ([#&#8203;230](https://github.com/rajsinghtech/garage-operator/issues/230)) in [#&#8203;230](https://github.com/rajsinghtech/garage-operator/pull/230) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - update actions to v0.8.0 ([#&#8203;228](https://github.com/rajsinghtech/garage-operator/issues/228)) in [#&#8203;228](https://github.com/rajsinghtech/garage-operator/pull/228) by [@&#8203;renovate](https://github.com/renovate)\[bot] ### [`v0.6.11`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.11) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.10...v0.6.11) #### Bug Fixes - config-hash thrash + per-ordinal storage rpc_public_addr + per-tier storage layoutPolicy ([#&#8203;229](https://github.com/rajsinghtech/garage-operator/issues/229)) in [#&#8203;229](https://github.com/rajsinghtech/garage-operator/pull/229) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.10`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.10) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.9...v0.6.10) #### Gateway readiness probe passthrough A small, additive operator change. ##### Added - **`spec.gateway.readinessProbe`** (`*corev1.Probe`) — override the gateway tier's readiness probe. Use it to supply a custom serving-aware gate, e.g. an exec probe that keeps a gateway in service as long as it can reach a *read* quorum. When unset, behavior is unchanged. ##### Why the default is a bind-only TCP check (and not admin `/health`) A serving-aware `/health` readiness probe was prototyped and **deliberately not made the default**. `/health` is a cluster-wide *consistent write-quorum* signal: at `replication.factor=2`, losing a single storage node drops every partition below write-quorum, so `/health` returns 503 on every node (likewise during federation bootstrap before remote peers join). Behind a `publishNotReadyAddresses: false` Service (e.g. a Tailscale anycast), that would mark all gateways NotReady and withdraw the whole anycast — taking down reads too, even though `read_quorum=1` means reads still work. So gateway readiness stays bind-only TCP (gateways keep serving reads), and the serving/quorum signal belongs in **monitoring**, not readiness. The passthrough is for operators who have a genuine read-capability gate. ##### Upgrade notes - Operator-only, **non-disruptive**: no Garage pod restart, gateway readiness default unchanged. - No API break — additive optional field; `v1beta1` (gateway-as-bool) is unaffected. ### [`v0.6.9`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.9) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.8...v0.6.9) #### Federation signal & cross-region reachability Two fixes found while analyzing a healthy federated cluster's `PeerUnreachable` condition. Both are signal-quality / reachability improvements — neither was an availability issue. ##### Bug fix — `PeerUnreachable` no longer cries wolf The condition flagged **dead roleless identities** — node IDs Garage still remembers but that hold no layout role (e.g. a gateway whose metadata PVC was recreated, leaving its old identity in the peer list). For those the "ConnectClusterNodes will recover it" remediation is impossible (the node is gone), so the alarm was permanently noisy and buried the genuinely-actionable case. `PeerUnreachable` now flags only peers that **hold a current-layout role or are draining** — so a real missing member (roled cross-region gateway, or a *stuck* drain) still trips it, while discarded identities are ignored. ##### Hardening — per-pod gateway `rpc_public_addr` for cross-region reachability A multi-pod gateway tier with a single `gateway.rpcPublicAddr` made every pod advertise the same hostname, so remote regions could reach only one of them (the rest showed "never seen"). The gateway tier now substitutes an **`{ordinal}`** placeholder per pod (symmetric with `remoteClusters[].gatewayRpcEndpointTemplate`); an address without the placeholder is used verbatim. A webhook **warning** fires when a unified multi-pod gateway tier sets a shared `rpc_public_addr` with no `{ordinal}`. ##### Upgrade notes - Operator-only upgrade — no Garage pod restart. The `PeerUnreachable` cleanup takes effect immediately. - The `{ordinal}` gateway support ships **dormant**: it changes nothing until `spec.gateway.rpcPublicAddr` uses the placeholder (which, on an existing tier, triggers a gateway config update + rolling restart). Adopt it when you want per-pod cross-region gateway peering. - No API/CRD changes. ### [`v0.6.8`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.8) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.7...v0.6.8) #### Federation gateway-tag fix A focused follow-up to v0.6.7's gateway-outage work, closing the last federation edge case found during production gateway testing. ##### Bug fix - **Federated imports kept gateways un-reapable ([#&#8203;224](https://github.com/rajsinghtech/garage-operator/issues/224)).** When one region imported another region's nodes into the shared layout, it tagged them with only the remote cluster name — dropping `tier:gateway`. If such an imported gateway role later orphaned (e.g. a gateway lost its identity), the tombstone reaper — which finds gateway roles by their `tier:gateway` tag — couldn't see it, so the dead role stuck in the layout. Imported nodes now carry the proper `tier:gateway`/`tier:storage` tags (the remote-name tag is retained for stale-node cleanup). ##### Hardening - **Skip importing a down remote node**, so a just-orphaned role isn't re-imported before its removal propagates across the federation. - **Reaper backstop for tag-stripped orphans:** in a unified Auto cluster, a local-zone `capacity:null` role with no live or operator-claimed owner is reaped even if a re-import stripped its tier tag — but only after it has been **continuously down** past the same dwell `PeerUnreachable` uses, so a transient blip or briefly-down federated peer is never reaped on a single snapshot. - **Self-connection guard** now compares the *effective* local zone (applying the empty→`"default"` fallback), so a cluster with an unset `spec.zone` correctly recognizes a remote configured `zone: "default"` as itself and never pulls its roles into the local zone. ##### Notes - No API/CRD changes. Operator-only upgrade — Garage pods and node identities are unaffected. - In a federated deployment, `layoutManagement.autoApply: true` is safe on v0.6.7+ (zone-scoped reaper) and this release further hardens the reaper against over-reaping imported roles. ### [`v0.6.7`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.7) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.6...v0.6.7) ##### Bug fixes - **Cross-region gateway tombstone churn ([#&#8203;220](https://github.com/rajsinghtech/garage-operator/issues/220)).** The gateway tombstone reaper is now scoped to the local zone, so one region no longer deletes another region's live gateway layout roles. Previously each region's reaper classified the *other* region's gateway roles as stale and removed them while the per-node controller kept re-adding them — endless layout churn that left the gateway `key_table` unsynced and S3 auth failing with `403`. - **Gateway identity lost on upgrade ([#&#8203;221](https://github.com/rajsinghtech/garage-operator/issues/221)).** Gateway nodes now keep a persistent metadata PVC and the operator adopts the existing claim instead of recreating it, so a gateway's Garage node identity survives operator/chart upgrades — no more orphaned layout roles. - **Cross-region per-ordinal dial parser ([#&#8203;218](https://github.com/rajsinghtech/garage-operator/issues/218)).** The remote-gateway ordinal parser no longer hardcodes the `garage-gateway-` prefix and `Atoi`s the pod suffix, so per-ordinal dialing works for arbitrarily named gateway nodes. ##### Hardening (v0.6.7 backlog, [#&#8203;219](https://github.com/rajsinghtech/garage-operator/issues/219)) - A status-update conflict (HTTP 409) no longer clobbers the reconcile's computed Phase / Health / conditions — status is now assembled inside the retry closure. - Buckets revoke key grants that were dropped from `spec.keyPermissions` instead of leaving them dangling. - Storage bootstrap admin calls get per-call 5s timeouts (parity with the gateway path), so one unreachable node can't stall the reconcile. - An auto scale-down that would drop live nodes below `replication.factor` is now refused with a `StorageScaleDownBlocked` condition rather than orphaning the layout role. - Factor migration tracks per-phase deadlines, so a slow phase can't silently consume the next phase's timeout budget. - `503` responses are classified and fast-requeued instead of treated as terminal errors. - Single-replica gateway tiers get a drainable PodDisruptionBudget (`maxUnavailable=1`). - New `GatewayLayoutDegraded` condition surfaces operator-owned gateway nodes that are missing from the layout. - Bucket-side key-permission reconcile skips re-issuing unchanged grants (less CRDT churn). ##### Docs - README validated against the shipped code — gateway topology, factor migration, and health conditions ([#&#8203;217](https://github.com/rajsinghtech/garage-operator/issues/217)). ##### Upgrade notes - If you set `layoutManagement.autoApply: false` to work around the cross-region churn ([#&#8203;220](https://github.com/rajsinghtech/garage-operator/issues/220)), you can re-enable it once **all** regions are on v0.6.7 — the reaper no longer fights across regions. - The operator upgrade is non-disruptive: Garage pods and node identities are unaffected. ### [`v0.6.6`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.6) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.5...v0.6.6) #### Highlights Gateway-tier unification, a safe path to change the replication factor, and a round of availability hardening. ##### Features - **Unified gateway tier ([#&#8203;210](https://github.com/rajsinghtech/garage-operator/issues/210)).** In a unified cluster, gateways now run as per-node `GarageNode`s — symmetric with storage. Each is a single-replica StatefulSet with a persistent metadata PVC (stable identity) and a `capacity: nil` layout role, so S3 key/bucket auth resolves *locally* instead of needing a quorum RPC to the storage tier. This release also adds race-safe layout apply and a richer cluster-health status surface. - **Coordinated replication-factor migration ([#&#8203;208](https://github.com/rajsinghtech/garage-operator/issues/208), [#&#8203;211](https://github.com/rajsinghtech/garage-operator/issues/211)).** A new `purge-cluster-layout` annotation drives a resumable state machine to change `replication.factor` — the only safe way to do it, since the factor is fixed at layout creation upstream. It refuses federated clusters, requires at least N storage nodes, and tears down cleanly on abort (never leaves storage scaled to zero). - **PeerUnreachable condition ([#&#8203;212](https://github.com/rajsinghtech/garage-operator/issues/212)).** Surfaces peers that have been continuously down beyond \~10 minutes in `status.unreachablePeers`, so a sustained-down node is visible without reading Garage internals. ##### Bug fixes & hardening - **Pre-release review fixes ([#&#8203;216](https://github.com/rajsinghtech/garage-operator/issues/216)):** admin-client behavior, factor-migration teardown / override-refusal / init-container UID, gateway connectivity, and `pods/exec` RBAC. - Tolerate a factor-propagation race during migration validation that was flaking the main e2e suite ([#&#8203;213](https://github.com/rajsinghtech/garage-operator/issues/213)). ##### Testing / CI - Ginkgo e2e split into 3 parallel lanes for faster runs ([#&#8203;214](https://github.com/rajsinghtech/garage-operator/issues/214)). - Fixed the Single-Cluster phase flake ([#&#8203;214](https://github.com/rajsinghtech/garage-operator/issues/214)) and the bucket-quota-update flake ([#&#8203;215](https://github.com/rajsinghtech/garage-operator/issues/215)). ### [`v0.6.5`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.5) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.4...v0.6.5) #### Bug Fixes - preserve cluster per-disk paths + readOnly + guard replicas=0 ([#&#8203;205](https://github.com/rajsinghtech/garage-operator/issues/205)) ([#&#8203;207](https://github.com/rajsinghtech/garage-operator/issues/207)) in [#&#8203;207](https://github.com/rajsinghtech/garage-operator/pull/207) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - populate multi-HDD data_dir capacity, heal [pre-#&#8203;205](https://github.com/pre-/garage-operator/issues/205) nodes ([#&#8203;205](https://github.com/rajsinghtech/garage-operator/issues/205)) ([#&#8203;206](https://github.com/rajsinghtech/garage-operator/issues/206)) in [#&#8203;206](https://github.com/rajsinghtech/garage-operator/pull/206) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.4`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.4) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.3...v0.6.4) #### Bug Fixes - auto-populate bootstrap_peers + reconnect storage-tier on restart ([#&#8203;203](https://github.com/rajsinghtech/garage-operator/issues/203)) ([#&#8203;204](https://github.com/rajsinghtech/garage-operator/issues/204)) in [#&#8203;204](https://github.com/rajsinghtech/garage-operator/pull/204) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - dump operator logs before kind teardown ([#&#8203;202](https://github.com/rajsinghtech/garage-operator/issues/202)) in [#&#8203;202](https://github.com/rajsinghtech/garage-operator/pull/202) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.3`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.3) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.2...v0.6.3) #### Bug Fixes - gateway PDB, edge-gateway RPC fallback, pod-delete RBAC ([#&#8203;198](https://github.com/rajsinghtech/garage-operator/issues/198), [#&#8203;199](https://github.com/rajsinghtech/garage-operator/issues/199), [#&#8203;200](https://github.com/rajsinghtech/garage-operator/issues/200)) ([#&#8203;201](https://github.com/rajsinghtech/garage-operator/issues/201)) in [#&#8203;201](https://github.com/rajsinghtech/garage-operator/pull/201) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - PDB regression + v0.6.x review fixes ([#&#8203;196](https://github.com/rajsinghtech/garage-operator/issues/196)) ([#&#8203;197](https://github.com/rajsinghtech/garage-operator/issues/197)) in [#&#8203;197](https://github.com/rajsinghtech/garage-operator/pull/197) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.2`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.2) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.1...v0.6.2) #### Bug Fixes - pre-revoke bucket grants and surface stuck buckets ([#&#8203;194](https://github.com/rajsinghtech/garage-operator/issues/194)) in [#&#8203;194](https://github.com/rajsinghtech/garage-operator/pull/194) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.1`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.1) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.6.0...v0.6.1) #### Bug Fixes - restore cluster-shared name+instance labels on v0.6.0 storage pods ([#&#8203;193](https://github.com/rajsinghtech/garage-operator/issues/193)) in [#&#8203;193](https://github.com/rajsinghtech/garage-operator/pull/193) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.6.0`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.6.0) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.11...v0.6.0) #### Features - Auto mode = per-node GarageNodes, with migration, maintenance, multi-HDD, parity ([#&#8203;192](https://github.com/rajsinghtech/garage-operator/issues/192)) in [#&#8203;192](https://github.com/rajsinghtech/garage-operator/pull/192) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Refactoring - Set GARAGE_CONFIG_FILE ([#&#8203;191](https://github.com/rajsinghtech/garage-operator/issues/191)) in [#&#8203;191](https://github.com/rajsinghtech/garage-operator/pull/191) by [@&#8203;NiklasBeierl](https://github.com/NiklasBeierl) ### [`v0.5.11`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.11) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.10...v0.5.11) #### Bug Fixes - env vars, multi-HDD PVCs, cross-namespace bucket docs ([#&#8203;186](https://github.com/rajsinghtech/garage-operator/issues/186), [#&#8203;187](https://github.com/rajsinghtech/garage-operator/issues/187), [#&#8203;188](https://github.com/rajsinghtech/garage-operator/issues/188)) ([#&#8203;189](https://github.com/rajsinghtech/garage-operator/issues/189)) in [#&#8203;189](https://github.com/rajsinghtech/garage-operator/pull/189) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - prevent servicemonitor from scraping webhook service ([#&#8203;184](https://github.com/rajsinghtech/garage-operator/issues/184)) in [#&#8203;184](https://github.com/rajsinghtech/garage-operator/pull/184) by [@&#8203;jkrivas](https://github.com/jkrivas) ### [`v0.5.10`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.10) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.9...v0.5.10) #### Bug Fixes - register v1alpha1 GarageCluster Spoke to silence conversion-webhook spam (fixes [#&#8203;181](https://github.com/rajsinghtech/garage-operator/issues/181)) ([#&#8203;183](https://github.com/rajsinghtech/garage-operator/issues/183)) in [#&#8203;183](https://github.com/rajsinghtech/garage-operator/pull/183) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Documentation - refresh README — gateway tier is StatefulSet+PVC in-layout, add cross-region peering by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.5.9`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.9) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.8...v0.5.9) #### Bug Fixes - peer remote gateway pods per-pod via GatewayRPCEndpointTemplate ([#&#8203;182](https://github.com/rajsinghtech/garage-operator/issues/182)) in [#&#8203;182](https://github.com/rajsinghtech/garage-operator/pull/182) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.5.8`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.8) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.7...v0.5.8) #### Bug Fixes - gateways back in cluster layout ([#&#8203;180](https://github.com/rajsinghtech/garage-operator/issues/180)) in [#&#8203;180](https://github.com/rajsinghtech/garage-operator/pull/180) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - bump admin API timeout 30s→90s by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.5.7`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.7) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.6...v0.5.7) #### Refactoring - gateway pods no longer participate in cluster layout ([#&#8203;179](https://github.com/rajsinghtech/garage-operator/issues/179)) in [#&#8203;179](https://github.com/rajsinghtech/garage-operator/pull/179) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.5.6`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.6) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.5...v0.5.6) #### Refactoring - persistent identity via StatefulSet + small metadata PVC ([#&#8203;178](https://github.com/rajsinghtech/garage-operator/issues/178)) in [#&#8203;178](https://github.com/rajsinghtech/garage-operator/pull/178) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.5.5`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.5) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.4...v0.5.5) #### Bug Fixes - tier-scope API Service + gateway readiness probe ([#&#8203;175](https://github.com/rajsinghtech/garage-operator/issues/175)) in [#&#8203;175](https://github.com/rajsinghtech/garage-operator/pull/175) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Documentation - refresh README examples by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - refresh README examples by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Testing - wait for webhook after operator restart by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) - wait for stable webhook endpoints by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.5.4`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.4) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.3...v0.5.4) #### Bug Fixes - honor explicit replicas=0 + e2e cert-manager wiring ([#&#8203;174](https://github.com/rajsinghtech/garage-operator/issues/174)) in [#&#8203;174](https://github.com/rajsinghtech/garage-operator/pull/174) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.5.3`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.3) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.2...v0.5.3) #### Bug Fixes - tier-specific rpc_public_addr + allow replicas=0 by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.5.2`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.2) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.1...v0.5.2) #### Bug Fixes - assign layout capacity per-pod-tier in unified CRs by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.5.1`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.1) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.5.0...v0.5.1) #### Bug Fixes - preserve served versions when webhooks disabled and default webhooks=true by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) ### [`v0.5.0`](https://github.com/rajsinghtech/garage-operator/releases/tag/v0.5.0) [Compare Source](https://github.com/rajsinghtech/garage-operator/compare/v0.4.10...v0.5.0) #### Bug Fixes - update module github.com/onsi/gomega to v1.41.0 ([#&#8203;169](https://github.com/rajsinghtech/garage-operator/issues/169)) in [#&#8203;169](https://github.com/rajsinghtech/garage-operator/pull/169) by [@&#8203;renovate](https://github.com/renovate)\[bot] - update module github.com/onsi/ginkgo/v2 to v2.29.0 ([#&#8203;168](https://github.com/rajsinghtech/garage-operator/issues/168)) in [#&#8203;168](https://github.com/rajsinghtech/garage-operator/pull/168) by [@&#8203;renovate](https://github.com/renovate)\[bot] #### Features - dual API versions for GarageCluster (v1beta1 + v1beta2 + conversion webhook) ([#&#8203;167](https://github.com/rajsinghtech/garage-operator/issues/167)) in [#&#8203;167](https://github.com/rajsinghtech/garage-operator/pull/167) by [@&#8203;rajsinghtech](https://github.com/rajsinghtech) #### Miscellaneous - update ghcr.io/devcontainers/features/docker-in-docker docker tag to v3 ([#&#8203;172](https://github.com/rajsinghtech/garage-operator/issues/172)) in [#&#8203;172](https://github.com/rajsinghtech/garage-operator/pull/172) by [@&#8203;renovate](https://github.com/renovate)\[bot] </details> <details> <summary>bjw-s-labs/helm-charts (ghcr.io/bjw-s-labs/helm/app-template)</summary> ### [`v5.3.0`](https://github.com/bjw-s-labs/helm-charts/releases/tag/app-template-5.3.0) #### Changelog: ##### Changed - Upgraded the common library to v5.3.0 - [Upgrade notes](https://bjw-s-labs.github.io/helm-charts/docs/app-template/upgrades/4-to-5/) - [Detailed release notes](https://github.com/bjw-s-labs/helm-charts/releases/tag/common-5.3.0) </details> <details> <summary>element-hq/synapse (ghcr.io/element-hq/synapse)</summary> ### [`v1.163.0`](https://github.com/element-hq/synapse/releases/tag/v1.163.0) [Compare Source](https://github.com/element-hq/synapse/compare/v1.162.0...v1.163.0) Changelog: <https://github.com/element-hq/synapse/blob/release-v1.163/CHANGES.md> </details> <details> <summary>renovatebot/renovate (renovate/renovate)</summary> ### [`v44.164.7`](https://github.com/renovatebot/renovate/releases/tag/44.164.7) [Compare Source](https://github.com/renovatebot/renovate/compare/44.164.6...44.164.7) ##### Bug Fixes - **deps:** update renovate-base-image to v13.131.2 (main) ([#&#8203;47094](https://github.com/renovatebot/renovate/issues/47094)) ([df917bb](https://github.com/renovatebot/renovate/commit/df917bbcd9c994840dc664ae41a5486176d6c1f8)) ##### Miscellaneous Chores - **deps:** update zizmor (main) ([#&#8203;47095](https://github.com/renovatebot/renovate/issues/47095)) ([501a2a0](https://github.com/renovatebot/renovate/commit/501a2a0f429eccf7993a2cff4d6dfe3d6d3980f6)) ### [`v44.164.6`](https://github.com/renovatebot/renovate/releases/tag/44.164.6) [Compare Source](https://github.com/renovatebot/renovate/compare/44.164.5...44.164.6) ##### Build System - **deps:** update dependency cronstrue to v3.31.0 (main) ([#&#8203;47091](https://github.com/renovatebot/renovate/issues/47091)) ([47886b6](https://github.com/renovatebot/renovate/commit/47886b673a8393f0979c511cea9941c9afef6595)) ### [`v44.164.5`](https://github.com/renovatebot/renovate/releases/tag/44.164.5) [Compare Source](https://github.com/renovatebot/renovate/compare/44.164.4...44.164.5) ##### Bug Fixes - **workers/repository:** pass `constraints` correctly when applying `postUpgradeTasks` ([#&#8203;47069](https://github.com/renovatebot/renovate/issues/47069)) ([08cb221](https://github.com/renovatebot/renovate/commit/08cb221f4aa2b246eab35e9e4cfd4b2ad21144ee)), closes [#&#8203;47068](https://github.com/renovatebot/renovate/issues/47068) [#&#8203;43633](https://github.com/renovatebot/renovate/issues/43633) ### [`v44.164.4`](https://github.com/renovatebot/renovate/releases/tag/44.164.4) [Compare Source](https://github.com/renovatebot/renovate/compare/44.164.3...44.164.4) ##### Bug Fixes - **util/git:** use non-empty passwords for token credentials on more platforms ([#&#8203;47085](https://github.com/renovatebot/renovate/issues/47085)) ([969b3cb](https://github.com/renovatebot/renovate/commit/969b3cb162755974958a1963bbb79e3951f693f1)) ### [`v44.164.3`](https://github.com/renovatebot/renovate/releases/tag/44.164.3) [Compare Source](https://github.com/renovatebot/renovate/compare/44.164.2...44.164.3) ##### Bug Fixes - **deps:** update renovate-base-image to v13.131.1 (main) ([#&#8203;47078](https://github.com/renovatebot/renovate/issues/47078)) ([a4628c6](https://github.com/renovatebot/renovate/commit/a4628c6819bbddc86a20b2be28fe2601baca4bb8)) ##### Miscellaneous Chores - **deps:** update dependency vite to v8.3.4 (main) ([#&#8203;47082](https://github.com/renovatebot/renovate/issues/47082)) ([b1a78f3](https://github.com/renovatebot/renovate/commit/b1a78f3c40a3636fec6a66f9328385e4972e06fe)) ### [`v44.164.2`](https://github.com/renovatebot/renovate/releases/tag/44.164.2) [Compare Source](https://github.com/renovatebot/renovate/compare/44.164.1...44.164.2) ##### Bug Fixes - **platform/gitea,forgejo:** use a non-empty password in token clone URLs ([#&#8203;47076](https://github.com/renovatebot/renovate/issues/47076)) ([99132db](https://github.com/renovatebot/renovate/commit/99132db4592b7adb244d706a582bf805b8cad6b3)) - **util/git:** use a non-empty password for token-only git credentials ([#&#8203;47077](https://github.com/renovatebot/renovate/issues/47077)) ([a9677c3](https://github.com/renovatebot/renovate/commit/a9677c36f458b39f1b70d316c8fbd8fa789aad29)) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.41.0 (main) ([#&#8203;47074](https://github.com/renovatebot/renovate/issues/47074)) ([c49d1be](https://github.com/renovatebot/renovate/commit/c49d1be4ca276dfae1307b313b925a5c550ec56f)) - **deps:** update github/codeql-action action to v4.39.0 (main) ([#&#8203;47075](https://github.com/renovatebot/renovate/issues/47075)) ([9602e06](https://github.com/renovatebot/renovate/commit/9602e069861c50c8a66584aed81171dbe7cfb37a)) ### [`v44.164.1`](https://github.com/renovatebot/renovate/releases/tag/44.164.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.164.0...44.164.1) ##### Bug Fixes - **platform/github:** use `x-access-token` for personal access tokens in clone URLs ([#&#8203;47073](https://github.com/renovatebot/renovate/issues/47073)) ([6cc8898](https://github.com/renovatebot/renovate/commit/6cc889803a44be232802143499d904799f58abc0)) ### [`v44.164.0`](https://github.com/renovatebot/renovate/releases/tag/44.164.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.163.0...44.164.0) ##### Features - **datasource/go:** look up modules from a `go-import` `mod` proxy ([#&#8203;47044](https://github.com/renovatebot/renovate/issues/47044)) ([0876273](https://github.com/renovatebot/renovate/commit/0876273a37541cf41b7b831b75f7e03d0973bfc1)) ### [`v44.163.0`](https://github.com/renovatebot/renovate/releases/tag/44.163.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.162.0...44.163.0) ##### Features - **deps:** update renovate-base-image to v13.131.0 (main) ([#&#8203;47070](https://github.com/renovatebot/renovate/issues/47070)) ([c6c548e](https://github.com/renovatebot/renovate/commit/c6c548ea929be0839a3117d2c687513364d98bfa)) ### [`v44.162.0`](https://github.com/renovatebot/renovate/releases/tag/44.162.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.161.2...44.162.0) ##### Features - **util/http:** fall back to `go` host rules for `go-proxy` requests ([#&#8203;47043](https://github.com/renovatebot/renovate/issues/47043)) ([1dce2f8](https://github.com/renovatebot/renovate/commit/1dce2f8ed067f5dec31b5d6b32980eaba081711a)) ### [`v44.161.2`](https://github.com/renovatebot/renovate/releases/tag/44.161.2) [Compare Source](https://github.com/renovatebot/renovate/compare/44.161.1...44.161.2) ##### Bug Fixes - **manager/poetry:** disable implicit PyPI when primary sources exist ([#&#8203;46977](https://github.com/renovatebot/renovate/issues/46977)) ([ab62282](https://github.com/renovatebot/renovate/commit/ab622825b595f1c62544ff7cfaf9672f0c965410)) ##### Miscellaneous Chores - **deps:** update zizmor (main) ([#&#8203;47065](https://github.com/renovatebot/renovate/issues/47065)) ([278f43f](https://github.com/renovatebot/renovate/commit/278f43fcec26a6bc34b7499a5f65277e4e754ad1)) ### [`v44.161.1`](https://github.com/renovatebot/renovate/releases/tag/44.161.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.161.0...44.161.1) ##### Bug Fixes - **deps:** update renovate-base-image to v13.130.1 (main) ([#&#8203;47062](https://github.com/renovatebot/renovate/issues/47062)) ([2076755](https://github.com/renovatebot/renovate/commit/20767551404255f954569588dc1db726dfe791d6)) ### [`v44.161.0`](https://github.com/renovatebot/renovate/releases/tag/44.161.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.160.1...44.161.0) ##### Features - **deps:** update renovate-base-image to v13.130.0 (main) ([#&#8203;47058](https://github.com/renovatebot/renovate/issues/47058)) ([17eb8c9](https://github.com/renovatebot/renovate/commit/17eb8c9fe435013e9c16c3cc835dc6fa2df5191f)) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.40.0 (main) ([#&#8203;47057](https://github.com/renovatebot/renovate/issues/47057)) ([1f158f6](https://github.com/renovatebot/renovate/commit/1f158f6b01b88b85b93670a7d03d3d7f68f312cd)) ### [`v44.160.1`](https://github.com/renovatebot/renovate/releases/tag/44.160.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.160.0...44.160.1) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.39.0 (main) ([#&#8203;47055](https://github.com/renovatebot/renovate/issues/47055)) ([69e9441](https://github.com/renovatebot/renovate/commit/69e944155456f95e3cec3e3d0ebbefc448d65d21)) ##### Build System - **deps:** update dependency google-auth-library to v11.2.0 (main) ([#&#8203;47056](https://github.com/renovatebot/renovate/issues/47056)) ([e2c5336](https://github.com/renovatebot/renovate/commit/e2c533675ea7dc6cc56dc94f5c72904172c1128c)) ### [`v44.160.0`](https://github.com/renovatebot/renovate/releases/tag/44.160.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.159.0...44.160.0) ##### Features - **deps:** update renovate-base-image to v13.129.0 (main) ([#&#8203;47054](https://github.com/renovatebot/renovate/issues/47054)) ([135919f](https://github.com/renovatebot/renovate/commit/135919fed8b4010bcf73afd7e1bae728c8df2c21)) ### [`v44.159.0`](https://github.com/renovatebot/renovate/releases/tag/44.159.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.158.3...44.159.0) ##### Features - **deps:** update renovate-base-image to v13.128.0 (main) ([#&#8203;47053](https://github.com/renovatebot/renovate/issues/47053)) ([7819f72](https://github.com/renovatebot/renovate/commit/7819f7288d13a4b656382302be71a930fa322fba)) ### [`v44.158.3`](https://github.com/renovatebot/renovate/releases/tag/44.158.3) [Compare Source](https://github.com/renovatebot/renovate/compare/44.158.2...44.158.3) ##### Bug Fixes - **deps:** update dependency github/gh-actions-lock to v0.2.0 (main) ([#&#8203;46976](https://github.com/renovatebot/renovate/issues/46976)) ([129f078](https://github.com/renovatebot/renovate/commit/129f078880b8daa7fc5aa018ca150f0b1d96e649)) ### [`v44.158.2`](https://github.com/renovatebot/renovate/releases/tag/44.158.2) [Compare Source](https://github.com/renovatebot/renovate/compare/44.158.1...44.158.2) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.38.0 (main) ([#&#8203;47051](https://github.com/renovatebot/renovate/issues/47051)) ([943658a](https://github.com/renovatebot/renovate/commit/943658add5e5984cac7d44c8d402848a12060343)) ##### Tests - **manager/github-actions:** update pinned version of `gh actions-lock` via Renovate ([#&#8203;46987](https://github.com/renovatebot/renovate/issues/46987)) ([fc4719b](https://github.com/renovatebot/renovate/commit/fc4719beca3b9f40d5f711b1f9464187f6b041cf)) ##### Build System - **deps:** update dependency node to v24.22.0 (main) ([#&#8203;47050](https://github.com/renovatebot/renovate/issues/47050)) ([272121d](https://github.com/renovatebot/renovate/commit/272121dfb06693237688f0e9ac4ad26f9a403e58)) ### [`v44.158.1`](https://github.com/renovatebot/renovate/releases/tag/44.158.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.158.0...44.158.1) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.37.0 (main) ([#&#8203;47039](https://github.com/renovatebot/renovate/issues/47039)) ([6970c0b](https://github.com/renovatebot/renovate/commit/6970c0b4cf943b58d6a48e60dd573bd3b9b8137d)) ##### Build System - **deps:** update node.js to v24.22.0 (main) ([#&#8203;47042](https://github.com/renovatebot/renovate/issues/47042)) ([8fb6dd6](https://github.com/renovatebot/renovate/commit/8fb6dd6b1bc15cf182711247d4c534d6a1a55bfe)) ### [`v44.158.0`](https://github.com/renovatebot/renovate/releases/tag/44.158.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.157.1...44.158.0) ##### Features - **deps:** update renovate-base-image to v13.126.0 (main) ([#&#8203;47037](https://github.com/renovatebot/renovate/issues/47037)) ([1e3a80d](https://github.com/renovatebot/renovate/commit/1e3a80dc6bc15b197439625605543e7816c27a91)) ### [`v44.157.1`](https://github.com/renovatebot/renovate/releases/tag/44.157.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.157.0...44.157.1) ##### Bug Fixes - **prune:** refresh PR state before autoclosing ([#&#8203;46518](https://github.com/renovatebot/renovate/issues/46518)) ([5b9a6b6](https://github.com/renovatebot/renovate/commit/5b9a6b62c505c1e4cecdc903864ec2031f56e28c)) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.36.0 (main) ([#&#8203;47029](https://github.com/renovatebot/renovate/issues/47029)) ([b2e0191](https://github.com/renovatebot/renovate/commit/b2e0191565b9eecbb524eaac65798c5de2db1348)) ### [`v44.157.0`](https://github.com/renovatebot/renovate/releases/tag/44.157.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.156.3...44.157.0) ##### Features - **deps:** update renovate-base-image to v13.125.0 (main) ([#&#8203;47030](https://github.com/renovatebot/renovate/issues/47030)) ([0de398e](https://github.com/renovatebot/renovate/commit/0de398e44d745e7eff0acb1605e017d1e72fbbc4)) ##### Tests - **json-schema:** extend timeout in tests ([#&#8203;47033](https://github.com/renovatebot/renovate/issues/47033)) ([527394e](https://github.com/renovatebot/renovate/commit/527394e94f918fa39f9fc8b93160a77c67aaf55c)) - **lint:** require hook timeouts to be in sync across files ([#&#8203;47035](https://github.com/renovatebot/renovate/issues/47035)) ([c91157e](https://github.com/renovatebot/renovate/commit/c91157e8548aeccfb87f52ce21ac89b61ce12455)) ##### Build System - **deps:** update dependency [@&#8203;renovatebot/pgp](https://github.com/renovatebot/pgp) to v2.0.3 (main) ([#&#8203;47032](https://github.com/renovatebot/renovate/issues/47032)) ([9857967](https://github.com/renovatebot/renovate/commit/985796778abaeff517c3e140f21c523f4273f7fe)) ### [`v44.156.3`](https://github.com/renovatebot/renovate/releases/tag/44.156.3) [Compare Source](https://github.com/renovatebot/renovate/compare/44.156.2...44.156.3) ##### Bug Fixes - **datasource/go:** treat modules with `go` host rule credentials as private ([#&#8203;47031](https://github.com/renovatebot/renovate/issues/47031)) ([28ed2ee](https://github.com/renovatebot/renovate/commit/28ed2ee25ee2eac85fc34a7f8f9a39f651a1e3e0)) ### [`v44.156.2`](https://github.com/renovatebot/renovate/releases/tag/44.156.2) [Compare Source](https://github.com/renovatebot/renovate/compare/44.156.1...44.156.2) ##### Bug Fixes - **config:** document where `mode` can be used ([#&#8203;46697](https://github.com/renovatebot/renovate/issues/46697)) ([9ccdc69](https://github.com/renovatebot/renovate/commit/9ccdc693b03a8fa848ad00bd08684857337ddf39)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **config:** document where our artifact update options can be used ([#&#8203;46699](https://github.com/renovatebot/renovate/issues/46699)) ([3fe646d](https://github.com/renovatebot/renovate/commit/3fe646d83a069fb7c4fc1744b641a178fc1a9676)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **config:** document where our issue-only options can be used ([#&#8203;46698](https://github.com/renovatebot/renovate/issues/46698)) ([ead1d7e](https://github.com/renovatebot/renovate/commit/ead1d7ef3ab59749fd7ffe4a3932a124fad3fb34)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) ##### Tests - **json-schema:** extend timeout in tests ([#&#8203;47028](https://github.com/renovatebot/renovate/issues/47028)) ([a9e3dbe](https://github.com/renovatebot/renovate/commit/a9e3dbec3c468883888d564ac5f124130a940dc7)) ### [`v44.156.1`](https://github.com/renovatebot/renovate/releases/tag/44.156.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.156.0...44.156.1) ##### Bug Fixes - **config:** document where file matching options can be used ([#&#8203;46695](https://github.com/renovatebot/renovate/issues/46695)) ([e79dd16](https://github.com/renovatebot/renovate/commit/e79dd1686725837120e463d9624be7cf27818642)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **config:** document where our automerge and grouping options can be used ([#&#8203;46692](https://github.com/renovatebot/renovate/issues/46692)) ([415e46b](https://github.com/renovatebot/renovate/commit/415e46bb3057fbb9807b4ea02e9503951be2091d)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **config:** document where rate limits can be used ([#&#8203;46696](https://github.com/renovatebot/renovate/issues/46696)) ([677e621](https://github.com/renovatebot/renovate/commit/677e62193142067f996be741fe24dab76b137bbc)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) ### [`v44.156.0`](https://github.com/renovatebot/renovate/releases/tag/44.156.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.155.9...44.156.0) ##### Features - **deps:** update renovate-base-image to v13.122.0 (main) ([#&#8203;47026](https://github.com/renovatebot/renovate/issues/47026)) ([0eb92be](https://github.com/renovatebot/renovate/commit/0eb92be53aad7e01543e955a1820932c774fa2c7)) ##### Miscellaneous Chores - **deps:** update dependency astral-sh/uv to v0.13.1 (main) ([#&#8203;47024](https://github.com/renovatebot/renovate/issues/47024)) ([53b419b](https://github.com/renovatebot/renovate/commit/53b419bf72501f1075eba5692f44d2df0b2c4fc3)) - **deps:** update dependency uv to v0.13.1 (main) ([#&#8203;47025](https://github.com/renovatebot/renovate/issues/47025)) ([1d6dd52](https://github.com/renovatebot/renovate/commit/1d6dd52dd18d6326bc013c5483d4606eaaa611e9)) ### [`v44.155.9`](https://github.com/renovatebot/renovate/releases/tag/44.155.9) [Compare Source](https://github.com/renovatebot/renovate/compare/44.155.8...44.155.9) ##### Bug Fixes - **deps:** update renovate-base-image to v13.121.2 (main) ([#&#8203;47022](https://github.com/renovatebot/renovate/issues/47022)) ([6a2c690](https://github.com/renovatebot/renovate/commit/6a2c6905901144ef0b0b7b4db1df4bced47f33d2)) ### [`v44.155.8`](https://github.com/renovatebot/renovate/releases/tag/44.155.8) [Compare Source](https://github.com/renovatebot/renovate/compare/44.155.7...44.155.8) ##### Build System - **deps:** update dependency cronstrue to v3.30.0 (main) ([#&#8203;47021](https://github.com/renovatebot/renovate/issues/47021)) ([754c581](https://github.com/renovatebot/renovate/commit/754c581a9635c33efceff0efc2b2dd64064d940f)) ### [`v44.155.7`](https://github.com/renovatebot/renovate/releases/tag/44.155.7) [Compare Source](https://github.com/renovatebot/renovate/compare/44.155.6...44.155.7) ##### Miscellaneous Chores - **deps:** update dependency katex@>=0.11.0 <0.18.2 to v0.19.0 (main) ([#&#8203;47018](https://github.com/renovatebot/renovate/issues/47018)) ([5c074fd](https://github.com/renovatebot/renovate/commit/5c074fd6edd01fd662396eb897c05c9338289036)) - **deps:** update dependency shell-quote@>=1.8.4 <1.11.0 to v1.12.0 (main) ([#&#8203;47019](https://github.com/renovatebot/renovate/issues/47019)) ([7c9f750](https://github.com/renovatebot/renovate/commit/7c9f750150ba023b41a78863f1dc4db18cab74c7)) ##### Build System - **deps:** update dependency execa to v10.1.0 (main) ([#&#8203;47016](https://github.com/renovatebot/renovate/issues/47016)) ([bf10afc](https://github.com/renovatebot/renovate/commit/bf10afc01649113fc4a2a438af6817dfef66030d)) - **deps:** update opentelemetry-js-contrib monorepo (main) ([#&#8203;47015](https://github.com/renovatebot/renovate/issues/47015)) ([2985b37](https://github.com/renovatebot/renovate/commit/2985b37179a191d769bdadebb2e7017572d7c166)) ### [`v44.155.6`](https://github.com/renovatebot/renovate/releases/tag/44.155.6) [Compare Source](https://github.com/renovatebot/renovate/compare/44.155.5...44.155.6) ##### Bug Fixes - **deps:** override transitive dependencies flagged by pnpm audit ([#&#8203;46996](https://github.com/renovatebot/renovate/issues/46996)) ([66c56b5](https://github.com/renovatebot/renovate/commit/66c56b514f1d25495520fc93be1e0c9c1be1cc5a)) ### [`v44.155.5`](https://github.com/renovatebot/renovate/releases/tag/44.155.5) [Compare Source](https://github.com/renovatebot/renovate/compare/44.155.4...44.155.5) ##### Bug Fixes - **http:** share concurrent identical cache provider requests ([#&#8203;46627](https://github.com/renovatebot/renovate/issues/46627)) ([4dc30ea](https://github.com/renovatebot/renovate/commit/4dc30ea9bc69baea806b4ef20da9dcad1f437f67)) ### [`v44.155.4`](https://github.com/renovatebot/renovate/releases/tag/44.155.4) [Compare Source](https://github.com/renovatebot/renovate/compare/44.155.3...44.155.4) ##### Build System - **deps:** update opentelemetry-js monorepo (main) ([#&#8203;47008](https://github.com/renovatebot/renovate/issues/47008)) ([e6e03fd](https://github.com/renovatebot/renovate/commit/e6e03fdf2f7f5350b548922b50d4126bfa9020e2)) ### [`v44.155.3`](https://github.com/renovatebot/renovate/releases/tag/44.155.3) [Compare Source](https://github.com/renovatebot/renovate/compare/44.155.2...44.155.3) ##### Bug Fixes - **workers/reconfigure:** pass default branch to extraction config ([#&#8203;46997](https://github.com/renovatebot/renovate/issues/46997)) ([5a3bfc0](https://github.com/renovatebot/renovate/commit/5a3bfc02372185b8ef89de5efe1d7bf9574130b2)) ##### Documentation - Correct platform feature support table for Dependency Dashboard ([#&#8203;46777](https://github.com/renovatebot/renovate/issues/46777)) ([109fc99](https://github.com/renovatebot/renovate/commit/109fc99c4c6c643a1f2b37073dd315c8a21d3ace)) ### [`v44.155.2`](https://github.com/renovatebot/renovate/releases/tag/44.155.2) [Compare Source](https://github.com/renovatebot/renovate/compare/44.155.1...44.155.2) ##### Bug Fixes - **datasource/gitea-tags:** return no digest for a missing repo or tag ([#&#8203;46984](https://github.com/renovatebot/renovate/issues/46984)) ([690da35](https://github.com/renovatebot/renovate/commit/690da3581f12455326712c2680deb47858b41679)) - **workers/repository:** keep lookup results out of the extract cache ([#&#8203;46982](https://github.com/renovatebot/renovate/issues/46982)) ([ad515fb](https://github.com/renovatebot/renovate/commit/ad515fb96264b96495b567bf8177dd359d2c0108)) ##### Miscellaneous Chores - **deps:** update dependency pnpm to v11.28.5 (main) ([#&#8203;46981](https://github.com/renovatebot/renovate/issues/46981)) ([01303d3](https://github.com/renovatebot/renovate/commit/01303d3d1f828094ca97e391478e99a731e53067)) - **deps:** update dependency vite to v8.3.3 (main) ([#&#8203;46980](https://github.com/renovatebot/renovate/issues/46980)) ([bc14d80](https://github.com/renovatebot/renovate/commit/bc14d8067ecca80ec6c1e346602af6543db89a05)) - **deps:** update python docker tag to v3.15.0 (main) ([#&#8203;46979](https://github.com/renovatebot/renovate/issues/46979)) ([08721b7](https://github.com/renovatebot/renovate/commit/08721b76632fd2db0f561fcca4f65d3e50480803)) ### [`v44.155.1`](https://github.com/renovatebot/renovate/releases/tag/44.155.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.155.0...44.155.1) ##### Bug Fixes - **deps:** update renovate-base-image to v13.121.1 (main) ([#&#8203;46973](https://github.com/renovatebot/renovate/issues/46973)) ([43eb367](https://github.com/renovatebot/renovate/commit/43eb367c61a5a96ecb1a95e13c870b44f9a52df1)) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.32.1 (main) ([#&#8203;46972](https://github.com/renovatebot/renovate/issues/46972)) ([9947ade](https://github.com/renovatebot/renovate/commit/9947adec73d57f17cebfa4e908268b3430f7c88b)) ### [`v44.155.0`](https://github.com/renovatebot/renovate/releases/tag/44.155.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.154.1...44.155.0) ##### Features - **deps:** update renovate-base-image to v13.121.0 (main) ([#&#8203;46971](https://github.com/renovatebot/renovate/issues/46971)) ([b09bb63](https://github.com/renovatebot/renovate/commit/b09bb63b1ce4aa61a5a9f0ec1f3c7c9a22924f58)) ### [`v44.154.1`](https://github.com/renovatebot/renovate/releases/tag/44.154.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.154.0...44.154.1) ##### Bug Fixes - **manager/github-actions:** handle digest pinned `renovate-image` ([#&#8203;46970](https://github.com/renovatebot/renovate/issues/46970)) ([bbe08af](https://github.com/renovatebot/renovate/commit/bbe08af60fa86baa901be9635d2b82abc7d85590)), closes [#&#8203;46969](https://github.com/renovatebot/renovate/issues/46969) ### [`v44.154.0`](https://github.com/renovatebot/renovate/releases/tag/44.154.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.153.1...44.154.0) ##### Features - **datasource/rpm:** support zstd compressed "primary" files ([#&#8203;46372](https://github.com/renovatebot/renovate/issues/46372)) ([911b681](https://github.com/renovatebot/renovate/commit/911b681cc5107047564b25e07543fa758b9f268d)) ##### Bug Fixes - **workers/global:** apply `hostRules` and `internalHostAccess` when resolving `globalExtends` ([#&#8203;46666](https://github.com/renovatebot/renovate/issues/46666)) ([cf46a67](https://github.com/renovatebot/renovate/commit/cf46a67d9a2df4c71e37c0ae0f3d22157d82b54e)) ### [`v44.153.1`](https://github.com/renovatebot/renovate/releases/tag/44.153.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.153.0...44.153.1) ##### Bug Fixes - **metadata:** strip git+ scheme prefix from source urls for changelog fetching ([#&#8203;45941](https://github.com/renovatebot/renovate/issues/45941)) ([476456b](https://github.com/renovatebot/renovate/commit/476456b3c243b91ff27c4e6e1697ea21c1ac48cf)) - **platform/github:** replace rendered alerts after smart truncation ([#&#8203;45613](https://github.com/renovatebot/renovate/issues/45613)) ([179f69c](https://github.com/renovatebot/renovate/commit/179f69ce5921a2a17e170deb096f2cd0358ad71f)) ### [`v44.153.0`](https://github.com/renovatebot/renovate/releases/tag/44.153.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.152.0...44.153.0) ##### Features - **manager/apm:** scope per-package tags to their own package ([#&#8203;46737](https://github.com/renovatebot/renovate/issues/46737)) ([7a03427](https://github.com/renovatebot/renovate/commit/7a03427c7e66b68312d22ada3c9e273325fab5c2)) ### [`v44.152.0`](https://github.com/renovatebot/renovate/releases/tag/44.152.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.151.5...44.152.0) ##### Features - **datasource/devbox:** update default registry URL to new search index ([#&#8203;46853](https://github.com/renovatebot/renovate/issues/46853)) ([33fe146](https://github.com/renovatebot/renovate/commit/33fe1468d803acdd3398464f9392f52aaf2d4262)) - **deps:** update renovate-base-image to v13.120.0 (main) ([#&#8203;46953](https://github.com/renovatebot/renovate/issues/46953)) ([7926703](https://github.com/renovatebot/renovate/commit/792670310cc5e792399cfd2356af989e1ccef57b)) - **monorepo:** add google-cloud-rust ([#&#8203;43978](https://github.com/renovatebot/renovate/issues/43978)) ([f782369](https://github.com/renovatebot/renovate/commit/f7823699ef6e22444ed19dbdeeca8f2ad8789a4f)) - **preset:** add Boto group ([#&#8203;43760](https://github.com/renovatebot/renovate/issues/43760)) ([d91b82f](https://github.com/renovatebot/renovate/commit/d91b82fbf0dea164f9c0b93c398c0e2b79c99708)) - **replacements:** add react-native-magic-modal to magic-modal ([#&#8203;44997](https://github.com/renovatebot/renovate/issues/44997)) ([d30feab](https://github.com/renovatebot/renovate/commit/d30feab6e14a92ecf44bb464bd8fee99ef1a9775)) ##### Bug Fixes - **changelog:** preserve dependency-specific embedded notes ([#&#8203;46733](https://github.com/renovatebot/renovate/issues/46733)) ([8cbd7f5](https://github.com/renovatebot/renovate/commit/8cbd7f5eab5aa7f85b7e101648d132caa23243a6)) - **config:** document where PR and branch options can be used ([#&#8203;46690](https://github.com/renovatebot/renovate/issues/46690)) ([9fa0c2e](https://github.com/renovatebot/renovate/commit/9fa0c2e948994f1e5bafd187f0e44c9c07163a68)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **config:** document where version lookup options can be used ([#&#8203;46963](https://github.com/renovatebot/renovate/issues/46963)) ([2e12788](https://github.com/renovatebot/renovate/commit/2e12788359672bb7f0f705156bacb2755199f570)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **config:** warn when a top-level repo-only option is used somewhere else ([#&#8203;46684](https://github.com/renovatebot/renovate/issues/46684)) ([95888e3](https://github.com/renovatebot/renovate/commit/95888e395d8051e66eabb242787aff9884133fda)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **json-schema:** document which options are nullable ([#&#8203;46687](https://github.com/renovatebot/renovate/issues/46687)) ([2c988ca](https://github.com/renovatebot/renovate/commit/2c988ca6c9836a00d1c4b6fab0e4f902c62d8b35)) - **manager/github-actions:** use semver versioning for setup-pixi's pixi-version ([#&#8203;46864](https://github.com/renovatebot/renovate/issues/46864)) ([77b1572](https://github.com/renovatebot/renovate/commit/77b157203ab7d8293edfbdfbf5c04cb8d3f99e97)) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.32.0 (main) ([#&#8203;46952](https://github.com/renovatebot/renovate/issues/46952)) ([a0af08f](https://github.com/renovatebot/renovate/commit/a0af08fde46428f2517c806d73b807e22bc2039f)) - **deps:** update jdx/mise-action action to v5.1.2 (main) ([#&#8203;46950](https://github.com/renovatebot/renovate/issues/46950)) ([fe98b6b](https://github.com/renovatebot/renovate/commit/fe98b6b0a550f0eca5ea7a104aec06c98ca26c69)) - **deps:** update linters to v1.87.0 (main) ([#&#8203;46951](https://github.com/renovatebot/renovate/issues/46951)) ([e4cd0a6](https://github.com/renovatebot/renovate/commit/e4cd0a6491aac00aacb3e36ce2af8b391a70cca0)) ##### Code Refactoring - **config:** add the scopes for remaining shared locations ([#&#8203;46689](https://github.com/renovatebot/renovate/issues/46689)) ([60822ea](https://github.com/renovatebot/renovate/commit/60822eafdcf952e9ff7ef1c049e9d94d4fd7c57d)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **config:** specify scopes for `enabled` and `managerFilePatterns` ([#&#8203;46683](https://github.com/renovatebot/renovate/issues/46683)) ([2a300e8](https://github.com/renovatebot/renovate/commit/2a300e8d08a64ee3fa85ee5bdddaaa453dc53668)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) ##### Tests - **json-schema:** validate internal presets against the schema ([#&#8203;46686](https://github.com/renovatebot/renovate/issues/46686)) ([2e22e1a](https://github.com/renovatebot/renovate/commit/2e22e1a0ded4a2a7d2ca22ebe19deaa14210cd8f)) ### [`v44.151.5`](https://github.com/renovatebot/renovate/releases/tag/44.151.5) [Compare Source](https://github.com/renovatebot/renovate/compare/44.151.4...44.151.5) ##### Bug Fixes - **config/validation:** improve message when invalid location for option ([#&#8203;46682](https://github.com/renovatebot/renovate/issues/46682)) ([736dad8](https://github.com/renovatebot/renovate/commit/736dad8b91e628b9222cde94d0160aa3b733b659)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **json-schema:** declare child options which get validated ([#&#8203;46674](https://github.com/renovatebot/renovate/issues/46674)) ([c1ba0f0](https://github.com/renovatebot/renovate/commit/c1ba0f0b097679be4316c58a6c71d48cdb07755b)) - **json-schema:** restrict all known object properties keys ([#&#8203;46945](https://github.com/renovatebot/renovate/issues/46945)) ([c48a9b6](https://github.com/renovatebot/renovate/commit/c48a9b6e69a3d7e6437714801b6eedf124021207)) ##### Code Refactoring - **config:** describe where an option can be used with `scopes` ([#&#8203;46675](https://github.com/renovatebot/renovate/issues/46675)) ([92ef4c7](https://github.com/renovatebot/renovate/commit/92ef4c7a80ebaf2f4bd8cea355054dd27e78c5ce)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **platform/gitea:** build the pr cache synced key with the cache key helper ([#&#8203;46939](https://github.com/renovatebot/renovate/issues/46939)) ([b8f5027](https://github.com/renovatebot/renovate/commit/b8f50271806eea7a6495fd56a283b79f41ba82ee)) ### [`v44.151.4`](https://github.com/renovatebot/renovate/releases/tag/44.151.4) [Compare Source](https://github.com/renovatebot/renovate/compare/44.151.3...44.151.4) ##### Bug Fixes - **config/validation:** don't warn about a restricted option encrypted at the top level ([#&#8203;46941](https://github.com/renovatebot/renovate/issues/46941)) ([67fa755](https://github.com/renovatebot/renovate/commit/67fa755507c9ea4095d9239ec881b11c8d95a8c5)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) - **json-schema:** specify missing `additionalProperties` for maps of values ([#&#8203;46681](https://github.com/renovatebot/renovate/issues/46681)) ([df8fe3d](https://github.com/renovatebot/renovate/commit/df8fe3dab8ecf39f89f370cd5b46e2d2998a918d)) ### [`v44.151.3`](https://github.com/renovatebot/renovate/releases/tag/44.151.3) [Compare Source](https://github.com/renovatebot/renovate/compare/44.151.2...44.151.3) ##### Bug Fixes - **datasource/gitlab-tags:** don't cache failed digest lookups ([#&#8203;46904](https://github.com/renovatebot/renovate/issues/46904)) ([fdedac1](https://github.com/renovatebot/renovate/commit/fdedac145a09b387d8f8a9419155d2a9b8df70a2)) - **datasource/gitlab-tags:** encode the ref of digest lookups ([#&#8203;46905](https://github.com/renovatebot/renovate/issues/46905)) ([a551698](https://github.com/renovatebot/renovate/commit/a5516980aeef4470abb8deb81f9232b52b49e0d8)) ##### Documentation - update references to astral-sh/setup-uv to v10.3.0 (main) ([#&#8203;46932](https://github.com/renovatebot/renovate/issues/46932)) ([b28f4eb](https://github.com/renovatebot/renovate/commit/b28f4eb4b7d738b9c5664bf91e533e297ab366a4)) - update references to jaegertracing/jaeger to v2.22.0 (main) ([#&#8203;46934](https://github.com/renovatebot/renovate/issues/46934)) ([cb8a6d6](https://github.com/renovatebot/renovate/commit/cb8a6d69757c7a1be354adf88f27b2b9553d37e9)) - update references to renovatebot/github-action to v46.3.8 (main) ([#&#8203;46931](https://github.com/renovatebot/renovate/issues/46931)) ([9c127ee](https://github.com/renovatebot/renovate/commit/9c127ee6cf750f67f8bb50b05806742850ae886d)) ##### Miscellaneous Chores - **deps:** update ossf/scorecard-action action to v2.5.0 (main) ([#&#8203;46933](https://github.com/renovatebot/renovate/issues/46933)) ([fa41347](https://github.com/renovatebot/renovate/commit/fa413478bf917b772d9bc635c424d08f9b695a34)) ### [`v44.151.2`](https://github.com/renovatebot/renovate/releases/tag/44.151.2) [Compare Source](https://github.com/renovatebot/renovate/compare/44.151.1...44.151.2) ##### Bug Fixes - **deps:** update renovate-base-image to v13.119.2 (main) ([#&#8203;46929](https://github.com/renovatebot/renovate/issues/46929)) ([f2cc80c](https://github.com/renovatebot/renovate/commit/f2cc80c7191fe99eeb06ef8ddc6cb7e2441f554a)) ##### Build System - **deps:** update dependency cronstrue to v3.29.0 (main) ([#&#8203;46930](https://github.com/renovatebot/renovate/issues/46930)) ([69a4024](https://github.com/renovatebot/renovate/commit/69a4024480ba7116efb2a18918da1ffb91878eca)) ### [`v44.151.1`](https://github.com/renovatebot/renovate/releases/tag/44.151.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.151.0...44.151.1) ##### Bug Fixes - **deps:** update renovate-base-image to v13.119.1 (main) ([#&#8203;46928](https://github.com/renovatebot/renovate/issues/46928)) ([0f8d9f6](https://github.com/renovatebot/renovate/commit/0f8d9f6de0973682147420b175506edcba002fad)) ##### Documentation - update references to python to [`b9767f5`](https://github.com/renovatebot/renovate/commit/b9767f5) (main) ([#&#8203;46927](https://github.com/renovatebot/renovate/issues/46927)) ([f9f131c](https://github.com/renovatebot/renovate/commit/f9f131cf4841edb5fa94e7ea4e936aebb55f314d)) ### [`v44.151.0`](https://github.com/renovatebot/renovate/releases/tag/44.151.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.150.1...44.151.0) ##### Features - **deps:** update renovate-base-image to v13.119.0 (main) ([#&#8203;46921](https://github.com/renovatebot/renovate/issues/46921)) ([0fe85b0](https://github.com/renovatebot/renovate/commit/0fe85b0efc80ff8e0b6bd59d092cf1799e42e0f7)) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.31.2 (main) ([#&#8203;46917](https://github.com/renovatebot/renovate/issues/46917)) ([2fa8494](https://github.com/renovatebot/renovate/commit/2fa84940c5ee6079cf54176a62fa8e0bac53bee2)) ### [`v44.150.1`](https://github.com/renovatebot/renovate/releases/tag/44.150.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.150.0...44.150.1) ##### Bug Fixes - **deps:** update renovate-base-image to v13.118.4 (main) ([#&#8203;46916](https://github.com/renovatebot/renovate/issues/46916)) ([ac15d4f](https://github.com/renovatebot/renovate/commit/ac15d4fede71d906a30e58eed6c89517269097ff)) ### [`v44.150.0`](https://github.com/renovatebot/renovate/releases/tag/44.150.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.149.3...44.150.0) ##### Features - **data:** automatic update of static data ([#&#8203;46911](https://github.com/renovatebot/renovate/issues/46911)) ([0b99516](https://github.com/renovatebot/renovate/commit/0b995163fc5d72b6a883df94dc4b1dcab8e1b8da)) ##### Miscellaneous Chores - **deps:** update dependency [@&#8203;containerbase/istanbul-reports-html](https://github.com/containerbase/istanbul-reports-html) to v2.0.22 (main) ([#&#8203;46915](https://github.com/renovatebot/renovate/issues/46915)) ([5f4050a](https://github.com/renovatebot/renovate/commit/5f4050af6c33c6feb46ee0240573de21411acca0)) ### [`v44.149.3`](https://github.com/renovatebot/renovate/releases/tag/44.149.3) [Compare Source](https://github.com/renovatebot/renovate/compare/44.149.2...44.149.3) ##### Bug Fixes - **deps:** update renovate-base-image to v13.118.2 (main) ([#&#8203;46910](https://github.com/renovatebot/renovate/issues/46910)) ([dfbf52d](https://github.com/renovatebot/renovate/commit/dfbf52d31a7330279213cec6400f3120353092d9)) ##### Documentation - **github:** group App permissions by repository and organization ([#&#8203;46898](https://github.com/renovatebot/renovate/issues/46898)) ([05c7494](https://github.com/renovatebot/renovate/commit/05c74940ca85250c88ea47c0d6f999932c3ca384)) ##### Miscellaneous Chores - **deps:** update dependency pnpm to v11.28.4 (main) ([#&#8203;46907](https://github.com/renovatebot/renovate/issues/46907)) ([0d357aa](https://github.com/renovatebot/renovate/commit/0d357aa1ce1b2230e48872a48b64f587f47dea67)) - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.31.1 (main) ([#&#8203;46908](https://github.com/renovatebot/renovate/issues/46908)) ([324e6a1](https://github.com/renovatebot/renovate/commit/324e6a1aa9263a0a2d4b366f499154cc950abde1)) - **deps:** update pnpm/setup action to v3.1.1 (main) ([#&#8203;46906](https://github.com/renovatebot/renovate/issues/46906)) ([f52a8ae](https://github.com/renovatebot/renovate/commit/f52a8ae5cf32c09505ede2d9e18c7db55fd9c802)) - **tools:** allow ambient environment in agent hook simple-git ([#&#8203;46899](https://github.com/renovatebot/renovate/issues/46899)) ([3fc4836](https://github.com/renovatebot/renovate/commit/3fc4836a87fb3c000466656cf798da3eaaadfea0)) ### [`v44.149.2`](https://github.com/renovatebot/renovate/releases/tag/44.149.2) [Compare Source](https://github.com/renovatebot/renovate/compare/44.149.1...44.149.2) ##### Bug Fixes - **cache:** build all cache keys with a shared helper ([#&#8203;46811](https://github.com/renovatebot/renovate/issues/46811)) ([f64ec39](https://github.com/renovatebot/renovate/commit/f64ec3975a4792fceae3d39af16e594f89a6a778)) - **datasource:** cache the digest per ref ([#&#8203;46819](https://github.com/renovatebot/renovate/issues/46819)) ([182de27](https://github.com/renovatebot/renovate/commit/182de2759f0bb31ee6216f4076875948d39c4c1b)) ##### Miscellaneous Chores - **deps:** update astral-sh/setup-uv action to v10.3.0 (main) ([#&#8203;46893](https://github.com/renovatebot/renovate/issues/46893)) ([0f667f9](https://github.com/renovatebot/renovate/commit/0f667f98eea2a2c9d2a187a65cab6c680f40c9e9)) ### [`v44.149.1`](https://github.com/renovatebot/renovate/releases/tag/44.149.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.149.0...44.149.1) ##### Bug Fixes - **deps:** update renovate-base-image to v13.118.1 (main) ([#&#8203;46894](https://github.com/renovatebot/renovate/issues/46894)) ([214c5f3](https://github.com/renovatebot/renovate/commit/214c5f37e73689eca387517cfd2bff00088038e1)) ##### Miscellaneous Chores - **deps:** update dependency astral-sh/uv to v0.13.0 (main) ([#&#8203;46891](https://github.com/renovatebot/renovate/issues/46891)) ([43b9758](https://github.com/renovatebot/renovate/commit/43b9758d7b429a9c6341cad519a156619f2ccf95)) - **deps:** update dependency uv to v0.13.0 (main) ([#&#8203;46892](https://github.com/renovatebot/renovate/issues/46892)) ([395bca1](https://github.com/renovatebot/renovate/commit/395bca1a0f3dddc8668c5a34feffd3aa2d75fa7d)) ### [`v44.149.0`](https://github.com/renovatebot/renovate/releases/tag/44.149.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.148.6...44.149.0) ##### Features - **deps:** update renovate-base-image to v13.118.0 (main) ([#&#8203;46886](https://github.com/renovatebot/renovate/issues/46886)) ([a7c19e4](https://github.com/renovatebot/renovate/commit/a7c19e489bb7623bfe62a71047e2e4e0d88e190d)) ##### Documentation - **docker-build-process:** remove Containerbase Sidecar image ([#&#8203;46880](https://github.com/renovatebot/renovate/issues/46880)) ([05ec2f8](https://github.com/renovatebot/renovate/commit/05ec2f8d5e9796d248080a5e44e74c338975eca2)) ### [`v44.148.6`](https://github.com/renovatebot/renovate/releases/tag/44.148.6) [Compare Source](https://github.com/renovatebot/renovate/compare/44.148.5...44.148.6) ##### Bug Fixes - **deps:** update renovate-base-image to v13.117.4 (main) ([#&#8203;46870](https://github.com/renovatebot/renovate/issues/46870)) ([fd065f2](https://github.com/renovatebot/renovate/commit/fd065f2531a3bda9d3323a98899aa3c73c9652ab)) - **platform/azure:** hash the full PR description in getPr ([#&#8203;46872](https://github.com/renovatebot/renovate/issues/46872)) ([105dc2e](https://github.com/renovatebot/renovate/commit/105dc2eed55ed843e3c95e1d5e67b9119c4959ff)) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.31.0 (main) ([#&#8203;46875](https://github.com/renovatebot/renovate/issues/46875)) ([f4c5ff9](https://github.com/renovatebot/renovate/commit/f4c5ff9f19745c2eafa5f84a12fd466c1a7aa1e6)) ##### Build System - **deps:** update dependency ignore to v7.0.12 (main) ([#&#8203;46873](https://github.com/renovatebot/renovate/issues/46873)) ([58d4e23](https://github.com/renovatebot/renovate/commit/58d4e23994ea4ce10583394617feed8511330522)) ### [`v44.148.5`](https://github.com/renovatebot/renovate/releases/tag/44.148.5) [Compare Source](https://github.com/renovatebot/renovate/compare/44.148.4...44.148.5) ##### Bug Fixes - **util/exec:** add a strong type for Containerbase's known tools ([#&#8203;46580](https://github.com/renovatebot/renovate/issues/46580)) ([7027ee5](https://github.com/renovatebot/renovate/commit/7027ee5ced3579f07bb029057cb7017dd132b052)), closes [#&#8203;41849](https://github.com/renovatebot/renovate/issues/41849) ##### Miscellaneous Chores - **deps:** update dependency [@&#8203;containerbase/istanbul-reports-html](https://github.com/containerbase/istanbul-reports-html) to v2.0.21 (main) ([#&#8203;46862](https://github.com/renovatebot/renovate/issues/46862)) ([905fdf0](https://github.com/renovatebot/renovate/commit/905fdf06e1259dc501588a763d0925e0e1aff6f2)) - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.30.2 (main) ([#&#8203;46865](https://github.com/renovatebot/renovate/issues/46865)) ([a8377e5](https://github.com/renovatebot/renovate/commit/a8377e5edf76a3d402b38ba6af1a3e9ead2a0b04)) ### [`v44.148.4`](https://github.com/renovatebot/renovate/releases/tag/44.148.4) [Compare Source](https://github.com/renovatebot/renovate/compare/44.148.3...44.148.4) ##### Bug Fixes - **deps:** update renovate-base-image to v13.117.3 (main) ([#&#8203;46861](https://github.com/renovatebot/renovate/issues/46861)) ([f5669d8](https://github.com/renovatebot/renovate/commit/f5669d80b691061b9a745ed9355365ffc894ff85)) ##### Miscellaneous Chores - **deps:** update dependency [@&#8203;types/node](https://github.com/types/node) to v24.19.1 (main) ([#&#8203;46860](https://github.com/renovatebot/renovate/issues/46860)) ([b83bbcb](https://github.com/renovatebot/renovate/commit/b83bbcb39cd1174070eb1ea8a5f476e66f4452f8)) ### [`v44.148.3`](https://github.com/renovatebot/renovate/releases/tag/44.148.3) [Compare Source](https://github.com/renovatebot/renovate/compare/44.148.2...44.148.3) ##### Bug Fixes - **deps:** update renovate-base-image to v13.117.2 (main) ([#&#8203;46857](https://github.com/renovatebot/renovate/issues/46857)) ([530e5e4](https://github.com/renovatebot/renovate/commit/530e5e4a685c8c76089bd1b4e8e51793823f080d)) ### [`v44.148.2`](https://github.com/renovatebot/renovate/releases/tag/44.148.2) [Compare Source](https://github.com/renovatebot/renovate/compare/44.148.1...44.148.2) ##### Bug Fixes - **deps:** update renovate-base-image to v13.117.1 (main) ([#&#8203;46856](https://github.com/renovatebot/renovate/issues/46856)) ([ee5cfdc](https://github.com/renovatebot/renovate/commit/ee5cfdccdec2860e16ecc31b417ed0db405137aa)) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.30.1 (main) ([#&#8203;46855](https://github.com/renovatebot/renovate/issues/46855)) ([83f5f9b](https://github.com/renovatebot/renovate/commit/83f5f9bd241efcdf9dc59f48a04513da6da707a6)) ### [`v44.148.1`](https://github.com/renovatebot/renovate/releases/tag/44.148.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.148.0...44.148.1) ##### Miscellaneous Chores - **deps:** update dependency astral-sh/uv to v0.12.24 (main) ([#&#8203;46851](https://github.com/renovatebot/renovate/issues/46851)) ([f829aa9](https://github.com/renovatebot/renovate/commit/f829aa933e8927f191c75efb8f0544420a73d757)) - **deps:** update dependency uv to v0.12.24 (main) ([#&#8203;46852](https://github.com/renovatebot/renovate/issues/46852)) ([161d0f2](https://github.com/renovatebot/renovate/commit/161d0f2dd7f483bc4693406faaf5e42a7cc27a55)) ##### Build System - **deps:** update dependency handlebars to v4.7.10 \[security] (main) ([#&#8203;46854](https://github.com/renovatebot/renovate/issues/46854)) ([7fcc9ab](https://github.com/renovatebot/renovate/commit/7fcc9ab584de8187a765a30466a1aa6f227f5faa)) ### [`v44.148.0`](https://github.com/renovatebot/renovate/releases/tag/44.148.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.147.0...44.148.0) ##### Features - **deps:** update renovate-base-image to v13.117.0 (main) ([#&#8203;46850](https://github.com/renovatebot/renovate/issues/46850)) ([aca2633](https://github.com/renovatebot/renovate/commit/aca2633f3a20367b5e3a2fbaf52e1f4c73acbba4)) ##### Miscellaneous Chores - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.30.0 (main) ([#&#8203;46849](https://github.com/renovatebot/renovate/issues/46849)) ([3bdfdf5](https://github.com/renovatebot/renovate/commit/3bdfdf53f1ea499ba86698ea9668b771373bc5eb)) ### [`v44.147.0`](https://github.com/renovatebot/renovate/releases/tag/44.147.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.146.3...44.147.0) ##### Features - **config:** merge mergeable env options with RENOVATE_CONFIG ([#&#8203;46844](https://github.com/renovatebot/renovate/issues/46844)) ([d071998](https://github.com/renovatebot/renovate/commit/d071998a8d43e500060f7506ad288840f8ea291b)) ### [`v44.146.3`](https://github.com/renovatebot/renovate/releases/tag/44.146.3) [Compare Source](https://github.com/renovatebot/renovate/compare/44.146.2...44.146.3) ##### Bug Fixes - **json-schema:** don't treat a map of values as a nested config ([#&#8203;46673](https://github.com/renovatebot/renovate/issues/46673)) ([d4074b4](https://github.com/renovatebot/renovate/commit/d4074b4ffb031547301bb49bf5201daf1c596083)) ##### Miscellaneous Chores - **deps:** update github/codeql-action action to v4.38.3 (main) ([#&#8203;46846](https://github.com/renovatebot/renovate/issues/46846)) ([a9097d3](https://github.com/renovatebot/renovate/commit/a9097d3b791f5dd93e6a88bb80c9dc0958be7871)) ##### Code Refactoring - **json-schema:** extract shared `buildSchema` function ([#&#8203;46679](https://github.com/renovatebot/renovate/issues/46679)) ([c72bd25](https://github.com/renovatebot/renovate/commit/c72bd25e1d5f4dd4addd257a6dd677c94d8b7fa2)) ##### Tests - **json-schema:** cover how we generate object options ([#&#8203;46680](https://github.com/renovatebot/renovate/issues/46680)) ([fd01e84](https://github.com/renovatebot/renovate/commit/fd01e84a311e16e00156923f4f7c76bd156898e1)) ### [`v44.146.2`](https://github.com/renovatebot/renovate/releases/tag/44.146.2) [Compare Source](https://github.com/renovatebot/renovate/compare/44.146.1...44.146.2) ##### Bug Fixes - **config:** append env host rules to RENOVATE_CONFIG ones ([#&#8203;46843](https://github.com/renovatebot/renovate/issues/46843)) ([888bf06](https://github.com/renovatebot/renovate/commit/888bf06ddf5518f1ff1bc59fe443c0ca267966c3)) ### [`v44.146.1`](https://github.com/renovatebot/renovate/releases/tag/44.146.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.146.0...44.146.1) ##### Bug Fixes - **deps:** update renovate-base-image to v13.116.2 (main) ([#&#8203;46842](https://github.com/renovatebot/renovate/issues/46842)) ([5748c60](https://github.com/renovatebot/renovate/commit/5748c603e8d7367bde3b3566a5da821b05685630)) ### [`v44.146.0`](https://github.com/renovatebot/renovate/releases/tag/44.146.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.145.3...44.146.0) ##### Features - **datasource/gitlab-packages:** replace getJsonUnchecked with validated getJson ([#&#8203;44143](https://github.com/renovatebot/renovate/issues/44143)) ([c050119](https://github.com/renovatebot/renovate/commit/c0501194c0fb23bd1d6b0d2ab25397ec813fc920)) ##### Miscellaneous Chores - **deps:** update dependency vite to v8.3.2 (main) ([#&#8203;46839](https://github.com/renovatebot/renovate/issues/46839)) ([2d8963e](https://github.com/renovatebot/renovate/commit/2d8963eda6cf2e74e561c6ee95287e8bcf4b75df)) - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.29.1 (main) ([#&#8203;46840](https://github.com/renovatebot/renovate/issues/46840)) ([08c512d](https://github.com/renovatebot/renovate/commit/08c512d99c77a7150533cb0830fc91b40e6d7354)) ### [`v44.145.3`](https://github.com/renovatebot/renovate/releases/tag/44.145.3) [Compare Source](https://github.com/renovatebot/renovate/compare/44.145.2...44.145.3) ##### Bug Fixes - **manager/helmv3:** strip repository path from ECR registry login ([#&#8203;46837](https://github.com/renovatebot/renovate/issues/46837)) ([5239d49](https://github.com/renovatebot/renovate/commit/5239d49a0c1939ba6b94eae50b171ce41377b8b9)) ### [`v44.145.2`](https://github.com/renovatebot/renovate/releases/tag/44.145.2) [Compare Source](https://github.com/renovatebot/renovate/compare/44.145.1...44.145.2) ##### Miscellaneous Chores - **deps:** update docker/dockerfile docker tag to v1.28.0 (main) ([#&#8203;46833](https://github.com/renovatebot/renovate/issues/46833)) ([ddc717d](https://github.com/renovatebot/renovate/commit/ddc717d3a9783443691e7848a2f24ef970a6ac23)) - **deps:** update jlumbroso/free-disk-space action to v2 (main) ([#&#8203;46787](https://github.com/renovatebot/renovate/issues/46787)) ([250498b](https://github.com/renovatebot/renovate/commit/250498bd302f156037e5bdd54a39d0d2a1c8daa7)) ##### Build System - **deps:** update dependency simple-git to v4 \[security] (main) ([#&#8203;46781](https://github.com/renovatebot/renovate/issues/46781)) ([d1fd5df](https://github.com/renovatebot/renovate/commit/d1fd5df4bc80e0e76ca7f760122b99d5f751b3fe)) - **deps:** update dependency simple-git to v4.0.2 (main) ([#&#8203;46836](https://github.com/renovatebot/renovate/issues/46836)) ([60c5118](https://github.com/renovatebot/renovate/commit/60c5118562655d6122f1350f647cb1a2d2b43063)) ### [`v44.145.1`](https://github.com/renovatebot/renovate/releases/tag/44.145.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.145.0...44.145.1) ##### Bug Fixes - **deps:** update renovate-base-image to v13.116.1 (main) ([#&#8203;46830](https://github.com/renovatebot/renovate/issues/46830)) ([0dfb750](https://github.com/renovatebot/renovate/commit/0dfb75020092789b7dc3f398e31259173f24b69f)) ### [`v44.145.0`](https://github.com/renovatebot/renovate/releases/tag/44.145.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.144.1...44.145.0) ##### Features - **deps:** update renovate-base-image to v13.116.0 (main) ([#&#8203;46828](https://github.com/renovatebot/renovate/issues/46828)) ([de8f67e](https://github.com/renovatebot/renovate/commit/de8f67eb030732aa65aad17080e2ceff45f07f39)) ##### Miscellaneous Chores - **deps:** update dependency [@&#8203;biomejs/biome](https://github.com/biomejs/biome) to v2.5.15 (main) ([#&#8203;46825](https://github.com/renovatebot/renovate/issues/46825)) ([219eaf0](https://github.com/renovatebot/renovate/commit/219eaf0581bcd1f7671ee887c59475f3bd27eb62)) - **deps:** update dependency pnpm to v11.28.3 (main) ([#&#8203;46826](https://github.com/renovatebot/renovate/issues/46826)) ([1d25ef0](https://github.com/renovatebot/renovate/commit/1d25ef0aa3b68e97cb1482c976d46aaa7c7846da)) - **deps:** update ghcr.io/containerbase/devcontainer docker tag to v14.29.0 (main) ([#&#8203;46827](https://github.com/renovatebot/renovate/issues/46827)) ([5ddd9cd](https://github.com/renovatebot/renovate/commit/5ddd9cdbac9ad3c0fb8c8a7344d8fe1edac693f8)) ### [`v44.144.1`](https://github.com/renovatebot/renovate/releases/tag/44.144.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.144.0...44.144.1) ##### Bug Fixes - **exec:** re-run install-tool when switching back to an earlier tool version ([#&#8203;46823](https://github.com/renovatebot/renovate/issues/46823)) ([2ca2bc0](https://github.com/renovatebot/renovate/commit/2ca2bc0ba068fa11cae0972dad9727a0a8e27cd4)) ### [`v44.144.0`](https://github.com/renovatebot/renovate/releases/tag/44.144.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.143.0...44.144.0) ##### Features - **datasource:** report the datasource which served a lookup ([#&#8203;46808](https://github.com/renovatebot/renovate/issues/46808)) ([101cb08](https://github.com/renovatebot/renovate/commit/101cb08b4e75b054facc4b6f97aabd0e54396280)) ##### Bug Fixes - **json-schema:** correctly link options to the heading they're documented under ([#&#8203;46672](https://github.com/renovatebot/renovate/issues/46672)) ([b1c232a](https://github.com/renovatebot/renovate/commit/b1c232a2ad9b6c5c142a3070a333389cff74d30f)), closes [#&#8203;43020](https://github.com/renovatebot/renovate/issues/43020) [-#packagerulesenabled](https://github.com/renovatebot/-/issues/packagerulesenabled) [#enabled](https://github.com/renovatebot/renovate/issues/enabled) [-#packagerulesfetchchangelogs](https://github.com/renovatebot/-/issues/packagerulesfetchchangelogs) [#fetchchangelogs](https://github.com/renovatebot/renovate/issues/fetchchangelogs) [-#ansiblemanagerfilepatterns](https://github.com/renovatebot/-/issues/ansiblemanagerfilepatterns) [#managerfilepatterns](https://github.com/renovatebot/renovate/issues/managerfilepatterns) ##### Code Refactoring - **json-schema:** extract shared `indexMarkdown` function ([#&#8203;46693](https://github.com/renovatebot/renovate/issues/46693)) ([baea689](https://github.com/renovatebot/renovate/commit/baea689244887d46a9aecd6d764c4589c345c46f)) ##### Tests - **json-schema:** add coverage of generated docs links ([#&#8203;46678](https://github.com/renovatebot/renovate/issues/46678)) ([b486348](https://github.com/renovatebot/renovate/commit/b486348c806a885c56719036fe8e1fe3c3a51c65)) ##### Build System - **deps:** update dependency ignore to v7.0.11 (main) ([#&#8203;46822](https://github.com/renovatebot/renovate/issues/46822)) ([318b386](https://github.com/renovatebot/renovate/commit/318b38676e6cdd7c0224d19f448939a570d17b8b)) ### [`v44.143.0`](https://github.com/renovatebot/renovate/releases/tag/44.143.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.142.1...44.143.0) ##### Features - **manager/github-actions:** extract `slsa-framework/actions/*`' `with`s ([#&#8203;46792](https://github.com/renovatebot/renovate/issues/46792)) ([4ca515b](https://github.com/renovatebot/renovate/commit/4ca515b05f3c3df2cb1659758a119af46955dc4f)) ##### Bug Fixes - **util/exec:** remove `java-maven` tool ([#&#8203;46587](https://github.com/renovatebot/renovate/issues/46587)) ([4a0935d](https://github.com/renovatebot/renovate/commit/4a0935d7117da597a5a1d3b9edd992d84bb2eb65)), closes [#&#8203;41849](https://github.com/renovatebot/renovate/issues/41849) ##### Miscellaneous Chores - **deps:** update actions/download-artifact action to v8.0.2 (main) ([#&#8203;46813](https://github.com/renovatebot/renovate/issues/46813)) ([ef0c32b](https://github.com/renovatebot/renovate/commit/ef0c32bbed42a1be06b58b48e3c0c70b978c1dd9)) - **deps:** update actions/upload-artifact action to v7.0.2 (main) ([#&#8203;46814](https://github.com/renovatebot/renovate/issues/46814)) ([f6a6e41](https://github.com/renovatebot/renovate/commit/f6a6e4181697fb2558cc47071a7d6c58c73e3b2e)) ##### Code Refactoring - **datasource:** share git-refs and git-tags ref handling ([#&#8203;46189](https://github.com/renovatebot/renovate/issues/46189)) ([3312bc0](https://github.com/renovatebot/renovate/commit/3312bc0c6a05b529c0ea5007da9f0d46c3a8b955)) ##### Build System - **deps:** update dependency [@&#8203;redis/client](https://github.com/redis/client) to v6.3.0 (main) ([#&#8203;46816](https://github.com/renovatebot/renovate/issues/46816)) ([c88ad91](https://github.com/renovatebot/renovate/commit/c88ad9143647f337abe1e1412c4970da32107d18)) ### [`v44.142.1`](https://github.com/renovatebot/renovate/releases/tag/44.142.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.142.0...44.142.1) ##### Bug Fixes - **changelog:** don't duplicate `depName` when it matches repo name ([#&#8203;46789](https://github.com/renovatebot/renovate/issues/46789)) ([9284b7e](https://github.com/renovatebot/renovate/commit/9284b7ed47229b67f7e8e7f43c0caa6df44575c0)), closes [#&#8203;46787](https://github.com/renovatebot/renovate/issues/46787) ##### Code Refactoring - **datasource:** add fetchJson() helpers to the Datasource base class ([#&#8203;46112](https://github.com/renovatebot/renovate/issues/46112)) ([f07b349](https://github.com/renovatebot/renovate/commit/f07b34947a441748eae6e951bbf6d7b2d63a769e)) - **datasource:** derive github-release-attachments from github-releases ([#&#8203;46186](https://github.com/renovatebot/renovate/issues/46186)) ([f03acf6](https://github.com/renovatebot/renovate/commit/f03acf6cd785c0f18d72573565b36dd068778805)) - **datasource:** normalise github getDigest signatures ([#&#8203;46187](https://github.com/renovatebot/renovate/issues/46187)) ([290f5dc](https://github.com/renovatebot/renovate/commit/290f5dcff3bfd1a466451c87f65a45c4673cf50d)) - **datasource:** pass the http client through the Datasource constructor ([#&#8203;46108](https://github.com/renovatebot/renovate/issues/46108)) ([ee0e84f](https://github.com/renovatebot/renovate/commit/ee0e84f77576f7d46337552282c925923ada4372)) - **datasource:** share a base class across the git host \*-tags datasources ([#&#8203;46185](https://github.com/renovatebot/renovate/issues/46185)) ([dc5352d](https://github.com/renovatebot/renovate/commit/dc5352d4d897ffb4637cc948cfd77a1380b9f288)) - **datasource:** share the GitLab URL helpers across the GitLab datasources ([#&#8203;46188](https://github.com/renovatebot/renovate/issues/46188)) ([42805af](https://github.com/renovatebot/renovate/commit/42805afe6644c625221e12e165425d7ec5081ba4)) ### [`v44.142.0`](https://github.com/renovatebot/renovate/releases/tag/44.142.0) [Compare Source](https://github.com/renovatebot/renovate/compare/44.141.0...44.142.0) ##### Features - **datasource/crate:** use host rule credentials for git index registries ([#&#8203;46574](https://github.com/renovatebot/renovate/issues/46574)) ([9d59ac5](https://github.com/renovatebot/renovate/commit/9d59ac50844e0c6d3bfdd2387f3f71769c6af667)) ##### Bug Fixes - **deps:** update renovate-base-image to v13.115.1 (main) ([#&#8203;46803](https://github.com/renovatebot/renovate/issues/46803)) ([4651936](https://github.com/renovatebot/renovate/commit/4651936ec45c4cb412a765e7820db15772a4d0fd)) ##### Miscellaneous Chores - **deps:** update dependency memfs to v4.80.0 (main) ([#&#8203;46800](https://github.com/renovatebot/renovate/issues/46800)) ([cb29e61](https://github.com/renovatebot/renovate/commit/cb29e61871c422ad76c97c4153a21b57457863cc)) ##### Code Refactoring - **manager/npm:** type npm, yarn, bun and deno manager data ([#&#8203;46637](https://github.com/renovatebot/renovate/issues/46637)) ([f0d8c92](https://github.com/renovatebot/renovate/commit/f0d8c92edea4ba4a953ecbc3ec5770474b98950c)) - **manager/python:** type pep621, poetry, pipenv and pip manager data ([#&#8203;46638](https://github.com/renovatebot/renovate/issues/46638)) ([b291587](https://github.com/renovatebot/renovate/commit/b291587edd90b01bfbe3727c2978b7f9d1473f56)) - **manager:** default manager data generics to unknown ([#&#8203;46640](https://github.com/renovatebot/renovate/issues/46640)) ([31bcd2f](https://github.com/renovatebot/renovate/commit/31bcd2fcbd950a5bb018b573d25756f2e23dfa74)) - **manager:** type manager data of the remaining managers ([#&#8203;46639](https://github.com/renovatebot/renovate/issues/46639)) ([9788f36](https://github.com/renovatebot/renovate/commit/9788f3698d095aaf30dc06f45112d297a644611a)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNDEuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE0MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Renovate force-pushed renovate/kubernetes-dependencies from f5438ed200 to fe4febd003 2026-10-09 00:01:10 +00:00 Compare
Renovate force-pushed renovate/kubernetes-dependencies from fe4febd003 to d2d0904693 2026-10-10 00:00:57 +00:00 Compare
Renovate force-pushed renovate/kubernetes-dependencies from d2d0904693 to 19d3c90ed5 2026-10-11 00:01:15 +00:00 Compare
Renovate force-pushed renovate/kubernetes-dependencies from 19d3c90ed5 to 4178509cf7 2026-10-12 00:00:48 +00:00 Compare
Renovate force-pushed renovate/kubernetes-dependencies from 4178509cf7 to c4d0995ceb 2026-10-13 00:00:49 +00:00 Compare
Renovate force-pushed renovate/kubernetes-dependencies from c4d0995ceb to a50df43d9d 2026-10-14 00:00:54 +00:00 Compare
Renovate force-pushed renovate/kubernetes-dependencies from a50df43d9d to 1f436bc473 2026-10-15 00:01:14 +00:00 Compare
Renovate force-pushed renovate/kubernetes-dependencies from 1f436bc473 to 78e5f42165 2026-10-15 04:03:06 +00:00 Compare
Renovate changed title from chore(deps): update kubernetes dependencies to chore(deps): pin dependencies 2026-10-15 04:07:02 +00:00
Renovate force-pushed renovate/kubernetes-dependencies from 78e5f42165 to 872894ba4b 2026-10-16 00:01:30 +00:00 Compare
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/kubernetes-dependencies:renovate/kubernetes-dependencies
git switch renovate/kubernetes-dependencies

Merge

Merge the changes and update on Forgejo.
git switch main
git merge --no-ff renovate/kubernetes-dependencies
git switch renovate/kubernetes-dependencies
git rebase main
git switch main
git merge --ff-only renovate/kubernetes-dependencies
git switch renovate/kubernetes-dependencies
git rebase main
git switch main
git merge --no-ff renovate/kubernetes-dependencies
git switch main
git merge --squash renovate/kubernetes-dependencies
git switch main
git merge --ff-only renovate/kubernetes-dependencies
git switch main
git merge renovate/kubernetes-dependencies
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Sammy/Servers!16
No description provided.