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 integerThe minimum interval that this system is capable ofreceiving control packets in milliseconds.Defaults to 300ms.Maximum: 60000 Minimum: 10
transmitInterval integerThe minimum transmission interval (less jitter)that this system wants to use to send BFD control packets inmilliseconds. Defaults to 300msMaximum: 60000 Minimum: 10
detectMultiplier integerConfigures 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
echoInterval integerConfigures the minimal echo receive transmissioninterval that this system is capable of handling in milliseconds.Defaults to 50msMaximum: 60000 Minimum: 10
echoMode booleanEnables or disables the echo transmission mode.This mode is disabled by default, and not supported on multihops setups.
passiveMode booleanMark session as passive: a passive session will notattempt to start the connection and will wait for control packetsfrom peer before it begins replying.
minimumTtl integerFor multi hop sessions only: configure the minimumexpected TTL for an incoming BFD control packet.Maximum: 254 Minimum: 1

EVPNConfig #

Appears in:

FieldDescriptionDefaultValidation
vtepcidr stringVTEPCIDR is CIDR to be used to assign IPs to the local VTEP on each node.

HostMaster #

Appears in:

FieldDescriptionDefaultValidation
name stringName of the host interface. Must match VRF name validation if set.MaxLength: 15 Pattern: ^[a-zA-Z][a-zA-Z0-9_-]*$
type stringType of the host interface. Currently only “bridge” is supported.Enum: [bridge]
autocreate booleanIf true, the interface will be created automatically if not present.The name of the bridge is of the form br-hs-.false

HostSession #

Host Session represent 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
hostasn integerASN is the expected AS number for a BGP speaking component running inthe default network namespace. If not set, the ASN field is going to be used.Maximum: 4.294967295e+09 Minimum: 0
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.

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.
spec L2VNISpec
status L2VNIStatus

L2VNISpec #

L2VNISpec defines the desired state of VNI.

Appears in:

FieldDescriptionDefaultValidation
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_-]*$
vni integerVNI is the VXLan VNI to be usedMaximum: 4.294967295e+09 Minimum: 0
vxlanport integerVXLanPort is the port to be used for VXLan encapsulation.4789
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.
l2gatewayip stringL2GatewayIP is the IP address to be used for the L2 gateway. When this is set, thebridge the veths are enslaved to will be configured with this IP address, effectivelyacting as a distributed gateway for the VNI.

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.
spec L3PassthroughSpec
status L3PassthroughStatus

L3PassthroughSpec #

Appears in:

FieldDescriptionDefaultValidation
hostsession HostSessionHostSession is the configuration for the host session.

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.
spec L3VNISpec
status L3VNIStatus

L3VNISpec #

L3VNISpec defines the desired state of VNI.

Appears in:

FieldDescriptionDefaultValidation
vrf stringVRF is the name of the linux VRF to be used inside the PERouter namespace.MaxLength: 15 Pattern: ^[a-zA-Z][a-zA-Z0-9_-]*$ Required: {}
vni integerVNI is the VXLan VNI to be usedMaximum: 4.294967295e+09 Minimum: 0
vxlanport integerVXLanPort is the port to be used for VXLan encapsulation.4789
hostsession HostSessionHostSession is the configuration for the host session.

L3VNIStatus #

L3VNIStatus defines the observed state of L3VNI.

Appears in:

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.
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.

Neighbor #

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

Appears in:

FieldDescriptionDefaultValidation
asn integerASN is the AS number to use for the local end of the session.Maximum: 4.294967295e+09 Minimum: 1
hostasn integerASN is the expected AS number for a BGP speaking component running inthe default network namespace. If not set, the ASN field is going to be used.Maximum: 4.294967295e+09 Minimum: 0
address stringAddress is the IP address to establish the session with.
port integerPort is the port to dial when establishing the session.Defaults to 179.Maximum: 16384 Minimum: 0
password stringPassword to be used for establishing the BGP session.Password and PasswordSecret are mutually exclusive.
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.
holdTime DurationHoldTime is the requested BGP hold time, per RFC4271.Defaults to 180s.
keepaliveTime DurationKeepaliveTime is the requested BGP keepalive time, per RFC4271.Defaults to 60s.
connectTime DurationRequested BGP connect time, controls how long BGP waits between connection attempts to a neighbor.
ebgpMultiHop booleanEBGPMultiHop indicates if the BGPPeer is multi-hops away.
bfd BFDSettingsBFD defines the BFD configuration for the BGP session.

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.
spec UnderlaySpec
status UnderlayStatus

UnderlaySpec #

UnderlaySpec defines the desired state of Underlay.

Appears in:

FieldDescriptionDefaultValidation
asn integerASN is the local AS number to use for the session with the TOR switch.Maximum: 4.294967295e+09 Minimum: 1
routeridcidr stringRouterIDCIDR is the ipv4 cidr to be used to assign a different routerID on each node.10.0.0.0/24
neighbors Neighbor arrayNeighbors is the list of external neighbors to peer with.MinItems: 1
nics string arrayNics is the list of physical nics to move under the PERouter namespace to connectto external routers. This field is optional when using Multus networks for TOR connectivity.
evpn EVPNConfig

UnderlayStatus #

UnderlayStatus defines the observed state of Underlay.

Appears in: