v2alpha1

package
v1.15.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 10 Imported by: 22

Documentation

Overview

Package v2alpha1 is the v2alpha1 version of the API. +groupName=cilium.io

Index

Constants

View Source
const (
	// DefaultBGPExportPodCIDR defines the default value for ExportPodCIDR determining whether to export the Node's private CIDR block.
	DefaultBGPExportPodCIDR = false
	// DefaultBGPPeerPort defines the TCP port number of a CiliumBGPNeighbor when PeerPort is unspecified.
	DefaultBGPPeerPort = 179
	// DefaultBGPEBGPMultihopTTL defines the default value for the TTL value used in BGP packets sent to the eBGP neighbors.
	DefaultBGPEBGPMultihopTTL = 1
	// DefaultBGPConnectRetryTimeSeconds defines the default initial value for the BGP ConnectRetryTimer (RFC 4271, Section 8).
	DefaultBGPConnectRetryTimeSeconds = 120
	// DefaultBGPHoldTimeSeconds defines the default initial value for the BGP HoldTimer (RFC 4271, Section 4.2).
	DefaultBGPHoldTimeSeconds = 90
	// DefaultBGPKeepAliveTimeSeconds defines the default initial value for the BGP KeepaliveTimer (RFC 4271, Section 8).
	DefaultBGPKeepAliveTimeSeconds = 30
	// DefaultBGPGRRestartTimeSeconds defines default Restart Time for graceful restart (RFC 4724, section 4.2)
	DefaultBGPGRRestartTimeSeconds = 120
	// BGPLoadBalancerClass defines the BGP Control Plane load balancer class for Services.
	BGPLoadBalancerClass = "io.cilium/bgp-control-plane"
	// PodCIDRSelectorName defines the name for a selector matching Pod CIDRs
	// (standard cluster scope / Kubernetes IPAM CIDRs, not Multi-Pool IPAM CIDRs).
	PodCIDRSelectorName = "PodCIDR"
	// CiliumLoadBalancerIPPoolSelectorName defines the name for a selector matching CiliumLoadBalancerIPPool resources.
	CiliumLoadBalancerIPPoolSelectorName = "CiliumLoadBalancerIPPool"
	// CiliumPodIPPoolSelectorName defines the name for a selector matching CiliumPodIPPool resources.
	CiliumPodIPPoolSelectorName = CPIPKindDefinition
)
View Source
const (
	// CustomResourceDefinitionGroup is the name of the third party resource group
	CustomResourceDefinitionGroup = k8sconst.CustomResourceDefinitionGroup

	// CustomResourceDefinitionVersion is the current version of the resource
	CustomResourceDefinitionVersion = "v2alpha1"

	// CESPluralName is the plural name of Cilium Endpoint Slice
	CESPluralName = "ciliumendpointslices"

	// CESKindDefinition is the kind name of Cilium Endpoint Slice
	CESKindDefinition = "CiliumEndpointSlice"

	// CESName is the full name of Cilium Endpoint Slice
	CESName = CESPluralName + "." + CustomResourceDefinitionGroup

	// BGPPPluralName is the plural name of Cilium BGP Peering Policy
	BGPPPluralName = "ciliumbgppeeringpolicies"

	// BGPPKindDefinition is the kind name of Cilium BGP Peering Policy
	BGPPKindDefinition = "CiliumBGPPeeringPolicy"

	// BGPPName is the full name of Cilium BGP Peering Policy
	BGPPName = BGPPPluralName + "." + CustomResourceDefinitionGroup

	// BGPClusterConfig (BGPCC)
	BGPCCPluralName     = "ciliumbgpclusterconfigs"
	BGPCCKindDefinition = "CiliumBGPClusterConfig"
	BGPCCName           = BGPCCPluralName + "." + CustomResourceDefinitionGroup

	// BGPPeerConfig (BGPPC)
	BGPPCPluralName     = "ciliumbgppeerconfigs"
	BGPPCKindDefinition = "CiliumBGPPeerConfig"
	BGPPCName           = BGPPCPluralName + "." + CustomResourceDefinitionGroup

	// BGPAdvertisement (BGPA)
	BGPAPluralName     = "ciliumbgpadvertisements"
	BGPAKindDefinition = "CiliumBGPAdvertisement"
	BGPAName           = BGPAPluralName + "." + CustomResourceDefinitionGroup

	// BGPNodeConfig (BGPNC)
	BGPNCPluralName     = "ciliumbgpnodeconfigs"
	BGPNCKindDefinition = "CiliumBGPNodeConfig"
	BGPNCName           = BGPNCPluralName + "." + CustomResourceDefinitionGroup

	// BGPNodeConfigOverride (BGPNCO)
	BGPNCOPluralName     = "ciliumbgpnodeconfigoverrides"
	BGPNCOKindDefinition = "CiliumBGPNodeConfigOverride"
	BGPNCOName           = BGPNCOPluralName + "." + CustomResourceDefinitionGroup

	// PoolPluralName is the plural name of Cilium Load Balancer IP Pool
	PoolPluralName = "ciliumloadbalancerippools"

	// PoolKindDefinition is the kind name of Cilium Peering Policy
	PoolKindDefinition = "CiliumLoadBalancerIPPool"

	// LBIPPoolName is the full name of Cilium Load Balancer IP Pool
	LBIPPoolName = PoolPluralName + "." + CustomResourceDefinitionGroup

	// CiliumNodeConfig (CNC)
	CNCPluralName     = "ciliumnodeconfigs"
	CNCKindDefinition = "CiliumNodeConfig"
	CNCName           = CNCPluralName + "." + CustomResourceDefinitionGroup

	// CiliumCIDRGroup (CCG)
	CCGPluralName     = "ciliumcidrgroups"
	CCGKindDefinition = "CiliumCIDRGroup"
	CCGName           = CCGPluralName + "." + CustomResourceDefinitionGroup

	// L2AnnouncementSingularName is the singular name ofCilium L2 announcement policy
	L2AnnouncementSingularName = "ciliuml2announcementpolicy"

	// L2AnnouncementPluralName is the plural name of Cilium L2 announcement policy
	L2AnnouncementPluralName = "ciliuml2announcementpolicies"

	// L2AnnouncementKindDefinition is the kind name of Cilium L2 announcement policy
	L2AnnouncementKindDefinition = "CiliumL2AnnouncementPolicy"

	// L2AnnouncementName is the full name of Cilium L2 announcement policy
	L2AnnouncementName = L2AnnouncementPluralName + "." + CustomResourceDefinitionGroup

	// CiliumPodIPPool (CPIP)
	CPIPPluralName     = "ciliumpodippools"
	CPIPKindDefinition = "CiliumPodIPPool"
	CPIPName           = CPIPPluralName + "." + CustomResourceDefinitionGroup
)
View Source
const L2AnnounceLoadBalancerClass = "io.cilium/l2-announcer"

L2AnnounceLoadBalancerClass defines the L2 Announcer load balancer class for Services.

Variables

View Source
var (
	// SchemeBuilder is needed by DeepCopy generator.
	SchemeBuilder runtime.SchemeBuilder

	// AddToScheme adds all types of this clientset into the given scheme.
	// This allows composition of clientsets, like in:
	//
	//   import (
	//     "k8s.io/client-go/kubernetes"
	//     clientsetscheme "k8s.io/client-go/kubernetes/scheme"
	//     aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
	//   )
	//
	//   kclientset, _ := kubernetes.NewForConfig(c)
	//   aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
	AddToScheme = localSchemeBuilder.AddToScheme
)

SchemeGroupVersion is group version used to register these objects

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type Advertisement struct {
	// AdvertisementType defines type of advertisement which has to be advertised.
	//
	// +kubebuilder:validation:Required
	AdvertisementType BGPAdvertisementType `json:"advertisementType"`

	// Selector is a label selector to select objects of the type specified by AdvertisementType.
	// If not specified, all objects of the type specified by AdvertisementType are selected for advertisement.
	//
	// +kubebuilder:validation:Optional
	Selector *slimv1.LabelSelector `json:"selector,omitempty"`

	// Attributes defines additional attributes to set to the advertised routes.
	// If not specified, no additional attributes are set.
	//
	// +kubebuilder:validation:Optional
	Attributes *CiliumBGPAttributes `json:"attributes,omitempty"`
}

Advertisement defines which routes Cilium should advertise to BGP peers. Optionally, additional attributes can be set to the advertised routes.

func (*Advertisement) DeepCopy added in v1.15.0

func (in *Advertisement) DeepCopy() *Advertisement

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Advertisement.

func (*Advertisement) DeepCopyInto added in v1.15.0

func (in *Advertisement) DeepCopyInto(out *Advertisement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Advertisement) DeepEqual added in v1.15.0

func (in *Advertisement) DeepEqual(other *Advertisement) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type AllowFirstLastIPType added in v1.15.0

type AllowFirstLastIPType string

+kubebuilder:validation:Enum=Yes;No

const (
	AllowFirstLastIPNo  AllowFirstLastIPType = "No"
	AllowFirstLastIPYes AllowFirstLastIPType = "Yes"
)

type BGPAdvertisementType added in v1.15.0

type BGPAdvertisementType string

BGPAdvertisementType defines type of advertisement.

Note list of supported advertisements is not exhaustive and can be extended in the future. Consumer of this API should be able to handle unknown values.

+kubebuilder:validation:Enum=PodCIDR;CiliumPodIPPool;CiliumLoadBalancerIP

const (
	// PodCIDRAdvert when configured, Cilium will advertise pod CIDRs to BGP peers.
	PodCIDRAdvert BGPAdvertisementType = "PodCIDR"

	// CiliumPodIPPoolAdvert when configured, Cilium will advertise prefixes from CiliumPodIPPools to BGP peers.
	CiliumPodIPPoolAdvert BGPAdvertisementType = "CiliumPodIPPool"

	// CiliumLoadBalancerIPAdvert when configured, Cilium will advertise load balancer services IPs to BGP peers.
	// The loadBalancerClass for a service must be nil or specify a class supported by Cilium,
	// e.g. "io.cilium/bgp-control-plane".
	//
	// Refer to the following document for additional details regarding load balancer
	// classes: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
	CiliumLoadBalancerIPAdvert BGPAdvertisementType = "CiliumLoadBalancerIP"
)

type BGPCommunities added in v1.15.0

type BGPCommunities struct {
	// Standard holds a list of "standard" 32-bit BGP Communities Attribute (RFC 1997) values.
	//
	// +kubebuilder:validation:Optional
	Standard []BGPStandardCommunity `json:"standard,omitempty"`

	// Large holds a list of the BGP Large Communities Attribute (RFC 8092) values.
	//
	// +kubebuilder:validation:Optional
	Large []BGPLargeCommunity `json:"large,omitempty"`
}

BGPCommunities holds community values of the supported BGP community path attributes.

func (*BGPCommunities) DeepCopy added in v1.15.0

func (in *BGPCommunities) DeepCopy() *BGPCommunities

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BGPCommunities.

func (*BGPCommunities) DeepCopyInto added in v1.15.0

func (in *BGPCommunities) DeepCopyInto(out *BGPCommunities)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BGPCommunities) DeepEqual added in v1.15.0

func (in *BGPCommunities) DeepEqual(other *BGPCommunities) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type BGPLargeCommunity added in v1.15.0

type BGPLargeCommunity string

BGPLargeCommunity type represents a value of the BGP Large Communities Attribute (RFC 8092), as three 4-byte decimal numbers separated by colons. +kubebuilder:validation:Pattern=`^([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[01][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[01][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[01][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])$`

type BGPStandardCommunity added in v1.15.0

type BGPStandardCommunity string

BGPStandardCommunity type represents a value of the "standard" 32-bit BGP Communities Attribute (RFC 1997) as a 4-byte decimal number or two 2-byte decimal numbers separated by a colon. +kubebuilder:validation:Pattern=`^([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[01][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])$|^([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$`

type CiliumBGPAdvertisement added in v1.15.0

type CiliumBGPAdvertisement struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata"`

	Spec CiliumBGPAdvertisementSpec `json:"spec"`
}

CiliumBGPAdvertisement is the Schema for the ciliumbgpadvertisements API

func (*CiliumBGPAdvertisement) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPAdvertisement.

func (*CiliumBGPAdvertisement) DeepCopyInto added in v1.15.0

func (in *CiliumBGPAdvertisement) DeepCopyInto(out *CiliumBGPAdvertisement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPAdvertisement) DeepCopyObject added in v1.15.0

func (in *CiliumBGPAdvertisement) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CiliumBGPAdvertisement) DeepEqual added in v1.15.0

func (in *CiliumBGPAdvertisement) DeepEqual(other *CiliumBGPAdvertisement) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPAdvertisementList added in v1.15.0

type CiliumBGPAdvertisementList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is a list of CiliumBGPAdvertisement.
	Items []CiliumBGPAdvertisement `json:"items"`
}

CiliumBGPAdvertisementList contains a list of CiliumBGPAdvertisement

func (*CiliumBGPAdvertisementList) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPAdvertisementList.

func (*CiliumBGPAdvertisementList) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPAdvertisementList) DeepCopyObject added in v1.15.0

func (in *CiliumBGPAdvertisementList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumBGPAdvertisementSpec added in v1.15.0

type CiliumBGPAdvertisementSpec struct {
	// Advertisements is a list of BGP advertisements.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	Advertisements []Advertisement `json:"advertisements"`
}

func (*CiliumBGPAdvertisementSpec) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPAdvertisementSpec.

func (*CiliumBGPAdvertisementSpec) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPAdvertisementSpec) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPAttributes added in v1.15.0

type CiliumBGPAttributes struct {
	// Community sets the community attribute in the route.
	// If not specified, no community attribute is set.
	//
	// +kubebuilder:validation:Optional
	Community *BGPCommunities `json:"community,omitempty"`

	// LocalPreference sets the local preference attribute in the route.
	// If not specified, no local preference attribute is set.
	//
	// +kubebuilder:validation:Optional
	LocalPreference *int64 `json:"localPreference,omitempty"`
}

CiliumBGPAttributes defines additional attributes to set to the advertised NLRIs.

func (*CiliumBGPAttributes) DeepCopy added in v1.15.0

func (in *CiliumBGPAttributes) DeepCopy() *CiliumBGPAttributes

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPAttributes.

func (*CiliumBGPAttributes) DeepCopyInto added in v1.15.0

func (in *CiliumBGPAttributes) DeepCopyInto(out *CiliumBGPAttributes)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPAttributes) DeepEqual added in v1.15.0

func (in *CiliumBGPAttributes) DeepEqual(other *CiliumBGPAttributes) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPClusterConfig added in v1.15.0

type CiliumBGPClusterConfig struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata"`

	// Spec defines the desired cluster configuration of the BGP control plane.
	Spec CiliumBGPClusterConfigSpec `json:"spec"`
}

CiliumBGPClusterConfig is the Schema for the CiliumBGPClusterConfig API

func (*CiliumBGPClusterConfig) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPClusterConfig.

func (*CiliumBGPClusterConfig) DeepCopyInto added in v1.15.0

func (in *CiliumBGPClusterConfig) DeepCopyInto(out *CiliumBGPClusterConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPClusterConfig) DeepCopyObject added in v1.15.0

func (in *CiliumBGPClusterConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CiliumBGPClusterConfig) DeepEqual added in v1.15.0

func (in *CiliumBGPClusterConfig) DeepEqual(other *CiliumBGPClusterConfig) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPClusterConfigList added in v1.15.0

type CiliumBGPClusterConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is a list of CiliumBGPClusterConfig.
	Items []CiliumBGPClusterConfig `json:"items"`
}

CiliumBGPClusterConfigList is a list of CiliumBGPClusterConfig objects.

func (*CiliumBGPClusterConfigList) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPClusterConfigList.

func (*CiliumBGPClusterConfigList) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPClusterConfigList) DeepCopyObject added in v1.15.0

func (in *CiliumBGPClusterConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumBGPClusterConfigSpec added in v1.15.0

type CiliumBGPClusterConfigSpec struct {
	// NodeSelector selects a group of nodes where this BGP Cluster
	// config applies.
	// If empty / nil this config applies to all nodes.
	//
	// +kubebuilder:validation:Optional
	NodeSelector *slimv1.LabelSelector `json:"nodeSelector,omitempty"`

	// A list of CiliumBGPInstance(s) which instructs
	// the BGP control plane how to instantiate virtual BGP routers.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	// +listType=map
	// +listMapKey=name
	BGPInstances []CiliumBGPInstance `json:"bgpInstances"`
}

func (*CiliumBGPClusterConfigSpec) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPClusterConfigSpec.

func (*CiliumBGPClusterConfigSpec) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPClusterConfigSpec) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPFamily

type CiliumBGPFamily struct {
	// Afi is the Address Family Identifier (AFI) of the family.
	//
	// +kubebuilder:validation:Enum=ipv4;ipv6;l2vpn;ls;opaque
	// +kubebuilder:validation:Required
	Afi string `json:"afi"`

	// Safi is the Subsequent Address Family Identifier (SAFI) of the family.
	//
	// +kubebuilder:validation:Enum=unicast;multicast;mpls_label;encapsulation;vpls;evpn;ls;sr_policy;mup;mpls_vpn;mpls_vpn_multicast;route_target_constraints;flowspec_unicast;flowspec_vpn;key_value
	// +kubebuilder:validation:Required
	Safi string `json:"safi"`
}

CiliumBGPFamily represents a AFI/SAFI address family pair.

func (*CiliumBGPFamily) DeepCopy

func (in *CiliumBGPFamily) DeepCopy() *CiliumBGPFamily

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPFamily.

func (*CiliumBGPFamily) DeepCopyInto

func (in *CiliumBGPFamily) DeepCopyInto(out *CiliumBGPFamily)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPFamily) DeepEqual

func (in *CiliumBGPFamily) DeepEqual(other *CiliumBGPFamily) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPFamilyWithAdverts added in v1.15.0

type CiliumBGPFamilyWithAdverts struct {
	CiliumBGPFamily `json:",inline"`

	// Advertisements selects group of BGP Advertisement(s) to advertise for this family.
	//
	// If not specified, no advertisements are sent for this family.
	//
	// This field is ignored in CiliumBGPNeighbor which is used in CiliumBGPPeeringPolicy.
	// Use CiliumBGPPeeringPolicy advertisement options instead.
	//
	// +kubebuilder:validation:Optional
	Advertisements *slimv1.LabelSelector `json:"advertisements,omitempty"`
}

CiliumBGPFamilyWithAdverts represents a AFI/SAFI address family pair along with reference to BGP Advertisements.

