MetalLB helm release upgrade failed.

Summary

Upgrading my Sylva CAPO management cluster from v1.3.7 to v1.4.5 MetalLB Helm release upgrade failed.

 ✓ Kustomization/metal3 - Resource is ready
 ✓ Kustomization/capm3 - Resource is ready
 ✓ Kustomization/cluster-garbage-collector - Resource is ready
⢄⡱ HelmRelease/metallb - UpgradeFailed - Helm upgrade failed for release metallb-system/metallb with chart metallb@0.14.9: unable to build kubernetes objects from current release manifest: [resource mapping not found for name: "metallb-speaker-monitor" namespace: "metallb-system" from "": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"ensure CRDs are installed first, resource mapping not found for name: "metallb-controller-monitor" namespace: "metallb-system" from "": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"ensure CRDs are installed first]
⢄⡱ Kustomization/metallb - HealthCheckFailed - health check failed after 30.023888611s: timeout waiting for: [HelmRelease/sylva-system/metallb status: 'InProgress']

Same error when retrieving the object:

kubectl get -n sylva-system hr metallb -oyaml
[...]
status:
  conditions:
  - lastTransitionTime: "2025-09-03T15:40:55Z"
    message: |-
      Helm upgrade failed for release metallb-system/metallb with chart metallb@0.14.9: unable to build kubernetes objects from current release manifest: [resource mapping not found for name: "metallb-speaker-monitor" namespace: "metallb-system" from "": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
      ensure CRDs are installed first, resource mapping not found for name: "metallb-controller-monitor" namespace: "metallb-system" from "": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
      ensure CRDs are installed first]
    observedGeneration: 9
    reason: UpgradeFailed
    status: "False"
    type: Ready
[...]

I tryed to force reconciliation:

flux reconcile hr metallb --force
► annotating HelmRelease metallb in sylva-system namespace
✔ HelmRelease annotated
◎ waiting for HelmRelease reconciliation
✗ context deadline exceeded

Doesn't work.

Metallb is the only Helm release on error:

kubectl get -n sylva-system hr
NAME                        AGE    READY   STATUS
calico                      170d   True    Helm upgrade succeeded for release kube-system/rke2-calico.v3 with chart rke2-calico@v3.30.100
calico-crd                  170d   True    Helm upgrade succeeded for release kube-system/rke2-calico-crd.v3 with chart rke2-calico-crd@v3.30.100
cert-manager                170d   True    Helm upgrade succeeded for release cert-manager/cert-manager.v2 with chart cert-manager@v1.17.4
cinder-csi                  170d   True    Helm upgrade succeeded for release cinder-csi/cinder-csi.v2 with chart openstack-cinder-csi@2.32.0
cis-operator                170d   True    Helm upgrade succeeded for release cis-operator-system/cis-operator.v2 with chart rancher-cis-benchmark@105.4.0+up7.4.0
cis-operator-crd            170d   True    Helm upgrade succeeded for release cis-operator-system/cis-operator-crd.v2 with chart rancher-cis-benchmark-crd@105.4.0+up7.4.0
cluster                     170d   True    Helm upgrade succeeded for release sylva-system/cluster.v4 with chart sylva-capi-cluster@0.0.0+42de047ac6fd
cnpg-operator               170d   True    Helm upgrade succeeded for release cnpg-system/cnpg-operator.v2 with chart cloudnative-pg@0.23.2
coredns                     19h    True    Helm install succeeded for release kube-system/rke2-coredns.v1 with chart rke2-coredns@1.42.302
crossplane                  19h    True    Helm install succeeded for release crossplane-system/crossplane.v1 with chart crossplane@1.20.1
external-secrets-operator   170d   True    Helm upgrade succeeded for release external-secrets/external-secrets-operator.v2 with chart external-secrets@0.16.2
flux-webui                  170d   True    Helm upgrade succeeded for release flux-system/flux-webui.v2 with chart weave-gitops@4.0.36+693dafd494f1
harbor                      170d   True    Helm upgrade succeeded for release harbor/harbor.v2 with chart harbor@1.15.2
harbor-postgres             170d   True    Helm upgrade succeeded for release harbor/harbor-postgres.v2 with chart postgresql@15.5.36+074e377c5820
ingress-nginx               170d   True    Helm upgrade succeeded for release kube-system/rke2-ingress-nginx.v2 with chart rke2-ingress-nginx@4.12.201
k8s-gateway                 170d   True    Helm upgrade succeeded for release k8s-gateway/k8s-gateway.v2 with chart k8s-gateway@2.4.0
kyverno                     170d   True    Helm upgrade succeeded for release kyverno/kyverno.v5 with chart kyverno@3.3.9
local-path-provisioner      170d   True    Helm upgrade succeeded for release kube-system/local-path-provisioner.v2 with chart local-path-provisioner@0.0.31+7b1dad8fbdc8
metal3                      170d   True    Helm upgrade succeeded for release metal3-system/metal3.v2 with chart metal3@0.11.5
metallb                     170d   False   Helm upgrade failed for release metallb-system/metallb with chart metallb@0.14.9: unable to build kubernetes objects from current release manifest: [resource mapping not found for name: "metallb-speaker-monitor" namespace: "metallb-system" from "": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"...
metallb-resources           170d   True    Helm upgrade succeeded for release metallb-system/metallb-resources.v2 with chart metallb-resources@0.1.0+180d70083b3e
monitoring-crd              15h    True    Helm upgrade succeeded for release cattle-monitoring-system/rancher-monitoring-crd.v2 with chart rancher-monitoring-crd@105.2.0+up66.7.1-rancher.10
os-image-server             170d   True    Helm upgrade succeeded for release os-images/os-image-server.v2 with chart os-image-server@0.1.0+c0e342f1d3f4
rancher                     170d   True    Helm upgrade succeeded for release cattle-system/rancher.v2 with chart rancher@2.10.3
rancher-turtles             19h    True    Helm install succeeded for release rancher-turtles-system/rancher-turtles.v1 with chart rancher-turtles@0.18.0
root-dependency-11          14h    True    Helm install succeeded for release sylva-system/root-dependency.v1 with chart devnull@0.1.0+8d8494f10c52
sylva-units                 170d   True    Helm upgrade succeeded for release sylva-system/sylva-units.v11 with chart sylva-units@0.0.0-git+51b1c7dd6839.22
sync-openstack-images       20h    True    Helm install succeeded for release sylva-system/sync-openstack-images.v1 with chart sync-openstack-images@0.1.0+ac6f2555b454
vault-config-operator       170d   True    Helm upgrade succeeded for release vault/vault-config-operator.v2 with chart vault-config-operator@v0.8.33
vault-operator              170d   True    Helm upgrade succeeded for release vault/vault-operator.v2 with chart vault-operator@0.0.0+e06f3d0b15e5
workload-team-defs          170d   True    Helm upgrade succeeded for release sylva-system/workload-team-defs.v3 with chart workload-team-defs@0.2.0+700aec53f0be
Assignee Loading
Time tracking Loading