GlobalRoutingConfig

Overview

Function

Declares the global routing configuration for a CNE instance, linking a RoutingTemplate resource with Border Gateway Protocol (BGP) settings, peer groups, and virtual IP addressing to render OcNOS CLI routing configuration across all TMM instances.

Names

Singular name

Plural name

Short name

globalroutingconfig

globalroutingconfigs

—

API group and version

k8s.f5net.com/v1alpha1

Scope

Namespace

Specification

spec

Field

Required

Default

Description

templateRef
object

Yes

—

Reference to a RoutingTemplate resource. The referenced template provides the Go template body used to render OcNOS CLI configuration.

vxlanRef
string

No

—

Soft reference to a Vxlan resource by name. Use this field for VXLAN/EVPN overlay scenarios.

bgp
object

Yes

—

BGP configuration settings including autonomous system (AS) numbers, router ID derivation, neighbors, and peer groups.

virtualIpSubnet
string

No

—

Specifies the IPv4 or IPv6 subnet from which OcNOS assigns an IP address to each TMM instance to establish BGP-VPN sessions. Must match a valid IPv4 or IPv6 address pattern. Minimum length: 2 characters. Maximum length: 39 characters.

virtualIpPrefixlen
integer

No

—

Specifies the prefix length for the virtual IP subnet. Minimum: 1. Maximum: 128.

neighborSecrets
array

No

[]

List of secrets used for BGP neighbor authentication. Each entry maps a neighbor address to a Kubernetes Secret.

Note

This resource is immutable after creation. To update, delete the existing resource and create a new one.

spec.templateRef

Field

Required

Description

name
string

Yes

Name of the RoutingTemplate resource. Must be at least one character.

spec.bgp

Field

Required

Default

Description

startASN
integer

Yes

—

Start of the autonomous system number (ASN) range. Minimum: 1. Maximum: 4294967295.

endASN
integer

No

—

Optional end of the ASN range. When set, the controller assigns ASNs per TMM slot. Must be greater than or equal to startASN. Minimum: 1. Maximum: 4294967295.

routerIdSubnet
string

No

—

Base subnet used for BGP addressing derivation when needed by templates. Must be a valid IPv4 or IPv6 address. Must be at least one character.

routerIdPrefix
integer

No

—

Prefix length for the router ID subnet. Valid range depends on the IP version: 1–32 for IPv4, 1–128 for IPv6. Minimum: 1. Maximum: 128.

routerIdSource
string

No

—

Alternative router ID source. When set to %POD_IP%, each TMM uses its pod IP as the BGP router ID. When specified, routerIdSubnet and routerIdPrefix are not required. When both routerIdSource and routerIdSubnet/routerIdPrefix are present, routerIdSource takes precedence. Accepted values: %POD_IP%.

neighbors
array

No

[]

List of BGP neighbors for this global routing configuration. Each entry defines a neighbor by either IP address or interface name.

peerGroups
array

No

[]

BGP peer-group configuration for Top-of-Rack (ToR) style per-node peering.

Note

You must specify at least one of routerIdSource or routerIdSubnet together with routerIdPrefix.

spec.bgp.neighbors[]

Field

Required

Default

Description

ip
string

No

—

IPv4 or IPv6 address of the BGP neighbor. Mutually exclusive with interface. When you specify ip, you must also specify remoteAs.

interface
string

No

—

Interface name for the BGP neighbor (unnumbered BGP). Mutually exclusive with ip. Must be at least one character.

remoteAs
integer

No

—

BGP AS number for the neighbor. Required when ip is specified. Optional when interface is specified (unnumbered BGP). Minimum: 1. Maximum: 4294967295.

families
array

No

—

List of address family identifiers for the BGP neighbor session.

Note

You must specify either ip or interface, but not both. When you specify ip, the remoteAs field is required.

spec.bgp.peerGroups[]

Field

Required

Default

Description

name
string

Yes

—

Logical name of the BGP peer group. For example, spk-peers. Must be at least one character.

asn
integer

Yes

—

Remote AS number for this peer group. Minimum: 1. Maximum: 4294967295.

ebgpMultihop
integer

No

—

Enables connectivity between external peers that do not have a direct connection. Minimum: 1. Maximum: 255.

acceptsIPv4
boolean

No

—

Enables advertising IPv4 virtual server addresses to the peer. Defaults to false when not set.

acceptsIPv6
boolean

No

—

Enables advertising IPv6 virtual server addresses to the peer.

softReconf
boolean

No

—

Enables BGP4 policies to be activated without clearing the BGP session.

nodePeers
array

Yes

—

Per-node BGP peer mapping. The controller binds peers from nodePeers only on nodes where TMM Pods are scheduled. Minimum items: 1.

spec.bgp.peerGroups[].nodePeers[]

Field

Required

Description

nodeName
string

Yes

Kubernetes node name. For example, worker1-robin.f5.com. Must be at least one character.

addresses
array

Yes

List of BGP neighbor IP addresses (IPv4 or IPv6) for this node. You can specify multiple addresses per node for primary and backup ToR peers. Minimum items: 1.

spec.neighborSecrets[]

Field

Required

Description

address
string

Yes

Address of the BGP neighbor that this secret applies to.

secretRef
object

Yes

Reference to a Kubernetes Secret that contains the authentication credential for this neighbor.

spec.neighborSecrets[].secretRef

Field

Required

Description

name
string

Yes

Name of the Kubernetes Secret. Must be at least one character.

key
string

Yes

Key within the Secret that holds the authentication credential. Must be at least one character.