Specifies the name for the community.
As a cluster administrator, you can configure a community alias and use it across different advertisements.
To simplify BGP configuration, define named aliases for community values by using the community custom resource. You can reference these aliases when advertising ipAddressPools with the BGPAdvertisement resource.
The fields for the community custom resource are described in the following table.
|
The |
| Field | Type | Description |
|---|---|---|
|
|
Specifies the name for the |
|
|
Specifies the namespace for the |
|
|
Specifies a list of BGP community aliases that can be used in BGPAdvertisements. A community alias consists of a pair of name (alias) and value (number:number). Link the BGPAdvertisement to a community alias by referring to the alias name in its |
| Field | Type | Description |
|---|---|---|
|
|
The name of the alias for the |
|
|
The BGP |
To advertise an IPAddressPool by using the BGP protocol, configure MetalLB with a community alias. This configuration sets the alias to the numeric value of the NO_ADVERTISE community.
In the following example, the peer BGP router doc-example-peer-community receives one 203.0.113.200/32 route and one fc00:f853:ccd:e799::1/128 route for each load-balancer IP address that MetalLB assigns to a service. A community alias is configured with the NO_ADVERTISE community.
Install the OpenShift CLI (oc)
Log in as a user with cluster-admin privileges.
Create an IP address pool.
Create a file, such as ipaddresspool.yaml, with content like the following example:
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
namespace: metallb-system
name: doc-example-bgp-community
spec:
addresses:
- 203.0.113.200/30
- fc00:f853:ccd:e799::/124
Apply the configuration for the IP address pool:
$ oc apply -f ipaddresspool.yaml
Create a community alias named community1.
apiVersion: metallb.io/v1beta1
kind: Community
metadata:
name: community1
namespace: metallb-system
spec:
communities:
- name: NO_ADVERTISE
value: '65535:65282'
Create a BGP peer named doc-example-bgp-peer.
Create a file, such as bgppeer.yaml, with content like the following example:
apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
namespace: metallb-system
name: doc-example-bgp-peer
spec:
peerAddress: 10.0.0.1
peerASN: 64501
myASN: 64500
routerID: 10.10.10.10
Apply the configuration for the BGP peer:
$ oc apply -f bgppeer.yaml
Create a BGP advertisement with the community alias.
Create a file, such as bgpadvertisement.yaml, with content like the following example:
apiVersion: metallb.io/v1beta1
kind: BGPAdvertisement
metadata:
name: bgp-community-sample
namespace: metallb-system
spec:
aggregationLength: 32
aggregationLengthV6: 128
communities:
- NO_ADVERTISE (1)
ipAddressPools:
- doc-example-bgp-community
peers:
- doc-example-peer
where:
NO_ADVERTISE: Specifies the CommunityAlias.name here and not the community custom resource (CR) name.
Apply the configuration:
$ oc apply -f bgpadvertisement.yaml