API Reference

API Reference #

Packages #

openpe.openperouter.github.io/v1alpha1 #

Package v1alpha1 contains API Schema definitions for the openpe v1alpha1 API group.

Resource Types #

BFDSettings #

BFDSettings defines the BFD configuration for a BGP session.

Appears in:

FieldDescriptionDefaultValidation
receiveInterval integerreceiveInterval is the minimum interval that this system is capable ofreceiving control packets in milliseconds.Defaults to 300ms.Maximum: 60000 Minimum: 10 Optional: {}
transmitInterval integertransmitInterval is the minimum transmission interval (less jitter)that this system wants to use to send BFD control packets inmilliseconds. Defaults to 300msMaximum: 60000 Minimum: 10 Optional: {}
detectMultiplier integerdetectMultiplier configures the detection multiplier to determinepacket loss. The remote transmission interval will be multipliedby this value to determine the connection loss detection timer.Maximum: 255 Minimum: 2 Optional: {}
echoInterval integerechoInterval configures the minimal echo receive transmissioninterval that this system is capable of handling in milliseconds.Defaults to 50msMaximum: 60000 Minimum: 10 Optional: {}
echoMode booleanechoMode enables or disables the echo transmission mode.This mode is disabled by default, and not supported on multihops setups.Optional: {}
passiveMode booleanpassiveMode marks session as passive: a passive session will notattempt to start the connection and will wait for control packetsfrom peer before it begins replying.Optional: {}
minimumTTL integerminimumTTL configures, for multi hop sessions only, the minimumexpected TTL for an incoming BFD control packet.Maximum: 254 Minimum: 1 Optional: {}

FailedResource #

FailedResource describe failing router API resource

Appears in:

FieldDescriptionDefaultValidation
kind FailedResourceKindkind resource type name (e.g.: L3VNI, L2VNI).Enum: [Underlay L2VNI L3VNI FrrConfiguration L3Passthrough] Required: {}
name stringname failed API resource metadata.name.MaxLength: 253 MinLength: 1 Required: {}
reason FailedResourceReasonreason failure reason.Enum: [ValidationFailed DependencyFailed OverlayAttachmentFailed FrrConfigurationFailed] MaxLength: 100 MinLength: 1 Required: {}
message stringmessage human-readable failure description.MaxLength: 500 MinLength: 1 Required: {}

FailedResourceKind #

Underlying type: string

Validation:

  • Enum: [Underlay L2VNI L3VNI FrrConfiguration L3Passthrough]

Appears in:

FailedResourceReason #

Underlying type: string

FailedResourceReason machine-readable reason for a failure.

Validation:

  • Enum: [ValidationFailed DependencyFailed OverlayAttachmentFailed FrrConfigurationFailed]
  • MaxLength: 100
  • MinLength: 1

Appears in:

FieldDescription
ValidationFailedFailedResourceReasonValidationFailed indicates failed pre-emptive semantic validation(e.g., interface not found, VNI conflict).
DependencyFailedFailedResourceReasonDependencyFailed dependent-on resource is not ready(e.g., L2VNI specify an interface managed by failing Underlay resource).
OverlayAttachmentFailedFailedResourceReasonOverlayAttachmentFailed provisioning failure at the logical network layer of the router(e.g.: failed to create VRF, move interface to router namespace).
FrrConfigurationFailedFailedResourceReasonFrrConfigurationFailed applying FRR configuration failed.

GracefulRestartConfig #

GracefulRestartConfig holds BGP Graceful Restart parameters. Its presence on the Underlay enables graceful restart.

Appears in:

FieldDescriptionDefaultValidation
restartTimeSeconds integerrestartTimeSeconds is the time in seconds that the restarting routerrequests its peers to preserve routes. Peers will wait this longbefore removing stale routes.120Maximum: 4095 Minimum: 1 Optional: {}
stalePathTimeSeconds integerstalePathTimeSeconds is the time in seconds that stale paths from arestarting peer are retained locally.360Maximum: 4095 Minimum: 1 Optional: {}

HostMaster #

Appears in:

FieldDescriptionDefaultValidation
type stringtype of the host interface. Supported values: “linux-bridge”, “ovs-bridge”.Enum: [linux-bridge ovs-bridge] Required: {}
linuxBridge LinuxBridgeConfiglinuxBridge configuration. Must be set when Type is “linux-bridge”.Optional: {}
ovsBridge OVSBridgeConfigovsBridge configuration. Must be set when Type is “ovs-bridge”.Optional: {}

HostSession #

Host Session represents the leg between the router and the host. A BGP session is established over this leg.

Appears in:

FieldDescriptionDefaultValidation
asn integerasn is the local AS number to use to establish a BGP session withthe default namespace.Maximum: 4.294967295e+09 Minimum: 1 Required: {}
hostasn integerhostasn is the expected AS number for a BGP speaking component running inthe default network namespace. Either HostASN or HostType must be set.Maximum: 4.294967295e+09 Minimum: 1 Optional: {}
hosttype stringhosttype is the AS type of the BGP speaking component running in thedefault network namespace. Either HostASN or HostType must be set.Enum: [external internal] Optional: {}
localcidr LocalCIDRConfiglocalcidr is the CIDR configuration for the veth pairto connect with the default namespace. The interface underthe PERouter side is going to use the first IP of the cidr on all the nodes.At least one of IPv4 or IPv6 must be provided.Required: {}

IPFamily #

Underlying type: string

IPFamily specifies which address families are enabled.

Validation:

  • Enum: [ipv4 ipv6 dualstack]

Appears in:

FieldDescription
ipv4
ipv6
dualstack

ISISConfig #

ISISConfig contains ISIS configuration for the underlay.

Appears in:

FieldDescriptionDefaultValidation
baseNet ISISNetbaseNet holds the ISIS NET address.The configured Net address is a base address which is offset by the node index of each node.Only accepts the simplified NSAP format with a fixed AreaID length of 3 bytes and a 6 byte SystemID in compliancewith the U.S. GOSIP version 2.0 for a total of 10 bytes.MaxLength: 25 MinLength: 25 Required: {}
features ISISFeature arrayfeatures enables ISIS boolean features.Supported features are:advertisePassiveOnly: configures ISIS to advertise only prefixes that belong to passive interfaces.Enum: [advertisePassiveOnly] MaxItems: 32 MaxLength: 128 MinLength: 1 Optional: {}
interfaces ISISInterface arrayinterfaces holds additional ISIS interface level configuration and / or perinterface overrides. By default, OpenPERouter enables IPv6 on all requiredinterfaces with default settings.MaxItems: 128 Optional: {}
level integerlevel configures the ISIS type, system wide. It defaults to level-1-2 unless specified otherwise.Enum: [1 2] Optional: {}

ISISFeature #

Underlying type: string

ISISFeature represents a single ISIS feature.

Validation:

  • Enum: [advertisePassiveOnly]
  • MaxLength: 128
  • MinLength: 1

Appears in:

ISISInterface #

ISISInterface holds ISIS interface level configuration.

Appears in:

FieldDescriptionDefaultValidation
name stringname of the interface that these settings shall apply to.MaxLength: 15 MinLength: 1 Required: {}
ipFamily IPFamilyipFamily configures which address families ISIS is enabled for on this interface.Enum: [ipv4 ipv6 dualstack] Optional: {}
features ISISInterfaceFeature arrayfeatures enables ISIS interface boolean features.Supported features are:passive: configures ISIS passive mode on this interface.Enum: [passive] MaxItems: 32 MaxLength: 128 MinLength: 1 Optional: {}

ISISInterfaceFeature #

Underlying type: string

ISISInterfaceFeature represents a single ISIS feature of an ISIS interface.

Validation:

  • Enum: [passive]
  • MaxLength: 128
  • MinLength: 1

Appears in:

ISISNet #

Underlying type: string

ISISNet represents a single ISIS NET address. Only accepts the simplified NSAP format with a fixed AreaID length of 3 bytes and a 6 byte SystemID in compliance with the U.S. GOSIP version 2.0 for a total of 10 bytes.

Validation:

  • MaxLength: 25
  • MinLength: 25

Appears in:

L2VNI #

L2VNI represents a VXLan VNI to receive EVPN type 2 routes from.

FieldDescriptionDefaultValidation
apiVersion stringopenpe.openperouter.github.io/v1alpha1
kind stringL2VNI
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec L2VNISpecspec defines the desired state of L2VNI.Required: {}
status L2VNIStatusstatus defines the observed state of L2VNI.Optional: {}

L2VNISpec #

L2VNISpec defines the desired state of VNI.

Appears in:

