- [BUGFIX] Limit webhook metrics to validating and mutating webhook configurations which have a matching grafana.com/namespace label. #347
- [ENHANCEMENT] Updated dependencies, including: #341
github.com/prometheus/commonfromv0.67.3tov0.67.4golang.org/x/syncfromv0.18.0tov0.19.0
- [ENHANCEMENT] Dashboard: Support native histograms. #338
- [ENHANCEMENT] Updated dependencies, including: #329 #335 #337
github.com/prometheus/commonfromv0.67.1tov0.67.3golang.org/x/cryptofromv0.43.0tov0.45.0golang.org/x/syncfromv0.17.0tov0.18.0k8s.io/apifromv0.34.1tov0.34.2k8s.io/apiextensions-apiserverfromv0.34.1tov0.34.2k8s.io/apimachineryfromv0.34.1tov0.34.2k8s.io/client-gofromv0.34.1tov0.34.2sigs.k8s.io/controller-runtimefromv0.22.3tov0.22.4
- [ENHANCEMENT] Added prometheus metrics for
rollout_operator_zpdb_configurations_observed_total,rollout_operator_zpdb_eviction_requests_totalandrollout_operator_zpdb_inflight_eviction_requests_total
- [ENHANCEMENT] Check zone-aware PodDisruptionBudget compliance before deleting Pods during rolling updates. #324
- [ENHANCEMENT] Updated dependencies, including: #314, #315
github.com/prometheus/commonfromv0.66.1tov0.67.1sigs.k8s.io/controller-runtimefromv0.22.0tov0.22.3
- [ENHANCEMENT] Add further information to debug logs emitted when processing ZonedPodDisruptionBudget-related requests. #311
- [BUGFIX] Keep evicted pod in eviction cache until its phase changes from running, rather than evicting on a pod ContainerStatuses change. Increase pod eviction cache TTL. #312
- [ENHANCEMENT] Add rollout-operator libsonnet into this repository. Enable rollout-operator and its webhooks by default. #282
- [ENHANCEMENT] Add rollout-operator dashboard mixin into this repository. #288
- [ENHANCEMENT] Add a
kubernetes.cluster-domainflag for configuring a Kubernetes cluster domain. The default cluster domaincluster.local.is unchanged. #266 - [ENHANCEMENT] Updated dependencies, including: #280 #285 #291
github.com/prometheus/client_golangfromv1.23.0tov1.23.2github.com/prometheus/commonfromv0.65.0tov0.66.1go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptracefromv0.62.0tov0.63.0go.opentelemetry.io/contrib/instrumentation/net/http/otelhttpfromv0.62.0tov0.63.0go.opentelemetry.io/otel/tracefromv1.37.0tov1.38.0go.opentelemetry.io/otelfromv1.37.0tov1.38.0golang.org/x/syncfromv0.16.0tov0.17.0k8s.io/apifromv0.33.3tov0.34.1k8s.io/apiextensions-apiserverfromv0.33.0tov0.34.1k8s.io/apimachineryfromv0.33.3tov0.34.1k8s.io/client-gofromv0.33.3tov0.34.1sigs.k8s.io/controller-runtimefromv0.21.0tov0.22.1
- [CHANGE] Rename flag
server.cluster-validation.http.exclude-pathstoserver.cluster-validation.http.excluded-pathsto align withdskit. #247 - [ENHANCEMENT] Update Go to
1.25#263 - [ENHANCEMENT] Updated dependencies, including: #236 #238 #242 #247 #257
github.com/prometheus/client_golangfromv1.22.0tov1.23.0github.com/prometheus/commonfromv0.64.0tov0.65.0go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptracefromv0.60.0tov0.62.0go.opentelemetry.io/contrib/instrumentation/net/http/otelhttpfromv0.60.0tov0.62.0go.opentelemetry.io/otelfromv1.36.0tov1.37.0go.opentelemetry.io/otel/tracefromv1.36.0tov1.37.0golang.org/x/syncfromv0.15.0tov0.16.0k8s.io/apifromv0.33.1tov0.33.3k8s.io/apimachineryfromv0.33.1tov0.33.3k8s.io/client-gofromv0.33.1tov0.33.3
- [ENHANCEMENT] Automatically patch validating and mutating rollout-operator webhooks with the self-signed CA if they are created or modified after the rollout-operator starts. #262, #273
- [ENHANCEMENT] Support for zone and partition aware pod disruption budgets, enabling finer control over pod eviction policies. #253
- [BUGFIX] Always configure HTTP client with a timeout. #240
- [BUGFIX] Use a StatefulSet's
.spec.serviceNamewhen constructing the delayed downscale endpoint for a pod. #258
- [ENHANCEMENT] Updated dependencies, including: #227 #231
golang.org/x/syncfromv0.14.0tov0.15.0sigs.k8s.io/controller-runtimefromv0.20.4tov0.21.0
- [ENHANCEMENT] Migrate to OpenTelemetry tracing library, removing the dependency on OpenTracing. You can now configure tracing using the standard
OTEL_environment variables. Previous configurations usingJAEGER_environment variables will still work, but are deprecated. #234
- [CHANGE] Rename metric
rollout_operator_request_invalid_cluster_validation_labels_totaltorollout_operator_client_invalid_cluster_validation_label_requests_total. #217 - [ENHANCEMENT] Add metric
rollout_operator_server_invalid_cluster_validation_label_requests_total. #223 - [ENHANCEMENT] Updated dependencies, including: #223 #224
github.com/prometheus/client_golangfromv1.21.1tov1.22.0github.com/prometheus/commonfromv0.63.0tov0.64.0golang.org/x/syncfromv0.12.0tov0.14.0k8s.io/apifromv0.32.3tov0.33.1k8s.io/apimachineryfromv0.32.3tov0.33.1k8s.io/client-gofromv0.32.3tov0.33.1
- [BUGFIX] Use a StatefulSet's
.spec.serviceNamewhen constructing the prepare-downscale endpoint for a pod. #221
- [FEATURE] Add cross-cluster traffic protection. #195b
- Controlled through the flags
-server.cluster-validation.http.enabled,-server.cluster-validation.http.soft-validation,-server.cluster-validation.http.exclude-paths. - Rejected requests can be monitored via the metric
rollout_operator_request_invalid_cluster_validation_labels_total.
- Controlled through the flags
- [ENHANCEMENT] Updated dependencies, including: #203
github.com/prometheus/client_golangfromv1.20.5tov1.21.1github.com/prometheus/commonfromv0.62.0tov0.63.0golang.org/x/syncfromv0.11.0tov0.12.0k8s.io/apifromv0.32.1tov0.32.3k8s.io/apimachineryfromv0.32.1tov0.32.3k8s.io/client-gofromv0.32.1tov0.32.3sigs.k8s.io/controller-runtimefromv0.20.1tov0.20.4
- [ENHANCEMENT] Update Go to
1.24#196 - [ENHANCEMENT] Updated dependencies, including: #197
github.com/prometheus/commonfromv0.61.0tov0.62.0golang.org/x/syncfromv0.10.0tov0.11.0k8s.io/apifromv0.32.0tov0.32.1k8s.io/apimachineryfromv0.32.0tov0.32.1k8s.io/client-gofromv0.32.0tov0.32.1sigs.k8s.io/controller-runtimefromv0.19.3tov0.20.1
- [ENHANCEMENT] Make timeout for requests to Pods and to the Kubernetes control plane configurable. #188
- [ENHANCEMENT] Updated dependencies, including: #189 #191
github.com/prometheus/client_golangfromv1.20.4tov1.20.5github.com/prometheus/commonfromv0.59.1tov0.61.0k8s.io/apifromv0.31.1tov0.32.0k8s.io/apimachineryfromv0.31.1tov0.32.0k8s.io/client-gofromv0.31.1tov0.32.0sigs.k8s.io/controller-runtimefromv0.19.0tov0.19.3golang.org/x/netfromv0.28.0tov0.33.0
- [ENHANCEMENT] New parameter log.format allows to set logging format to logfmt (default) or json (new). #184
- [ENHANCEMENT] Add a 5 minute timeout to requests to Pods and to the Kubernetes control plane. #186
- [ENHANCEMENT] Log debug information about StatefulSets as they are created, updated and deleted. #182
- [BUGFIX] Improved handling of URL ports in
createPrepareDownscaleEndpointsfunction. The function now correctly preserves the port when replacing the host in the URL. #176
- [ENHANCEMENT] Updated dependencies, including: #174
github.com/prometheus/client_golangfromv1.19.1tov1.20.4github.com/prometheus/commonfromv0.55.0tov0.59.1k8s.io/apifromv0.30.3tov0.31.1k8s.io/apimachineryfromv0.30.3tov0.31.1k8s.io/client-gofromv0.30.3tov0.31.1sigs.k8s.io/controller-runtimefromv0.18.5tov0.19.0
- [CHANGE] Renamed
grafana.com/rollout-mirror-replicas-from-resource-write-back-status-replicasannotation tografana.com/rollout-mirror-replicas-from-resource-write-back, because it was too long (over 64 chars). #171
- [ENHANCEMENT] Updated dependencies, including: #165
github.com/prometheus/client_golangfromv1.19.0tov1.19.1github.com/prometheus/commonfromv0.53.0tov0.55.0golang.org/x/syncfromv0.7.0tov0.8.0k8s.io/apifromv0.30.0tov0.30.3k8s.io/apimachineryfromv0.30.0tov0.30.3k8s.io/client-gofromv0.30.0tov0.30.3sigs.k8s.io/controller-runtimefromv0.18.1tov0.18.5
- [ENHANCEMENT] Update Go to
1.23. #168 - [ENHANCEMENT] When mirroring replicas of statefulset, rollout-operator can now skip writing back number of replicas to reference resource, by setting
grafana.com/rollout-mirror-replicas-from-resource-write-back-status-replicasannotation tofalse. #169
- [FEATURE] Optionally only scale-up a
StatefulSetonce all of the leaderStatefulSetreplicas are ready. Enable withgrafana.com/rollout-upscale-only-when-leader-readyannotation set totrue. #164
- [ENHANCEMENT] prepare-downscale admission webhook: undo prepare-shutdown calls if adding the
last-downscaleannotation fails. #151
- [CHANGE] The docker base images are now based off distroless images rather than Alpine. #149
- The standard base image is now
gcr.io/distroless/static-debian12:nonroot. - The boringcrypto base image is now
gcr.io/distroless/base-nossl-debian12:nonroot(for glibc).
- The standard base image is now
- [ENHANCEMENT] Include unique IDs of webhook requests in logs for easier debugging. #150
- [ENHANCEMENT] Include k8s operation username in request debug logs. #152
- [ENHANCEMENT]
rollout-max-unavailableannotation can now be specified as percentage, e.g.:rollout-max-unavailable: 25%. Resulting value is computed asfloor(replicas * percentage), but is never less than 1. #153 - [ENHANCEMENT] Delayed downscale of statefulset can now reduce replicas earlier, if subset of pods at the end of statefulset have already reached their delay. #156
- [BUGFIX] Fix a mangled error log in controller's delayed downscale code. #154
- [ENHANCEMENT] If the POST to prepare-shutdown fails for any replica, attempt to undo the operation by issuing an HTTP DELETE to prepare-shutdown for all target replicas. #146
- [CHANGE] Rollout-operator is now released under an Apache License 2.0. #139, #140
- [ENHANCEMENT] Updated dependencies, including: #144
github.com/prometheus/commonfromv0.49.0tov0.53.0k8s.io/apifromv0.29.2tov0.30.0k8s.io/apimachineryfromv0.29.2tov0.30.0k8s.io/client-gofromv0.29.2tov0.30.0
- [FEATURE] Rollout-operator can now "mirror" replicas of statefulset from any reference resource.
status.replicasfield of reference resource is kept up-to-date with current number of replicas in target statefulset. #129 - [FEATURE] Rollout-operator can optionally delay downscale of statefulset when mirroring replicas from reference resource. Delay is coordinated with downscaled pods via new endpoint that pods must implement. #131
- [ENHANCEMENT] Update Go to
1.22. #133 - [ENHANCEMENT] Updated dependencies, including: #137
github.com/prometheus/client_golangfromv1.18.0tov1.19.0github.com/prometheus/commonfromv0.45.0tov0.49.0k8s.io/apifromv0.29.0tov0.29.2k8s.io/apimachineryfromv0.29.0tov0.29.2k8s.io/client-gofromv0.29.0tov0.29.2
- [BUGFIX] Consider missing pods as not ready. #127
- [ENHANCEMENT] Add metrics for Kubernetes control plane calls. #118 #123
- [FEATURE] Coordinate downscaling between zones with a ConfigMap instead of annotation, optionally, via the new zoneTracker for the prepare-downscale admission webhook. #107
- [ENHANCEMENT] Expose pprof endpoint for profiling. #109
- [ENHANCEMENT] Change Docker build image to
golang:1.21-bookwormand update base image toalpine:3.19. #97 - [ENHANCEMENT] Add basic tracing support. #101 #114 #115
- [ENHANCEMENT] Updated dependencies, including: #111
github.com/gorilla/muxfromv1.8.0tov1.8.1github.com/prometheus/client_golangfromv1.17.0tov1.18.0golang.org/x/syncfromv0.5.0tov0.6.0k8s.io/apifromv0.28.3tov0.29.0k8s.io/apimachineryfromv0.28.3tov0.29.0k8s.io/client-gofromv0.28.3tov0.29.0
- [BUGFIX] Do not allow downscale if the operator failed to check whether there are StatefulSets with non-updated replicas. #105
- [ENHANCEMENT] Proceed with prepare-downscale operation even when pods from zone being downscaled are not ready or not up to date. #99
- [ENHANCEMENT] Expose metrics for incoming HTTP requests. #100
- [ENHANCEMENT] Updated dependencies, including: #93
github.com/prometheus/client_golangfromv1.16.0tov1.17.0github.com/prometheus/commonfromv0.44.0tov0.45.0golang.org/x/syncfromv0.3.0tov0.4.0k8s.io/apifromv0.28.1tov0.28.3k8s.io/apimachineryfromv0.28.1tov0.28.3k8s.io/client-gofromv0.28.1tov0.28.3
- [BUGFIX] Do not exit reconciliation early if there are errors while trying to adjust the number of replicas. #92
- [BUGFIX] Do not exit reconciliation early if there are errors while trying to adjust the number of replicas. #90
- [ENHANCEMENT] Update the prepare-downscale webhook to check that a rollout is not in progress in the rollout-group, else deny. #82
- [ENHANCEMENT] Update Go to
1.21. #77 - [ENHANCEMENT] Updated dependencies, including: #78
github.com/k3d-io/k3d/v5fromv5.5.2tov5.6.0k8s.io/apifromv0.27.4tov0.28.1k8s.io/apimachineryfromv0.27.4tov0.28.1k8s.io/client-gofromv0.27.4tov0.28.1
- [ENHANCEMENT] Updated dependencies, including: #70
github.com/k3d-io/k3d/v5fromv5.5.1tov5.5.2github.com/prometheus/client_golangfromv1.15.1tov1.16.0github.com/sirupsen/logrusfromv1.9.2tov1.9.3golang.org/x/syncfromv0.2.0tov0.3.0k8s.io/apifromv0.27.2tov0.27.4k8s.io/apimachineryfromv0.27.2tov0.27.4k8s.io/client-gofromv0.27.2tov0.27.4
- [FEATURE] Publish an additional boringcrypto image for linux/amd64,linux/arm64. #71
- [ENHANCEMENT] Update the intermediate build container for the Docker image to
golang:1.20-alpine3.18. #71
- [ENHANCEMENT] Update Go to
1.20.4. #55 - [ENHANCEMENT] Update Docker base image to
alpine:3.18. #56 - [ENHANCEMENT] Add the ability to scale statefulsets up and down based on the number of replicas in a "leader" statefulset. #62
- [ENHANCEMENT] Updated dependencies, including: #63
github.com/k3d-io/k3d/v5fromv5.4.9tov5.5.1github.com/prometheus/client_golangfromv1.15.0tov1.15.1github.com/prometheus/commonfromv0.42.0tov0.44.0github.com/sirupsen/logrusfromv1.9.0tov1.9.2github.com/stretchr/testifyfromv1.8.2tov1.8.4go.uber.org/atomicfromv1.10.0tov1.11.0golang.org/x/syncfromv0.1.0tov0.2.0k8s.io/apifromv0.26.2tov0.27.2k8s.io/apimachineryfromv0.26.2tov0.27.2k8s.io/client-gofromv0.26.2tov0.27.2
- [ENHANCEMENT] Add an
/admission/prepare-downscalemutating admission webhook that prepares pods for shutdown before downscaling. #47 #52 - [ENHANCEMENT] Update Go to
1.20.3. #48 - [ENHANCEMENT] Updated dependencies, including: #49
github.com/k3d-io/k3d/v5fromv5.4.7tov5.4.9github.com/prometheus/client_golangfromv1.14.0tov1.15.0github.com/prometheus/commonfromv0.39.0tov0.42.0github.com/stretchr/testifyfromv1.8.1tov1.8.2go.uber.org/atomicfromv1.9.0tov1.10.0k8s.io/apifromv0.26.1tov0.26.2k8s.io/apimachineryfromv0.26.1tov0.26.2k8s.io/client-gofromv0.26.1tov0.26.2
- [ENHANCEMENT] Update Go to
1.20.1. #39 - [ENHANCEMENT] Updated dependencies, including: #39 #42
github.com/k3d-io/k3d/v5fromv5.4.6tov5.4.7github.com/prometheus/client_golangfromv1.13.0tov1.14.0github.com/prometheus/commonfromv0.37.0tov0.39.0github.com/stretchr/testifyfromv1.8.0tov1.8.1k8s.io/apifromv0.25.3tov0.26.1k8s.io/apimachineryfromv0.25.3tov0.26.1k8s.io/client-gofromv0.25.3tov0.26.1github.com/containerd/containerdfromv1.6.15tov1.6.18for CVE-2023-25153 and CVE-2023-25173golang.org/x/netfromv0.5.0tov0.8.0for CVE-2022-41723
- [ENHANCEMENT] Update Docker base image to
alpine:3.17. #40 - [ENHANCEMENT] The image published is now a linux/amd64,linux/arm64 multi-platform image. #40
- [ENHANCEMENT] Update Go to
1.19.4. #29 - [ENHANCEMENT] Added
-reconcile.intervaloption to configure the minimum reconciliation interval. #30 - [ENHANCEMENT] Update dependencies to address CVEs, including: #34
github.com/containerd/containerdfromv1.6.8tov1.6.15for CVE-2022-23471golang.org/x/netfromv0.1.0tov0.5.0for CVE-2022-41717
- [FEATURE]
ValidatingAdmissionWebhookimplementation to prevent downscales on certain resources. #25
- [ENHANCEMENT] Update Docker base image to
alpine:3.16. #23 - [ENHANCEMENT] Update the minimum go version to
1.18. #23 - [ENHANCEMENT] Update dependencies to address CVEs, including: #23
github.com/gogo/protobuffromv1.3.1tov1.3.2github.com/prometheus/client_golangfromv1.11.0tov1.13.0golang.org/x/cryptofromv0.0.0-20200622213623-75b288015ac9tov0.1.0k8s.io/client-gofromv0.18.17tov0.25.3
- [ENHANCEMENT] Improve log messages about not read statefulset. #19
- [BUGFIX] Detect as not-ready pods which are terminating but their readiness probe hasn't failed yet. #20
- [BUGFIX] Fix metrics deletion on decommissioned rollout group. #11
- [FEATURE] Coordinate rollout of pods belonging to multiple StatefulSets identified by the same
rollout-grouplabel. #1 #5 #6 - [FEATURE] Expose Prometheus metrics at
/metrics. #4 - [FEATURE] Add readiness probe at
/ready. #6