v0.75.0
CompareGitHub
Update note 1: vmagent, vmalert, vmalertmanager, vmsingle: the config-reloader sidecar now gets an extra --target-dir= argument per watched directory, which changes the pod spec. All VMAlertmanager pods, and every VMAgent, VMAlert or VMSingle pod whose reloader watches a directory (spec.configMaps, relabeling or stream aggregation configs, rule ConfigMaps), will be rolled out once during this upgrade.
Update note 2: vmcluster: a serviceSpec with useAsDefault: true that makes the default Service of vmstorage non-headless, that is a spec.type other than ClusterIP, or an explicit spec.clusterIP/spec.clusterIPs other than None, is now rejected at spec.vmstorage.serviceSpec. Reconciliation of such a VMCluster fails until the serviceSpec keeps the Service headless, or until useAsDefault is removed, which turns it into an additional Service. See #2491.
Update note 3: vmcluster, vmalertmanager: spec.vmselect.serviceSpec of VMCluster and spec.serviceSpec of VMAlertmanager with useAsDefault: true and an explicit spec.type, but no spec.clusterIP, now produce a Service with a virtual IP instead of a headless one. That Service is recreated during the upgrade and gets a new clusterIP. For a VMCluster with spec.requestsLoadBalancer.enabled, the recreated Service is the vmauth proxy of vmselect, while its internal Service stays headless. Add spec.clusterIP: None, or remove spec.type, to keep the previous behaviour. See #2487.
Update note 4: vmrule, vmuser, vmalertmanagerconfig, vmanomalyconfig, vmservicescrape, vmpodscrape, vmnodescrape, vmprobe, vmstaticscrape, vmscrapeconfig: status.updateStatus of these config-only objects no longer reports whether the applications selecting them accepted their content. It is now operational unless the operator cannot parse the object's own spec, in which case it is set to failed. The ignored value is no longer set. The state reported by each application is available at status.conditions.
Dependency: vmoperator: Updated default versions for VM apps to v1.152.0.
Dependency: vmoperator: Updated default versions for VT apps to v0.11.1.
Dependency: vmoperator: Updated default version for VMAnomaly to v1.30.7.
Dependency: vmoperator: Updated default version for Alertmanager to v0.34.1.
FEATURE: vmanomaly: support bounded
spec.reader.workers, query-level business policies, andsettings.native_threads_per_workerintroduced in vmanomaly v1.30.2. See #2496.FEATURE: vmanomaly: add typed
spec.writer.batchMaxSeries,spec.writer.batchMaxBytes, andspec.writer.metricPrefixCacheMaxEntriesfields for the bounded writer controls introduced in vmanomaly v1.30.3. See #2542.FEATURE: vmoperator: add
k8s_versionlabel with the Kubernetes server version to thevm_app_versionmetric. See #2530.FEATURE: vmoperator: add
operator_controller_errors_total{controller,namespace,name,reason}metric, which counts reconcile errors of every controller byreason:get_object,parse_object,cancel_context,conflict,declinedandother. It deprecatesoperator_controller_object_get_errors_total,operator_controller_object_parsing_errors_total,operator_controller_reconcile_conflict_errors_totalandoperator_controller_reconcile_errors_total, which are still exported, but will be removed in a future release. See #2536.FEATURE: vtagent: add
VTAgentCRD for vtagent. It can accept OTLP trace spans over HTTP and gRPC and replicates them to one or more VictoriaTraces instances. The newVTAgentCRD must be installed in order to use it. See #2510.FEATURE: vtagent, vtsingle, vtcluster: add
grpcSpecfield (spec.insert.grpcSpecforVTCluster) to accept OTLP trace spans over gRPC in addition to HTTP. ItslistenPortis exposed at the componentServiceand can be secured with the optionaltlsConfig. See #2510.FEATURE: vlagent, vlsingle, vlcluster: add
minVersionandcipherSuitesfields totlsConfigof syslog TCP listeners. See #2510.FEATURE: vlsingle, vtsingle: add
removePvcAfterDeletefield, which makes Kubernetes garbage-collect thePersistentVolumeClaimtogether with the deletedVLSingleorVTSingleobject. It is disabled by default, so thePersistentVolumeClaimwith the stored data is now preserved after the object deletion. Previously, it was always removed together with the object. See #2545.FEATURE: vmcluster, vmalertmanager: allow a
serviceSpecwithuseAsDefault: trueto replace the headless defaultServiceofvmselectandVMAlertmanagerwith a regular one by definingspec.type. Previously,spec.type: ClusterIPstill inheritedclusterIP: Nonefrom the defaultService, so the only way to get a virtual IP was to pinspec.clusterIPby hand. See #2487.BUGFIX: vmoperator: set
status.updateStatusfor config-only objects -VMRule,VMUser,VMAlertmanagerConfig,VMAnomalyConfig,VMServiceScrape,VMPodScrape,VMNodeScrape,VMProbe,VMStaticScrapeandVMScrapeConfig- even when no application selects them. Previously, such objects were left without any status, which failed health checks of GitOps tools such as ArgoCD. The status is nowoperational, orfailedif the operator cannot parse the object's spec. See #2649.BUGFIX: vmagent, vmanomaly: set the default value
0tospec.shardCountin the CRD schema. Previously, the field was absent unless sharding was configured, so every read of the object's/scalesubresource failed withthe spec replicas field ".spec.shardCount" does not exist, which brokespec.vpa,spec.hpaand any external autoscaler pointed at the object. TheVMAgentandVMAnomalyCRDs must be updated to get this fix. See #2473.BUGFIX: vmoperator: set default values for each possible
levellabel ofoperator_log_messages_totalmetric. See #2477.BUGFIX: vmoperator: add the default
preStopsleep hook only on Kubernetes >= 1.30. Previously it was added on 1.29 as well, where thePodLifecycleSleepActionfeature gate is alpha and off by default, the affected compon
…(truncated)