FieldDescriptionDefaultValidation
nodeSelector LabelSelectornodeSelector specifies which nodes this L2VNI applies to.If empty or not specified, applies to all nodes.Multiple L2VNIs can match the same node.Optional: {}
vrf stringvrf is the name of the linux VRF to be used inside the PERouter namespace.The field is optional, if not set it the name of the VNI instance will be used.MaxLength: 15 Pattern: ^[a-zA-Z][a-zA-Z0-9_-]*$ Optional: {}
vni integervni is the VXLan VNI to be usedMaximum: 1.6777215e+07 Minimum: 1 Required: {}
vxlanport integervxlanport is the port to be used for VXLan encapsulation.4789Optional: {}
underlayAddressFamily stringunderlayAddressFamily selects which VTEP address family to use for this VNI’sVXLAN interface. When omitted, defaults to the available family in the underlay(IPv4 preferred in dual-stack).Enum: [ipv4 ipv6] Optional: {}
hostmaster HostMasterhostmaster is the interface on the host the veth should be enslaved to.If not set, the host veth will not be enslaved to any interface and it must beenslaved manually (or by some other means). This is useful if another controlleris leveraging the host interface for the VNI.Optional: {}
l2gatewayips string arrayl2gatewayips is a list of IP addresses in CIDR notation to be used for the L2 gateway. When this is set, thebridge the veths are enslaved to will be configured with these IP addresses, effectivelyacting as a distributed gateway for the VNI. This allows for dual-stack (IPv4 and IPv6) support.Maximum of 2 addresses are allowed. If 2 addresses are provided, one must be IPv4 and one must be IPv6.MaxItems: 2 Optional: {}

L2VNIStatus #

VNIStatus defines the observed state of VNI.

Appears in:

L3Passthrough #

L3Passthrough represents a session with the host which is not encapsulated and takes part to the bgp fabric.

FieldDescriptionDefaultValidation
apiVersion stringopenpe.openperouter.github.io/v1alpha1
kind stringL3Passthrough
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec L3PassthroughSpecspec defines the desired state of L3Passthrough.Required: {}
status L3PassthroughStatusstatus defines the observed state of L3Passthrough.Optional: {}

L3PassthroughSpec #

Appears in:

FieldDescriptionDefaultValidation
nodeSelector LabelSelectornodeSelector specifies which nodes this L3Passthrough applies to.If empty or not specified, applies to all nodes.Multiple L3Passthrough with overlapping node selectors will be rejected.Optional: {}
hostsession HostSessionhostsession is the configuration for the host session.Required: {}

L3PassthroughStatus #

L3PassthroughStatus defines the observed state of L3Passthrough.

Appears in:

L3VNI #

L3VNI represents a VXLan L3VNI to receive EVPN type 5 routes from.

FieldDescriptionDefaultValidation
apiVersion stringopenpe.openperouter.github.io/v1alpha1
kind stringL3VNI
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec L3VNISpecspec defines the desired state of L3VNI.Required: {}
status L3VNIStatusstatus defines the observed state of L3VNI.Optional: {}

L3VNISpec #

L3VNISpec defines the desired state of VNI.

Appears in:

FieldDescriptionDefaultValidation
nodeSelector LabelSelectornodeSelector specifies which nodes this L3VNI applies to.If empty or not specified, applies to all nodes.Multiple L3VNIs can match the same node.Optional: {}
vrf stringvrf is the name of the linux VRF to be used inside the PERouter namespace.MaxLength: 15 MinLength: 1 Pattern: ^[a-zA-Z][a-zA-Z0-9_-]*$ Required: {}
vni integervni is the VXLan VNI to be usedMaximum: 1.6777215e+07 Minimum: 1 Required: {}
vxlanport integervxlanport is the port to be used for VXLan encapsulation.4789Optional: {}
underlayAddressFamily stringunderlayAddressFamily selects which VTEP address family to use for this VNI’sVXLAN interface. When omitted, defaults to the available family in the underlay(IPv4 preferred in dual-stack).Enum: [ipv4 ipv6] Optional: {}
hostsession HostSessionhostsession is the configuration for the host session.Optional: {}
exportRTs RouteTarget arrayexportRTs are the Route Targets to be used for exporting routes.RouteTarget defines a BGP Extended Community for route filtering.MaxItems: 100 MaxLength: 21 Optional: {}
importRTs RouteTarget arrayimportRTs are the Route Targets to be used for importing routes.RouteTarget defines a BGP Extended Community for route filtering.MaxItems: 100 MaxLength: 21 Optional: {}

L3VNIStatus #

L3VNIStatus defines the observed state of L3VNI.

