Skip to content

Latest commit

 

History

History
393 lines (191 loc) · 14.7 KB

API-DOCS.md

File metadata and controls

393 lines (191 loc) · 14.7 KB

API Reference

Packages

frrk8s.metallb.io/v1beta1

Package v1alpha1 contains API Schema definitions for the frrk8s v1alpha1 API group

Resource Types

Advertise

Appears in:

Field Description Default Validation
allowed AllowedOutPrefixes Allowed is is the list of prefixes allowed to be propagated to
this neighbor. They must match the prefixes defined in the router.
withLocalPref LocalPrefPrefixes array PrefixesWithLocalPref is a list of prefixes that are associated to a local
preference when being advertised. The prefixes associated to a given local pref
must be in the prefixes allowed to be advertised.
withCommunity CommunityPrefixes array PrefixesWithCommunity is a list of prefixes that are associated to a
bgp community when being advertised. The prefixes associated to a given local pref
must be in the prefixes allowed to be advertised.

AllowedInPrefixes

Appears in:

Field Description Default Validation
prefixes PrefixSelector array

AllowedOutPrefixes

Appears in:

Field Description Default Validation
prefixes string array

BFDProfile

BFDProfile is the configuration related to the BFD protocol associated to a BGP session.

Appears in:

Field Description Default Validation
name string The name of the BFD Profile to be referenced in other parts
of the configuration.
receiveInterval integer The minimum interval that this system is capable of
receiving control packets in milliseconds.
Defaults to 300ms.
Maximum: 60000
Minimum: 10
transmitInterval integer The minimum transmission interval (less jitter)
that this system wants to use to send BFD control packets in
milliseconds. Defaults to 300ms
Maximum: 60000
Minimum: 10
detectMultiplier integer Configures the detection multiplier to determine
packet loss. The remote transmission interval will be multiplied
by this value to determine the connection loss detection timer.
Maximum: 255
Minimum: 2
echoInterval integer Configures the minimal echo receive transmission
interval that this system is capable of handling in milliseconds.
Defaults to 50ms
Maximum: 60000
Minimum: 10
echoMode boolean Enables or disables the echo transmission mode.
This mode is disabled by default, and not supported on multi
hops setups.
passiveMode boolean Mark session as passive: a passive session will not
attempt to start the connection and will wait for control packets
from peer before it begins replying.
minimumTtl integer For multi hop sessions only: configure the minimum
expected TTL for an incoming BFD control packet.
Maximum: 254
Minimum: 1

BGPConfig

BGPConfig is the configuration related to the BGP protocol.

Appears in:

Field Description Default Validation
routers Router array Routers is the list of routers we want FRR to configure (one per VRF).
bfdProfiles BFDProfile array BFDProfiles is the list of bfd profiles to be used when configuring the neighbors.

CommunityPrefixes

CommunityPrefixes is a list of prefixes associated to a community.

Appears in:

Field Description Default Validation
prefixes string array Prefixes is the list of prefixes associated to the community. Format: cidr
MinItems: 1
community string Community is the community associated to the prefixes.

DynamicASNMode

Underlying type: string

Appears in:

FRRConfiguration

FRRConfiguration is a piece of FRR configuration.

Field Description Default Validation
apiVersion string frrk8s.metallb.io/v1beta1
kind string FRRConfiguration
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec FRRConfigurationSpec
status FRRConfigurationStatus

FRRConfigurationSpec

FRRConfigurationSpec defines the desired state of FRRConfiguration.

Appears in:

Field Description Default Validation
bgp BGPConfig BGP is the configuration related to the BGP protocol.
raw RawConfig Raw is a snippet of raw frr configuration that gets appended to the
one rendered translating the type safe API.
nodeSelector LabelSelector NodeSelector limits the nodes that will attempt to apply this config.
When specified, the configuration will be considered only on nodes
whose labels match the specified selectors.
When it is not specified all nodes will attempt to apply this config.

FRRConfigurationStatus

FRRConfigurationStatus defines the observed state of FRRConfiguration.

Appears in:

FRRNodeState

FRRNodeState exposes the status of the FRR instance running on each node.

Field Description Default Validation
apiVersion string frrk8s.metallb.io/v1beta1
kind string FRRNodeState
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec FRRNodeStateSpec
status FRRNodeStateStatus

FRRNodeStateSpec

FRRNodeStateSpec defines the desired state of FRRNodeState.

Appears in:

FRRNodeStateStatus

FRRNodeStateStatus defines the observed state of FRRNodeState.

Appears in:

Field Description Default Validation
runningConfig string RunningConfig represents the current FRR running config, which is the configuration the FRR instance is currently running with.
lastConversionResult string LastConversionResult is the status of the last translation between the FRRConfigurations resources and FRR's configuration, contains "success" or an error.
lastReloadResult string LastReloadResult represents the status of the last configuration update operation by FRR, contains "success" or an error.

Import

Import represents the possible imported VRFs to a given router.

Appears in:

Field Description Default Validation
vrf string Vrf is the vrf we want to import from

LocalPrefPrefixes

LocalPrefPrefixes is a list of prefixes associated to a local preference.

Appears in:

Field Description Default Validation
prefixes string array Prefixes is the list of prefixes associated to the local preference. Format: cidr
MinItems: 1
localPref integer LocalPref is the local preference associated to the prefixes.

Neighbor

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

Appears in:

Field Description Default Validation
asn integer ASN is the AS number to use for the local end of the session.
ASN and DynamicASN are mutually exclusive and one of them must be specified.
Maximum: 4.294967295e+09
Minimum: 0
dynamicASN DynamicASNMode DynamicASN detects the AS number to use for the local end of the session
without explicitly setting it via the ASN field. Limited to:
internal - if the neighbor's ASN is different than the router's the connection is denied.
external - if the neighbor's ASN is the same as the router's the connection is denied.
ASN and DynamicASN are mutually exclusive and one of them must be specified.
Enum: [internal external]
sourceaddress string SourceAddress is the IPv4 or IPv6 source address to use for the BGP
session to this neighbour, may be specified as either an IP address
directly or as an interface name
address string Address is the IP address to establish the session with.
interface string Interface is the node interface over which the unnumbered BGP peering will
be established. No API validation takes place as that string value
represents an interface name on the host and if user provides an invalid
value, only the actual BGP session will not be established.
Address and Interface are mutually exclusive and one of them must be specified.
port integer Port is the port to dial when establishing the session.
Defaults to 179.
Maximum: 16384
Minimum: 0
password string Password to be used for establishing the BGP session.
Password and PasswordSecret are mutually exclusive.
passwordSecret SecretReference PasswordSecret is name of the authentication secret for the neighbor.
the secret must be of type "kubernetes.io/basic-auth", and created in the
same namespace as the frr-k8s daemon. The password is stored in the
secret as the key "password".
Password and PasswordSecret are mutually exclusive.
holdTime Duration HoldTime is the requested BGP hold time, per RFC4271.
Defaults to 180s.
keepaliveTime Duration KeepaliveTime is the requested BGP keepalive time, per RFC4271.
Defaults to 60s.
connectTime Duration Requested BGP connect time, controls how long BGP waits between connection attempts to a neighbor.
ebgpMultiHop boolean EBGPMultiHop indicates if the BGPPeer is multi-hops away.
bfdProfile string BFDProfile is the name of the BFD Profile to be used for the BFD session associated
to the BGP session. If not set, the BFD session won't be set up.
enableGracefulRestart boolean EnableGracefulRestart allows BGP peer to continue to forward data packets along
known routes while the routing protocol information is being restored. If
the session is already established, the configuration will have effect
after reconnecting to the peer
toAdvertise Advertise ToAdvertise represents the list of prefixes to advertise to the given neighbor
and the associated properties.
toReceive Receive ToReceive represents the list of prefixes to receive from the given neighbor.
disableMP boolean To set if we want to disable MP BGP that will separate IPv4 and IPv6 route exchanges into distinct BGP sessions. false

PrefixSelector

PrefixSelector is a filter of prefixes to receive.

Appears in:

Field Description Default Validation
prefix string Format: cidr
le integer The prefix length modifier. This selector accepts any matching prefix with length
less or equal the given value.
Maximum: 128
Minimum: 1
ge integer The prefix length modifier. This selector accepts any matching prefix with length
greater or equal the given value.
Maximum: 128
Minimum: 1

RawConfig

RawConfig is a snippet of raw frr configuration that gets appended to the rendered configuration.

Appears in:

Field Description Default Validation
priority integer Priority is the order with this configuration is appended to the
bottom of the rendered configuration. A higher value means the
raw config is appended later in the configuration file.
rawConfig string Config is a raw FRR configuration to be appended to the configuration
rendered via the k8s api.

Receive

Receive represents a list of prefixes to receive from the given neighbor.

Appears in:

Field Description Default Validation
allowed AllowedInPrefixes Allowed is the list of prefixes allowed to be received from
this neighbor.

Router

Router represent a neighbor router we want FRR to connect to.

Appears in:

Field Description Default Validation
asn integer ASN is the AS number to use for the local end of the session. Maximum: 4.294967295e+09
Minimum: 0
id string ID is the BGP router ID
vrf string VRF is the host vrf used to establish sessions from this router.
neighbors Neighbor array Neighbors is the list of neighbors we want to establish BGP sessions with.
prefixes string array Prefixes is the list of prefixes we want to advertise from this router instance.
imports Import array Imports is the list of imported VRFs we want for this router / vrf.

SecretReference

SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace.

Appears in:

Field Description Default Validation
name string name is unique within a namespace to reference a secret resource.
namespace string namespace defines the space within which the secret name must be unique.