func (*CiliumBGPFamilyWithAdverts) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPFamilyWithAdverts.

func (*CiliumBGPFamilyWithAdverts) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPFamilyWithAdverts) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPInstance added in v1.15.0

type CiliumBGPInstance struct {
	// Name is the name of the BGP instance. It is a unique identifier for the BGP instance
	// within the cluster configuration.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=255
	Name string `json:"name"`

	// LocalASN is the ASN of this BGP instance.
	// Supports extended 32bit ASNs.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4294967295
	LocalASN *int64 `json:"localASN,omitempty"`

	// Peers is a list of neighboring BGP peers for this virtual router
	//
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=name
	Peers []CiliumBGPPeer `json:"peers,omitempty"`
}

func (*CiliumBGPInstance) DeepCopy added in v1.15.0

func (in *CiliumBGPInstance) DeepCopy() *CiliumBGPInstance

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPInstance.

func (*CiliumBGPInstance) DeepCopyInto added in v1.15.0

func (in *CiliumBGPInstance) DeepCopyInto(out *CiliumBGPInstance)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPInstance) DeepEqual added in v1.15.0

func (in *CiliumBGPInstance) DeepEqual(other *CiliumBGPInstance) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNeighbor

type CiliumBGPNeighbor struct {
	// PeerAddress is the IP address of the peer.
	// This must be in CIDR notation and use a /32 to express
	// a single host.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Format=cidr
	PeerAddress string `json:"peerAddress"`
	// PeerPort is the TCP port of the peer. 1-65535 is the range of
	// valid port numbers that can be specified. If unset, defaults to 179.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:default=179
	PeerPort *int32 `json:"peerPort,omitempty"`
	// PeerASN is the ASN of the peer BGP router.
	// Supports extended 32bit ASNs
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=4294967295
	PeerASN int64 `json:"peerASN"`
	// AuthSecretRef is the name of the secret to use to fetch a TCP
	// authentication password for this peer.
	// +kubebuilder:validation:Optional
	AuthSecretRef *string `json:"authSecretRef,omitempty"`
	// EBGPMultihopTTL controls the multi-hop feature for eBGP peers.
	// Its value defines the Time To Live (TTL) value used in BGP packets sent to the neighbor.
	// The value 1 implies that eBGP multi-hop feature is disabled (only a single hop is allowed).
	// This field is ignored for iBGP peers.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=255
	// +kubebuilder:default=1
	EBGPMultihopTTL *int32 `json:"eBGPMultihopTTL,omitempty"`
	// ConnectRetryTimeSeconds defines the initial value for the BGP ConnectRetryTimer (RFC 4271, Section 8).
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=2147483647
	// +kubebuilder:default=120
	ConnectRetryTimeSeconds *int32 `json:"connectRetryTimeSeconds,omitempty"`
	// HoldTimeSeconds defines the initial value for the BGP HoldTimer (RFC 4271, Section 4.2).
	// Updating this value will cause a session reset.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=3
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:default=90
	HoldTimeSeconds *int32 `json:"holdTimeSeconds,omitempty"`
	// KeepaliveTimeSeconds defines the initial value for the BGP KeepaliveTimer (RFC 4271, Section 8).
	// It can not be larger than HoldTimeSeconds. Updating this value will cause a session reset.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:default=30
	KeepAliveTimeSeconds *int32 `json:"keepAliveTimeSeconds,omitempty"`
	// GracefulRestart defines graceful restart parameters which are negotiated
	// with this neighbor. If empty / nil, the graceful restart capability is disabled.
	//
	// +kubebuilder:validation:Optional
	GracefulRestart *CiliumBGPNeighborGracefulRestart `json:"gracefulRestart,omitempty"`
	// Families, if provided, defines a set of AFI/SAFIs the speaker will
	// negotiate with it's peer.
	//
	// If this slice is not provided the default families of IPv6 and IPv4 will
	// be provided.
	//
	// +kubebuilder:validation:Optional
	Families []CiliumBGPFamily `json:"families"`
	// AdvertisedPathAttributes can be used to apply additional path attributes
	// to selected routes when advertising them to the peer.
	// If empty / nil, no additional path attributes are advertised.
	//
	// +kubebuilder:validation:Optional
	AdvertisedPathAttributes []CiliumBGPPathAttributes `json:"advertisedPathAttributes,omitempty"`
}

CiliumBGPNeighbor is a neighboring peer for use in a CiliumBGPVirtualRouter configuration.

func (*CiliumBGPNeighbor) DeepCopy

func (in *CiliumBGPNeighbor) DeepCopy() *CiliumBGPNeighbor

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNeighbor.

func (*CiliumBGPNeighbor) DeepCopyInto

func (in *CiliumBGPNeighbor) DeepCopyInto(out *CiliumBGPNeighbor)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNeighbor) DeepEqual

func (in *CiliumBGPNeighbor) DeepEqual(other *CiliumBGPNeighbor) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (*CiliumBGPNeighbor) SetDefaults

func (n *CiliumBGPNeighbor) SetDefaults()

SetDefaults applies default values on the CiliumBGPNeighbor. This is normally done by kube-apiserver for fields with explicit static defaults, the main use of this method is to avoid the need for nil-checks in the controller code.

func (*CiliumBGPNeighbor) Validate

func (n *CiliumBGPNeighbor) Validate() error

Validate validates CiliumBGPNeighbor's configuration constraints that can not be expressed using the kubebuilder validation markers.

type CiliumBGPNeighborGracefulRestart

type CiliumBGPNeighborGracefulRestart struct {
	// Enabled flag, when set enables graceful restart capability.
	//
	// +kubebuilder:validation:Required
	Enabled bool `json:"enabled"`
	// RestartTimeSeconds is the estimated time it will take for the BGP
	// session to be re-established with peer after a restart.
	// After this period, peer will remove stale routes. This is
	// described RFC 4724 section 4.2.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4095
	// +kubebuilder:default=120
	RestartTimeSeconds *int32 `json:"restartTimeSeconds,omitempty"`
}

func (*CiliumBGPNeighborGracefulRestart) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNeighborGracefulRestart.

func (*CiliumBGPNeighborGracefulRestart) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNeighborGracefulRestart) DeepEqual

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodeConfig added in v1.15.0

type CiliumBGPNodeConfig struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata"`

	// Spec is the specification of the desired behavior of the CiliumBGPNodeConfig.
	Spec CiliumBGPNodeSpec `json:"spec"`

	// Status is the most recently observed status of the CiliumBGPNodeConfig.
	Status CiliumBGPNodeStatus `json:"status"`
}

CiliumBGPNodeConfig is node local configuration for BGP agent. Name of the object should be node name. This resource will be created by Cilium operator and is read-only for the users.

func (*CiliumBGPNodeConfig) DeepCopy added in v1.15.0

func (in *CiliumBGPNodeConfig) DeepCopy() *CiliumBGPNodeConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeConfig.

func (*CiliumBGPNodeConfig) DeepCopyInto added in v1.15.0

func (in *CiliumBGPNodeConfig) DeepCopyInto(out *CiliumBGPNodeConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeConfig) DeepCopyObject added in v1.15.0

func (in *CiliumBGPNodeConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CiliumBGPNodeConfig) DeepEqual added in v1.15.0

func (in *CiliumBGPNodeConfig) DeepEqual(other *CiliumBGPNodeConfig) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodeConfigInstanceOverride added in v1.15.0

type CiliumBGPNodeConfigInstanceOverride struct {
	// Name is the name of the BGP instance for which the configuration is overridden.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=255
	Name string `json:"name"`

	// RouterID is BGP router id to use for this instance. It must be unique across all BGP instances.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Format=ipv4
	RouterID *string `json:"routerID,omitempty"`

	// LocalPort is port to use for this BGP instance.
	//
	// +kubebuilder:validation:Optional
	LocalPort *int32 `json:"localPort,omitempty"`

	// Peers is a list of peer configurations to override.
	//
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=name
	Peers []CiliumBGPNodeConfigPeerOverride `json:"peers,omitempty"`
}

CiliumBGPNodeConfigInstanceOverride defines configuration options which can be overridden for a specific BGP instance.

func (*CiliumBGPNodeConfigInstanceOverride) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeConfigInstanceOverride.

func (*CiliumBGPNodeConfigInstanceOverride) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeConfigInstanceOverride) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodeConfigList added in v1.15.0

type CiliumBGPNodeConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is a list of CiliumBGPNodeConfig.
	Items []CiliumBGPNodeConfig `json:"items"`
}

CiliumBGPNodeConfigList is a list of CiliumBGPNodeConfig objects.

func (*CiliumBGPNodeConfigList) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeConfigList.

func (*CiliumBGPNodeConfigList) DeepCopyInto added in v1.15.0

func (in *CiliumBGPNodeConfigList) DeepCopyInto(out *CiliumBGPNodeConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeConfigList) DeepCopyObject added in v1.15.0

func (in *CiliumBGPNodeConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumBGPNodeConfigOverride added in v1.15.0

type CiliumBGPNodeConfigOverride struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata"`

	// Spec is the specification of the desired behavior of the CiliumBGPNodeConfigOverride.
	Spec CiliumBGPNodeConfigOverrideSpec `json:"spec"`
}

CiliumBGPNodeConfigOverride is used to overrides some of the BGP configurations which are node local. Users can user this resource to override auto-generated BGP settings for the node.

func (*CiliumBGPNodeConfigOverride) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeConfigOverride.

func (*CiliumBGPNodeConfigOverride) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeConfigOverride) DeepCopyObject added in v1.15.0

func (in *CiliumBGPNodeConfigOverride) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CiliumBGPNodeConfigOverride) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodeConfigOverrideList added in v1.15.0

type CiliumBGPNodeConfigOverrideList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is a list of CiliumBGPNodeConfigOverride.
	Items []CiliumBGPNodeConfigOverride `json:"items"`
}

CiliumBGPNodeConfigOverrideList is a list of CiliumBGPNodeConfigOverride objects.

func (*CiliumBGPNodeConfigOverrideList) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeConfigOverrideList.

func (*CiliumBGPNodeConfigOverrideList) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeConfigOverrideList) DeepCopyObject added in v1.15.0

func (in *CiliumBGPNodeConfigOverrideList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumBGPNodeConfigOverrideSpec added in v1.15.0

type CiliumBGPNodeConfigOverrideSpec struct {
	// NodeRef is the name of the node for which the BGP configuration is overridden.
	//
	// +kubebuilder:validation:Required
	NodeRef string `json:"nodeRef"`

	// BGPInstances is a list of BGP instances to override.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +listType=map
	// +listMapKey=name
	BGPInstances []CiliumBGPNodeConfigInstanceOverride `json:"bgpInstances"`
}

func (*CiliumBGPNodeConfigOverrideSpec) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeConfigOverrideSpec.

func (*CiliumBGPNodeConfigOverrideSpec) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeConfigOverrideSpec) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodeConfigPeerOverride added in v1.15.0

type CiliumBGPNodeConfigPeerOverride struct {
	// Name is the name of the peer for which the configuration is overridden.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=255
	Name string `json:"name"`

	// LocalAddress is the IP address to use for connecting to this peer.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern=`((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))`
	LocalAddress *string `json:"localAddress,omitempty"`

	// LocalPort is source port to use for connecting to this peer.
	//
	// +kubebuilder:validation:Optional
	LocalPort *int32 `json:"localPort,omitempty"`
}

CiliumBGPNodeConfigPeerOverride defines configuration options which can be overridden for a specific peer.

func (*CiliumBGPNodeConfigPeerOverride) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeConfigPeerOverride.

func (*CiliumBGPNodeConfigPeerOverride) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeConfigPeerOverride) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodeInstance added in v1.15.0

type CiliumBGPNodeInstance struct {
	// Name is the name of the BGP instance. This name is used to identify the BGP instance on the node.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=255
	Name string `json:"name"`

	// LocalASN is the ASN of this virtual router.
	// Supports extended 32bit ASNs.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4294967295
	LocalASN *int64 `json:"localASN,omitempty"`

	// RouterID is the BGP router ID of this virtual router.
	// This configuration is derived from CiliumBGPNodeConfigOverride resource.
	//
	// If not specified, the router ID will be derived from the node local address.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Format=ipv4
	RouterID *string `json:"routerID,omitempty"`

	// LocalPort is the port on which the BGP daemon listens for incoming connections.
	//
	// If not specified, BGP instance will not listen for incoming connections.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	LocalPort *int32 `json:"localPort,omitempty"`

	// Peers is a list of neighboring BGP peers for this virtual router
	//
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=name
	Peers []CiliumBGPNodePeer `json:"peers,omitempty"`
}

CiliumBGPNodeInstance is a single BGP router instance configuration on the node.

func (*CiliumBGPNodeInstance) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeInstance.

func (*CiliumBGPNodeInstance) DeepCopyInto added in v1.15.0

func (in *CiliumBGPNodeInstance) DeepCopyInto(out *CiliumBGPNodeInstance)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeInstance) DeepEqual added in v1.15.0

func (in *CiliumBGPNodeInstance) DeepEqual(other *CiliumBGPNodeInstance) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodeInstanceStatus added in v1.15.0

type CiliumBGPNodeInstanceStatus struct {
	// Name is the name of the BGP instance. This name is used to identify the BGP instance on the node.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// LocalASN is the ASN of this BGP instance.
	//
	// +kubebuilder:validation:Optional
	LocalASN *int64 `json:"localASN,omitempty"`

	// PeerStatuses is the state of the BGP peers for this BGP instance.
	//
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=name
	PeerStatuses []CiliumBGPNodePeerStatus `json:"peers,omitempty"`
}

func (*CiliumBGPNodeInstanceStatus) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeInstanceStatus.

func (*CiliumBGPNodeInstanceStatus) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeInstanceStatus) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodePeer added in v1.15.0

type CiliumBGPNodePeer struct {
	// Name is the name of the BGP peer. This name is used to identify the BGP peer for the BGP instance.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// PeerAddress is the IP address of the neighbor.
	// Supports IPv4 and IPv6 addresses.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern=`((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))`
	PeerAddress *string `json:"peerAddress,omitempty"`

	// PeerASN is the ASN of the peer BGP router.
	// Supports extended 32bit ASNs
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4294967295
	PeerASN *int64 `json:"peerASN,omitempty"`

	// LocalAddress is the IP address of the local interface to use for the peering session.
	// This configuration is derived from CiliumBGPNodeConfigOverride resource. If not specified, the local address will be used for setting up peering.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern=`((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))`
	LocalAddress *string `json:"localAddress,omitempty"`

	// PeerConfigRef is a reference to a peer configuration resource.
	// If not specified, the default BGP configuration is used for this peer.
	//
	// +kubebuilder:validation:Optional
	PeerConfigRef *PeerConfigReference `json:"peerConfigRef,omitempty"`
}

func (*CiliumBGPNodePeer) DeepCopy added in v1.15.0

func (in *CiliumBGPNodePeer) DeepCopy() *CiliumBGPNodePeer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodePeer.

func (*CiliumBGPNodePeer) DeepCopyInto added in v1.15.0

func (in *CiliumBGPNodePeer) DeepCopyInto(out *CiliumBGPNodePeer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodePeer) DeepEqual added in v1.15.0

func (in *CiliumBGPNodePeer) DeepEqual(other *CiliumBGPNodePeer) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodePeerStatus added in v1.15.0

type CiliumBGPNodePeerStatus struct {
	// Name is the name of the BGP peer.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// PeerAddress is the IP address of the neighbor.
	//
	// +kubebuilder:validation:Required
	PeerAddress string `json:"peerAddress"`

	// PeerASN is the ASN of the neighbor.
	//
	// +kubebuilder:validation:Optional
	PeerASN *int64 `json:"peerASN,omitempty"`

	// PeeringState is last known state of the peering session.
	//
	// +kubebuilder:validation:Optional
	PeeringState *string `json:"peeringState,omitempty"`

	// Timers is the state of the negotiated BGP timers for this peer.
	//
	// +kubebuilder:validation:Optional
	Timers *CiliumBGPTimersState `json:"timers,omitempty"`

	// Uptime is the time since the last peering session was established.
	//
	// +kubebuilder:validation:Optional
	Uptime *string `json:"uptime,omitempty"`

	// RoutesReceived is the number of routes received from this peer.
	//
	// +kubebuilder:validation:Optional
	RoutesReceived *int32 `json:"routesReceived,omitempty"`

	// RoutesAdvertised is the number of routes advertised to this peer.
	//
	// +kubebuilder:validation:Optional
	RoutesAdvertised *int32 `json:"routesAdvertised,omitempty"`
}

CiliumBGPNodePeerStatus is the status of a BGP peer.

func (*CiliumBGPNodePeerStatus) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodePeerStatus.

func (*CiliumBGPNodePeerStatus) DeepCopyInto added in v1.15.0

func (in *CiliumBGPNodePeerStatus) DeepCopyInto(out *CiliumBGPNodePeerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodePeerStatus) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodeSpec added in v1.15.0

type CiliumBGPNodeSpec struct {
	// BGPInstances is a list of BGP router instances on the node.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	// +listType=map
	// +listMapKey=name
	BGPInstances []CiliumBGPNodeInstance `json:"bgpInstances"`
}

func (*CiliumBGPNodeSpec) DeepCopy added in v1.15.0

func (in *CiliumBGPNodeSpec) DeepCopy() *CiliumBGPNodeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeSpec.

func (*CiliumBGPNodeSpec) DeepCopyInto added in v1.15.0

func (in *CiliumBGPNodeSpec) DeepCopyInto(out *CiliumBGPNodeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeSpec) DeepEqual added in v1.15.0