Appears in:

L3VPN #

L3VPN represents an SRv6 IP VPN.

FieldDescriptionDefaultValidation
apiVersion stringopenpe.openperouter.github.io/v1alpha1
kind stringL3VPN
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec L3VPNSpecspec defines the desired state of L3VPN.Required: {}
status L3VPNStatusstatus defines the observed state of L3VPN.Optional: {}

L3VPNSpec #

L3VPNSpec defines the desired state of L3VPN.

Appears in:

FieldDescriptionDefaultValidation
nodeSelector LabelSelectornodeSelector specifies which nodes this L3VPN applies to.If empty or not specified, applies to all nodes.Multiple L3VPNs can match the same node.Optional: {}
vrf stringvrf is the name of the linux VRF to be used inside the PERouter namespace.MaxLength: 15 MinLength: 1 Pattern: ^[a-zA-Z][a-zA-Z0-9_-]*$ Required: {}
exportRTs RouteTarget arrayexportRTs are the Route Targets to be used for exporting routes.If no exportRTs are provided, defaults to single export Route Target:.MaxItems: 100 MaxLength: 21 Optional: {}
importRTs RouteTarget arrayimportRTs are the Route Targets to be used for importing routes.importRTs must always be provided explicitly.MaxItems: 100 MaxLength: 21 Required: {}
rdAssignedNumber integerrdAssignedNumber sets the Route Distinguisher’s Assigned Number subfield.The Administrator subfield is automatically set to the value of the routerID. OpenPERouter uses Type 1 Route Distinguishers as defined in RFC4364,meaning :.Maximum: 65535 Minimum: 1 Required: {}
hostsession HostSessionhostsession is the configuration for the host session.Optional: {}

L3VPNStatus #

L3VPNStatus defines the observed state of L3VPN.

Appears in:

LinuxBridgeConfig #

LinuxBridgeConfig contains configuration for Linux bridge type.

Appears in:

FieldDescriptionDefaultValidation
name stringname of the Linux bridge interface.MaxLength: 15 Pattern: ^[a-zA-Z][a-zA-Z0-9_-]*$ Optional: {}
autoCreate booleanautoCreate determines if the bridge should be created automatically.When true, the bridge is created with name br-hs-.falseOptional: {}

LocalCIDRConfig #

Appears in:

FieldDescriptionDefaultValidation
ipv4 stringipv4 is the IPv4 CIDR to be used for the veth pairto connect with the default namespace. The interface underthe PERouter side is going to use the first IP of the cidr on all the nodes.Optional: {}
ipv6 stringipv6 is the IPv6 CIDR to be used for the veth pairto connect with the default namespace. The interface underthe PERouter side is going to use the first IP of the cidr on all the nodes.Optional: {}

Neighbor #

Neighbor represents a BGP Neighbor we want FRR to connect to.

Appears in:

FieldDescriptionDefaultValidation
asn integerasn is the AS number of the neighbor. Either ASN or Type must be set.Maximum: 4.294967295e+09 Minimum: 1 Optional: {}
type stringtype is the AS type of the neighbor. Either ASN or Type must be set.Enum: [external internal] Optional: {}
address stringaddress is the IP address to establish the session with. The IP addresscan be either IPv4 or IPv6.MaxLength: 39 MinLength: 1 Optional: {}
interface stringinterface is the interface name for BGP unnumbered sessions. The session will be established via IPv6 link locals.MaxLength: 15 MinLength: 1 Optional: {}
port integerport is the port to dial when establishing the session.Defaults to 179.Maximum: 16384 Minimum: 0 Optional: {}
password stringpassword to be used for establishing the BGP session.Password and PasswordSecret are mutually exclusive.Optional: {}
passwordSecret stringpasswordSecret is name of the authentication secret for the neighbor.the secret must be of type “kubernetes.io/basic-auth”, and created in thesame namespace as the perouter daemon. The password is stored in thesecret as the key “password”.Password and PasswordSecret are mutually exclusive.Optional: {}
holdTimeSeconds integerholdTimeSeconds is the requested BGP hold time in seconds, per RFC4271.Defaults to 180.Optional: {}
keepaliveTimeSeconds integerkeepaliveTimeSeconds is the requested BGP keepalive time in seconds, per RFC4271.Defaults to 60.Optional: {}
connectTimeSeconds integerconnectTimeSeconds controls how long BGP waits between connection attempts to a neighbor, in seconds.Maximum: 65535 Minimum: 1 Optional: {}
ebgpMultiHop booleanebgpMultiHop indicates if the BGPPeer is multi-hops away.Optional: {}
bfd BFDSettingsbfd defines the BFD configuration for the BGP session.Optional: {}
addressFamilies NeighborAddressFamily arrayaddressFamilies specifies the BGP address families that shall be enabledfor this BGP neighbor. evpn and ipv4vpn/ipv6vpn are mutually exclusive.If ipv4vpn or ipv6vpn are set, the update source of this neighbor willbe set to the loopback’s IPv6 address.If addressFamilies is not provided or empty, the following defaults arechosen:For unnumbered neighbors:- ipv4unicast- ipv6unicast if passthrough is configured with IPv6 local CIDR- evpn if L2VNIs or L3VNIs are present.For IPv4 neighbors:- ipv4unicast- ipv6unicast if passthrough is configured with IPv6 local CIDR- evpn if L2VNIs or L3VNIs are present.For IPv6 neighbors:- ipv4unicast if L2VNIs or L3VNIs are present, or if passthrough is configured with IPv4 local CIDR- ipv6unicast- evpn if L2VNIs or L3VNIs are present- ipv4vpn if L3VPNs and SRv6 configuration are present.- ipv6vpn if L3VPNs and SRv6 configuration are present.MaxItems: 4 Optional: {}

NeighborAddressFamily #

NeighborAddressFamily represents a single BGP address family configuration for a neighbor.

Appears in:

FieldDescriptionDefaultValidation
type stringtype is the address family type.Enum: [ipv4unicast ipv6unicast evpn ipv4vpn ipv6vpn] MaxLength: 11 MinLength: 1 Required: {}

NetworkDevice #

NetworkDevice moves an existing host network device into the router netns.

Appears in:

FieldDescriptionDefaultValidation
interfaceName stringinterfaceName is the name of the host network device to move intothe router netns.MaxLength: 15 MinLength: 1 Pattern: ^[a-zA-Z][a-zA-Z0-9._-]*$ Required: {}

OVSBridgeConfig #

OVSBridgeConfig contains configuration for OVS bridge type.

Appears in:

FieldDescriptionDefaultValidation
name stringname of the OVS bridge interface.MaxLength: 15 Pattern: ^[a-zA-Z][a-zA-Z0-9_-]*$ Optional: {}
autoCreate booleanautoCreate determines if the OVS bridge should be created automatically.When true, the bridge is created with name br-hs-.falseOptional: {}

RawFRRConfig #

RawFRRConfig is the Schema for the rawfrrconfigs API.

FieldDescriptionDefaultValidation
apiVersion stringopenpe.openperouter.github.io/v1alpha1
kind stringRawFRRConfig
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec RawFRRConfigSpecspec defines the desired state of RawFRRConfig.Required: {}
status RawFRRConfigStatusstatus defines the observed state of RawFRRConfig.Optional: {}

RawFRRConfigSpec #

RawFRRConfigSpec defines the desired state of RawFRRConfig.

Appears in:

FieldDescriptionDefaultValidation
nodeSelector LabelSelectornodeSelector specifies which nodes this RawFRRConfig applies to.If empty or not specified, applies to all nodes.Optional: {}
priority integerpriority controls the ordering of raw config snippets in the rendered FRR configuration.Lower values are rendered first. Snippets with the same priority have undefined order.0Minimum: 0 Optional: {}
rawConfig stringrawConfig is the raw FRR configuration text to append to the rendered configuration.WARNING: This feature is intended for advanced use cases. No validation of FRR syntaxis performed at admission time; invalid configuration will cause FRR reload failures.MinLength: 1 Required: {}

RawFRRConfigStatus #

RawFRRConfigStatus defines the observed state of RawFRRConfig.

Appears in:

RouteTarget #

Underlying type: string

RouteTarget defines a BGP Extended Community for route filtering.

Validation:

  • MaxLength: 21

Appears in:

RouterNodeConfigurationStatus #

RouterNodeConfigurationStatus describes a node router state.

FieldDescriptionDefaultValidation
apiVersion stringopenpe.openperouter.github.io/v1alpha1
kind stringRouterNodeConfigurationStatus
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
status RouterNodeConfigurationStatusStatusstatus node router configuration status.Optional: {}

RouterNodeConfigurationStatusStatus #

Appears in:

