MetalLB Version
0.14.9
Deployment method
Charts
Main CNI
flannel
Kubernetes Version
1.31.4
Cluster Distribution
k3s
Describe the bug
Annotations starting with "metallb.universe.tf" are deprecated as announced.
However, if a service was deployed using an older version, it contains metallb managed annotation metallb.universe.tf/ip-allocated-from-pool.
To Reproduce
- Deploy a service with metallb < 0.14.9 and assign an IP using
metallb.universe.tf/loadBalancerIPs
- Upgrade metallb to 0.14.9
- Re-apply the same service after changing the deprecated annotation to
metallb.io/loadBalancerIPs
Expected Behavior
MetalLB will complain about use of deprecated annotations in kubernetes events - however that annotation was set by MetalLB.

Do note that service gets the new annotation metallb.io/ip-allocated-from-pool, but it does not remove the old annotation - which is what I'd expect.
Additional Context
# Source: haproxy/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
name: haproxy
namespace: default
labels:
helm.sh/chart: haproxy-1.23.0
app.kubernetes.io/name: haproxy
app.kubernetes.io/instance: haproxy
app.kubernetes.io/version: "3.0.4"
app.kubernetes.io/managed-by: Helm
annotations:
metallb.io/loadBalancerIPs: "192.168.0.50"
spec:
type: LoadBalancer
selector:
app.kubernetes.io/name: haproxy
app.kubernetes.io/instance: haproxy
externalTrafficPolicy: Local
ports:
- name: http
protocol: TCP
port: 80
targetPort: http
- name: https
protocol: TCP
port: 443
targetPort: https
I've read and agree with the following
I've read and agree with the following
MetalLB Version
0.14.9
Deployment method
Charts
Main CNI
flannel
Kubernetes Version
1.31.4
Cluster Distribution
k3s
Describe the bug
Annotations starting with "metallb.universe.tf" are deprecated as announced.
However, if a service was deployed using an older version, it contains metallb managed annotation
metallb.universe.tf/ip-allocated-from-pool.To Reproduce
metallb.universe.tf/loadBalancerIPsmetallb.io/loadBalancerIPsExpected Behavior
MetalLB will complain about use of deprecated annotations in kubernetes events - however that annotation was set by MetalLB.
Do note that service gets the new annotation
metallb.io/ip-allocated-from-pool, but it does not remove the old annotation - which is what I'd expect.Additional Context
I've read and agree with the following
I've read and agree with the following