func (in *CiliumBGPNodeSpec) DeepEqual(other *CiliumBGPNodeSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPNodeStatus added in v1.15.0

type CiliumBGPNodeStatus struct {
	// BGPInstances is the status of the BGP instances on the node.
	//
	// +kubebuilder:validation:Required
	// +listType=map
	// +listMapKey=name
	BGPInstances []CiliumBGPNodeInstanceStatus `json:"bgpInstances"`
}

CiliumBGPNodeStatus is the status of the CiliumBGPNodeConfig.

func (*CiliumBGPNodeStatus) DeepCopy added in v1.15.0

func (in *CiliumBGPNodeStatus) DeepCopy() *CiliumBGPNodeStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPNodeStatus.

func (*CiliumBGPNodeStatus) DeepCopyInto added in v1.15.0

func (in *CiliumBGPNodeStatus) DeepCopyInto(out *CiliumBGPNodeStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPNodeStatus) DeepEqual added in v1.15.0

func (in *CiliumBGPNodeStatus) DeepEqual(other *CiliumBGPNodeStatus) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPPathAttributes added in v1.15.0

type CiliumBGPPathAttributes struct {
	// SelectorType defines the object type on which the Selector applies:
	// - For "PodCIDR" the Selector matches k8s CiliumNode resources
	//   (path attributes apply to routes announced for PodCIDRs of selected CiliumNodes.
	//   Only affects routes of cluster scope / Kubernetes IPAM CIDRs, not Multi-Pool IPAM CIDRs.
	// - For "CiliumLoadBalancerIPPool" the Selector matches CiliumLoadBalancerIPPool custom resources
	//   (path attributes apply to routes announced for selected CiliumLoadBalancerIPPools).
	// - For "CiliumPodIPPool" the Selector matches CiliumPodIPPool custom resources
	//   (path attributes apply to routes announced for allocated CIDRs of selected CiliumPodIPPools).
	//
	// +kubebuilder:validation:Enum=PodCIDR;CiliumLoadBalancerIPPool;CiliumPodIPPool
	// +kubebuilder:validation:Required
	SelectorType string `json:"selectorType"`

	// Selector selects a group of objects of the SelectorType
	// resulting into routes that will be announced with the configured Attributes.
	// If nil / not set, all objects of the SelectorType are selected.
	//
	// +kubebuilder:validation:Optional
	Selector *slimv1.LabelSelector `json:"selector,omitempty"`

	// Communities defines a set of community values advertised in the supported BGP Communities path attributes.
	// If nil / not set, no BGP Communities path attribute will be advertised.
	//
	// +kubebuilder:validation:Optional
	Communities *BGPCommunities `json:"communities,omitempty"`

	// LocalPreference defines the preference value advertised in the BGP Local Preference path attribute.
	// As Local Preference is only valid for iBGP peers, this value will be ignored for eBGP peers
	// (no Local Preference path attribute will be advertised).
	// If nil / not set, the default Local Preference of 100 will be advertised in
	// the Local Preference path attribute for iBGP peers.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=4294967295
	LocalPreference *int64 `json:"localPreference,omitempty"`
}

CiliumBGPPathAttributes can be used to apply additional path attributes to matched routes when advertising them to a BGP peer.

func (*CiliumBGPPathAttributes) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPPathAttributes.

func (*CiliumBGPPathAttributes) DeepCopyInto added in v1.15.0

func (in *CiliumBGPPathAttributes) DeepCopyInto(out *CiliumBGPPathAttributes)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPPathAttributes) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPPeer added in v1.15.0

type CiliumBGPPeer struct {
	// Name is the name of the BGP peer. It is a unique identifier for the peer within the BGP instance.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=255
	Name string `json:"name"`

	// PeerAddress is the IP address of the neighbor.
	// Supports IPv4 and IPv6 addresses.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern=`((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))`
	PeerAddress *string `json:"peerAddress,omitempty"`

	// PeerASN is the ASN of the peer BGP router.
	// Supports extended 32bit ASNs.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4294967295
	PeerASN *int64 `json:"peerASN,omitempty"`

	// PeerConfigRef is a reference to a peer configuration resource.
	// If not specified, the default BGP configuration is used for this peer.
	//
	// +kubebuilder:validation:Optional
	PeerConfigRef *PeerConfigReference `json:"peerConfigRef,omitempty"`
}

func (*CiliumBGPPeer) DeepCopy added in v1.15.0

func (in *CiliumBGPPeer) DeepCopy() *CiliumBGPPeer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPPeer.

func (*CiliumBGPPeer) DeepCopyInto added in v1.15.0

func (in *CiliumBGPPeer) DeepCopyInto(out *CiliumBGPPeer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPPeer) DeepEqual added in v1.15.0

func (in *CiliumBGPPeer) DeepEqual(other *CiliumBGPPeer) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPPeerConfig added in v1.15.0

type CiliumBGPPeerConfig struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata"`

	// Spec is the specification of the desired behavior of the CiliumBGPPeerConfig.
	Spec CiliumBGPPeerConfigSpec `json:"spec"`
}

func (*CiliumBGPPeerConfig) DeepCopy added in v1.15.0

func (in *CiliumBGPPeerConfig) DeepCopy() *CiliumBGPPeerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPPeerConfig.

func (*CiliumBGPPeerConfig) DeepCopyInto added in v1.15.0

func (in *CiliumBGPPeerConfig) DeepCopyInto(out *CiliumBGPPeerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPPeerConfig) DeepCopyObject added in v1.15.0

func (in *CiliumBGPPeerConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CiliumBGPPeerConfig) DeepEqual added in v1.15.0

func (in *CiliumBGPPeerConfig) DeepEqual(other *CiliumBGPPeerConfig) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPPeerConfigList added in v1.15.0

type CiliumBGPPeerConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is a list of CiliumBGPPeer.
	Items []CiliumBGPPeerConfig `json:"items"`
}

CiliumBGPPeerConfigList is a list of CiliumBGPPeer objects.

func (*CiliumBGPPeerConfigList) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPPeerConfigList.

func (*CiliumBGPPeerConfigList) DeepCopyInto added in v1.15.0

func (in *CiliumBGPPeerConfigList) DeepCopyInto(out *CiliumBGPPeerConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPPeerConfigList) DeepCopyObject added in v1.15.0

func (in *CiliumBGPPeerConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumBGPPeerConfigSpec added in v1.15.0

type CiliumBGPPeerConfigSpec struct {
	// Transport defines the BGP transport parameters for the peer.
	//
	// If not specified, the default transport parameters are used.
	//
	// +kubebuilder:validation:Optional
	Transport *CiliumBGPTransport `json:"transport,omitempty"`

	// Timers defines the BGP timers for the peer.
	//
	// If not specified, the default timers are used.
	//
	// +kubebuilder:validation:Optional
	Timers *CiliumBGPTimers `json:"timers,omitempty"`

	// AuthSecretRef is the name of the secret to use to fetch a TCP
	// authentication password for this peer.
	//
	// If not specified, no authentication is used.
	//
	// +kubebuilder:validation:Optional
	AuthSecretRef *string `json:"authSecretRef,omitempty"`

	// GracefulRestart defines graceful restart parameters which are negotiated
	// with this peer.
	//
	// If not specified, the graceful restart capability is disabled.
	//
	// +kubebuilder:validation:Optional
	GracefulRestart *CiliumBGPNeighborGracefulRestart `json:"gracefulRestart,omitempty"`

	// EBGPMultihopTTL controls the multi-hop feature for eBGP peers.
	// Its value defines the Time To Live (TTL) value used in BGP
	// packets sent to the peer.
	//
	// If not specified, EBGP multihop is disabled. This field is ignored for iBGP neighbors.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=255
	// +kubebuilder:default=1
	EBGPMultihop *int32 `json:"ebgpMultihop,omitempty"`

	// Families, if provided, defines a set of AFI/SAFIs the speaker will
	// negotiate with it's peer.
	//
	// If not specified, the default families of IPv6/unicast and IPv4/unicast will be created.
	//
	// +kubebuilder:validation:Optional
	Families []CiliumBGPFamilyWithAdverts `json:"families,omitempty"`
}

func (*CiliumBGPPeerConfigSpec) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPPeerConfigSpec.

func (*CiliumBGPPeerConfigSpec) DeepCopyInto added in v1.15.0

func (in *CiliumBGPPeerConfigSpec) DeepCopyInto(out *CiliumBGPPeerConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPPeerConfigSpec) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPPeeringPolicy

type CiliumBGPPeeringPolicy struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata"`

	// Spec is a human readable description of a BGP peering policy
	//
	// +kubebuilder:validation:Optional
	Spec CiliumBGPPeeringPolicySpec `json:"spec,omitempty"`
}

CiliumBGPPeeringPolicy is a Kubernetes third-party resource for instructing Cilium's BGP control plane to create virtual BGP routers.

func (*CiliumBGPPeeringPolicy) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPPeeringPolicy.

func (*CiliumBGPPeeringPolicy) DeepCopyInto

func (in *CiliumBGPPeeringPolicy) DeepCopyInto(out *CiliumBGPPeeringPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPPeeringPolicy) DeepCopyObject

func (in *CiliumBGPPeeringPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CiliumBGPPeeringPolicy) DeepEqual

func (in *CiliumBGPPeeringPolicy) DeepEqual(other *CiliumBGPPeeringPolicy) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (*CiliumBGPPeeringPolicy) SetDefaults

func (p *CiliumBGPPeeringPolicy) SetDefaults()

SetDefaults applies default values on the CiliumBGPPeeringPolicy. This is normally done by kube-apiserver for fields with explicit static defaults, the main use of this method is to avoid the need for nil-checks in the controller code.

type CiliumBGPPeeringPolicyList

type CiliumBGPPeeringPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is a list of CiliumBGPPeeringPolicies.
	Items []CiliumBGPPeeringPolicy `json:"items"`
}

CiliumBGPPeeringPolicyList is a list of CiliumBGPPeeringPolicy objects.

func (*CiliumBGPPeeringPolicyList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPPeeringPolicyList.

func (*CiliumBGPPeeringPolicyList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPPeeringPolicyList) DeepCopyObject

func (in *CiliumBGPPeeringPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumBGPPeeringPolicySpec

type CiliumBGPPeeringPolicySpec struct {
	// NodeSelector selects a group of nodes where this BGP Peering
	// Policy applies.
	//
	// If empty / nil this policy applies to all nodes.
	//
	// +kubebuilder:validation:Optional
	NodeSelector *slimv1.LabelSelector `json:"nodeSelector,omitempty"`
	// A list of CiliumBGPVirtualRouter(s) which instructs
	// the BGP control plane how to instantiate virtual BGP routers.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	VirtualRouters []CiliumBGPVirtualRouter `json:"virtualRouters"`
}

CiliumBGPPeeringPolicySpec specifies one or more CiliumBGPVirtualRouter(s) to apply to nodes matching it's label selector.

func (*CiliumBGPPeeringPolicySpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPPeeringPolicySpec.

func (*CiliumBGPPeeringPolicySpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPPeeringPolicySpec) DeepEqual

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPTimers added in v1.15.0

type CiliumBGPTimers struct {
	// ConnectRetryTimeSeconds defines the initial value for the BGP ConnectRetryTimer (RFC 4271, Section 8).
	//
	// If not specified, defaults to 120 seconds.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=2147483647
	// +kubebuilder:default=120
	ConnectRetryTimeSeconds *int32 `json:"connectRetryTimeSeconds,omitempty"`

	// HoldTimeSeconds defines the initial value for the BGP HoldTimer (RFC 4271, Section 4.2).
	// Updating this value will cause a session reset.
	//
	// If not specified, defaults to 90 seconds.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=3
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:default=90
	HoldTimeSeconds *int32 `json:"holdTimeSeconds,omitempty"`

	// KeepaliveTimeSeconds defines the initial value for the BGP KeepaliveTimer (RFC 4271, Section 8).
	// It can not be larger than HoldTimeSeconds. Updating this value will cause a session reset.
	//
	// If not specified, defaults to 30 seconds.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:default=30
	KeepAliveTimeSeconds *int32 `json:"keepAliveTimeSeconds,omitempty"`
}

func (*CiliumBGPTimers) DeepCopy added in v1.15.0

func (in *CiliumBGPTimers) DeepCopy() *CiliumBGPTimers

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPTimers.

func (*CiliumBGPTimers) DeepCopyInto added in v1.15.0

func (in *CiliumBGPTimers) DeepCopyInto(out *CiliumBGPTimers)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPTimers) DeepEqual added in v1.15.0

func (in *CiliumBGPTimers) DeepEqual(other *CiliumBGPTimers) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPTimersState added in v1.15.0

type CiliumBGPTimersState struct {
	// AppliedHoldTimeSeconds is the negotiated hold time for this peer.
	//
	// +kubebuilder:validation:Optional
	AppliedHoldTimeSeconds *int32 `json:"appliedHoldTimeSeconds,omitempty"`

	// AppliedKeepaliveSeconds is the negotiated keepalive time for this peer.
	//
	// +kubebuilder:validation:Optional
	AppliedKeepaliveSeconds *int32 `json:"appliedKeepaliveSeconds,omitempty"`
}

CiliumBGPTimersState is the state of the negotiated BGP timers for a peer.

func (*CiliumBGPTimersState) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPTimersState.

func (*CiliumBGPTimersState) DeepCopyInto added in v1.15.0

func (in *CiliumBGPTimersState) DeepCopyInto(out *CiliumBGPTimersState)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPTimersState) DeepEqual added in v1.15.0

func (in *CiliumBGPTimersState) DeepEqual(other *CiliumBGPTimersState) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPTransport added in v1.15.0

type CiliumBGPTransport struct {
	// LocalPort is the local port to be used for the BGP session.
	//
	// If not specified, defaults to TCP port 179.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:default=179
	LocalPort *int32 `json:"localPort,omitempty"`

	// PeerPort is the peer port to be used for the BGP session.
	//
	// If not specified, defaults to TCP port 179.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:default=179
	PeerPort *int32 `json:"peerPort,omitempty"`
}

CiliumBGPTransport defines the BGP transport parameters for the peer.

func (*CiliumBGPTransport) DeepCopy added in v1.15.0

func (in *CiliumBGPTransport) DeepCopy() *CiliumBGPTransport

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPTransport.

func (*CiliumBGPTransport) DeepCopyInto added in v1.15.0

func (in *CiliumBGPTransport) DeepCopyInto(out *CiliumBGPTransport)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPTransport) DeepEqual added in v1.15.0

func (in *CiliumBGPTransport) DeepEqual(other *CiliumBGPTransport) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumBGPVirtualRouter

type CiliumBGPVirtualRouter struct {
	// LocalASN is the ASN of this virtual router.
	// Supports extended 32bit ASNs
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=4294967295
	LocalASN int64 `json:"localASN"`
	// ExportPodCIDR determines whether to export the Node's private CIDR block
	// to the configured neighbors.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	ExportPodCIDR *bool `json:"exportPodCIDR,omitempty"`
	// PodIPPoolSelector selects CiliumPodIPPools based on labels. The virtual
	// router will announce allocated CIDRs of matching CiliumPodIPPools.
	//
	// If empty / nil no CiliumPodIPPools will be announced.
	//
	// +kubebuilder:validation:Optional
	PodIPPoolSelector *slimv1.LabelSelector `json:"podIPPoolSelector,omitempty"`
	// ServiceSelector selects a group of load balancer services which this
	// virtual router will announce. The loadBalancerClass for a service must
	// be nil or specify a class supported by Cilium, e.g. "io.cilium/bgp-control-plane".
	// Refer to the following document for additional details regarding load balancer
	// classes:
	//
	//   https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
	//
	// If empty / nil no services will be announced.
	//
	// +kubebuilder:validation:Optional
	ServiceSelector *slimv1.LabelSelector `json:"serviceSelector,omitempty"`
	// Neighbors is a list of neighboring BGP peers for this virtual router
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	Neighbors []CiliumBGPNeighbor `json:"neighbors"`
}

CiliumBGPVirtualRouter defines a discrete BGP virtual router configuration.

func (*CiliumBGPVirtualRouter) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumBGPVirtualRouter.

func (*CiliumBGPVirtualRouter) DeepCopyInto

func (in *CiliumBGPVirtualRouter) DeepCopyInto(out *CiliumBGPVirtualRouter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumBGPVirtualRouter) DeepEqual

func (in *CiliumBGPVirtualRouter) DeepEqual(other *CiliumBGPVirtualRouter) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

func (*CiliumBGPVirtualRouter) SetDefaults

func (r *CiliumBGPVirtualRouter) SetDefaults()

SetDefaults applies default values on the CiliumBGPVirtualRouter. This is normally done by kube-apiserver for fields with explicit static defaults, the main use of this method is to avoid the need for nil-checks in the controller code.

type CiliumCIDRGroup

type CiliumCIDRGroup struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +kubebuilder:validation:Required
	Spec CiliumCIDRGroupSpec `json:"spec"`
}

CiliumCIDRGroup is a list of external CIDRs (i.e: CIDRs selecting peers outside the clusters) that can be referenced as a single entity from CiliumNetworkPolicies.

func (*CiliumCIDRGroup) DeepCopy

func (in *CiliumCIDRGroup) DeepCopy() *CiliumCIDRGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumCIDRGroup.

func (*CiliumCIDRGroup) DeepCopyInto

func (in *CiliumCIDRGroup) DeepCopyInto(out *CiliumCIDRGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumCIDRGroup) DeepCopyObject

func (in *CiliumCIDRGroup) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumCIDRGroupList

type CiliumCIDRGroupList struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CiliumCIDRGroup `json:"items"`
}

func (*CiliumCIDRGroupList) DeepCopy

func (in *CiliumCIDRGroupList) DeepCopy() *CiliumCIDRGroupList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumCIDRGroupList.

func (*CiliumCIDRGroupList) DeepCopyInto

func (in *CiliumCIDRGroupList) DeepCopyInto(out *CiliumCIDRGroupList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumCIDRGroupList) DeepCopyObject

func (in *CiliumCIDRGroupList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumCIDRGroupSpec

type CiliumCIDRGroupSpec struct {
	// ExternalCIDRs is a list of CIDRs selecting peers outside the clusters.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=0
	ExternalCIDRs []api.CIDR `json:"externalCIDRs"`
}

func (*CiliumCIDRGroupSpec) DeepCopy

func (in *CiliumCIDRGroupSpec) DeepCopy() *CiliumCIDRGroupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumCIDRGroupSpec.

func (*CiliumCIDRGroupSpec) DeepCopyInto

func (in *CiliumCIDRGroupSpec) DeepCopyInto(out *CiliumCIDRGroupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumCIDRGroupSpec) DeepEqual

func (in *CiliumCIDRGroupSpec) DeepEqual(other *CiliumCIDRGroupSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumEndpointSlice

type CiliumEndpointSlice struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata"`

	// Namespace indicate as CiliumEndpointSlice namespace.
	// All the CiliumEndpoints within the same namespace are put together
	// in CiliumEndpointSlice.
	Namespace string `json:"namespace,omitempty"`

	// Endpoints is a list of coreCEPs packed in a CiliumEndpointSlice
	Endpoints []CoreCiliumEndpoint `json:"endpoints"`
}

CiliumEndpointSlice contains a group of CoreCiliumendpoints.

func (*CiliumEndpointSlice) DeepCopy

func (in *CiliumEndpointSlice) DeepCopy() *CiliumEndpointSlice

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumEndpointSlice.

func (*CiliumEndpointSlice) DeepCopyInto

func (in *CiliumEndpointSlice) DeepCopyInto(out *CiliumEndpointSlice)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumEndpointSlice) DeepCopyObject