FieldDescriptionDefaultValidation
failedResources FailedResource arrayfailedResources list of failed configuration resources on the node.Optional: {}
conditions Condition arrayconditions list of conditions.Optional: {}

SRV6Config #

SRV6Config contains SRV6 configuration for the underlay.

Appears in:

FieldDescriptionDefaultValidation
locator SRV6Locatorlocator defines the locator for this SRv6 VPN.Required: {}

SRV6Locator #

SRV6Locator holds the configuration of a locator for SRv6.

Appears in:

FieldDescriptionDefaultValidation
basePrefix stringbasePrefix is the CIDR to be used for the locator, offset by the router index.MaxLength: 43 MinLength: 1 Required: {}
format stringformat specifies the format of the locator. Defaults to usid-f3216Enum: [usid-f3216] MaxLength: 40 MinLength: 1 Required: {}

TunnelEndpointConfig #

TunnelEndpointConfig contains tunnel endpoint configuration for the underlay.

Appears in:

FieldDescriptionDefaultValidation
cidrs string arraycidrs is a list of CIDRs to be used to assign IPs to the local tunnel endpoint oneach node. IPs derived from these CIDRs will be assigned to the local loopback.At least one IPv4 or IPv6 CIDR is required. At most one of each family may be specified.MaxItems: 2 MinItems: 1 Required: {}

Underlay #

Underlay is the Schema for the underlays API.

FieldDescriptionDefaultValidation
apiVersion stringopenpe.openperouter.github.io/v1alpha1
kind stringUnderlay
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec UnderlaySpecspec defines the desired state of Underlay.Required: {}
status UnderlayStatusstatus defines the observed state of Underlay.Optional: {}

UnderlayInterface #

UnderlayInterface defines how the router obtains a single underlay link. Exactly one of the sub-structs must match the type field. The union is designed to be extended with future modes (e.g. cni) for controller-provisioned interfaces.

Appears in:

FieldDescriptionDefaultValidation
type UnderlayInterfaceTypetype selects how the router obtains this underlay link.Enum: [NetworkDevice] Required: {}
networkDevice NetworkDevicenetworkDevice moves an existing host network device into the router netns.The device can be of any kind (physical NIC, bridge, macvlan, etc.).Must be set when type is “NetworkDevice”.Optional: {}

UnderlayInterfaceType #

Underlying type: string

UnderlayInterfaceType selects how the router obtains an underlay link. It is the discriminator of the UnderlayInterface union and is designed to be extended with future modes (e.g. cni).

Validation:

  • Enum: [NetworkDevice]

Appears in:

FieldDescription
NetworkDeviceUnderlayInterfaceTypeNetworkDevice moves an existing host network deviceinto the router netns.

UnderlaySpec #

UnderlaySpec defines the desired state of Underlay.

Appears in:

FieldDescriptionDefaultValidation
nodeSelector LabelSelectornodeSelector specifies which nodes this Underlay applies to.If empty or not specified, applies to all nodes (backward compatible).Multiple Underlays with overlapping node selectors will be rejected.Optional: {}
asn integerasn is the local AS number to use for the session with the TOR switch.Maximum: 4.294967295e+09 Minimum: 1 Required: {}
routeridcidr stringrouteridcidr is the ipv4 cidr to be used to assign a different routerID on each node.10.0.0.0/24Optional: {}
neighbors Neighbor arrayneighbors is the list of external BGP neighbors to peer with.Multiple neighbors are supported for connecting to multiple TOR switchesor establishing redundant BGP sessions. Each neighbor address must be unique.At least one neighbor is required.MaxItems: 128 MinItems: 1 Required: {}
interfaces UnderlayInterface arrayinterfaces is the list of interfaces the router uses for underlayconnectivity. Each entry is a discriminated union describing how theinterface is obtained. At least one interface is required.MinItems: 1 Required: {}
tunnelEndpoint TunnelEndpointConfigtunnelEndpoint contains tunnel endpoint configuration for the underlay.Optional: {}
gracefulRestart GracefulRestartConfiggracefulRestart configures BGP Graceful Restart behaviour.When set, FRR advertises GR capability and preserves forwardingstate across restarts so that peers keep stale routes active.Omit to disable graceful restart.Optional: {}
isis ISISConfigisis holds the ISIS configuration for the underlay.Optional: {}
srv6 SRV6Configsrv6 holds the SRv6 configuration. Requires ISIS or Neighbors configuration.Optional: {}

UnderlayStatus #

UnderlayStatus defines the observed state of Underlay.

Appears in: