Documentation
¶
Overview ¶
+groupName=metallb.io
+kubebuilder:object:generate=true +groupName=metallb.io
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "metallb.io", Version: "v1beta2"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type BGPPeer ¶
type BGPPeer struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec BGPPeerSpec `json:"spec,omitempty"`
Status BGPPeerStatus `json:"status,omitempty"`
}
BGPPeer is the Schema for the peers API.
func (*BGPPeer) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPPeer.
func (*BGPPeer) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BGPPeer) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BGPPeerList ¶
type BGPPeerList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []BGPPeer `json:"items"`
}
PeerList contains a list of Peer.
func (*BGPPeerList) DeepCopy ¶
func (in *BGPPeerList) DeepCopy() *BGPPeerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPPeerList.
func (*BGPPeerList) DeepCopyInto ¶
func (in *BGPPeerList) DeepCopyInto(out *BGPPeerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BGPPeerList) DeepCopyObject ¶
func (in *BGPPeerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BGPPeerSpec ¶
type BGPPeerSpec struct {
// AS number to use for the local end of the session.
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=4294967295
MyASN uint32 `json:"myASN"`
// AS number to expect from the remote end of the session.
// ASN and DynamicASN are mutually exclusive and one of them must be specified.
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=4294967295
// +optional
ASN uint32 `json:"peerASN,omitempty"`
// DynamicASN 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.
// +kubebuilder:validation:Enum=internal;external
// +optional
DynamicASN DynamicASNMode `json:"dynamicASN,omitempty"`
// Address to dial when establishing the session.
// +optional
Address string `json:"peerAddress,omitempty"`
// 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.
// +optional
Interface string `json:"interface,omitempty"`
// Source address to use when establishing the session.
// +optional
SrcAddress string `json:"sourceAddress,omitempty"`
// Port to dial when establishing the session.
// +optional
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=16384
// +kubebuilder:default:=179
Port uint16 `json:"peerPort,omitempty"`
// Requested BGP hold time, per RFC4271.
// +optional
HoldTime *metav1.Duration `json:"holdTime,omitempty"`
// Requested BGP keepalive time, per RFC4271.
// +optional
KeepaliveTime *metav1.Duration `json:"keepaliveTime,omitempty"`
// Requested BGP connect time, controls how long BGP waits between connection attempts to a neighbor.
// +kubebuilder:validation:XValidation:message="connect time should be between 1 seconds to 65535",rule="duration(self).getSeconds() >= 1 && duration(self).getSeconds() <= 65535"
// +kubebuilder:validation:XValidation:message="connect time should contain a whole number of seconds",rule="duration(self).getMilliseconds() % 1000 == 0"
// +optional
ConnectTime *metav1.Duration `json:"connectTime,omitempty"`
// BGP router ID to advertise to the peer
// +optional
RouterID string `json:"routerID,omitempty"`
// Only connect to this peer on nodes that match one of these
// selectors.
// +optional
NodeSelectors []metav1.LabelSelector `json:"nodeSelectors,omitempty"`
// Authentication password for routers enforcing TCP MD5 authenticated sessions
// +optional
Password string `json:"password,omitempty"`
// passwordSecret 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".
// +optional
PasswordSecret v1.SecretReference `json:"passwordSecret,omitempty"`
// 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
BFDProfile string `json:"bfdProfile,omitempty"`
// EnableGracefulRestart 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.
// +optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="EnableGracefulRestart cannot be changed after creation"
EnableGracefulRestart bool `json:"enableGracefulRestart,omitempty"`
// To set if the BGPPeer is multi-hops away. Needed for FRR mode only.
// +optional
EBGPMultiHop bool `json:"ebgpMultiHop,omitempty"`
// To set if we want to peer with the BGPPeer using an interface belonging to
// a host vrf
// +optional
VRFName string `json:"vrf,omitempty"`
// To 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.
// +optional
// +kubebuilder:default:=false
DisableMP bool `json:"disableMP,omitempty"`
// 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.
// +optional
// +kubebuilder:default:=false
DualStackAddressFamily bool `json:"dualStackAddressFamily,omitempty"`
}
BGPPeerSpec defines the desired state of Peer.
func (*BGPPeerSpec) DeepCopy ¶
func (in *BGPPeerSpec) DeepCopy() *BGPPeerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPPeerSpec.
func (*BGPPeerSpec) DeepCopyInto ¶
func (in *BGPPeerSpec) DeepCopyInto(out *BGPPeerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BGPPeerStatus ¶
type BGPPeerStatus struct {
}
BGPPeerStatus defines the observed state of Peer.
func (*BGPPeerStatus) DeepCopy ¶
func (in *BGPPeerStatus) DeepCopy() *BGPPeerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPPeerStatus.
func (*BGPPeerStatus) DeepCopyInto ¶
func (in *BGPPeerStatus) DeepCopyInto(out *BGPPeerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DynamicASNMode ¶
type DynamicASNMode string
const ( InternalASNMode DynamicASNMode = "internal" ExternalASNMode DynamicASNMode = "external" )