-
Bug
-
Resolution: Not a Bug
-
Undefined
-
None
-
4.20
-
None
-
Quality / Stability / Reliability
-
False
-
-
None
-
None
-
None
-
None
-
None
-
None
-
CNF Network Sprint 273
-
1
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Description of problem:
BGP routes not advertised - in the speaker pods logs we can see messages about "invalid allowed prefixes"
Version-Release number of selected component (if applicable):
- Started to see this in OpenShift 4.20 nightly 2025-06-28 11:54 and newer.
- MetalLB pre-ga operator: 4.19.0
How reproducible:
100%
Steps to Reproduce:
`
Actual results:
BGP routes not being advertised
Expected results:
BGP routes are advertised
Additional info:
[kni@provisioner.cluster1.dfwt5g.lab ~]$ oc get clusterversion
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS
version 4.20.0-0.nightly-2025-07-01-051543 True False 10h Cluster version is 4.20.0-0.nightly-2025-07-01-051543
[kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-system get csv | grep metal
metallb-operator.v4.19.0 MetalLB Operator 4.19.0 Succeeded
[kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-system get pods
NAME READY STATUS RESTARTS AGE
controller-7b688cf4db-xb7dx 2/2 Running 0 8h
metallb-operator-controller-manager-6b98b445b8-qfw7f 1/1 Running 0 9h
metallb-operator-webhook-server-6d84c4bfd8-djxbm 1/1 Running 0 9h
speaker-k8g24 2/2 Running 0 8h
speaker-ks64v 2/2 Running 0 8h
speaker-q7qmq 2/2 Running 0 8h
speaker-tx95z 2/2 Running 0 8h
[kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-system logs speaker-k8g24 | grep error | tail -1
Defaulted container "speaker" out of: speaker, kube-rbac-proxy
{"level":"error","ts":"2025-07-02T20:02:38Z","msg":"Reconciler error","controller":"frrconfiguration","controllerGroup":"frrk8s.metallb.io","controllerKind":"FRRConfiguration","FRRConfiguration":{"name":"reload","namespace":"metallbreload"},"namespace":"metallbreload","name":"reload","reconcileID":"89ee1bec-00b7-496c-8dbd-be45dd238fa6","error":"admission webhook \"frrconfigurationsvalidationwebhook.metallb.io\" denied the request: invalid allowed prefixes [10.100.1.50/32 fdb4:da34:100:1::5/128] for neighbor 65000@192.168.15.2, err: prefix fdb4:da34:100:1::5/128 is not compatible with the ipfamily ipv4\nresource is invalid for node worker-3","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/metallb/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:341\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/metallb/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:288\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2.2\n\t/metallb/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:249"}
[kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-app-vlan404 get pods
NAME READY STATUS RESTARTS AGE
httpbin-vlan404-5dc856c46d-j97sp 1/1 Running 0 8h
httpbin-vlan404-5dc856c46d-kk4v9 1/1 Running 0 8h
[kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-app-vlan404 get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
metallb-vlan404 LoadBalancer 172.30.19.14 10.100.1.50,fdb4:da34:100:1::5 8080:32267/TCP 8h
[kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-app-vlan404 get service metallb-vlan404 -o json | jq .spec
{
"allocateLoadBalancerNodePorts": true,
"clusterIP": "172.30.19.14",
"clusterIPs": [
"172.30.19.14",
"fd03::437"
],
"externalTrafficPolicy": "Cluster",
"internalTrafficPolicy": "Cluster",
"ipFamilies": [
"IPv4",
"IPv6"
],
"ipFamilyPolicy": "PreferDualStack",
"ports": [
{
"nodePort": 32267,
"port": 8080,
"protocol": "TCP",
"targetPort": 8080
}
],
"selector": {
"app": "vlan404"
},
"sessionAffinity": "None",
"type": "LoadBalancer"
}
[kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-system get IPAddressPool
NAME AUTO ASSIGN AVOID BUGGY IPS ADDRESSES
vlan404 true false ["10.100.1.50-10.100.1.70","fdb4:da34:100:1::5-fdb4:da34:100:1::10"]
[kni@provisioner.cluster1.dfwt5g.lab ~]$ oc -n metallb-system get BGPAdvertisement vlan404 -o yaml
apiVersion: metallb.io/v1beta1
kind: BGPAdvertisement
metadata:
creationTimestamp: "2025-07-02T11:13:45Z"
generation: 1
name: vlan404
namespace: metallb-system
resourceVersion: "153443"
uid: ff760a3f-269c-4625-aeea-88f9aa68fe2b
spec:
aggregationLength: 32
aggregationLengthV6: 128
ipAddressPools:
- vlan404
peers:
- dfw01edge-sp01-cluster1-vlan404-ipv4
- dfw01edge-sp02-cluster1-vlan404-ipv4
- dfw01edge-sp01-cluster1-vlan404-ipv6
- dfw01edge-sp02-cluster1-vlan404-ipv6
CI-job: https://www.distributed-ci.io/jobs/fe561fb1-37b9-45e8-97a7-e4fbc276c345/jobStates?sort=date
must-gather: must_gather.tar.gz