Update note 1: vmoperator: validation webhooks for prometheus-operator CRDs added to the operator in 0.72.0 is now disabled by default. Use VM_PROMCR_VALIDATION_ENABLED env var to enable it explicitly.
-
Dependency: vmoperator: Updated default versions for VM apps to v1.148.0 version
-
Dependency: vmoperator: Updated default versions for VL apps to v1.52.0.
-
Dependency: vmoperator: Updated default versions for VT apps to v0.10.0 version.
-
Dependency: vmoperator: Updated default versions for VMAnomaly to v1.30.0 version
-
FEATURE: vmanomaly: support Temporal Envelope models, online-model history strength and warmup settings, causal and complexity-aware autotune options, and separate reader fetch and processing controls introduced in vmanomaly v1.30.0. See #2440.
-
FEATURE: vmoperator: add
networkPolicyfield to all supported CRDs (VMSingle,VMAgent,VMAlert,VMAlertmanager,VMAuth,VLSingle,VLAgent,VTSingle,VMAnomaly, and all cluster sub-components). When set, the operator creates and manages aNetworkPolicyresource that restricts ingress/egress to the component's pods. See #2977. -
BUGFIX: vmoperator: grant the operator's
ClusterRolepermissions onnetworking.k8s.io/networkpolicies. ThenetworkPolicyfeature above was shipped without this grant, so the operator would fail with aForbiddenerror creating/updating/deletingNetworkPolicyobjects on a real cluster. -
FEATURE: vmauth: add opt-in
spec.waitForConfigReloadfield. When enabled, the operator confirms that every replica has actually picked up a config change before marking dependentVMUserobjects as applied, so their status can be trusted to reflect what's actually running rather than what was merely written out. vmdistributed's internalVMAuthload balancer always waits for this confirmation before rotating a zone in or out of the backend list, regardless ofspec.vmAuth.spec.waitForConfigReload, so traffic is never routed to a zone that's still running a stale config. -
FEATURE: vlagent: add
basicAuthfield support toremoteWriteentries. See #2371. -
FEATURE: vmcluster: support VMCluster extraStorageNodes for vmselect component.
-
FEATURE: vmuser: add
defaultVMAccessClaimfield tospec.jwt, mapped to vmauth'sjwt.default_vm_access_claim. It lets aVMUseraccept JWTs that don't carry avm_accessclaim, matchingvmauthv1.147.0+ behavior. See #2375. -
FEATURE: helm-converter: parse the victoria-metrics-auth chart's
configvalue (vmauth's own native config file). Eachconfig.usersentry is converted into a standaloneVMUserCR, andconfig.unauthorized_useris converted into theVMAuthCR'sspec.unauthorizedUserAccessSpec. The generatedVMUserCRs are appended to the same output file as additional YAML documents, and theVMAuthCR'sspec.userSelectoris set to a dedicated label matching them, so the operator actually loads them (a bareVMAuthCR's default selectors match nothing). See #2397. -
FEATURE: vmoperator: introduce
VLDistributedCR, which controls multiple region-distributed VictoriaLogs clusters. -
BUGFIX: vmoperator: support
Ignoredstatus for child objects that were not picked, also do not setFailedstatus if object was applied on at least one parent object. See #2432. -
BUGFIX: vmoperator: removed
library/component, while building CR images that do not contain/in repo name. See #2409. -
BUGFIX: vmoperator: log only the changed key names and value sizes, instead of the full values, when updating
ConfigMap. Previously a singledata_difflog line could reach multiple megabytes for large ConfigMaps and break downstream log pipelines with per-line size limits. See #2426. -
BUGFIX: vmagent, vmsingle: add missing
listverb to config-reloader's secrets RBAC rule. See #2384. -
BUGFIX: vmoperator: return an error instead of panicking when a
Labelsmap value is malformed (missing the=separator) during config parsing. -
BUGFIX: vmalert: when no notifiers are configured, ignore alerting rules from selected VMRules instead of failing reconciliation; recording rules in the same group are kept and still reconciled. See #2388.
-
BUGFIX: vmalertmanager: default pod
securityContext.fsGroupto65534when persistent storage is configured and neitheruseStrictSecuritynor a usersecurityContextis set. Without it the alertmanager process cannot write notification log and silences to a freshly provisioned volume, so silences are silently lost on pod restart. User-providedsecurityContextanduseStrictSecuritykeep their previous behaviour. -
BUGFIX: vmoperator: allow pinning images by digest via the
image.tagfield of all operator CRs. Whentagis a digest (e.g.sha256:<hex>) it is now joined to the repository with@instead of:, producing a validrepository@sha256:<digest>reference. Regular tags are unaffected. -
BUGFIX: helm-converter: fix
persistentVolume.storageClassNamebeing dropped during conversion due to a stalestorageClassfield name. See #2389. -
BUGFIX: helm-converter: fix
securityContext.runAsNonRoot,runAsUser,runAsGroup,seccompProfile,appArmorProfile,seLinuxOptions, andwindowsOptionsbeing silently dropped during conversion; these are now promoted tospec.securityContext.podSecurityContext, matching how the operator applies them to containers. See #2391. -
BUGFIX: helm-converter: fix TLS/mTLS settings (
tlsCAFile,tlsCertFile,tlsKeyFile,tlsServerName,tlsInsecureSkipVerify) onremoteWriteentries being dropped during conversion for vmagent, vlagent, vlcollector, and vmalert charts. See #2390. -
BUGFIX: helm-converter: fix
cannot unmarshal object into Go struct field ... headers of type []stringerror when a chart's default values.yaml ships aheaders: {}map (e.g. vmalert'sdatasource.headers,notifier.headers,remoteWrite.headers); such maps are now normalized to the operator'skey:valuestring-slice format before conversion. See #2398. -
BUGFIX: helm-converter: fix
extraVolumes/extraVolumeMountsbeing silently dropped during conversion for vmsingle, vmagent, vmalert, vmanomaly, vmcluster, vlcluster, vtcluster, vtsingle, vlogs, and vmauth charts. See #2424. -
BUGFIX: vmagent, vmanomaly: target
spec.vpaat theVMAgent/VMAnomalycustom resource itself instead of its underlyingDeployment/StatefulSet. VPA rejects atargetRefwhose owner chain includes another scalable controller, so aVerticalPodAutoscalertargeting the workload directly was silently non-functional whenever the CR exposed ascalesubresource. See #2415. -
BUGFIX: vlagent: remove a vestigial
scalesubresource declaration referencing nonexistentspec/statusfields, which unconditionally brokespec.vpaforVLAgentthe same way as #2415. -
BUGFIX: vmalert, vmagent, vmalertmanager, vmauth, vmsingle: fix child object selection (
VMRule, scrape objects,VMAlertmanagerConfig,VMUser) being silently skipped whenever the parent CR's spec contains a field the running operator version doesn't recognize (e.g. after a CRD/operator version mismatch), even though the CR otherwise reconciles successfully with no errors. See #2444.