func (in *CiliumEndpointSlice) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CiliumEndpointSlice) DeepEqual

func (in *CiliumEndpointSlice) DeepEqual(other *CiliumEndpointSlice) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumEndpointSliceList

type CiliumEndpointSliceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is a list of CiliumEndpointSlice.
	Items []CiliumEndpointSlice `json:"items"`
}

CiliumEndpointSliceList is a list of CiliumEndpointSlice objects.

func (*CiliumEndpointSliceList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumEndpointSliceList.

func (*CiliumEndpointSliceList) DeepCopyInto

func (in *CiliumEndpointSliceList) DeepCopyInto(out *CiliumEndpointSliceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumEndpointSliceList) DeepCopyObject

func (in *CiliumEndpointSliceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumL2AnnouncementPolicy

type CiliumL2AnnouncementPolicy struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata"`

	// Spec is a human readable description of a L2 announcement policy
	//
	// +kubebuilder:validation:Optional
	Spec CiliumL2AnnouncementPolicySpec `json:"spec,omitempty"`

	// Status is the status of the policy.
	//
	// +deepequal-gen=false
	// +kubebuilder:validation:Optional
	Status CiliumL2AnnouncementPolicyStatus `json:"status"`
}

CiliumL2AnnouncementPolicy is a Kubernetes third-party resource which is used to defined which nodes should announce what services on the L2 network.

func (*CiliumL2AnnouncementPolicy) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumL2AnnouncementPolicy.

func (*CiliumL2AnnouncementPolicy) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumL2AnnouncementPolicy) DeepCopyObject

func (in *CiliumL2AnnouncementPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CiliumL2AnnouncementPolicy) DeepEqual

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumL2AnnouncementPolicyList

type CiliumL2AnnouncementPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is a list of CiliumL2AnnouncementPolicies.
	Items []CiliumL2AnnouncementPolicy `json:"items"`
}

CiliumL2AnnouncementPolicyList is a list of CiliumL2AnnouncementPolicy objects.

func (*CiliumL2AnnouncementPolicyList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumL2AnnouncementPolicyList.

func (*CiliumL2AnnouncementPolicyList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumL2AnnouncementPolicyList) DeepCopyObject

func (in *CiliumL2AnnouncementPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumL2AnnouncementPolicySpec

type CiliumL2AnnouncementPolicySpec struct {
	// NodeSelector selects a group of nodes which will announce the IPs for
	// the services selected by the service selector.
	//
	// If nil this policy applies to all nodes.
	//
	// +kubebuilder:validation:Optional
	NodeSelector *slimv1.LabelSelector `json:"nodeSelector"`
	// ServiceSelector selects a set of services which will be announced over L2 networks.
	// The loadBalancerClass for a service must be nil or specify a supported class, e.g.
	// "io.cilium/l2-announcer". Refer to the following document for additional details
	// regarding load balancer classes:
	//
	//   https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
	//
	// If nil this policy applies to all services.
	//
	// +kubebuilder:validation:Optional
	ServiceSelector *slimv1.LabelSelector `json:"serviceSelector"`
	// If true, the loadbalancer IPs of the services are announced
	//
	// If nil this policy applies to all services.
	//
	// +kubebuilder:validation:Optional
	LoadBalancerIPs bool `json:"loadBalancerIPs"`
	// If true, the external IPs of the services are announced
	//
	// +kubebuilder:validation:Optional
	ExternalIPs bool `json:"externalIPs"`
	// A list of regular expressions that express which network interface(s) should be used
	// to announce the services over. If nil, all network interfaces are used.
	//
	// +kubebuilder:validation:Optional
	Interfaces []string `json:"interfaces"`
}

CiliumL2AnnouncementPolicySpec specifies which nodes should announce what services to the L2 networks attached to the given list of interfaces.

func (*CiliumL2AnnouncementPolicySpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumL2AnnouncementPolicySpec.

func (*CiliumL2AnnouncementPolicySpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumL2AnnouncementPolicySpec) DeepEqual

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumL2AnnouncementPolicyStatus

type CiliumL2AnnouncementPolicyStatus struct {
	// Current service state
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

CiliumL2AnnouncementPolicyStatus contains the status of a CiliumL2AnnouncementPolicy.

func (*CiliumL2AnnouncementPolicyStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumL2AnnouncementPolicyStatus.

func (*CiliumL2AnnouncementPolicyStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CiliumLoadBalancerIPPool

type CiliumLoadBalancerIPPool struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata"`

	// Spec is a human readable description for a BGP load balancer
	// ip pool.
	//
	// +kubebuilder:validation:Required
	Spec CiliumLoadBalancerIPPoolSpec `json:"spec,omitempty"`

	// Status is the status of the IP Pool.
	//
	// It might be possible for users to define overlapping IP Pools, we can't validate or enforce non-overlapping pools
	// during object creation. The Cilium operator will do this validation and update the status to reflect the ability
	// to allocate IPs from this pool.
	//
	// +deepequal-gen=false
	// +kubebuilder:validation:Optional
	Status CiliumLoadBalancerIPPoolStatus `json:"status"`
}

CiliumLoadBalancerIPPool is a Kubernetes third-party resource which is used to defined pools of IPs which the operator can use to to allocate and advertise IPs for Services of type LoadBalancer.

func (*CiliumLoadBalancerIPPool) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumLoadBalancerIPPool.

func (*CiliumLoadBalancerIPPool) DeepCopyInto

func (in *CiliumLoadBalancerIPPool) DeepCopyInto(out *CiliumLoadBalancerIPPool)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumLoadBalancerIPPool) DeepCopyObject

func (in *CiliumLoadBalancerIPPool) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CiliumLoadBalancerIPPool) DeepEqual

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumLoadBalancerIPPoolIPBlock added in v1.15.0

type CiliumLoadBalancerIPPoolIPBlock struct {
	// +kubebuilder:validation:Format=cidr
	// +kubebuilder:validation:Optional
	Cidr IPv4orIPv6CIDR `json:"cidr"`
	// +kubebuilder:validation:Optional
	Start string `json:"start,omitempty"`
	// +kubebuilder:validation:Optional
	Stop string `json:"stop,omitempty"`
}

CiliumLoadBalancerIPPoolIPBlock describes a single IP block.

func (*CiliumLoadBalancerIPPoolIPBlock) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumLoadBalancerIPPoolIPBlock.

func (*CiliumLoadBalancerIPPoolIPBlock) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumLoadBalancerIPPoolIPBlock) DeepEqual added in v1.15.0

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumLoadBalancerIPPoolList

type CiliumLoadBalancerIPPoolList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is a list of CiliumBGPLoadBalancerIPPools.
	Items []CiliumLoadBalancerIPPool `json:"items"`
}

CiliumLoadBalancerIPPoolList is a list of CiliumLoadBalancerIPPool objects.

func (*CiliumLoadBalancerIPPoolList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumLoadBalancerIPPoolList.

func (*CiliumLoadBalancerIPPoolList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumLoadBalancerIPPoolList) DeepCopyObject

func (in *CiliumLoadBalancerIPPoolList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumLoadBalancerIPPoolSpec

type CiliumLoadBalancerIPPoolSpec struct {
	// ServiceSelector selects a set of services which are eligible to receive IPs from this
	//
	// +kubebuilder:validation:Optional
	ServiceSelector *slimv1.LabelSelector `json:"serviceSelector"`
	// AllowFirstLastIPs, if set to `yes` means that the first and last IPs of each CIDR will be allocatable.
	// If `no` or undefined, these IPs will be reserved. This field is ignored for /{31,32} and /{127,128} CIDRs since
	// reserving the first and last IPs would make the CIDRs unusable.
	//
	// +kubebuilder:validation:Optional
	AllowFirstLastIPs AllowFirstLastIPType `json:"allowFirstLastIPs,omitempty"`
	// Cidrs is a list of CIDRs comprising this IP Pool
	// Deprecated: please use the `blocks` field instead. This field will be removed in a future release.
	// https://github.com/cilium/cilium/issues/28590
	//
	// +kubebuilder:validation:Optional
	Cidrs []CiliumLoadBalancerIPPoolIPBlock `json:"cidrs,omitempty"`
	// Blocks is a list of CIDRs comprising this IP Pool
	//
	// +kubebuilder:validation:Optional
	Blocks []CiliumLoadBalancerIPPoolIPBlock `json:"blocks,omitempty"`
	// Disabled, if set to true means that no new IPs will be allocated from this pool.
	// Existing allocations will not be removed from services.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	Disabled bool `json:"disabled"`
}

CiliumLoadBalancerIPPoolSpec is a human readable description for a load balancer IP pool.

func (*CiliumLoadBalancerIPPoolSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumLoadBalancerIPPoolSpec.

func (*CiliumLoadBalancerIPPoolSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumLoadBalancerIPPoolSpec) DeepEqual

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumLoadBalancerIPPoolStatus

type CiliumLoadBalancerIPPoolStatus struct {
	// Current service state
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

CiliumLoadBalancerIPPoolStatus contains the status of a CiliumLoadBalancerIPPool.

func (*CiliumLoadBalancerIPPoolStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumLoadBalancerIPPoolStatus.

func (*CiliumLoadBalancerIPPoolStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CiliumNodeConfig

type CiliumNodeConfig struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec is the desired Cilium configuration overrides for a given node
	Spec CiliumNodeConfigSpec `json:"spec"`
}

CiliumNodeConfig is a list of configuration key-value pairs. It is applied to nodes indicated by a label selector.

If multiple overrides apply to the same node, they will be ordered by name with later Overrides overwriting any conflicting keys.

func (*CiliumNodeConfig) DeepCopy

func (in *CiliumNodeConfig) DeepCopy() *CiliumNodeConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumNodeConfig.

func (*CiliumNodeConfig) DeepCopyInto

func (in *CiliumNodeConfig) DeepCopyInto(out *CiliumNodeConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumNodeConfig) DeepCopyObject

func (in *CiliumNodeConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumNodeConfigList

type CiliumNodeConfigList struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CiliumNodeConfig `json:"items"`
}

func (*CiliumNodeConfigList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumNodeConfigList.

func (*CiliumNodeConfigList) DeepCopyInto

func (in *CiliumNodeConfigList) DeepCopyInto(out *CiliumNodeConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumNodeConfigList) DeepCopyObject

func (in *CiliumNodeConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CiliumNodeConfigSpec

type CiliumNodeConfigSpec struct {
	// Defaults is treated the same as the cilium-config ConfigMap - a set
	// of key-value pairs parsed by the agent and operator processes.
	// Each key must be a valid config-map data field (i.e. a-z, A-Z, -, _, and .)
	Defaults map[string]string `json:"defaults"`

	// NodeSelector is a label selector that determines to which nodes
	// this configuration applies.
	// If not supplied, then this config applies to no nodes. If
	// empty, then it applies to all nodes.
	NodeSelector *metav1.LabelSelector `json:"nodeSelector"`
}

+deepequal-gen=false

func (*CiliumNodeConfigSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumNodeConfigSpec.

func (*CiliumNodeConfigSpec) DeepCopyInto

func (in *CiliumNodeConfigSpec) DeepCopyInto(out *CiliumNodeConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CiliumPodIPPool

type CiliumPodIPPool struct {
	// +deepequal-gen=false
	metav1.TypeMeta `json:",inline"`
	// +deepequal-gen=false
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +kubebuilder:validation:Required
	Spec IPPoolSpec `json:"spec"`
}

CiliumPodIPPool defines an IP pool that can be used for pooled IPAM (i.e. the multi-pool IPAM mode).

func (*CiliumPodIPPool) DeepCopy

func (in *CiliumPodIPPool) DeepCopy() *CiliumPodIPPool

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumPodIPPool.

func (*CiliumPodIPPool) DeepCopyInto

func (in *CiliumPodIPPool) DeepCopyInto(out *CiliumPodIPPool)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumPodIPPool) DeepCopyObject

func (in *CiliumPodIPPool) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CiliumPodIPPool) DeepEqual

func (in *CiliumPodIPPool) DeepEqual(other *CiliumPodIPPool) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type CiliumPodIPPoolList

type CiliumPodIPPoolList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is a list of CiliumPodIPPools.
	Items []CiliumPodIPPool `json:"items"`
}

CiliumPodIPPoolList is a list of CiliumPodIPPool objects.

func (*CiliumPodIPPoolList) DeepCopy

func (in *CiliumPodIPPoolList) DeepCopy() *CiliumPodIPPoolList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumPodIPPoolList.

func (*CiliumPodIPPoolList) DeepCopyInto

func (in *CiliumPodIPPoolList) DeepCopyInto(out *CiliumPodIPPoolList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CiliumPodIPPoolList) DeepCopyObject

func (in *CiliumPodIPPoolList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CoreCiliumEndpoint

type CoreCiliumEndpoint struct {
	// Name indicate as CiliumEndpoint name.
	Name string `json:"name,omitempty"`
	// IdentityID is the numeric identity of the endpoint
	IdentityID int64 `json:"id,omitempty"`

	// +kubebuilder:validation:Optional
	Networking *cilium_v2.EndpointNetworking `json:"networking,omitempty"`

	// +kubebuilder:validation:Optional
	Encryption cilium_v2.EncryptionSpec `json:"encryption,omitempty"`
	NamedPorts models.NamedPorts        `json:"named-ports,omitempty"`
}

CoreCiliumEndpoint is slim version of status of CiliumEndpoint.

func (*CoreCiliumEndpoint) DeepCopy

func (in *CoreCiliumEndpoint) DeepCopy() *CoreCiliumEndpoint

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoreCiliumEndpoint.

func (*CoreCiliumEndpoint) DeepCopyInto

func (in *CoreCiliumEndpoint) DeepCopyInto(out *CoreCiliumEndpoint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CoreCiliumEndpoint) DeepEqual

func (in *CoreCiliumEndpoint) DeepEqual(other *CoreCiliumEndpoint) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type EgressRule

type EgressRule struct {
	// Selects Namespaces using cluster-scoped labels. This field follows standard label
	// selector semantics; if present but empty, it selects all namespaces.
	NamespaceSelector *slimv1.LabelSelector `json:"namespaceSelector,omitempty"`

	// This is a label selector which selects Pods. This field follows standard label
	// selector semantics; if present but empty, it selects all pods.
	PodSelector *slimv1.LabelSelector `json:"podSelector,omitempty"`
}

func (*EgressRule) DeepCopy

func (in *EgressRule) DeepCopy() *EgressRule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EgressRule.

func (*EgressRule) DeepCopyInto

func (in *EgressRule) DeepCopyInto(out *EgressRule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EgressRule) DeepEqual

func (in *EgressRule) DeepEqual(other *EgressRule) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type IPPoolSpec

type IPPoolSpec struct {
	// IPv4 specifies the IPv4 CIDRs and mask sizes of the pool
	//
	// +kubebuilder:validation:Optional
	IPv4 *IPv4PoolSpec `json:"ipv4"`

	// IPv6 specifies the IPv6 CIDRs and mask sizes of the pool
	//
	// +kubebuilder:validation:Optional
	IPv6 *IPv6PoolSpec `json:"ipv6"`
}

func (*IPPoolSpec) DeepCopy

func (in *IPPoolSpec) DeepCopy() *IPPoolSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPPoolSpec.

func (*IPPoolSpec) DeepCopyInto

func (in *IPPoolSpec) DeepCopyInto(out *IPPoolSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPPoolSpec) DeepEqual

func (in *IPPoolSpec) DeepEqual(other *IPPoolSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type IPv4PoolSpec

type IPv4PoolSpec struct {
	// CIDRs is a list of IPv4 CIDRs that are part of the pool.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	CIDRs []PoolCIDR `json:"cidrs"`

	// MaskSize is the mask size of the pool.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=32
	// +kubebuilder:validation:ExclusiveMaximum=false
	MaskSize uint8 `json:"maskSize"`
}

func (*IPv4PoolSpec) DeepCopy

func (in *IPv4PoolSpec) DeepCopy() *IPv4PoolSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPv4PoolSpec.

func (*IPv4PoolSpec) DeepCopyInto

func (in *IPv4PoolSpec) DeepCopyInto(out *IPv4PoolSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPv4PoolSpec) DeepEqual

func (in *IPv4PoolSpec) DeepEqual(other *IPv4PoolSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type IPv4orIPv6CIDR

type IPv4orIPv6CIDR string

+kubebuilder:validation:Format=cidr

type IPv6PoolSpec

type IPv6PoolSpec struct {
	// CIDRs is a list of IPv6 CIDRs that are part of the pool.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	CIDRs []PoolCIDR `json:"cidrs"`

	// MaskSize is the mask size of the pool.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=128
	// +kubebuilder:validation:ExclusiveMaximum=false
	MaskSize uint8 `json:"maskSize"`
}

func (*IPv6PoolSpec) DeepCopy

func (in *IPv6PoolSpec) DeepCopy() *IPv6PoolSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPv6PoolSpec.

func (*IPv6PoolSpec) DeepCopyInto

func (in *IPv6PoolSpec) DeepCopyInto(out *IPv6PoolSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IPv6PoolSpec) DeepEqual

func (in *IPv6PoolSpec) DeepEqual(other *IPv6PoolSpec) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type PeerConfigReference added in v1.15.0

type PeerConfigReference struct {
	// Group is the group of the peer config resource.
	// If not specified, the default of "cilium.io" is used.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="cilium.io"
	Group string `json:"group"`

	// Kind is the kind of the peer config resource.
	// If not specified, the default of "CiliumBGPPeerConfig" is used.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="CiliumBGPPeerConfig"
	Kind string `json:"kind"`

	// Name is the name of the peer config resource.
	// Name refers to the name of a Kubernetes object (typically a CiliumBGPPeerConfig).
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

PeerConfigReference is a reference to a peer configuration resource.

func (*PeerConfigReference) DeepCopy added in v1.15.0

func (in *PeerConfigReference) DeepCopy() *PeerConfigReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeerConfigReference.

func (*PeerConfigReference) DeepCopyInto added in v1.15.0

func (in *PeerConfigReference) DeepCopyInto(out *PeerConfigReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PeerConfigReference) DeepEqual added in v1.15.0

func (in *PeerConfigReference) DeepEqual(other *PeerConfigReference) bool

DeepEqual is an autogenerated deepequal function, deeply comparing the receiver with other. in must be non-nil.

type PoolCIDR

type PoolCIDR string

PoolCIDR is an IP pool CIDR.

+kubebuilder:validation:Format=cidr

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL