Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions calico/reference/resources/bgpconfig.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Reference for the BGPConfiguration resource in Calico Open Source that sets cluster-wide BGP options including the autonomous system number and route reflectors.
description: Reference for the BGPConfiguration resource in Calico Open Source that sets cluster-wide BGP options including the autonomous system number and the node-to-node mesh.
---

# BGP configuration
Expand Down Expand Up @@ -42,23 +42,24 @@

| Field | Description | Accepted Values | Schema |
| ----- | --------------------------------------------------------- | --------------------------------------------------- | ------ |
| `name` | Unique name to describe this resource instance. Required. | Alphanumeric string with optional `.`, `_`, or `-`. | string |
| `name` | Unique name to describe this resource instance. Required. | Lowercase alphanumeric string with optional `.` or `-`. | string |

- The resource with the name `default` has a specific meaning - this contains the BGP global default configuration.
- The resources with the name `node.<nodename>` contain the node-specific overrides, and will be applied to the node `<nodename>`. When deleting a node the BGPConfiguration resource associated with the node will also be deleted. Only prefixAdvertisements, listenPort, and logSeverityScreen can be overridden this way.
- The resources with the name `node.<nodename>` contain the node-specific overrides, and will be applied to the node `<nodename>`. Only prefixAdvertisements, listenPort, and logSeverityScreen can be overridden this way.

Check failure on line 48 in calico/reference/resources/bgpconfig.mdx

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'listenPort'? Raw Output: {"message":"[Vale.Spelling] Did you really mean 'listenPort'?","location":{"path":"calico/reference/resources/bgpconfig.mdx","range":{"start":{"line":48,"column":159},"end":{"line":48,"column":169}}},"severity":"ERROR","code":{"value":"Vale.Spelling"}}

Check failure on line 48 in calico/reference/resources/bgpconfig.mdx

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'prefixAdvertisements'? Raw Output: {"message":"[Vale.Spelling] Did you really mean 'prefixAdvertisements'?","location":{"path":"calico/reference/resources/bgpconfig.mdx","range":{"start":{"line":48,"column":137},"end":{"line":48,"column":157}}},"severity":"ERROR","code":{"value":"Vale.Spelling"}}

### Spec

| Field | Description | Accepted Values | Schema | Default |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- |
| `logSeverityScreen` | Global log level | Debug, Info, Warning, Error, Fatal | string | `Info` |
| `nodeToNodeMeshEnabled` | Full BGP node-to-node mesh. Only valid on the global `default` BGPConfiguration. | true, false | string | true |
| `asNumber` | The default local AS Number that $[prodname] should use when speaking with BGP peers. Only valid on the global `default` BGPConfiguration; to set a per-node override, use the `bgp` field on the [Node resource](node.mdx). | A valid AS Number, may be specified in dotted notation. | integer/string | 64512 |
| `logSeverityScreen` | Global log level | Trace, Debug, Info, Warning, Error, Fatal | string | `Info` |
| `nodeToNodeMeshEnabled` | Full BGP node-to-node mesh. Only valid on the global `default` BGPConfiguration. | true, false | boolean | true |
| `asNumber` | The default local AS Number that $[prodname] should use when speaking with BGP peers. Only valid on the global `default` BGPConfiguration; to set a per-node override, use the `bgp` field on the [Node resource](node.mdx). | A valid AS Number. String values, including dotted notation, work through `calicoctl` or the $[prodname] API server, but not with `kubectl` on [native v3 CRDs](../../operations/native-v3-crds.mdx). | integer/string | 64512 |
| `serviceClusterIPs` | The CIDR blocks for Kubernetes Service Cluster IPs to be advertised over BGP. Only valid on the global `default` BGPConfiguration: will be ignored otherwise. | A list of valid IPv4 or IPv6 CIDR blocks. | List of `cidr: <ip>/<prefix length>` values. | Empty List |
| `serviceExternalIPs` | The CIDR blocks for Kubernetes Service External IPs to be advertised over BGP. Kubernetes Service External IPs will only be advertised if they are within one of these blocks. Only valid on the global `default` BGPConfiguration: will be ignored otherwise. | A list of valid IPv4 or IPv6 CIDR blocks. | List of `cidr: <ip>/<prefix length>` values. | Empty List |
| `serviceLoadBalancerIPs` | The CIDR blocks for Kubernetes Service status.LoadBalancer IPs to be advertised over BGP. Kubernetes LoadBalancer IPs will only be advertised if they are within one of these blocks. Only valid on the global `default` BGPConfiguration: will be ignored otherwise. | A list of valid IPv4 or IPv6 CIDR blocks. | List of `cidr: <ip>/<prefix length>` values. | Empty List |
| `serviceLoadBalancerAggregation` | Controls how Kubernetes Service LoadBalancer IPs are advertised. When `Enabled`, $[prodname] advertises the CIDR blocks in `serviceLoadBalancerIPs`. When `Disabled`, it advertises an individual route for each LoadBalancer IP instead. Only valid on the global `default` BGPConfiguration: will be ignored otherwise. | Enabled, Disabled | string | Enabled |
| `listenPort` | The port where BGP protocol should listen. | A valid port number. | integer | 179 |
| `bindMode` | Indicates whether to listen for BGP connections on all addresses (None) or only on the node's canonical IP address Node.Spec.BGP.IPvXAddress (NodeIP). If this field is changed when calico-node is already running, the change will not take effect until calico-node is manually restarted. | None, NodeIP. | string | None |
| `bindMode` | Indicates whether to listen for BGP connections on all addresses (None) or only on the node's canonical IP address Node.Spec.BGP.IPvXAddress (NodeIP). If this field is changed when calico-node is already running, the change will not take effect until calico-node is restarted. With an operator installation, the operator restarts calico-node automatically. | None, NodeIP. | string | None |
| `communities` | List of BGP community names and their values, communities are not advertised unless they are used in [prefixAdvertisements](#prefixadvertisements). | | List of [communities](#communities) |
| `prefixAdvertisements` | List of per-prefix advertisement properties, like BGP communities. | | List of [prefixAdvertisements](#prefixadvertisements) |
| `nodeMeshPassword` | BGP password for the all the peerings in a full mesh configuration. | | [BGPPassword](bgppeer.mdx#bgppassword) | `nil` (no password) |
Expand All @@ -68,7 +69,7 @@
| `localWorkloadPeeringIPV6` | Single virtual IPv6 address that all nodes will use for peering with local workloads when using `BGPPeer`'s `localWorkloadSelector`. Must _not_ be a link-local address (because $[prodname] doesn't currently support the required "scope" suffix). See the [guide](../../networking/configuring/bgp-to-workload.mdx) for details. | An IPv6 address. | string | None |
| `ipv4NormalRoutePriority` | The normal route priority (metric) that Felix uses for IPv4 workload routes. This must match the value configured in FelixConfiguration. BIRD uses this to identify elevated-priority routes during live migration and to override local workload routes with higher-priority BGP-learned routes. | 1-2147483646 | integer | 1024 |
| `ipv6NormalRoutePriority` | The normal route priority (metric) that Felix uses for IPv6 workload routes. This must match the value configured in FelixConfiguration. BIRD uses this to identify elevated-priority routes during live migration and to override local workload routes with higher-priority BGP-learned routes. | 1-2147483646 | integer | 1024 |
| `programClusterRoutes` | Controls whether $[prodname] programs cluster routes for IP Pools with VXLAN or IP-in-IP enabled. Felix always programs such routes for IP Pools with `vxlanMode: Always` or `vxlanMode: CrossSubnet`. | Enabled, Disabled | string | Enabled |
| `programClusterRoutes` | Controls which cluster routes BIRD programs for IP Pools with `vxlanMode: Never`: `Disabled` programs none, `EnabledNoEncapOnly` programs them for unencapsulated IP Pools, `EnabledIPIPOnly` for IP-in-IP IP Pools, and `Enabled` for both. Felix always programs such routes for IP Pools with `vxlanMode: Always` or `vxlanMode: CrossSubnet`. | Enabled, Disabled, EnabledIPIPOnly, EnabledNoEncapOnly | string | EnabledNoEncapOnly |

### communities

Expand All @@ -81,5 +82,5 @@

| Field | Description | Accepted Values | Schema |
| ----------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
| `cidr` | CIDR for which properties should be advertised. | `cidr: XXX.XXX.XXX.XXX/XX` | string |
| `cidr` | CIDR for which properties should be advertised. | A valid IPv4 or IPv6 CIDR. | string |
| `communities` | BGP communities to be advertised. | Communities can be list of either community names already defined in [communities](#communities) or community value of format `aa:nn` or `aa:nn:mm`. <br/>For standard community, value should be in `aa:nn` format, where both `aa` and `nn` are 16 bit integers.<br/> For large community, value should be `aa:nn:mm` format, where `aa`, `nn` and `mm` are all 32 bit integers. <br/>Where `aa` is an AS Number, `nn` and `mm` are per-AS identifier. | List of string |
Loading
Loading