Skip to content

Latest commit

 

History

History
506 lines (247 loc) · 19.5 KB

File metadata and controls

506 lines (247 loc) · 19.5 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.
Optional: {}
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.
Optional: {}

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
Optional: {}
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
Optional: {}
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
Optional: {}
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
Optional: {}
echoMode boolean Enables or disables the echo transmission mode.
This mode is disabled by default, and not supported on multi
hops setups.
Optional: {}
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.
Optional: {}
minimumTtl integer For multi hop sessions only: configure the minimum
expected TTL for an incoming BFD control packet.
Maximum: 254
Minimum: 1
Optional: {}

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). Optional: {}
bfdProfiles BFDProfile array BFDProfiles is the list of bfd profiles to be used when configuring the neighbors. Optional: {}

BGPSessionState

BGPSessionState exposes the status of a BGP Session from the FRR instance running on the node.

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

BGPSessionStateSpec

BGPSessionStateSpec defines the desired state of BGPSessionState.

Appears in:

BGPSessionStateStatus

BGPSessionStateStatus defines the observed state of BGPSessionState.

Appears in:

Field Description Default Validation
bgpStatus string
bfdStatus string
node string
peer string
vrf string

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:

Field Description
internal
external

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. Optional: {}
raw RawConfig Raw is a snippet of raw frr configuration that gets appended to the
one rendered translating the type safe API.
Optional: {}
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.
Optional: {}

FRRConfigurationStatus

FRRConfigurationStatus defines the observed state of FRRConfiguration.

Appears in:

FRRK8sConfiguration

FRRK8sConfiguration holds the FRR Operator configuration with global settings for the K8s and FRR.

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

FRRK8sConfigurationSpec

FRRK8sConfigurationSpec defines the desired state of FRRK8sConfiguration.

Appears in:

Field Description Default Validation
logLevel string LogLevel sets the logging verbosity for the FRR-K8s components at runtime.
When configured, this value overrides the defaults established by the --log-level CLI flag.
Valid values are: all, debug, info, warn, error, none.
Enum: [all debug info warn error none]
Optional: {}

FRRK8sConfigurationStatus

FRRK8sConfigurationStatus defines the observed state of FRRK8sConfiguration.

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 Optional: {}

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.
Format: int64
Maximum: 4.294967295e+09
Minimum: 0
Optional: {}
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]
Optional: {}
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
Optional: {}
address string Address is the IP address to establish the session with. Optional: {}
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.
Note: when enabling unnumbered, the neighbor will be enabled for both
IPv4 and IPv6 address families.
Optional: {}
port integer Port is the port to dial when establishing the session.
Defaults to 179.
Maximum: 16384
Minimum: 0
Optional: {}
password string Password to be used for establishing the BGP session.
Password and PasswordSecret are mutually exclusive.
Optional: {}
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.
Optional: {}
holdTime Duration HoldTime is the requested BGP hold time, per RFC4271.
Defaults to 180s.
Optional: {}
keepaliveTime Duration KeepaliveTime is the requested BGP keepalive time, per RFC4271.
Defaults to 60s.
Optional: {}
connectTime Duration Requested BGP connect time, controls how long BGP waits between connection attempts to a neighbor. Optional: {}
ebgpMultiHop boolean EBGPMultiHop indicates if the BGPPeer is multi-hops away. Optional: {}
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.
Optional: {}
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
Optional: {}
toAdvertise Advertise ToAdvertise represents the list of prefixes to advertise to the given neighbor
and the associated properties.
Optional: {}
toReceive Receive ToReceive represents the list of prefixes to receive from the given neighbor. Optional: {}
disableMP boolean DisableMP is no longer used and has no effect.
Use DualStackAddressFamily instead to enable the neighbor for both IPv4 and IPv6 address families.
Deprecated: This field is ignored. Use DualStackAddressFamily instead.
false Optional: {}
dualStackAddressFamily boolean To set if we want to enable the neighbor not only for the ipfamily related to its session,
but also the other one. This allows to advertise/receive IPv4 prefixes over IPv6 sessions and vice versa.
false Optional: {}
localASN integer LocalASN allows advertising a different AS number to the peer using BGP's
local-as feature. When set, FRR will advertise this ASN to the peer
via "neighbor local-as no-prepend replace-as", overriding
the router-level ASN for this specific session.
Note: this field is only applicable to eBGP sessions (where the peer ASN differs
from the router ASN). Setting it on an iBGP session is rejected.
Format: int64
Maximum: 4.294967295e+09
Minimum: 1
Optional: {}

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.

WARNING: The RawConfig feature is UNSUPPORTED and intended ONLY FOR EXPERIMENTATION. It should not be used in production environments. This feature is provided as-is without any guarantees of stability, compatibility, or support. Use at your own risk.

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.
Optional: {}

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. Format: int64
Maximum: 4.294967295e+09
Minimum: 0
id string ID is the BGP router ID Optional: {}
vrf string VRF is the host vrf used to establish sessions from this router. Optional: {}
neighbors Neighbor array Neighbors is the list of neighbors we want to establish BGP sessions with. Optional: {}
prefixes string array Prefixes is the list of prefixes we want to advertise from this router instance. Optional: {}
imports Import array Imports is the list of imported VRFs we want for this router / vrf. Optional: {}

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. Optional: {}
namespace string namespace defines the space within which the secret name must be unique. Optional: {}