Skip to content

CR Converstion tool, failed to generate resources: invalid aggregation length 24 #1495

@jonwilliams84

Description

@jonwilliams84

Take this configmap:

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    peers:
  config: |
    peers:
    - peer-address: 10.32.100.1
      peer-asn: 64588
      my-asn: 64500
    address-pools:
    - name: default
      protocol: bgp
      addresses:
      - 10.0.8.0/24
      avoid-buggy-ips: true
      bgp-advertisements:
      - aggregation-length: 32
        localpref: 100
      - aggregation-length: 24

When running it through the CM to CR conversion tool during upgrade of MetalLB 12.1 > 13.3, I get this error:

failed to generate resources: invalid aggregation length 24: prefix 26 in this pool is more specific than the aggregation length for addresses 10.0.8.1-10.0.8.254

Commenting out the /24 aggregation-length line the CR is generated:

# This was autogenerated by MetalLB's custom resource generator.
apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
  creationTimestamp: null
  name: peer1
  namespace: metallb-system
spec:
  holdTime: 1m30s
  keepaliveTime: 30s
  myASN: 64500
  passwordSecret: {}
  peerASN: 64588
  peerAddress: 10.32.100.1
status: {}
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  creationTimestamp: null
  name: default
  namespace: metallb-system
spec:
  addresses:
  - 10.0.8.1-10.0.8.254
status: {}
---
apiVersion: metallb.io/v1beta1
kind: BGPAdvertisement
metadata:
  creationTimestamp: null
  name: bgpadvertisement1
  namespace: metallb-system
spec:
  aggregationLength: 32
  ipAddressPools:
  - default
  localPref: 100
status: {}
---

Functionally, I realise this will work but is there any reason it doesn't like the /24 aggregation on a pool that is /24?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions