Back to Metallb

API reference docs

website/content/apis/_index.md

0.15.326.0 KB
Original Source

API Reference

Packages

metallb.io/v1beta1

Resource Types

BFDProfile

BFDProfile represents the settings of the bfd session that can be optionally associated with a BGP session.

FieldDescription
apiVersion stringmetallb.io/v1beta1
kind stringBFDProfile
kind stringKind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion stringAPIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec BFDProfileSpec

BFDProfileSpec

BFDProfileSpec defines the desired state of BFDProfile.

Appears in:

FieldDescription
receiveInterval integerThe minimum interval that this system is capable of
receiving control packets in milliseconds.
Defaults to 300ms.
transmitInterval integerThe minimum transmission interval (less jitter)
that this system wants to use to send BFD control packets in
milliseconds. Defaults to 300ms
detectMultiplier integerConfigures the detection multiplier to determine
packet loss. The remote transmission interval will be multiplied
by this value to determine the connection loss detection timer.
echoInterval integerConfigures the minimal echo receive transmission
interval that this system is capable of handling in milliseconds.
Defaults to 50ms
echoMode booleanEnables or disables the echo transmission mode.
This mode is disabled by default, and not supported on multi
hops setups.
passiveMode booleanMark 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 integerFor multi hop sessions only: configure the minimum
expected TTL for an incoming BFD control packet.

BGPAdvertisement

BGPAdvertisement allows to advertise the IPs coming from the selected IPAddressPools via BGP, setting the parameters of the BGP Advertisement.

FieldDescription
apiVersion stringmetallb.io/v1beta1
kind stringBGPAdvertisement
kind stringKind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion stringAPIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec BGPAdvertisementSpec

BGPAdvertisementSpec

BGPAdvertisementSpec defines the desired state of BGPAdvertisement.

Appears in:

FieldDescription
aggregationLength integerThe aggregation-length advertisement option lets you “roll up” the /32s into a larger prefix. Defaults to 32. Works for IPv4 addresses.
aggregationLengthV6 integerThe aggregation-length advertisement option lets you “roll up” the /128s into a larger prefix. Defaults to 128. Works for IPv6 addresses.
localPref integerThe BGP LOCAL_PREF attribute which is used by BGP best path algorithm,
Path with higher localpref is preferred over one with lower localpref.
communities string arrayThe BGP communities to be associated with the announcement. Each item can be a standard community of the
form 1234:1234, a large community of the form large:1234:1234:1234 or the name of an alias defined in the
Community CRD.
ipAddressPools string arrayThe list of IPAddressPools to advertise via this advertisement, selected by name.
ipAddressPoolSelectors LabelSelector arrayA selector for the IPAddressPools which would get advertised via this advertisement.
If no IPAddressPool is selected by this or by the list, the advertisement is applied to all the IPAddressPools.
nodeSelectors LabelSelector arrayNodeSelectors allows to limit the nodes to announce as next hops for the LoadBalancer IP. When empty, all the nodes having are announced as next hops.
peers string arrayPeers limits the bgppeer to advertise the ips of the selected pools to.
When empty, the loadbalancer IP is announced to all the BGPPeers configured.
serviceSelectors LabelSelector arrayServiceSelectors limits the set of services that will be advertised via this advertisement.
If empty, all services from the selected pools are advertised.
This field is mutually exclusive with aggregationLength and aggregationLengthV6 -
services can only be selected when using the default /32 (IPv4) or /128 (IPv6) aggregation.

Community

Community is a collection of aliases for communities. Users can define named aliases to be used in the BGPPeer CRD.

FieldDescription
apiVersion stringmetallb.io/v1beta1
kind stringCommunity
kind stringKind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion stringAPIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec CommunitySpec

CommunityAlias

Appears in:

FieldDescription
name stringThe name of the alias for the community.
value stringThe BGP community value corresponding to the given name. Can be a standard community of the form 1234:1234
or a large community of the form large:1234:1234:1234.

CommunitySpec

CommunitySpec defines the desired state of Community.

Appears in:

FieldDescription
communities CommunityAlias array

ConfigurationResult

Underlying type: string

ConfigurationResult represents the validation result of a MetalLB configuration.

Appears in:

ConfigurationState

ConfigurationState is a status-only CRD that reports configuration validation results from MetalLB components. Labels:

  • metallb.io/component-type: "controller" or "speaker"
  • metallb.io/node-name: node name (only for speaker)
FieldDescription
apiVersion stringmetallb.io/v1beta1
kind stringConfigurationState
kind stringKind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion stringAPIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
status ConfigurationStateStatus

ConfigurationStateStatus

ConfigurationStateStatus defines the observed state of ConfigurationState.

Appears in:

FieldDescription
result ConfigurationResultResult indicates the configuration validation result.
errorSummary stringErrorSummary contains the aggregated error messages from reconciliation failures.
This field is empty when Result is "Valid".
conditions Condition arrayConditions contains the status conditions from the reconcilers running in this component.

IPAddressPool

IPAddressPool represents a pool of IP addresses that can be allocated to LoadBalancer services.

FieldDescription
apiVersion stringmetallb.io/v1beta1
kind stringIPAddressPool
kind stringKind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion stringAPIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec IPAddressPoolSpec
status IPAddressPoolStatus

IPAddressPoolSpec

IPAddressPoolSpec defines the desired state of IPAddressPool.

Appears in:

FieldDescription
addresses string arrayA list of IP address ranges over which MetalLB has authority.
You can list multiple ranges in a single pool, they will all share the
same settings. Each range can be either a CIDR prefix, or an explicit
start-end range of IPs.
autoAssign booleanAutoAssign flag used to prevent MetallB from automatic allocation
for a pool.
avoidBuggyIPs booleanAvoidBuggyIPs prevents addresses ending with .0 and .255
to be used by a pool.
serviceAllocation ServiceAllocationAllocateTo makes ip pool allocation to specific namespace and/or service.
The controller will use the pool with lowest value of priority in case of
multiple matches. A pool with no priority set will be used only if the
pools with priority can't be used. If multiple matching IPAddressPools are
available it will check for the availability of IPs sorting the matching
IPAddressPools by priority, starting from the highest to the lowest. If
multiple IPAddressPools have the same priority, choice will be random.

IPAddressPoolStatus

IPAddressPoolStatus defines the observed state of IPAddressPool.

Appears in:

FieldDescription
assignedIPv4 integerAssignedIPv4 is the number of assigned IPv4 addresses.
assignedIPv6 integerAssignedIPv6 is the number of assigned IPv6 addresses.
availableIPv4 integerAvailableIPv4 is the number of available IPv4 addresses.
availableIPv6 integerAvailableIPv6 is the number of available IPv6 addresses.

InterfaceInfo

InterfaceInfo defines interface info of layer2 announcement.

Appears in:

FieldDescription
name stringName the name of network interface card

L2Advertisement

L2Advertisement allows to advertise the LoadBalancer IPs provided by the selected pools via L2.

FieldDescription
apiVersion stringmetallb.io/v1beta1
kind stringL2Advertisement
kind stringKind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion stringAPIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec L2AdvertisementSpec

L2AdvertisementSpec

L2AdvertisementSpec defines the desired state of L2Advertisement.

Appears in:

FieldDescription
ipAddressPools string arrayThe list of IPAddressPools to advertise via this advertisement, selected by name.
ipAddressPoolSelectors LabelSelector arrayA selector for the IPAddressPools which would get advertised via this advertisement.
If no IPAddressPool is selected by this or by the list, the advertisement is applied to all the IPAddressPools.
nodeSelectors LabelSelector arrayNodeSelectors allows to limit the nodes to announce as next hops for the LoadBalancer IP. When empty, all the nodes having are announced as next hops.
interfaces string arrayA list of interfaces to announce from. The LB IP will be announced only from these interfaces.
If the field is not set, we advertise from all the interfaces on the host.
serviceSelectors LabelSelector arrayServiceSelectors limits the set of services that will be advertised via this advertisement.
If empty, all services from the selected pools are advertised.

MetalLBServiceBGPStatus

MetalLBServiceBGPStatus defines the observed state of ServiceBGPStatus.

Appears in:

FieldDescription
node stringNode indicates the node announcing the service.
serviceName stringServiceName indicates the service this status represents.
serviceNamespace stringServiceNamespace indicates the namespace of the service.
peers string arrayPeers indicate the BGP peers for which the service is configured to be advertised to.
The service being actually advertised to a given peer depends on the session state and is not indicated here.

MetalLBServiceL2Status

MetalLBServiceL2Status defines the observed state of ServiceL2Status.

Appears in:

FieldDescription
node stringNode indicates the node that receives the directed traffic
serviceName stringServiceName indicates the service this status represents
serviceNamespace stringServiceNamespace indicates the namespace of the service
interfaces InterfaceInfo arrayInterfaces indicates the interfaces that receive the directed traffic

ServiceAllocation

ServiceAllocation defines ip pool allocation to namespace and/or service.

Appears in:

FieldDescription
priority integerPriority priority given for ip pool while ip allocation on a service.
namespaces string arrayNamespaces list of namespace(s) on which ip pool can be attached.
namespaceSelectors LabelSelector arrayNamespaceSelectors list of label selectors to select namespace(s) for ip pool,
an alternative to using namespace list.
serviceSelectors LabelSelector arrayServiceSelectors list of label selector to select service(s) for which ip pool
can be used for ip allocation.

ServiceBGPStatus

ServiceBGPStatus exposes the BGP peers a service is configured to be advertised to, per relevant node.

FieldDescription
apiVersion stringmetallb.io/v1beta1
kind stringServiceBGPStatus
kind stringKind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion stringAPIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ServiceBGPStatusSpec
status MetalLBServiceBGPStatus

ServiceBGPStatusSpec

ServiceBGPStatusSpec defines the desired state of ServiceBGPStatus.

Appears in:

ServiceL2Status

ServiceL2Status reveals the actual traffic status of loadbalancer services in layer2 mode.

FieldDescription
apiVersion stringmetallb.io/v1beta1
kind stringServiceL2Status
kind stringKind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion stringAPIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ServiceL2StatusSpec
status MetalLBServiceL2Status

ServiceL2StatusSpec

ServiceL2StatusSpec defines the desired state of ServiceL2Status.

Appears in:

metallb.io/v1beta2

Resource Types

BGPPeer

BGPPeer is the Schema for the peers API.

FieldDescription
apiVersion stringmetallb.io/v1beta2
kind stringBGPPeer
kind stringKind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion stringAPIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec BGPPeerSpec

BGPPeerSpec

BGPPeerSpec defines the desired state of Peer.

Appears in:

FieldDescription
myASN integerAS number to use for the local end of the session.
peerASN integerAS number to expect from the remote end of the session.
ASN and DynamicASN are mutually exclusive and one of them must be specified.
dynamicASN DynamicASNModeDynamicASN detects the AS number to use for the remote end of the session
without explicitly setting it via the ASN field. Limited to:
internal - if the neighbor's ASN is different than MyASN connection is denied.
external - if the neighbor's ASN is the same as MyASN the connection is denied.
ASN and DynamicASN are mutually exclusive and one of them must be specified.
peerAddress stringAddress to dial when establishing the session.
interface stringInterface 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.
sourceAddress stringSource address to use when establishing the session.
peerPort integerPort to dial when establishing the session.
holdTime DurationRequested BGP hold time, per RFC4271.
keepaliveTime DurationRequested BGP keepalive time, per RFC4271.
connectTime DurationRequested BGP connect time, controls how long BGP waits between connection attempts to a neighbor.
routerID stringBGP router ID to advertise to the peer
nodeSelectors LabelSelector arrayOnly connect to this peer on nodes that match one of these
selectors.
password stringAuthentication password for routers enforcing TCP MD5 authenticated sessions
passwordSecret SecretReferencepasswordSecret is name of the authentication secret for BGP Peer.
the secret must be of type "kubernetes.io/basic-auth", and created in the
same namespace as the MetalLB deployment. The password is stored in the
secret as the key "password".
bfdProfile stringThe 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 booleanEnableGracefulRestart allows BGP peer to continue to forward data packets
along known routes while the routing protocol information is being
restored. This field is immutable because it requires restart of the BGP
session. Supported for FRR mode only.
ebgpMultiHop booleanTo set if the BGPPeer is multi-hops away. Needed for FRR mode only.
vrf stringTo set if we want to peer with the BGPPeer using an interface belonging to
a host vrf
disableMP booleanTo set if we want to disable MP BGP that will separate IPv4 and IPv6 route exchanges into distinct BGP sessions.
Deprecated: DisableMP is deprecated in favor of dualStackAddressFamily.
dualStackAddressFamily booleanTo 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.

DynamicASNMode

Underlying type: string

Appears in: