Specifies the name for the community.
As a cluster administrator, you can configure a community alias and use it across different advertisements.
The community custom resource is a collection of aliases for communities. Users can define named aliases to be used when advertising ipAddressPools using the BGPAdvertisement. 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 IP addresses for MetalLB to assign to services. You can specify multiple ranges in a single pool, they will all share the same settings. Specify each range in CIDR notation or as starting and ending IP addresses separated with a hyphen. |
| Field | Type | Description |
|---|---|---|
|
|
The name of the alias for the |
|
|
The BGP |
Configure MetalLB as follows so that the IPAddressPool is advertised with the BGP protocol and the community alias set 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:
- community1
ipAddressPools:
- doc-example-bgp-community
peers:
- doc-example-peer
Apply the configuration:
$ oc apply -f bgpadvertisement.yaml