v1alpha1

package
v0.0.0-...-db2fe5d Latest Latest
Warning

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

Go to latest
Published: Nov 28, 2025 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the networking.metal.ironcore.dev v1alpha1 API group. +kubebuilder:validation:Required +kubebuilder:object:generate=true +groupName=networking.metal.ironcore.dev

SPDX-FileCopyrightText: 2025 SAP SE or an SAP affiliate company and IronCore contributors SPDX-License-Identifier: Apache-2.0

SPDX-FileCopyrightText: 2025 SAP SE or an SAP affiliate company and IronCore contributors SPDX-License-Identifier: Apache-2.0

Index

Constants

View Source
const (
	// ReadyCondition is the top-level status condition that reports if an object is ready.
	// This condition indicates whether the resource is ready to be used and will
	// be calculated by the controller based on child conditions, if present.
	ReadyCondition = "Ready"

	// ConfiguredCondition indicates whether the resource has been successfully configured.
	// This condition indicates whether the desired configuration has been applied to the device
	// (i.e., all necessary API calls succeeded).
	ConfiguredCondition = "Configured"

	// OperationalCondition indicates whether the resource is operational.
	// This condition indicates whether the resource is in a state that allows it to function as
	// intended (e.g., a interface is up). It corresponds to the "oper-status" commonly found
	// in the OpenConfig models (or "operSt" on Cisco).
	OperationalCondition = "Operational"
)

Condition types that are used across different objects.

View Source
const (
	// ReadyReason indicates that the resource is ready for use.
	ReadyReason = "Ready"

	// NotReadyReason indicates that the resource is not ready for use.
	NotReadyReason = "NotReady"

	// ReconcilePendingReason indicates that the controller is waiting for resources to be reconciled.
	ReconcilePendingReason = "ReconcilePending"

	// NotImplementedReason indicates that the provider does not implement the required functionality
	// to support the resource.
	NotImplementedReason = "NotImplemented"

	// ProvisioningReason indicates that the resource is being provisioned.
	ProvisioningReason = "Provisioning"

	// ConfiguredReason indicates that the resource has been successfully configured.
	ConfiguredReason = "Configured"

	// OperationalReason indicates that the resource is operational.
	OperationalReason = "Operational"

	// DegradedReason indicates that the resource is in a degraded state.
	DegradedReason = "Degraded"

	// ErrorReason indicates that an error occurred while reconciling the resource.
	ErrorReason = "Error"

	// WaitingForDependenciesReason indicates that the resource is waiting for its dependencies to be ready.
	WaitingForDependenciesReason = "WaitingForDependencies"
)

Reasons that are used across different objects.

View Source
const (
	// InterfaceNotFoundReason indicates that a referenced interface was not found.
	InterfaceNotFoundReason = "InterfaceNotFound"

	// InvalidInterfaceTypeReason indicates that a referenced interface is not of the expected type.
	InvalidInterfaceTypeReason = "InvalidInterfaceType"

	// CrossDeviceReferenceReason indicates that a referenced interface belongs to a different device.
	CrossDeviceReferenceReason = "CrossDeviceReference"

	// MemberInterfaceAlreadyInUseReason indicates that a member interface is already part of another aggregate.
	MemberInterfaceAlreadyInUseReason = "MemberInterfaceAlreadyInUse"
)

Reasons that are specific to Interface objects.

View Source
const AggregateLabel = "networking.metal.ironcore.dev/aggregate-name"

AggregateLabel is a label applied to member interfaces to indicate the name of the aggregate interface they belong to.

View Source
const DeviceKind = "Device"

DeviceKind represents the Kind of Device.

View Source
const DeviceLabel = "networking.metal.ironcore.dev/device-name"

DeviceLabel is a label applied to any Network API object to indicate the device it is associated with. This label is used by controllers to filter and manage resources based on the device they are intended for.

View Source
const FinalizerName = "networking.metal.ironcore.dev/finalizer"

FinalizerName is the identifier used by the controllers to perform cleanup before a resource is deleted. It is added when the resource is created and ensures that the controller can handle teardown logic (e.g., deleting external dependencies) before Kubernetes finalizes the deletion.

View Source
const WatchLabel = "networking.metal.ironcore.dev/watch-filter"

WatchLabel is a label that can be applied to any Network API object.

Controllers which allow for selective reconciliation may check this label and proceed with reconciliation of the object only if this label and a configured value is present.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "networking.metal.ironcore.dev", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	ManagementAccessDependencies []schema.GroupVersionKind
)

Functions

func RegisterManagementAccessDependency

func RegisterManagementAccessDependency(gvk schema.GroupVersionKind)

Types

type ACLAction

type ACLAction string

ACLAction represents the type of action that can be taken by an ACL rule. +kubebuilder:validation:Enum=Permit;Deny

const (
	// ActionPermit allows traffic that matches the rule.
	ActionPermit ACLAction = "Permit"
	// ActionDeny blocks traffic that matches the rule.
	ActionDeny ACLAction = "Deny"
)

type ACLEntry

type ACLEntry struct {
	// The sequence number of the ACL entry.
	// +required
	// +kubebuilder:validation:Minimum=1
	Sequence int32 `json:"sequence"`

	// The forwarding action of the ACL entry.
	// +required
	Action ACLAction `json:"action"`

	// The protocol to match. If not specified, defaults to "IP".
	// Available options are: ICMP, IP, OSPF, PIM, TCP, UDP.
	// +optional
	// +kubebuilder:default=IP
	Protocol Protocol `json:"protocol"`

	// Source IP address prefix. Can be IPv4 or IPv6.
	// Use 0.0.0.0/0 (::/0) to represent 'any'.
	// +required
	SourceAddress IPPrefix `json:"sourceAddress"`

	// Destination IP address prefix. Can be IPv4 or IPv6.
	// Use 0.0.0.0/0 (::/0) to represent 'any'.
	// +required
	DestinationAddress IPPrefix `json:"destinationAddress"`

	// Description provides a human-readable description of the ACL entry.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Description string `json:"description,omitempty"`
}

func (*ACLEntry) DeepCopy

func (in *ACLEntry) DeepCopy() *ACLEntry

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

func (*ACLEntry) DeepCopyInto

func (in *ACLEntry) DeepCopyInto(out *ACLEntry)

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

type AccessControlList

type AccessControlList struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec AccessControlListSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status AccessControlListStatus `json:"status,omitempty,omitzero"`
}

AccessControlList is the Schema for the accesscontrollists API

func (*AccessControlList) DeepCopy

func (in *AccessControlList) DeepCopy() *AccessControlList

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

func (*AccessControlList) DeepCopyInto

func (in *AccessControlList) DeepCopyInto(out *AccessControlList)

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

func (*AccessControlList) DeepCopyObject

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

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

func (*AccessControlList) GetConditions

func (acl *AccessControlList) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*AccessControlList) SetConditions

func (acl *AccessControlList) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type AccessControlListList

type AccessControlListList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AccessControlList `json:"items"`
}

AccessControlListList contains a list of AccessControlList

func (*AccessControlListList) DeepCopy

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

func (*AccessControlListList) DeepCopyInto

func (in *AccessControlListList) DeepCopyInto(out *AccessControlListList)

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

func (*AccessControlListList) DeepCopyObject

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

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

type AccessControlListSpec

type AccessControlListSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the AccessControlList to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Name is the indentifier of the AccessControlList on the device.
	// Immutable.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Name is immutable"
	Name string `json:"name"`

	// A list of rules/entries to apply.
	// +required
	// +listType=map
	// +listMapKey=sequence
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=100
	Entries []ACLEntry `json:"entries"`
}

AccessControlListSpec defines the desired state of AccessControlList

func (*AccessControlListSpec) DeepCopy

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

func (*AccessControlListSpec) DeepCopyInto

func (in *AccessControlListSpec) DeepCopyInto(out *AccessControlListSpec)

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

type AccessControlListStatus

type AccessControlListStatus struct {
	// The conditions are a list of status objects that describe the state of the AccessControlList.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

AccessControlListStatus defines the observed state of AccessControlList.

func (*AccessControlListStatus) DeepCopy

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

func (*AccessControlListStatus) DeepCopyInto

func (in *AccessControlListStatus) DeepCopyInto(out *AccessControlListStatus)

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

type AddressFamily

type AddressFamily string

AddressFamily represents the address family of an ISIS instance. +kubebuilder:validation:Enum=IPv4Unicast;IPv6Unicast

const (
	AddressFamilyIPv4Unicast AddressFamily = "IPv4Unicast"
	AddressFamilyIPv6Unicast AddressFamily = "IPv6Unicast"
)

type AddressFamilyStatus

type AddressFamilyStatus struct {
	// AfiSafi identifies the address family and subsequent address family.
	// +required
	AfiSafi BGPAddressFamilyType `json:"afiSafi"`

	// AcceptedPrefixes is the number of prefixes received from the peer that have passed the inbound policy
	// and are stored in the neighbor-specific table (Adj-RIB-In).
	// +kubebuilder:validation:Minimum=0
	// +optional
	AcceptedPrefixes int64 `json:"acceptedPrefixes,omitempty"`

	// AdvertisedPrefixes is the number of prefixes currently being advertised to the peer after passing
	// the outbound policy. This reflects the state of the outbound routing table for the peer (Adj-RIB-Out).
	// +kubebuilder:validation:Minimum=0
	// +optional
	AdvertisedPrefixes int64 `json:"advertisedPrefixes,omitempty"`
}

AddressFamilyStatus defines the prefix exchange statistics for a single address family (e.g., IPv4-Unicast).

func (*AddressFamilyStatus) DeepCopy

func (in *AddressFamilyStatus) DeepCopy() *AddressFamilyStatus

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

func (*AddressFamilyStatus) DeepCopyInto

func (in *AddressFamilyStatus) DeepCopyInto(out *AddressFamilyStatus)

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

type AdminState

type AdminState string

AdminState represents the administrative state of the interface. +kubebuilder:validation:Enum=Up;Down

const (
	// AdminStateUp indicates that the interface is administratively set up.
	AdminStateUp AdminState = "Up"
	// AdminStateDown indicates that the interface is administratively set down.
	AdminStateDown AdminState = "Down"
)

type Aggregation

type Aggregation struct {
	// MemberInterfaceRefs is a list of interface references that are part of the aggregate interface.
	// +required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=32
	MemberInterfaceRefs []LocalObjectReference `json:"memberInterfaceRefs"`

	// ControlProtocol defines the lacp configuration for the aggregate interface.
	// +optional
	// +kubebuilder:default={mode: Active}
	ControlProtocol ControlProtocol `json:"controlProtocol"`

	// Multichassis defines the multichassis configuration for the aggregate interface.
	// +optional
	MultiChassis *MultiChassis `json:"multichassis,omitempty"`
}

func (*Aggregation) DeepCopy

func (in *Aggregation) DeepCopy() *Aggregation

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

func (*Aggregation) DeepCopyInto

func (in *Aggregation) DeepCopyInto(out *Aggregation)

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

type BGP

type BGP struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec BGPSpec `json:"spec"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status BGPStatus `json:"status,omitempty,omitzero"`
}

BGP is the Schema for the bgp API

func (*BGP) DeepCopy

func (in *BGP) DeepCopy() *BGP

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

func (*BGP) DeepCopyInto

func (in *BGP) DeepCopyInto(out *BGP)

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

func (*BGP) DeepCopyObject

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

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

func (*BGP) GetConditions

func (bgp *BGP) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*BGP) SetConditions

func (bgp *BGP) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type BGPAddressFamilies

type BGPAddressFamilies struct {
	// Ipv4Unicast configures IPv4 unicast address family support.
	// Enables exchange of IPv4 unicast routes between BGP peers.
	// +optional
	Ipv4Unicast *BGPAddressFamily `json:"ipv4Unicast,omitempty"`

	// Ipv6Unicast configures IPv6 unicast address family support.
	// Enables exchange of IPv6 unicast routes between BGP peers.
	// +optional
	Ipv6Unicast *BGPAddressFamily `json:"ipv6Unicast,omitempty"`

	// L2vpnEvpn configures L2VPN EVPN address family support.
	// Enables exchange of Ethernet VPN routes for overlay network services.
	// +optional
	L2vpnEvpn *BGPL2vpnEvpn `json:"l2vpnEvpn,omitempty"`
}

BGPAddressFamilies defines the configuration for supported BGP address families.

func (*BGPAddressFamilies) DeepCopy

func (in *BGPAddressFamilies) DeepCopy() *BGPAddressFamilies

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

func (*BGPAddressFamilies) DeepCopyInto

func (in *BGPAddressFamilies) DeepCopyInto(out *BGPAddressFamilies)

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

type BGPAddressFamily

type BGPAddressFamily struct {
	// Enabled determines whether this address family is activated for BGP sessions.
	// When false, the address family is not negotiated with peers.
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// Multipath configures address family specific multipath behavior.
	// When specified, overrides global multipath settings for this address family.
	// +optional
	Multipath *BGPMultipath `json:"multipath,omitempty"`
}

BGPAddressFamily defines common configuration for a BGP address family.

func (*BGPAddressFamily) DeepCopy

func (in *BGPAddressFamily) DeepCopy() *BGPAddressFamily

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

func (*BGPAddressFamily) DeepCopyInto

func (in *BGPAddressFamily) DeepCopyInto(out *BGPAddressFamily)

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

type BGPAddressFamilyType

type BGPAddressFamilyType string

BGPAddressFamilyType represents the BGP address family identifier (AFI/SAFI combination). +kubebuilder:validation:Enum=IPv4Unicast;IPv6Unicast;L2vpnEvpn

const (
	// BGPAddressFamilyIpv4Unicast represents the IPv4 Unicast address family (AFI=1, SAFI=1).
	BGPAddressFamilyIpv4Unicast BGPAddressFamilyType = "IPv4Unicast"
	// BGPAddressFamilyIpv6Unicast represents the IPv6 Unicast address family (AFI=2, SAFI=1).
	BGPAddressFamilyIpv6Unicast BGPAddressFamilyType = "IPv6Unicast"
	// BGPAddressFamilyL2vpnEvpn represents the L2VPN EVPN address family (AFI=25, SAFI=70).
	BGPAddressFamilyL2vpnEvpn BGPAddressFamilyType = "L2vpnEvpn"
)

type BGPCommunityType

type BGPCommunityType string

BGPCommunityType represents the type of BGP community attributes that can be sent to peers. +kubebuilder:validation:Enum=Standard;Extended;Both

const (
	// BGPCommunityTypeStandard sends only standard community attributes (RFC 1997)
	BGPCommunityTypeStandard BGPCommunityType = "Standard"
	// BGPCommunityTypeExtended sends only extended community attributes (RFC 4360)
	BGPCommunityTypeExtended BGPCommunityType = "Extended"
	// BGPCommunityTypeBoth sends both standard and extended community attributes
	BGPCommunityTypeBoth BGPCommunityType = "Both"
)

type BGPL2vpnEvpn

type BGPL2vpnEvpn struct {
	BGPAddressFamily `json:",inline"`

	// RouteTargetPolicy configures route target filtering behavior for EVPN routes.
	// Controls which routes are retained based on route target matching.
	// +optional
	RouteTargetPolicy *BGPRouteTargetPolicy `json:"routeTargetPolicy,omitempty"`
}

BGPL2vpnEvpn defines the configuration for L2VPN EVPN address family.

func (*BGPL2vpnEvpn) DeepCopy

func (in *BGPL2vpnEvpn) DeepCopy() *BGPL2vpnEvpn

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

func (*BGPL2vpnEvpn) DeepCopyInto

func (in *BGPL2vpnEvpn) DeepCopyInto(out *BGPL2vpnEvpn)

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

type BGPList

type BGPList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []BGP `json:"items"`
}

BGPList contains a list of BGP

func (*BGPList) DeepCopy

func (in *BGPList) DeepCopy() *BGPList

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

func (*BGPList) DeepCopyInto

func (in *BGPList) DeepCopyInto(out *BGPList)

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

func (*BGPList) DeepCopyObject

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

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

type BGPMultipath

type BGPMultipath struct {
	// Enabled determines whether BGP is allowed to use multiple paths for forwarding.
	// When false, BGP will only use a single best path regardless of multiple equal-cost paths.
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// Ebgp configures multipath behavior for external BGP (eBGP) paths.
	// +optional
	Ebgp *BGPMultipathEbgp `json:"ebgp,omitempty"`

	// Ibgp configures multipath behavior for internal BGP (iBGP) paths.
	// +optional
	Ibgp *BGPMultipathIbgp `json:"ibgp,omitempty"`
}

BGPMultipath defines the configuration for BGP multipath behavior.

func (*BGPMultipath) DeepCopy

func (in *BGPMultipath) DeepCopy() *BGPMultipath

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

func (*BGPMultipath) DeepCopyInto

func (in *BGPMultipath) DeepCopyInto(out *BGPMultipath)

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

type BGPMultipathEbgp

type BGPMultipathEbgp struct {
	// AllowMultipleAs enables the use of multiple paths with different AS paths for eBGP.
	// When true, relaxes the requirement that multipath candidates must have identical AS paths.
	// This corresponds to the "RelaxAs" mode.
	// +optional
	AllowMultipleAs bool `json:"allowMultipleAs,omitempty"`

	// MaximumPaths sets the maximum number of eBGP paths that can be used for multipath load balancing.
	// Valid range is 1-64 when specified. When omitted, no explicit limit is configured.
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=64
	MaximumPaths int8 `json:"maximumPaths,omitempty"`
}

BGPMultipathEbgp defines the configuration for eBGP multipath behavior.

func (*BGPMultipathEbgp) DeepCopy

func (in *BGPMultipathEbgp) DeepCopy() *BGPMultipathEbgp

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

func (*BGPMultipathEbgp) DeepCopyInto

func (in *BGPMultipathEbgp) DeepCopyInto(out *BGPMultipathEbgp)

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

type BGPMultipathIbgp

type BGPMultipathIbgp struct {
	// MaximumPaths sets the maximum number of iBGP paths that can be used for multipath load balancing.
	// Valid range is 1-64 when specified. When omitted, no explicit limit is configured.
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=64
	MaximumPaths int8 `json:"maximumPaths,omitempty"`
}

BGPMultipathIbgp defines the configuration for iBGP multipath behavior.

func (*BGPMultipathIbgp) DeepCopy

func (in *BGPMultipathIbgp) DeepCopy() *BGPMultipathIbgp

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

func (*BGPMultipathIbgp) DeepCopyInto

func (in *BGPMultipathIbgp) DeepCopyInto(out *BGPMultipathIbgp)

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

type BGPPeer

type BGPPeer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec BGPPeerSpec `json:"spec"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status BGPPeerStatus `json:"status,omitempty,omitzero"`
}

BGPPeer is the Schema for the bgppeers API

func (*BGPPeer) DeepCopy

func (in *BGPPeer) DeepCopy() *BGPPeer

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

func (*BGPPeer) DeepCopyInto

func (in *BGPPeer) DeepCopyInto(out *BGPPeer)

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

func (*BGPPeer) DeepCopyObject

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

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

func (*BGPPeer) GetConditions

func (bgp *BGPPeer) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*BGPPeer) SetConditions

func (bgp *BGPPeer) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type BGPPeerAddressFamilies

type BGPPeerAddressFamilies struct {
	// Ipv4Unicast configures IPv4 unicast address family settings for this peer.
	// Controls IPv4 unicast route exchange and peer-specific behavior.
	// +optional
	Ipv4Unicast *BGPPeerAddressFamily `json:"ipv4Unicast,omitempty"`

	// Ipv6Unicast configures IPv6 unicast address family settings for this peer.
	// Controls IPv6 unicast route exchange and peer-specific behavior.
	// +optional
	Ipv6Unicast *BGPPeerAddressFamily `json:"ipv6Unicast,omitempty"`

	// L2vpnEvpn configures L2VPN EVPN address family settings for this peer.
	// Controls EVPN route exchange and peer-specific behavior.
	// +optional
	L2vpnEvpn *BGPPeerAddressFamily `json:"l2vpnEvpn,omitempty"`
}

BGPPeerAddressFamilies defines the address family specific configuration for a BGP peer.

func (*BGPPeerAddressFamilies) DeepCopy

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

func (*BGPPeerAddressFamilies) DeepCopyInto

func (in *BGPPeerAddressFamilies) DeepCopyInto(out *BGPPeerAddressFamilies)

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

type BGPPeerAddressFamily

type BGPPeerAddressFamily struct {
	// Enabled determines whether this address family is activated for this specific peer.
	// When false, the address family is not negotiated with this peer.
	// Defaults to false.
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// SendCommunity specifies which community attributes should be sent to this BGP peer
	// for this address family. If not specified, no community attributes are sent.
	// +optional
	SendCommunity BGPCommunityType `json:"sendCommunity,omitempty"`

	// RouteReflectorClient indicates whether this peer should be treated as a route reflector client
	// for this specific address family. Defaults to false.
	// +optional
	RouteReflectorClient bool `json:"routeReflectorClient,omitempty"`
}

BGPPeerAddressFamily defines common configuration for a BGP peer's address family.

func (*BGPPeerAddressFamily) DeepCopy

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

func (*BGPPeerAddressFamily) DeepCopyInto

func (in *BGPPeerAddressFamily) DeepCopyInto(out *BGPPeerAddressFamily)

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

type BGPPeerList

type BGPPeerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []BGPPeer `json:"items"`
}

BGPPeerList contains a list of BGPPeer

func (*BGPPeerList) DeepCopy

func (in *BGPPeerList) DeepCopy() *BGPPeerList

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

func (*BGPPeerList) DeepCopyInto

func (in *BGPPeerList) DeepCopyInto(out *BGPPeerList)

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

func (*BGPPeerList) DeepCopyObject

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

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

type BGPPeerLocalAddress

type BGPPeerLocalAddress struct {
	// InterfaceRef is a reference to an Interface resource whose IP address will be used
	// as the source address for BGP packets sent to this peer.
	// The Interface object must exist in the same namespace.
	// +required
	InterfaceRef LocalObjectReference `json:"interfaceRef,omitempty"`
}

BGPPeerLocalAddress defines the local address configuration for a BGP peer.

func (*BGPPeerLocalAddress) DeepCopy

func (in *BGPPeerLocalAddress) DeepCopy() *BGPPeerLocalAddress

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

func (*BGPPeerLocalAddress) DeepCopyInto

func (in *BGPPeerLocalAddress) DeepCopyInto(out *BGPPeerLocalAddress)

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

type BGPPeerSessionState

type BGPPeerSessionState string

BGPPeerSessionState represents the operational state of a BGP peer session. +kubebuilder:validation:Enum=Idle;Connect;Active;OpenSent;OpenConfirm;Established;Unknown

const (
	// BGPPeerSessionStateIdle indicates the peer is down and in the idle state of the FSM.
	BGPPeerSessionStateIdle BGPPeerSessionState = "Idle"
	// BGPPeerSessionStateConnect indicates the peer is down and the session is waiting for
	// the underlying transport session to be established.
	BGPPeerSessionStateConnect BGPPeerSessionState = "Connect"
	// BGPPeerSessionStateActive indicates the peer is down and the local system is awaiting
	// a connection from the remote peer.
	BGPPeerSessionStateActive BGPPeerSessionState = "Active"
	// BGPPeerSessionStateOpenSent indicates the peer is in the process of being established.
	// The local system has sent an OPEN message.
	BGPPeerSessionStateOpenSent BGPPeerSessionState = "OpenSent"
	// BGPPeerSessionStateOpenConfirm indicates the peer is in the process of being established.
	// The local system is awaiting a NOTIFICATION or KEEPALIVE message.
	BGPPeerSessionStateOpenConfirm BGPPeerSessionState = "OpenConfirm"
	// BGPPeerSessionStateEstablished indicates the peer is up - the BGP session with the peer is established.
	BGPPeerSessionStateEstablished BGPPeerSessionState = "Established"
	// BGPPeerSessionStateUnknown indicates the peer state is unknown.
	BGPPeerSessionStateUnknown BGPPeerSessionState = "Unknown"
)

type BGPPeerSpec

type BGPPeerSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the BGP to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Address is the IPv4 address of the BGP peer.
	// +required
	// +kubebuilder:validation:Format=ipv4
	Address string `json:"address"`

	// ASNumber is the autonomous system number (ASN) of the BGP peer.
	// Supports both plain format (1-4294967295) and dotted notation (1-65535.0-65535) as per RFC 5396.
	// +required
	ASNumber intstr.IntOrString `json:"asNumber"`

	// Description is an optional human-readable description for this BGP peer.
	// This field is used for documentation purposes and may be displayed in management interfaces.
	// +optional
	Description string `json:"description,omitempty"`

	// LocalAddress specifies the local address configuration for the BGP session with this peer.
	// This determines the source address/interface for BGP packets sent to this peer.
	// +optional
	LocalAddress *BGPPeerLocalAddress `json:"localAddress,omitempty"`

	// AddressFamilies configures address family specific settings for this BGP peer.
	// Controls which address families are enabled and their specific configuration.
	// +optional
	AddressFamilies *BGPPeerAddressFamilies `json:"addressFamilies,omitempty"`
}

BGPPeerSpec defines the desired state of BGPPeer

func (*BGPPeerSpec) DeepCopy

func (in *BGPPeerSpec) DeepCopy() *BGPPeerSpec

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

func (*BGPPeerSpec) DeepCopyInto

func (in *BGPPeerSpec) DeepCopyInto(out *BGPPeerSpec)

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

type BGPPeerStatus

type BGPPeerStatus struct {
	// SessionState is the current operational state of the BGP session.
	// +optional
	SessionState BGPPeerSessionState `json:"sessionState,omitempty"`

	// LastEstablishedTime is the timestamp when the BGP session last transitioned to the ESTABLISHED state.
	// A frequently changing timestamp indicates session instability (flapping).
	// +optional
	LastEstablishedTime *metav1.Time `json:"lastEstablishedTime,omitempty"`

	// AdvertisedPrefixesSummary provides a human-readable summary of advertised prefixes
	// across all address families (e.g., "10 (IPv4Unicast), 5 (IPv6Unicast)").
	// This field is computed by the controller from the AddressFamilies field.
	// +optional
	AdvertisedPrefixesSummary string `json:"advertisedPrefixesSummary,omitempty"`

	// AddressFamilies contains per-address-family statistics for this peer.
	// Only address families that are enabled and negotiated with the peer are included.
	// +optional
	// +listType=map
	// +listMapKey=afiSafi
	// +patchStrategy=merge
	// +patchMergeKey=afiSafi
	AddressFamilies []AddressFamilyStatus `json:"addressFamilies,omitempty"`

	// ObservedGeneration reflects the .metadata.generation that was last processed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// The conditions are a list of status objects that describe the state of the BGP.
	// +listType=map
	// +listMapKey=type
	// +patchStrategy=merge
	// +patchMergeKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

BGPPeerStatus defines the observed state of BGPPeer.

func (*BGPPeerStatus) DeepCopy

func (in *BGPPeerStatus) DeepCopy() *BGPPeerStatus

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

func (*BGPPeerStatus) DeepCopyInto

func (in *BGPPeerStatus) DeepCopyInto(out *BGPPeerStatus)

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

type BGPRouteTargetPolicy

type BGPRouteTargetPolicy struct {
	// RetainAll controls whether all route targets are retained regardless of import policy.
	// +optional
	RetainAll bool `json:"retainAll,omitempty"`
}

BGPRouteTargetPolicy defines the policy for route target filtering in EVPN.

func (*BGPRouteTargetPolicy) DeepCopy

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

func (*BGPRouteTargetPolicy) DeepCopyInto

func (in *BGPRouteTargetPolicy) DeepCopyInto(out *BGPRouteTargetPolicy)

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

type BGPSpec

type BGPSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the BGP to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// ASNumber is the autonomous system number (ASN) for the BGP router.
	// Supports both plain format (1-4294967295) and dotted notation (1-65535.0-65535) as per RFC 5396.
	// +required
	ASNumber intstr.IntOrString `json:"asNumber"`

	// RouterID is the BGP router identifier, used in BGP messages to identify the originating router.
	// Follows dotted quad notation (IPv4 format).
	// +required
	// +kubebuilder:validation:Format=ipv4
	RouterID string `json:"routerId"`

	// AddressFamilies configures supported BGP address families and their specific settings.
	// +optional
	AddressFamilies *BGPAddressFamilies `json:"addressFamilies,omitempty"`
}

BGPSpec defines the desired state of BGP

func (*BGPSpec) DeepCopy

func (in *BGPSpec) DeepCopy() *BGPSpec

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

func (*BGPSpec) DeepCopyInto

func (in *BGPSpec) DeepCopyInto(out *BGPSpec)

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

type BGPStatus

type BGPStatus struct {
	// The conditions are a list of status objects that describe the state of the BGP.
	// +listType=map
	// +listMapKey=type
	// +patchStrategy=merge
	// +patchMergeKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

BGPStatus defines the observed state of BGP.

func (*BGPStatus) DeepCopy

func (in *BGPStatus) DeepCopy() *BGPStatus

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

func (*BGPStatus) DeepCopyInto

func (in *BGPStatus) DeepCopyInto(out *BGPStatus)

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

type Banner struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec BannerSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status BannerStatus `json:"status,omitempty,omitzero"`
}

Banner is the Schema for the banners API

func (*Banner) DeepCopy

func (in *Banner) DeepCopy() *Banner

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

func (*Banner) DeepCopyInto

func (in *Banner) DeepCopyInto(out *Banner)

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

func (*Banner) DeepCopyObject

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

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

func (*Banner) GetConditions

func (b *Banner) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*Banner) SetConditions

func (b *Banner) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type BannerList

type BannerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Banner `json:"items"`
}

BannerList contains a list of Banner

func (*BannerList) DeepCopy

func (in *BannerList) DeepCopy() *BannerList

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

func (*BannerList) DeepCopyInto

func (in *BannerList) DeepCopyInto(out *BannerList)

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

func (*BannerList) DeepCopyObject

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

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

type BannerSpec

type BannerSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the Banner to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Pre-Login banner to display on login.
	// +required
	Message TemplateSource `json:"message"`
}

BannerSpec defines the desired state of Banner

func (*BannerSpec) DeepCopy

func (in *BannerSpec) DeepCopy() *BannerSpec

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

func (*BannerSpec) DeepCopyInto

func (in *BannerSpec) DeepCopyInto(out *BannerSpec)

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

type BannerStatus

type BannerStatus struct {
	// The conditions are a list of status objects that describe the state of the Banner.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

BannerStatus defines the observed state of Banner.

func (*BannerStatus) DeepCopy

func (in *BannerStatus) DeepCopy() *BannerStatus

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

func (*BannerStatus) DeepCopyInto

func (in *BannerStatus) DeepCopyInto(out *BannerStatus)

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

type Bootstrap

type Bootstrap struct {
	// Template defines the multiline string template that contains the initial configuration for the device.
	// +required
	Template TemplateSource `json:"template"`
}

Bootstrap defines the configuration for device bootstrap.

func (*Bootstrap) DeepCopy

func (in *Bootstrap) DeepCopy() *Bootstrap

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

func (*Bootstrap) DeepCopyInto

func (in *Bootstrap) DeepCopyInto(out *Bootstrap)

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

type Certificate

type Certificate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec CertificateSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status CertificateStatus `json:"status,omitempty,omitzero"`
}

Certificate is the Schema for the certificates API

func (*Certificate) DeepCopy

func (in *Certificate) DeepCopy() *Certificate

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

func (*Certificate) DeepCopyInto

func (in *Certificate) DeepCopyInto(out *Certificate)

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

func (*Certificate) DeepCopyObject

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

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

func (*Certificate) GetConditions

func (cert *Certificate) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*Certificate) SetConditions

func (cert *Certificate) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type CertificateList

type CertificateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Certificate `json:"items"`
}

CertificateList contains a list of Certificate

func (*CertificateList) DeepCopy

func (in *CertificateList) DeepCopy() *CertificateList

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

func (*CertificateList) DeepCopyInto

func (in *CertificateList) DeepCopyInto(out *CertificateList)

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

func (*CertificateList) DeepCopyObject

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

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

type CertificateSource

type CertificateSource struct {
	// Secret containing the certificate.
	// The secret must be of type kubernetes.io/tls and as such contain the following keys: 'tls.crt' and 'tls.key'.
	// +required
	SecretRef SecretReference `json:"secretRef,omitempty"`
}

CertificateSource represents a source for the value of a certificate.

func (*CertificateSource) DeepCopy

func (in *CertificateSource) DeepCopy() *CertificateSource

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

func (*CertificateSource) DeepCopyInto

func (in *CertificateSource) DeepCopyInto(out *CertificateSource)

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

type CertificateSpec

type CertificateSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the Certificate to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// The certificate management id.
	// Immutable.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ID is immutable"
	ID string `json:"id"`

	// Secret containing the certificate source.
	// The secret must be of type kubernetes.io/tls and as such contain the following keys: 'tls.crt' and 'tls.key'.
	// +required
	SecretRef SecretReference `json:"secretRef"`
}

CertificateSpec defines the desired state of Certificate

func (*CertificateSpec) DeepCopy

func (in *CertificateSpec) DeepCopy() *CertificateSpec

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

func (*CertificateSpec) DeepCopyInto

func (in *CertificateSpec) DeepCopyInto(out *CertificateSpec)

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

type CertificateStatus

type CertificateStatus struct {
	// The conditions are a list of status objects that describe the state of the Certificate.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

CertificateStatus defines the observed state of Certificate.

func (*CertificateStatus) DeepCopy

func (in *CertificateStatus) DeepCopy() *CertificateStatus

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

func (*CertificateStatus) DeepCopyInto

func (in *CertificateStatus) DeepCopyInto(out *CertificateStatus)

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

type ConfigMapKeySelector

type ConfigMapKeySelector struct {
	// Name of the configmap resource being referred to.
	ConfigMapReference `json:",inline"`

	// Key is the of the entry in the configmap resource's `data` or `binaryData`
	// field to be used.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Key string `json:"key"`
}

ConfigMapKeySelector contains enough information to select a key of a ConfigMap. +structType=atomic

func (*ConfigMapKeySelector) DeepCopy

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

func (*ConfigMapKeySelector) DeepCopyInto

func (in *ConfigMapKeySelector) DeepCopyInto(out *ConfigMapKeySelector)

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

type ConfigMapReference

type ConfigMapReference struct {
	// Name is unique within a namespace to reference a configmap resource.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Name string `json:"name"`

	// Namespace defines the space within which the configmap name must be unique.
	// If omitted, the namespace of the object being reconciled will be used.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Namespace string `json:"namespace,omitempty"`
}

ConfigMapReference represents a ConfigMap Reference. It has enough information to retrieve a ConfigMap in any namespace. +structType=atomic

func (*ConfigMapReference) DeepCopy

func (in *ConfigMapReference) DeepCopy() *ConfigMapReference

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

func (*ConfigMapReference) DeepCopyInto

func (in *ConfigMapReference) DeepCopyInto(out *ConfigMapReference)

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

type ControlProtocol

type ControlProtocol struct {
	// Mode defines the LACP mode for the aggregate interface.
	// +required
	Mode LACPMode `json:"mode"`
}

func (*ControlProtocol) DeepCopy

func (in *ControlProtocol) DeepCopy() *ControlProtocol

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

func (*ControlProtocol) DeepCopyInto

func (in *ControlProtocol) DeepCopyInto(out *ControlProtocol)

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

type DNS

type DNS struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec DNSSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status DNSStatus `json:"status,omitempty,omitzero"`
}

DNS is the Schema for the dns API

func (*DNS) DeepCopy

func (in *DNS) DeepCopy() *DNS

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

func (*DNS) DeepCopyInto

func (in *DNS) DeepCopyInto(out *DNS)

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

func (*DNS) DeepCopyObject

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

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

func (*DNS) GetConditions

func (dns *DNS) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*DNS) SetConditions

func (dns *DNS) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type DNSList

type DNSList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []DNS `json:"items"`
}

DNSList contains a list of DNS

func (*DNSList) DeepCopy

func (in *DNSList) DeepCopy() *DNSList

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

func (*DNSList) DeepCopyInto

func (in *DNSList) DeepCopyInto(out *DNSList)

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

func (*DNSList) DeepCopyObject

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

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

type DNSSpec

type DNSSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the DNS to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Default domain name that the device uses to complete unqualified hostnames.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	// +kubebuilder:validation:Format=hostname
	Domain string `json:"domain"`

	// A list of DNS servers to use for address resolution.
	// +optional
	// +listType=map
	// +listMapKey=address
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=6
	Servers []NameServer `json:"servers,omitempty"`

	// Source interface for all DNS traffic.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	SourceInterfaceName string `json:"sourceInterfaceName,omitempty"`
}

DNSSpec defines the desired state of DNS

func (*DNSSpec) DeepCopy

func (in *DNSSpec) DeepCopy() *DNSSpec

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

func (*DNSSpec) DeepCopyInto

func (in *DNSSpec) DeepCopyInto(out *DNSSpec)

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

type DNSStatus

type DNSStatus struct {
	// The conditions are a list of status objects that describe the state of the DNS.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

DNSStatus defines the observed state of DNS.

func (*DNSStatus) DeepCopy

func (in *DNSStatus) DeepCopy() *DNSStatus

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

func (*DNSStatus) DeepCopyInto

func (in *DNSStatus) DeepCopyInto(out *DNSStatus)

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

type Device

type Device struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	Spec DeviceSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	Status DeviceStatus `json:"status,omitempty"`
}

Device is the Schema for the devices API.

func (*Device) DeepCopy

func (in *Device) DeepCopy() *Device

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

func (*Device) DeepCopyInto

func (in *Device) DeepCopyInto(out *Device)

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

func (*Device) DeepCopyObject

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

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

func (*Device) GetConditions

func (d *Device) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*Device) GetConfigMapRefs

func (d *Device) GetConfigMapRefs() []ConfigMapReference

GetConfigMapRefs returns the list of configmaps referenced in the Device resource.

func (*Device) GetSecretRefs

func (d *Device) GetSecretRefs() []SecretReference

GetSecretRefs returns the list of secrets referenced in the Device resource.

func (*Device) SetConditions

func (d *Device) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type DeviceList

type DeviceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Device `json:"items"`
}

DeviceList contains a list of Device.

func (*DeviceList) DeepCopy

func (in *DeviceList) DeepCopy() *DeviceList

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

func (*DeviceList) DeepCopyInto

func (in *DeviceList) DeepCopyInto(out *DeviceList)

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

func (*DeviceList) DeepCopyObject

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

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

type DevicePhase

type DevicePhase string

DevicePhase represents the current phase of the Device as it's being provisioned and managed by the operator. +kubebuilder:validation:Enum=Pending;Provisioning;Active;Failed

const (
	// DevicePhasePending indicates that the device is pending and has not yet been provisioned.
	DevicePhasePending DevicePhase = "Pending"
	// DevicePhaseProvisioning indicates that the device is being provisioned.
	DevicePhaseProvisioning DevicePhase = "Provisioning"
	// DevicePhaseActive indicates that the device has been successfully provisioned and is now ready for use.
	DevicePhaseActive DevicePhase = "Active"
	// DevicePhaseFailed indicates that the device provisioning has failed.
	DevicePhaseFailed DevicePhase = "Failed"
)

type DevicePort

type DevicePort struct {
	// Name is the name of the port.
	// +required
	Name string `json:"name"`

	// Type is the type of the port, e.g. "10g".
	// +optional
	Type string `json:"type,omitempty"`

	// SupportedSpeedsGbps is the list of supported speeds in Gbps for this port.
	// +optional
	SupportedSpeedsGbps []int32 `json:"supportedSpeedsGbps,omitempty"`

	// Transceiver is the type of transceiver plugged into the port, if any.
	// +optional
	Trasceiver string `json:"transceiver,omitempty"`

	// InterfaceRef is the reference to the corresponding Interface resource
	// configuring this port, if any.
	// +optional
	InterfaceRef *LocalObjectReference `json:"interfaceName,omitzero"`
}

func (*DevicePort) DeepCopy

func (in *DevicePort) DeepCopy() *DevicePort

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

func (*DevicePort) DeepCopyInto

func (in *DevicePort) DeepCopyInto(out *DevicePort)

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

type DeviceSpec

type DeviceSpec struct {
	// Endpoint contains the connection information for the device.
	// +required
	Endpoint Endpoint `json:"endpoint"`

	// Bootstrap is an optional configuration for the device bootstrap process.
	// It can be used to provide initial configuration templates or scripts that are applied during the device provisioning.
	// +optional
	Bootstrap *Bootstrap `json:"bootstrap,omitempty"`
}

DeviceSpec defines the desired state of Device.

func (*DeviceSpec) DeepCopy

func (in *DeviceSpec) DeepCopy() *DeviceSpec

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

func (*DeviceSpec) DeepCopyInto

func (in *DeviceSpec) DeepCopyInto(out *DeviceSpec)

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

type DeviceStatus

type DeviceStatus struct {
	// Phase represents the current phase of the Device.
	// +kubebuilder:default=Pending
	// +required
	Phase DevicePhase `json:"phase,omitempty"`

	// Manufacturer is the manufacturer of the Device.
	// +optional
	Manufacturer string `json:"manufacturer,omitempty"`

	// Model is the model identifier of the Device.
	// +optional
	Model string `json:"model,omitempty"`

	// SerialNumber is the serial number of the Device.
	// +optional
	SerialNumber string `json:"serialNumber,omitempty"`

	// FirmwareVersion is the firmware version running on the Device.
	// +optional
	FirmwareVersion string `json:"firmwareVersion,omitempty"`

	// Ports is the list of ports on the Device.
	// +optional
	Ports []DevicePort `json:"ports,omitempty"`

	// PostSummary shows a summary of the port configured, grouped by type, e.g. "1/4 (10g), 3/64 (100g)".
	// +optional
	PostSummary string `json:"portSummary,omitempty"`

	// The conditions are a list of status objects that describe the state of the Device.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

DeviceStatus defines the observed state of Device.

func (*DeviceStatus) DeepCopy

func (in *DeviceStatus) DeepCopy() *DeviceStatus

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

func (*DeviceStatus) DeepCopyInto

func (in *DeviceStatus) DeepCopyInto(out *DeviceStatus)

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

type Endpoint

type Endpoint struct {
	// Address is the management address of the device provided as <ip:port>.
	// +kubebuilder:validation:Pattern=`^(\d{1,3}\.){3}\d{1,3}:\d{1,5}$`
	// +required
	Address string `json:"address"`

	// SecretRef is name of the authentication secret for the device containing the username and password.
	// The secret must be of type kubernetes.io/basic-auth and as such contain the following keys: 'username' and 'password'.
	// +optional
	SecretRef *SecretReference `json:"secretRef,omitempty"`

	// Transport credentials for grpc connection to the switch.
	// +optional
	TLS *TLS `json:"tls,omitempty"`
}

Endpoint contains the connection information for the device. +kubebuilder:validation:XValidation:rule="!has(oldSelf.secretRef) || has(self.secretRef)", message="SecretRef is required once set"

func (*Endpoint) DeepCopy

func (in *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto

func (in *Endpoint) DeepCopyInto(out *Endpoint)

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

type GNMI

type GNMI struct {
	// The maximum number of concurrent gNMI calls that can be made to the gRPC server on the switch for each VRF.
	// Configure a limit from 1 through 16. The default limit is 8.
	// +optional
	// +kubebuilder:default=8
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=16
	// +kubebuilder:validation:ExclusiveMaximum=false
	MaxConcurrentCall int8 `json:"maxConcurrentCall"`

	// Configure the keepalive timeout for inactive or unauthorized connections.
	// The gRPC agent is expected to periodically send an empty response to the client, on which the client is expected to respond with an empty request.
	// If the client does not respond within the keepalive timeout, the gRPC agent should close the connection.
	// The default interval value is 10 minutes.
	// +optional
	// +kubebuilder:default="10m"
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	KeepAliveTimeout metav1.Duration `json:"keepAliveTimeout"`
}

func (*GNMI) DeepCopy

func (in *GNMI) DeepCopy() *GNMI

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

func (*GNMI) DeepCopyInto

func (in *GNMI) DeepCopyInto(out *GNMI)

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

type GRPC

type GRPC struct {
	// Enable or disable the gRPC server on the device.
	// If not specified, the gRPC server is enabled by default.
	// +optional
	// +kubebuilder:default=true
	Enabled bool `json:"enabled"`

	// The TCP port on which the gRPC server should listen.
	// The range of port-id is from 1024 to 65535.
	// Port 9339 is the default.
	// +optional
	// +kubebuilder:default=9339
	// +kubebuilder:validation:Minimum=1024
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:ExclusiveMaximum=false
	Port int32 `json:"port"`

	// Name of the certificate that is associated with the gRPC service.
	// The certificate is provisioned through other interfaces on the device,
	// such as e.g. the gNOI certificate management service.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	CertificateID string `json:"certificateId,omitempty"`

	// Enable the gRPC agent to accept incoming (dial-in) RPC requests from a given vrf.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	VrfName string `json:"vrfName"`

	// Additional gNMI configuration for the gRPC server.
	// This may not be supported by all devices.
	// +optional
	// +kubebuilder:default={maxConcurrentCall:8, keepAliveTimeout:"10m"}
	GNMI GNMI `json:"gnmi,omitzero"`
}

func (*GRPC) DeepCopy

func (in *GRPC) DeepCopy() *GRPC

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

func (*GRPC) DeepCopyInto

func (in *GRPC) DeepCopyInto(out *GRPC)

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

type IPPrefix

type IPPrefix struct {
	netip.Prefix `json:"-"`
}

IPPrefix represents an IP prefix in CIDR notation. It is used to define a range of IP addresses in a network.

+kubebuilder:validation:Type=string +kubebuilder:validation:Format=cidr +kubebuilder:validation:Example="192.168.1.0/24" +kubebuilder:validation:Example="2001:db8::/32" +kubebuilder:object:generate=false

func MustParsePrefix

func MustParsePrefix(s string) IPPrefix

func ParsePrefix

func ParsePrefix(s string) (IPPrefix, error)

func (*IPPrefix) DeepCopy

func (in *IPPrefix) DeepCopy() *IPPrefix

DeepCopy creates a deep copy of the IPPrefix

func (*IPPrefix) DeepCopyInto

func (in *IPPrefix) DeepCopyInto(out *IPPrefix)

DeepCopyInto copies all properties of this object into another object of the same type

func (IPPrefix) IsZero

func (p IPPrefix) IsZero() bool

IsZero reports whether p represents the zero value

func (IPPrefix) MarshalJSON

func (p IPPrefix) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (*IPPrefix) UnmarshalJSON

func (p *IPPrefix) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ISIS

type ISIS struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec ISISSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status ISISStatus `json:"status,omitempty,omitzero"`
}

ISIS is the Schema for the isis API

func (*ISIS) DeepCopy

func (in *ISIS) DeepCopy() *ISIS

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

func (*ISIS) DeepCopyInto

func (in *ISIS) DeepCopyInto(out *ISIS)

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

func (*ISIS) DeepCopyObject

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

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

func (*ISIS) GetConditions

func (isis *ISIS) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*ISIS) SetConditions

func (isis *ISIS) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type ISISBFD

type ISISBFD struct {
	// Enabled indicates whether BFD is enabled on the interface.
	// +optional
	// +kubebuilder:default=false
	Enabled bool `json:"enabled"`
}

func (*ISISBFD) DeepCopy

func (in *ISISBFD) DeepCopy() *ISISBFD

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

func (*ISISBFD) DeepCopyInto

func (in *ISISBFD) DeepCopyInto(out *ISISBFD)

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

type ISISInterface

type ISISInterface struct {
	// Ref is a reference to the interface object.
	// The interface object must exist in the same namespace.
	// +required
	Ref LocalObjectReference `json:"ref"`

	// BFD contains BFD configuration for the interface.
	// +optional
	// +kubebuilder:default={}
	BFD ISISBFD `json:"bfd,omitzero"`
}

func (*ISISInterface) DeepCopy

func (in *ISISInterface) DeepCopy() *ISISInterface

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

func (*ISISInterface) DeepCopyInto

func (in *ISISInterface) DeepCopyInto(out *ISISInterface)

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

type ISISLevel

type ISISLevel string

ISISLevel represents the level of an ISIS instance. +kubebuilder:validation:Enum=Level1;Level2;Level1-2

const (
	ISISLevel1  ISISLevel = "Level1"
	ISISLevel2  ISISLevel = "Level2"
	ISISLevel12 ISISLevel = "Level1-2"
)

type ISISList

type ISISList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ISIS `json:"items"`
}

ISISList contains a list of ISIS

func (*ISISList) DeepCopy

func (in *ISISList) DeepCopy() *ISISList

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

func (*ISISList) DeepCopyInto

func (in *ISISList) DeepCopyInto(out *ISISList)

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

func (*ISISList) DeepCopyObject

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

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

type ISISSpec

type ISISSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the Interface to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Instance is the name of the ISIS instance.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Instance is immutable"
	Instance string `json:"instance"`

	// NetworkEntityTitle is the NET of the ISIS instance.
	// +required
	// +kubebuilder:validation:Pattern=`^[a-fA-F0-9]{2}(\.[a-fA-F0-9]{4}){3,9}\.[a-fA-F0-9]{2}$`
	NetworkEntityTitle string `json:"networkEntityTitle"`

	// Type indicates the level of the ISIS instance.
	// +required
	Type ISISLevel `json:"type"`

	// OverloadBit indicates the overload bit of the ISIS instance.
	// +optional
	// +kubebuilder:default=Never
	OverloadBit OverloadBit `json:"overloadBit,omitempty"`

	// AddressFamilies is a list of address families for the ISIS instance.
	// +required
	// +listType=set
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=2
	AddressFamilies []AddressFamily `json:"addressFamilies"`

	// Interfaces is a list of interfaces that are part of the ISIS instance.
	// +optional
	// +listType=atomic
	Interfaces []ISISInterface `json:"interfaces,omitempty"`
}

ISISSpec defines the desired state of ISIS

func (*ISISSpec) DeepCopy

func (in *ISISSpec) DeepCopy() *ISISSpec

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

func (*ISISSpec) DeepCopyInto

func (in *ISISSpec) DeepCopyInto(out *ISISSpec)

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

type ISISStatus

type ISISStatus struct {
	// The conditions are a list of status objects that describe the state of the ISIS.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ISISStatus defines the observed state of ISIS.

func (*ISISStatus) DeepCopy

func (in *ISISStatus) DeepCopy() *ISISStatus

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

func (*ISISStatus) DeepCopyInto

func (in *ISISStatus) DeepCopyInto(out *ISISStatus)

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

type Interface

type Interface struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec InterfaceSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status InterfaceStatus `json:"status,omitempty,omitzero"`
}

Interface is the Schema for the interfaces API.

func (*Interface) DeepCopy

func (in *Interface) DeepCopy() *Interface

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

func (*Interface) DeepCopyInto

func (in *Interface) DeepCopyInto(out *Interface)

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

func (*Interface) DeepCopyObject

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

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

func (*Interface) GetConditions

func (in *Interface) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*Interface) SetConditions

func (in *Interface) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type InterfaceIPv4

type InterfaceIPv4 struct {
	// Addresses defines the list of IPv4 addresses assigned to the interface.
	// The first address in the list is considered the primary address,
	// and any additional addresses are considered secondary addresses.
	// +optional
	// +listType=atomic
	// +kubebuilder:validation:MinItems=1
	Addresses []IPPrefix `json:"addresses,omitempty"`

	// Unnumbered defines the unnumbered interface configuration.
	// When specified, the interface borrows the IP address from another interface.
	// +optional
	Unnumbered *InterfaceIPv4Unnumbered `json:"unnumbered,omitempty"`
}

InterfaceIPv4 defines the IPv4 configuration for an interface. +kubebuilder:validation:XValidation:rule="!has(self.addresses) || !has(self.unnumbered)", message="addresses and unnumbered are mutually exclusive"

func (*InterfaceIPv4) DeepCopy

func (in *InterfaceIPv4) DeepCopy() *InterfaceIPv4

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

func (*InterfaceIPv4) DeepCopyInto

func (in *InterfaceIPv4) DeepCopyInto(out *InterfaceIPv4)

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

type InterfaceIPv4Unnumbered

type InterfaceIPv4Unnumbered struct {
	// InterfaceRef is a reference to the interface from which to borrow the IP address.
	// The referenced interface must exist and have at least one IPv4 address configured.
	// +required
	InterfaceRef LocalObjectReference `json:"interfaceRef"`
}

InterfaceIPv4Unnumbered defines the unnumbered interface configuration. An unnumbered interface borrows the IP address from another interface, allowing the interface to function without its own IP address assignment.

func (*InterfaceIPv4Unnumbered) DeepCopy

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

func (*InterfaceIPv4Unnumbered) DeepCopyInto

func (in *InterfaceIPv4Unnumbered) DeepCopyInto(out *InterfaceIPv4Unnumbered)

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

type InterfaceList

type InterfaceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Interface `json:"items"`
}

InterfaceList contains a list of Interface.

func (*InterfaceList) DeepCopy

func (in *InterfaceList) DeepCopy() *InterfaceList

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

func (*InterfaceList) DeepCopyInto

func (in *InterfaceList) DeepCopyInto(out *InterfaceList)

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

func (*InterfaceList) DeepCopyObject

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

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

type InterfaceSpec

type InterfaceSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the Interface to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Name is the name of the interface.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Name is immutable"
	Name string `json:"name"`

	// AdminState indicates whether the interface is administratively up or down.
	// +required
	AdminState AdminState `json:"adminState"`

	// Description provides a human-readable description of the interface.
	// +optional
	// +kubebuilder:validation:MaxLength=255
	Description string `json:"description,omitempty"`

	// Type indicates the type of the interface.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Type is immutable"
	Type InterfaceType `json:"type"`

	// MTU (Maximum Transmission Unit) specifies the size of the largest packet that can be sent over the interface.
	// +optional
	// +kubebuilder:validation:Minimum=576
	// +kubebuilder:validation:Maximum=9216
	MTU int32 `json:"mtu,omitempty"`

	// Switchport defines the switchport configuration for the interface.
	// This is only applicable for Ethernet and Aggregate interfaces.
	// +optional
	Switchport *Switchport `json:"switchport,omitempty"`

	// IPv4 defines the IPv4 configuration for the interface.
	// +optional
	IPv4 *InterfaceIPv4 `json:"ipv4,omitempty"`

	// Aggregation defines the aggregation (bundle) configuration for the interface.
	// This is only applicable for interfaces of type Aggregate.
	// +optional
	Aggregation *Aggregation `json:"aggregation,omitempty"`
}

InterfaceSpec defines the desired state of Interface. +kubebuilder:validation:XValidation:rule="!has(self.switchport) || !has(self.ipv4)", message="switchport and ipv4 are mutually exclusive" +kubebuilder:validation:XValidation:rule="self.type != 'Loopback' || !has(self.switchport)", message="switchport must not be specified for interfaces of type Loopback" +kubebuilder:validation:XValidation:rule="self.type == 'Physical' || !has(self.ipv4) || !has(self.ipv4.unnumbered)", message="unnumbered ipv4 configuration can only be used for interfaces of type Physical" +kubebuilder:validation:XValidation:rule="self.type != 'Aggregate' || has(self.aggregation)", message="aggregation must be specified for interfaces of type Aggregate" +kubebuilder:validation:XValidation:rule="self.type == 'Aggregate' || !has(self.aggregation)", message="aggregation must only be specified on interfaces of type Aggregate" +kubebuilder:validation:XValidation:rule="self.type != 'Aggregate' || !has(self.ipv4)", message="ipv4 must not be specified for interfaces of type Aggregate"

func (*InterfaceSpec) DeepCopy

func (in *InterfaceSpec) DeepCopy() *InterfaceSpec

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

func (*InterfaceSpec) DeepCopyInto

func (in *InterfaceSpec) DeepCopyInto(out *InterfaceSpec)

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

type InterfaceStatus

type InterfaceStatus struct {
	// The conditions are a list of status objects that describe the state of the Interface.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// MemberOf references the aggregate interface this interface is a member of, if any.
	// This field only applies to physical interfaces that are part of an aggregate interface.
	// +optional
	MemberOf *LocalObjectReference `json:"memberOf,omitempty"`
}

InterfaceStatus defines the observed state of Interface.

func (*InterfaceStatus) DeepCopy

func (in *InterfaceStatus) DeepCopy() *InterfaceStatus

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

func (*InterfaceStatus) DeepCopyInto

func (in *InterfaceStatus) DeepCopyInto(out *InterfaceStatus)

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

type InterfaceType

type InterfaceType string

InterfaceType represents the type of the interface. +kubebuilder:validation:Enum=Physical;Loopback;Aggregate

const (
	// InterfaceTypePhysical indicates that the interface is a physical/ethernet interface.
	InterfaceTypePhysical InterfaceType = "Physical"
	// InterfaceTypeLoopback indicates that the interface is a loopback interface.
	InterfaceTypeLoopback InterfaceType = "Loopback"
	// InterfaceTypeAggregate indicates that the interface is an aggregate (bundle) interface.
	InterfaceTypeAggregate InterfaceType = "Aggregate"
)

type LACPMode

type LACPMode string

LACPMode represents the LACP mode of an interface. +kubebuilder:validation:Enum=Active;Passive

const (
	// LACPModeActive indicates that LACP is in active mode.
	LACPModeActive LACPMode = "Active"
	// LACPModePassive indicates that LACP is in passive mode.
	LACPModePassive LACPMode = "Passive"
)

type LocalObjectReference

type LocalObjectReference struct {
	// Name of the referent.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`
}

LocalObjectReference contains enough information to locate a referenced object inside the same namespace. +structType=atomic

func (*LocalObjectReference) DeepCopy

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

func (*LocalObjectReference) DeepCopyInto

func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference)

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

type LogFacility

type LogFacility struct {
	// The name of the log facility.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	// The severity level of the log messages for this facility.
	// +required
	Severity Severity `json:"severity"`
}

func (*LogFacility) DeepCopy

func (in *LogFacility) DeepCopy() *LogFacility

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

func (*LogFacility) DeepCopyInto

func (in *LogFacility) DeepCopyInto(out *LogFacility)

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

type LogServer

type LogServer struct {
	// IP address or hostname of the remote log server
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Address string `json:"address"`

	// The servity level of the log messages sent to the server.
	// +required
	Severity Severity `json:"severity"`

	// The name of the vrf used to reach the log server.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	VrfName string `json:"vrfName"`

	// The destination port number for syslog UDP messages to
	// the server. The default is 514.
	// +optional
	// +kubebuilder:default=514
	Port int32 `json:"port"`
}

func (*LogServer) DeepCopy

func (in *LogServer) DeepCopy() *LogServer

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

func (*LogServer) DeepCopyInto

func (in *LogServer) DeepCopyInto(out *LogServer)

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

type ManagementAccess

type ManagementAccess struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec ManagementAccessSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status ManagementAccessStatus `json:"status,omitempty,omitzero"`
}

ManagementAccess is the Schema for the managementaccesses API

func (*ManagementAccess) DeepCopy

func (in *ManagementAccess) DeepCopy() *ManagementAccess

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

func (*ManagementAccess) DeepCopyInto

func (in *ManagementAccess) DeepCopyInto(out *ManagementAccess)

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

func (*ManagementAccess) DeepCopyObject

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

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

func (*ManagementAccess) GetConditions

func (ma *ManagementAccess) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*ManagementAccess) SetConditions

func (ma *ManagementAccess) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type ManagementAccessList

type ManagementAccessList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ManagementAccess `json:"items"`
}

ManagementAccessList contains a list of ManagementAccess

func (*ManagementAccessList) DeepCopy

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

func (*ManagementAccessList) DeepCopyInto

func (in *ManagementAccessList) DeepCopyInto(out *ManagementAccessList)

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

func (*ManagementAccessList) DeepCopyObject

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

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

type ManagementAccessSpec

type ManagementAccessSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the Interface to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Configuration for the gRPC server on the device.
	// Currently, only a single "default" gRPC server is supported.
	// +optional
	// +kubebuilder:default={enabled:true, port:9339}
	GRPC GRPC `json:"grpc,omitzero"`

	// Configuration for the SSH server on the device.
	// +optional
	// +kubebuilder:default={enabled:true, timeout:"10m", sessionLimit:32}
	SSH SSH `json:"ssh,omitzero"`
}

ManagementAccessSpec defines the desired state of ManagementAccess

func (*ManagementAccessSpec) DeepCopy

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

func (*ManagementAccessSpec) DeepCopyInto

func (in *ManagementAccessSpec) DeepCopyInto(out *ManagementAccessSpec)

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

type ManagementAccessStatus

type ManagementAccessStatus struct {
	// The conditions are a list of status objects that describe the state of the ManagementAccess.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ManagementAccessStatus defines the observed state of ManagementAccess.

func (*ManagementAccessStatus) DeepCopy

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

func (*ManagementAccessStatus) DeepCopyInto

func (in *ManagementAccessStatus) DeepCopyInto(out *ManagementAccessStatus)

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

type MultiChassis

type MultiChassis struct {
	// Enabled indicates whether the aggregate interface is part of a multichassis setup.
	// +required
	// +kubebuilder:default=true
	Enabled bool `json:"enabled"`

	// ID is the multichassis identifier.
	// +required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4094
	ID int16 `json:"id"`
}

func (*MultiChassis) DeepCopy

func (in *MultiChassis) DeepCopy() *MultiChassis

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

func (*MultiChassis) DeepCopyInto

func (in *MultiChassis) DeepCopyInto(out *MultiChassis)

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

type NTP

type NTP struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec NTPSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status NTPStatus `json:"status,omitempty,omitzero"`
}

NTP is the Schema for the ntp API

func (*NTP) DeepCopy

func (in *NTP) DeepCopy() *NTP

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

func (*NTP) DeepCopyInto

func (in *NTP) DeepCopyInto(out *NTP)

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

func (*NTP) DeepCopyObject

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

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

func (*NTP) GetConditions

func (ntp *NTP) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*NTP) SetConditions

func (ntp *NTP) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type NTPList

type NTPList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []NTP `json:"items"`
}

NTPList contains a list of NTP

func (*NTPList) DeepCopy

func (in *NTPList) DeepCopy() *NTPList

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

func (*NTPList) DeepCopyInto

func (in *NTPList) DeepCopyInto(out *NTPList)

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

func (*NTPList) DeepCopyObject

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

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

type NTPServer

type NTPServer struct {
	// Hostname/IP address of the NTP server.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Address string `json:"address"`

	// Indicates whether this server should be preferred or not.
	// +optional
	// +kubebuilder:default=false
	Prefer bool `json:"prefer,omitempty"`

	// The name of the vrf used to communicate with the NTP server.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	VrfName string `json:"vrfName,omitempty"`
}

func (*NTPServer) DeepCopy

func (in *NTPServer) DeepCopy() *NTPServer

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

func (*NTPServer) DeepCopyInto

func (in *NTPServer) DeepCopyInto(out *NTPServer)

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

type NTPSpec

type NTPSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the NTP to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Source interface for all NTP traffic.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	SourceInterfaceName string `json:"sourceInterfaceName"`

	// NTP servers.
	// +required
	// +listType=map
	// +listMapKey=address
	// +kubebuilder:validation:MinItems=1
	Servers []NTPServer `json:"servers"`
}

NTPSpec defines the desired state of NTP

func (*NTPSpec) DeepCopy

func (in *NTPSpec) DeepCopy() *NTPSpec

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

func (*NTPSpec) DeepCopyInto

func (in *NTPSpec) DeepCopyInto(out *NTPSpec)

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

type NTPStatus

type NTPStatus struct {
	// The conditions are a list of status objects that describe the state of the NTP.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

NTPStatus defines the observed state of NTP.

func (*NTPStatus) DeepCopy

func (in *NTPStatus) DeepCopy() *NTPStatus

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

func (*NTPStatus) DeepCopyInto

func (in *NTPStatus) DeepCopyInto(out *NTPStatus)

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

type NameServer

type NameServer struct {
	// The Hostname or IP address of the DNS server.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Address string `json:"address"`

	// The name of the vrf used to communicate with the DNS server.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	VrfName string `json:"vrfName,omitempty"`
}

func (*NameServer) DeepCopy

func (in *NameServer) DeepCopy() *NameServer

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

func (*NameServer) DeepCopyInto

func (in *NameServer) DeepCopyInto(out *NameServer)

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

type OSPF

type OSPF struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec OSPFSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status OSPFStatus `json:"status,omitempty,omitzero"`
}

OSPF is the Schema for the ospf API

func (*OSPF) DeepCopy

func (in *OSPF) DeepCopy() *OSPF

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

func (*OSPF) DeepCopyInto

func (in *OSPF) DeepCopyInto(out *OSPF)

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

func (*OSPF) DeepCopyObject

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

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

func (*OSPF) GetConditions

func (o *OSPF) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*OSPF) SetConditions

func (o *OSPF) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type OSPFInterface

type OSPFInterface struct {
	LocalObjectReference `json:",inline"`

	// Area is the OSPF area identifier for this interface.
	// Must be specified in dotted-quad notation (e.g., "0.0.0.0" for the backbone area).
	// This is semantically a 32-bit identifier displayed in IPv4 address format,
	// not an actual IPv4 address. Area 0 (0.0.0.0) is the OSPF backbone area and
	// is required for proper OSPF operation in multi-area configurations.
	// +required
	// +kubebuilder:validation:Format=ipv4
	Area string `json:"area"`

	// Passive indicates whether this interface should operate in passive mode.
	// In passive mode, OSPF will advertise the interface's network in LSAs but will not
	// send or receive OSPF protocol packets (Hello, LSU, etc.) on this interface.
	// This is typically used for loopback interfaces where OSPF adjacencies
	// should not be formed but the network should still be advertised.
	// Defaults to false (active mode).
	// +optional
	Passive *bool `json:"passive,omitempty"`
}

OSPFInterface defines the OSPF-specific configuration for an interface that is participating in an OSPF instance.

func (*OSPFInterface) DeepCopy

func (in *OSPFInterface) DeepCopy() *OSPFInterface

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

func (*OSPFInterface) DeepCopyInto

func (in *OSPFInterface) DeepCopyInto(out *OSPFInterface)

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

type OSPFList

type OSPFList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []OSPF `json:"items"`
}

OSPFList contains a list of OSPF

func (*OSPFList) DeepCopy

func (in *OSPFList) DeepCopy() *OSPFList

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

func (*OSPFList) DeepCopyInto

func (in *OSPFList) DeepCopyInto(out *OSPFList)

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

func (*OSPFList) DeepCopyObject

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

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

type OSPFNeighbor

type OSPFNeighbor struct {
	// RouterID is the router identifier of the remote OSPF neighbor.
	// +required
	RouterID string `json:"routerId"`

	// Address is the IP address of the remote OSPF neighbor.
	// +required
	Address string `json:"address"`

	// InterfaceRef is a reference to the local interface through which this neighbor is connected.
	// +required
	InterfaceRef LocalObjectReference `json:"interfaceRef"`

	// Priority is the remote system's priority to become the designated router.
	// Valid range is 0-255.
	// +optional
	Priority *uint8 `json:"priority,omitempty"`

	// LastEstablishedTime is the timestamp when the adjacency last transitioned to the FULL state.
	// A frequently changing timestamp indicates adjacency instability (flapping).
	// +optional
	LastEstablishedTime *metav1.Time `json:"lastEstablishedTime,omitempty"`

	// AdjacencyState is the current state of the adjacency with this neighbor.
	// +optional
	AdjacencyState OSPFNeighborState `json:"adjacencyState,omitempty"`
}

OSPFNeighbor represents an OSPF neighbor with its adjacency information.

func (*OSPFNeighbor) DeepCopy

func (in *OSPFNeighbor) DeepCopy() *OSPFNeighbor

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

func (*OSPFNeighbor) DeepCopyInto

func (in *OSPFNeighbor) DeepCopyInto(out *OSPFNeighbor)

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

type OSPFNeighborState

type OSPFNeighborState string

OSPFNeighborState represents the state of an OSPF adjacency as defined in RFC 2328. +kubebuilder:validation:Enum=Down;Attempt;Init;TwoWay;ExStart;Exchange;Loading;Full

const (
	// OSPFNeighborStateUnknown indicates an unknown or undefined state.
	OSPFNeighborStateUnknown OSPFNeighborState = "Unknown"

	// OSPFNeighborStateDown indicates the initial state of a neighbor.
	// No recent information has been received from the neighbor.
	OSPFNeighborStateDown OSPFNeighborState = "Down"

	// OSPFNeighborStateAttempt is only valid for neighbors on NBMA networks.
	// It indicates that no recent information has been received but effort should be made to contact the neighbor.
	OSPFNeighborStateAttempt OSPFNeighborState = "Attempt"

	// OSPFNeighborStateInit indicates a Hello packet has been received from the neighbor
	// but bidirectional communication has not yet been established.
	OSPFNeighborStateInit OSPFNeighborState = "Init"

	// OSPFNeighborStateTwoWay indicates bidirectional communication has been established.
	// This is the most advanced state short of forming an adjacency.
	OSPFNeighborStateTwoWay OSPFNeighborState = "TwoWay"

	// OSPFNeighborStateExStart indicates the first step in creating an adjacency.
	// The routers are determining the relationship and initial DD sequence number.
	OSPFNeighborStateExStart OSPFNeighborState = "ExStart"

	// OSPFNeighborStateExchange indicates the routers are exchanging Database Description packets.
	OSPFNeighborStateExchange OSPFNeighborState = "Exchange"

	// OSPFNeighborStateLoading indicates Link State Request packets are being sent to the neighbor
	// to obtain more recent LSAs that were discovered during the Exchange state.
	OSPFNeighborStateLoading OSPFNeighborState = "Loading"

	// OSPFNeighborStateFull indicates the neighboring routers are fully adjacent.
	// LSDBs are synchronized and the adjacency will appear in Router and Network LSAs.
	OSPFNeighborStateFull OSPFNeighborState = "Full"
)

type OSPFSpec

type OSPFSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the Interface to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Instance is the process tag of the OSPF instance.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Instance is immutable"
	Instance string `json:"instance"`

	// RouterID is the OSPF router identifier, used in OSPF messages to identify the originating router.
	// Follows dotted quad notation (IPv4 format).
	// +required
	// +kubebuilder:validation:Format=ipv4
	RouterID string `json:"routerId"`

	// LogAdjacencyChanges enables logging when the state of an OSPF neighbor changes.
	// When true, a log message is generated for adjacency state transitions.
	// +optional
	LogAdjacencyChanges *bool `json:"logAdjacencyChanges,omitempty"`

	// InterfaceRefs is a list of interfaces that are part of the OSPF instance.
	// +optional
	// +listType=atomic
	// +kubebuilder:validation:MinItems=1
	InterfaceRefs []OSPFInterface `json:"interfaceRefs,omitempty"`
}

OSPFSpec defines the desired state of OSPF

func (*OSPFSpec) DeepCopy

func (in *OSPFSpec) DeepCopy() *OSPFSpec

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

func (*OSPFSpec) DeepCopyInto

func (in *OSPFSpec) DeepCopyInto(out *OSPFSpec)

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

type OSPFStatus

type OSPFStatus struct {
	// AdjacencySummary provides a human-readable summary of neighbor adjacencies
	// by state (e.g., "3 Full, 1 ExStart, 1 Down").
	// This field is computed by the controller from the Neighbors field.
	// +optional
	AdjacencySummary string `json:"adjacencySummary,omitempty"`

	// ObservedGeneration reflects the .metadata.generation that was last processed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Neighbors is a list of OSPF neighbors and their adjacency states.
	// +optional
	// +listType=map
	// +listMapKey=routerId
	// +patchStrategy=merge
	// +patchMergeKey=routerId
	Neighbors []OSPFNeighbor `json:"neighbors,omitempty"`

	// The conditions are a list of status objects that describe the state of the OSPF.
	// +listType=map
	// +listMapKey=type
	// +patchStrategy=merge
	// +patchMergeKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

OSPFStatus defines the observed state of OSPF.

func (*OSPFStatus) DeepCopy

func (in *OSPFStatus) DeepCopy() *OSPFStatus

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

func (*OSPFStatus) DeepCopyInto

func (in *OSPFStatus) DeepCopyInto(out *OSPFStatus)

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

type OverloadBit

type OverloadBit string

OverloadBit represents the overload bit of an ISIS instance. +kubebuilder:validation:Enum=Always;Never;OnStartup

const (
	OverloadBitAlways    OverloadBit = "Always"
	OverloadBitNever     OverloadBit = "Never"
	OverloadBitOnStartup OverloadBit = "OnStartup"
)

type PIM

type PIM struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec PIMSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status PIMStatus `json:"status,omitempty,omitzero"`
}

PIM is the Schema for the pim API

func (*PIM) DeepCopy

func (in *PIM) DeepCopy() *PIM

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

func (*PIM) DeepCopyInto

func (in *PIM) DeepCopyInto(out *PIM)

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

func (*PIM) DeepCopyObject

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

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

func (*PIM) GetConditions

func (pim *PIM) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*PIM) SetConditions

func (pim *PIM) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type PIMInterface

type PIMInterface struct {
	LocalObjectReference `json:",inline"`

	// Mode is the PIM mode to use when delivering multicast traffic via this interface.
	// +optional
	// +kubebuilder:default=Sparse
	Mode PIMInterfaceMode `json:"mode"`
}

func (*PIMInterface) DeepCopy

func (in *PIMInterface) DeepCopy() *PIMInterface

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

func (*PIMInterface) DeepCopyInto

func (in *PIMInterface) DeepCopyInto(out *PIMInterface)

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

type PIMInterfaceMode

type PIMInterfaceMode string

PIMInterfaceMode represents the mode of a PIM interface. +kubebuilder:validation:Enum=Sparse;Dense

const (
	PIMModeSparse PIMInterfaceMode = "Sparse"
	PIMModeDense  PIMInterfaceMode = "Dense"
)

type PIMList

type PIMList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PIM `json:"items"`
}

PIMList contains a list of PIM

func (*PIMList) DeepCopy

func (in *PIMList) DeepCopy() *PIMList

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

func (*PIMList) DeepCopyInto

func (in *PIMList) DeepCopyInto(out *PIMList)

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

func (*PIMList) DeepCopyObject

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

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

type PIMSpec

type PIMSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the PIM to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// RendezvousPoints defines the list of rendezvous points for sparse mode multicast.
	// +optional
	// +listType=map
	// +listMapKey=address
	// +kubebuilder:validation:MinItems=1
	RendezvousPoints []RendezvousPoint `json:"rendezvousPoints,omitempty"`

	// InterfaceRefs is a list of interfaces that are part of the PIM instance.
	// +optional
	// +listType=atomic
	// +kubebuilder:validation:MinItems=1
	InterfaceRefs []PIMInterface `json:"interfaceRefs,omitempty"`
}

PIMSpec defines the desired state of PIM

func (*PIMSpec) DeepCopy

func (in *PIMSpec) DeepCopy() *PIMSpec

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

func (*PIMSpec) DeepCopyInto

func (in *PIMSpec) DeepCopyInto(out *PIMSpec)

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

type PIMStatus

type PIMStatus struct {
	// The conditions are a list of status objects that describe the state of the PIM.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

PIMStatus defines the observed state of PIM.

func (*PIMStatus) DeepCopy

func (in *PIMStatus) DeepCopy() *PIMStatus

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

func (*PIMStatus) DeepCopyInto

func (in *PIMStatus) DeepCopyInto(out *PIMStatus)

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

type PasswordSource

type PasswordSource struct {
	// Selects a key of a secret.
	// +required
	SecretKeyRef SecretKeySelector `json:"secretKeyRef"`
}

PasswordSource represents a source for the value of a password.

func (*PasswordSource) DeepCopy

func (in *PasswordSource) DeepCopy() *PasswordSource

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

func (*PasswordSource) DeepCopyInto

func (in *PasswordSource) DeepCopyInto(out *PasswordSource)

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

type Protocol

type Protocol string

Protocol represents the protocol type for an ACL entry. +kubebuilder:validation:Enum=ICMP;IP;OSPF;PIM;TCP;UDP

const (
	ProtocolICMP Protocol = "ICMP"
	ProtocolIP   Protocol = "IP"
	ProtocolOSPF Protocol = "OSPF"
	ProtocolPIM  Protocol = "PIM"
	ProtocolTCP  Protocol = "TCP"
	ProtocolUDP  Protocol = "UDP"
)

type RendezvousPoint

type RendezvousPoint struct {
	// Address is the IPv4 address of the rendezvous point.
	// +required
	// +kubebuilder:validation:Format=ipv4
	Address string `json:"address"`

	// MulticastGroups defined the list of multicast IPv4 address ranges associated with the rendezvous point.
	// If not specified, the rendezvous point will be used for all multicast groups.
	// +optional
	MulticastGroups []IPPrefix `json:"multicastGroups,omitempty"`

	// AnycastAddresses is a list of redundant anycast ipv4 addresses associated with the rendezvous point.
	// +optional
	// +listType=set
	// +kubebuilder:validation:items:Format=ipv4
	AnycastAddresses []string `json:"anycastAddresses,omitempty"`
}

func (*RendezvousPoint) DeepCopy

func (in *RendezvousPoint) DeepCopy() *RendezvousPoint

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

func (*RendezvousPoint) DeepCopyInto

func (in *RendezvousPoint) DeepCopyInto(out *RendezvousPoint)

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

type RouteTarget

type RouteTarget struct {
	// Value is the route target value, must have the format as VRFSpec.RouteDistinguisher. Validation via
	// admission webhook.
	//
	// +required
	Value string `json:"value"`

	// AddressFamilies is the list of address families for the route target.
	// +required
	// +listType=set
	// +kubebuilder:validation:MinItems=1
	AddressFamilies []RouteTargetAF `json:"addressFamilies,omitempty"`

	// Action defines whether the route target is imported, exported, or both
	// +required
	Action RouteTargetAction `json:"action"`
}

func (*RouteTarget) DeepCopy

func (in *RouteTarget) DeepCopy() *RouteTarget

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

func (*RouteTarget) DeepCopyInto

func (in *RouteTarget) DeepCopyInto(out *RouteTarget)

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

type RouteTargetAF

type RouteTargetAF string

RouteTargetAF represents a supported address family value. +kubebuilder:validation:Enum=IPv4;IPv6;IPv4EVPN;IPv6EVPN

const (
	IPv4     RouteTargetAF = "IPv4"
	IPv6     RouteTargetAF = "IPv6"
	IPv4EVPN RouteTargetAF = "IPv4EVPN"
	IPv6EVPN RouteTargetAF = "IPv6EVPN"
)

type RouteTargetAction

type RouteTargetAction string

RouteTargetAction represents the action for a route target. +kubebuilder:validation:Enum=Import;Export;Both

const (
	RouteTargetActionImport RouteTargetAction = "Import"
	RouteTargetActionExport RouteTargetAction = "Export"
	RouteTargetActionBoth   RouteTargetAction = "Both"
)

type SNMP

type SNMP struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec SNMPSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status SNMPStatus `json:"status,omitempty,omitzero"`
}

SNMP is the Schema for the snmp API

func (*SNMP) DeepCopy

func (in *SNMP) DeepCopy() *SNMP

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

func (*SNMP) DeepCopyInto

func (in *SNMP) DeepCopyInto(out *SNMP)

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

func (*SNMP) DeepCopyObject

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

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

func (*SNMP) GetConditions

func (snmp *SNMP) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*SNMP) SetConditions

func (snmp *SNMP) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type SNMPCommunity

type SNMPCommunity struct {
	// Name of the community.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	// Group to which the community belongs.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Group string `json:"group,omitempty"`

	// ACL name to filter SNMP requests.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	ACLName string `json:"aclName,omitempty"`
}

func (*SNMPCommunity) DeepCopy

func (in *SNMPCommunity) DeepCopy() *SNMPCommunity

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

func (*SNMPCommunity) DeepCopyInto

func (in *SNMPCommunity) DeepCopyInto(out *SNMPCommunity)

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

type SNMPHosts

type SNMPHosts struct {
	// The Hostname or IP address of the SNMP host to send notifications to.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Address string `json:"address"`

	// Type of message to send to host. Default is traps.
	// +optional
	// +kubebuilder:default=Traps
	// +kubebuilder:validation:Enum=Traps;Informs
	Type string `json:"type"`

	// SNMP version. Default is v2c.
	// +optional
	// +kubebuilder:default=v2c
	// +kubebuilder:validation:Enum=v1;v2c;v3
	Version string `json:"version"`

	// SNMP community or user name.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Community string `json:"community,omitempty"`

	// The name of the vrf instance to use to source traffic.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	VrfName string `json:"vrfName,omitempty"`
}

func (*SNMPHosts) DeepCopy

func (in *SNMPHosts) DeepCopy() *SNMPHosts

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

func (*SNMPHosts) DeepCopyInto

func (in *SNMPHosts) DeepCopyInto(out *SNMPHosts)

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

type SNMPList

type SNMPList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SNMP `json:"items"`
}

SNMPList contains a list of SNMP

func (*SNMPList) DeepCopy

func (in *SNMPList) DeepCopy() *SNMPList

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

func (*SNMPList) DeepCopyInto

func (in *SNMPList) DeepCopyInto(out *SNMPList)

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

func (*SNMPList) DeepCopyObject

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

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

type SNMPSpec

type SNMPSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the SNMP to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// The contact information for the SNMP server.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Contact string `json:"contact,omitempty"`

	// The location information for the SNMP server.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Location string `json:"location,omitempty"`

	// The name of the interface to be used for sending out SNMP Trap/Inform notifications.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	SourceInterfaceName string `json:"sourceInterfaceName"`

	// SNMP communities for SNMPv1 or SNMPv2c.
	// +optional
	// +listType=map
	// +listMapKey=name
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	Communities []SNMPCommunity `json:"communities,omitempty"`

	// SNMP destination hosts for SNMP traps or informs messages.
	// +required
	// +listType=map
	// +listMapKey=address
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	Hosts []SNMPHosts `json:"hosts"`

	// The list of trap notifications to enable.
	// +optional
	// +listType=set
	// +kubebuilder:validation:MinItems=1
	Traps []string `json:"traps,omitempty"`
}

SNMPSpec defines the desired state of SNMP

func (*SNMPSpec) DeepCopy

func (in *SNMPSpec) DeepCopy() *SNMPSpec

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

func (*SNMPSpec) DeepCopyInto

func (in *SNMPSpec) DeepCopyInto(out *SNMPSpec)

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

type SNMPStatus

type SNMPStatus struct {
	// The conditions are a list of status objects that describe the state of the SNMP.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

SNMPStatus defines the observed state of SNMP.

func (*SNMPStatus) DeepCopy

func (in *SNMPStatus) DeepCopy() *SNMPStatus

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

func (*SNMPStatus) DeepCopyInto

func (in *SNMPStatus) DeepCopyInto(out *SNMPStatus)

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

type SSH

type SSH struct {
	// Enable or disable the SSH server on the device.
	// If not specified, the SSH server is enabled by default.
	// +optional
	// +kubebuilder:default=true
	Enabled bool `json:"enabled"`

	// The timeout duration for SSH sessions.
	// If not specified, the default timeout is 10 minutes.
	// +optional
	// +kubebuilder:default="10m"
	// +kubebuilder:validation:Type=string
	Timeout metav1.Duration `json:"timeout,omitzero"`

	// The maximum number of concurrent SSH sessions allowed.
	// If not specified, the default limit is 32.
	// +optional
	// +kubebuilder:default=32
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=64
	// +kubebuilder:validation:ExclusiveMaximum=false
	SessionLimit int8 `json:"sessionLimit,omitempty"`
}

func (*SSH) DeepCopy

func (in *SSH) DeepCopy() *SSH

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

func (*SSH) DeepCopyInto

func (in *SSH) DeepCopyInto(out *SSH)

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

type SSHPublicKeySource

type SSHPublicKeySource struct {
	// Selects a key of a secret.
	// +required
	SecretKeyRef SecretKeySelector `json:"secretKeyRef"`
}

SSHPublicKeySource represents a source for the value of an SSH public key.

func (*SSHPublicKeySource) DeepCopy

func (in *SSHPublicKeySource) DeepCopy() *SSHPublicKeySource

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

func (*SSHPublicKeySource) DeepCopyInto

func (in *SSHPublicKeySource) DeepCopyInto(out *SSHPublicKeySource)

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

type SecretKeySelector

type SecretKeySelector struct {
	// Name of the secret resource being referred to.
	SecretReference `json:",inline"`

	// Key is the of the entry in the secret resource's `data` or `stringData`
	// field to be used.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Key string `json:"key"`
}

SecretKeySelector contains enough information to select a key of a Secret. +structType=atomic

func (*SecretKeySelector) DeepCopy

func (in *SecretKeySelector) DeepCopy() *SecretKeySelector

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

func (*SecretKeySelector) DeepCopyInto

func (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector)

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

type SecretReference

type SecretReference struct {
	// Name is unique within a namespace to reference a secret resource.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Name string `json:"name"`

	// Namespace defines the space within which the secret name must be unique.
	// If omitted, the namespace of the object being reconciled will be used.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Namespace string `json:"namespace,omitempty"`
}

SecretReference represents a Secret Reference. It has enough information to retrieve a Secret in any namespace. +structType=atomic

func (*SecretReference) DeepCopy

func (in *SecretReference) DeepCopy() *SecretReference

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

func (*SecretReference) DeepCopyInto

func (in *SecretReference) DeepCopyInto(out *SecretReference)

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

type Severity

type Severity string

Severity represents the severity level of a log message. +kubebuilder:validation:Enum=Debug;Info;Notice;Warning;Error;Critical;Alert;Emergency

const (
	SeverityDebug     Severity = "Debug"
	SeverityInfo      Severity = "Info"
	SeverityNotice    Severity = "Notice"
	SeverityWarning   Severity = "Warning"
	SeverityError     Severity = "Error"
	SeverityCritical  Severity = "Critical"
	SeverityAlert     Severity = "Alert"
	SeverityEmergency Severity = "Emergency"
)

type Switchport

type Switchport struct {
	// Mode defines the switchport mode, such as access or trunk.
	// +required
	Mode SwitchportMode `json:"mode"`

	// AccessVlan specifies the VLAN ID for access mode switchports.
	// Only applicable when Mode is set to "Access".
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4094
	AccessVlan int32 `json:"accessVlan,omitempty"`

	// NativeVlan specifies the native VLAN ID for trunk mode switchports.
	// Only applicable when Mode is set to "Trunk".
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4094
	NativeVlan int32 `json:"nativeVlan,omitempty"`

	// AllowedVlans is a list of VLAN IDs that are allowed on the trunk port.
	// Only applicable when Mode is set to "Trunk".
	// +optional
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:items:Minimum=1
	// +kubebuilder:validation:items:Maximum=4094
	AllowedVlans []int32 `json:"allowedVlans,omitempty"`
}

Switchport defines the switchport configuration for an interface. +kubebuilder:validation:XValidation:rule="self.mode != 'Access' || has(self.accessVlan)", message="accessVlan must be specified when mode is Access" +kubebuilder:validation:XValidation:rule="self.mode != 'Trunk' || has(self.nativeVlan)", message="nativeVlan must be specified when mode is Trunk" +kubebuilder:validation:XValidation:rule="self.mode != 'Trunk' || has(self.allowedVlans)", message="allowedVlans must be specified when mode is Trunk"

func (*Switchport) DeepCopy

func (in *Switchport) DeepCopy() *Switchport

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

func (*Switchport) DeepCopyInto

func (in *Switchport) DeepCopyInto(out *Switchport)

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

type SwitchportMode

type SwitchportMode string

SwitchportMode represents the switchport mode of an interface. +kubebuilder:validation:Enum=Access;Trunk

const (
	// SwitchportModeAccess indicates that the switchport is in access mode.
	SwitchportModeAccess SwitchportMode = "Access"
	// SwitchportModeTrunk indicates that the switchport is in trunk mode.
	SwitchportModeTrunk SwitchportMode = "Trunk"
)

type Syslog

type Syslog struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec SyslogSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status SyslogStatus `json:"status,omitempty,omitzero"`
}

Syslog is the Schema for the syslogs API

func (*Syslog) DeepCopy

func (in *Syslog) DeepCopy() *Syslog

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

func (*Syslog) DeepCopyInto

func (in *Syslog) DeepCopyInto(out *Syslog)

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

func (*Syslog) DeepCopyObject

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

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

func (*Syslog) GetConditions

func (sl *Syslog) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*Syslog) SetConditions

func (sl *Syslog) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type SyslogList

type SyslogList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Syslog `json:"items"`
}

SyslogList contains a list of Syslog

func (*SyslogList) DeepCopy

func (in *SyslogList) DeepCopy() *SyslogList

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

func (*SyslogList) DeepCopyInto

func (in *SyslogList) DeepCopyInto(out *SyslogList)

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

func (*SyslogList) DeepCopyObject

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

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

type SyslogSpec

type SyslogSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the Interface to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Servers is a list of remote log servers to which the device will send logs.
	// +required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=16
	Servers []LogServer `json:"servers"`

	// Facilities is a list of log facilities to configure on the device.
	// +required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=64
	Facilities []LogFacility `json:"facilities"`
}

SyslogSpec defines the desired state of Syslog

func (*SyslogSpec) DeepCopy

func (in *SyslogSpec) DeepCopy() *SyslogSpec

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

func (*SyslogSpec) DeepCopyInto

func (in *SyslogSpec) DeepCopyInto(out *SyslogSpec)

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

type SyslogStatus

type SyslogStatus struct {
	// The conditions are a list of status objects that describe the state of the Banner.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

SyslogStatus defines the observed state of Syslog.

func (*SyslogStatus) DeepCopy

func (in *SyslogStatus) DeepCopy() *SyslogStatus

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

func (*SyslogStatus) DeepCopyInto

func (in *SyslogStatus) DeepCopyInto(out *SyslogStatus)

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

type TLS

type TLS struct {
	// The CA certificate to verify the server's identity.
	// +required
	CA SecretKeySelector `json:"ca"`

	// The client certificate and private key to use for mutual TLS authentication.
	// Leave empty if mTLS is not desired.
	// +optional
	Certificate *CertificateSource `json:"certificate,omitempty"`
}

func (*TLS) DeepCopy

func (in *TLS) DeepCopy() *TLS

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

func (*TLS) DeepCopyInto

func (in *TLS) DeepCopyInto(out *TLS)

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

type TemplateSource

type TemplateSource struct {
	// Inline template content
	// +optional
	// +kubebuilder:validation:MinLength=1
	Inline *string `json:"inline,omitempty"`

	// Reference to a Secret containing the template
	// +optional
	SecretRef *SecretKeySelector `json:"secretRef,omitempty"`

	// Reference to a ConfigMap containing the template
	// +optional
	ConfigMapRef *ConfigMapKeySelector `json:"configMapRef,omitempty"`
}

TemplateSource defines a source for template content. It can be provided inline, or as a reference to a Secret or ConfigMap.

+kubebuilder:validation:XValidation:rule="[has(self.inline), has(self.secretRef), has(self.configMapRef)].filter(x, x).size() == 1",message="exactly one of 'inline', 'secretRef', or 'configMapRef' must be specified"

func (*TemplateSource) DeepCopy

func (in *TemplateSource) DeepCopy() *TemplateSource

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

func (*TemplateSource) DeepCopyInto

func (in *TemplateSource) DeepCopyInto(out *TemplateSource)

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

type TypedLocalObjectReference

type TypedLocalObjectReference struct {
	// Kind of the resource being referenced.
	// Kind must consist of alphanumeric characters or '-', start with an alphabetic character, and end with an alphanumeric character.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`
	Kind string `json:"kind"`

	// Name of the resource being referenced.
	// Name must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	// +kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
	Name string `json:"name"`

	// APIVersion is the api group version of the resource being referenced.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	//+kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/)?([a-z0-9]([-a-z0-9]*[a-z0-9])?)$`
	APIVersion string `json:"apiVersion"`
}

TypedLocalObjectReference contains enough information to locate a typed referenced object inside the same namespace. +structType=atomic

func (*TypedLocalObjectReference) DeepCopy

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

func (*TypedLocalObjectReference) DeepCopyInto

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

type User

type User struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec UserSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status UserStatus `json:"status,omitempty,omitzero"`
}

User is the Schema for the users API

func (*User) DeepCopy

func (in *User) DeepCopy() *User

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

func (*User) DeepCopyInto

func (in *User) DeepCopyInto(out *User)

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

func (*User) DeepCopyObject

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

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

func (*User) GetConditions

func (user *User) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*User) SetConditions

func (user *User) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type UserList

type UserList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []User `json:"items"`
}

UserList contains a list of User

func (*UserList) DeepCopy

func (in *UserList) DeepCopy() *UserList

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

func (*UserList) DeepCopyInto

func (in *UserList) DeepCopyInto(out *UserList)

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

func (*UserList) DeepCopyObject

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

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

type UserRole

type UserRole struct {
	// The name of the role.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`
}

UserRole represents a role that can be assigned to a user.

func (*UserRole) DeepCopy

func (in *UserRole) DeepCopy() *UserRole

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

func (*UserRole) DeepCopyInto

func (in *UserRole) DeepCopyInto(out *UserRole)

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

type UserSpec

type UserSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the User to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Assigned username for this user.
	// Immutable.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Username is immutable"
	Username string `json:"username"`

	// The user password, supplied in cleartext.
	// +required
	Password PasswordSource `json:"password"`

	// Role which the user is to be assigned to.
	// +required
	// +listType=map
	// +listMapKey=name
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=64
	Roles []UserRole `json:"roles"`

	// SSH public key for this user.
	// +optional
	SSHPublicKey *SSHPublicKeySource `json:"sshPublicKey,omitempty"`
}

UserSpec defines the desired state of User

func (*UserSpec) DeepCopy

func (in *UserSpec) DeepCopy() *UserSpec

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

func (*UserSpec) DeepCopyInto

func (in *UserSpec) DeepCopyInto(out *UserSpec)

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

type UserStatus

type UserStatus struct {
	// The conditions are a list of status objects that describe the state of the User.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

UserStatus defines the observed state of User.

func (*UserStatus) DeepCopy

func (in *UserStatus) DeepCopy() *UserStatus

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

func (*UserStatus) DeepCopyInto

func (in *UserStatus) DeepCopyInto(out *UserStatus)

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

type VLAN

type VLAN struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the resource.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec VLANSpec `json:"spec,omitempty"`

	// Status of the resource. This is set and updated automatically.
	// Read-only.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status VLANStatus `json:"status,omitempty,omitzero"`
}

VLAN is the Schema for the vlans API

func (*VLAN) DeepCopy

func (in *VLAN) DeepCopy() *VLAN

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

func (*VLAN) DeepCopyInto

func (in *VLAN) DeepCopyInto(out *VLAN)

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

func (*VLAN) DeepCopyObject

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

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

func (*VLAN) GetConditions

func (v *VLAN) GetConditions() []metav1.Condition

GetConditions implements conditions.Getter.

func (*VLAN) SetConditions

func (v *VLAN) SetConditions(conditions []metav1.Condition)

SetConditions implements conditions.Setter.

type VLANList

type VLANList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []VLAN `json:"items"`
}

VLANList contains a list of VLAN

func (*VLANList) DeepCopy

func (in *VLANList) DeepCopy() *VLANList

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

func (*VLANList) DeepCopyInto

func (in *VLANList) DeepCopyInto(out *VLANList)

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

func (*VLANList) DeepCopyObject

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

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

type VLANSpec

type VLANSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this vlan.
	// This reference is used to link the VLAN to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// ID is the VLAN ID. Valid values are between 1 and 4094.
	// Immutable.
	// +required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4094
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Name is immutable"
	ID int16 `json:"id"`

	// Name is the name of the VLAN.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=128
	// +kubebuilder:validation:Pattern=`^[^\s]+$`
	Name string `json:"name,omitempty"`

	// AdminState indicates whether the VLAN is administratively active or inactive/suspended.
	// +optional
	// +kubebuilder:default=Active
	AdminState VLANState `json:"adminState"`
}

VLANSpec defines the desired state of VLAN

func (*VLANSpec) DeepCopy

func (in *VLANSpec) DeepCopy() *VLANSpec

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

func (*VLANSpec) DeepCopyInto

func (in *VLANSpec) DeepCopyInto(out *VLANSpec)

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

type VLANState

type VLANState string

VLANState represents the administrative state of the VLAN. +kubebuilder:validation:Enum=Active;Suspended

const (
	// VLANStateActive indicates that the VLAN is administratively active.
	VLANStateActive VLANState = "Active"
	// VLANStateSuspended indicates that the VLAN is administratively inactive/suspended.
	VLANStateSuspended VLANState = "Suspended"
)

type VLANStatus

type VLANStatus struct {
	// The conditions are a list of status objects that describe the state of the VLAN.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

VLANStatus defines the observed state of VLAN.

func (*VLANStatus) DeepCopy

func (in *VLANStatus) DeepCopy() *VLANStatus

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

func (*VLANStatus) DeepCopyInto

func (in *VLANStatus) DeepCopyInto(out *VLANStatus)

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

type VRF

type VRF struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty,omitzero"`

	// spec defines the desired state of VRF
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +required
	Spec VRFSpec `json:"spec"`

	// status of the resource. This is set and updated automatically.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status VRFStatus `json:"status,omitempty,omitzero"`
}

VRF is the Schema for the vrfs API +kubebuilder:webhook:path=/validate-networking.metal.ironcore.dev-v1alpha1-vrf,mutating=false,failurePolicy=Fail,sideEffects=None,groups=networking.metal.ironcore.dev,resources=vrfs,verbs=create;update,versions=v1alpha1,name=vvrf.kb.io,admissionReviewVersions=v1

func (*VRF) DeepCopy

func (in *VRF) DeepCopy() *VRF

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

func (*VRF) DeepCopyInto

func (in *VRF) DeepCopyInto(out *VRF)

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

func (*VRF) DeepCopyObject

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

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

func (*VRF) GetConditions

func (v *VRF) GetConditions() []metav1.Condition

GetConditions returns the list of conditions for the VRF.

func (*VRF) SetConditions

func (v *VRF) SetConditions(conditions []metav1.Condition)

SetConditions sets the conditions for the VRF.

type VRFList

type VRFList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []VRF `json:"items"`
}

VRFList contains a list of VRF

func (*VRFList) DeepCopy

func (in *VRFList) DeepCopy() *VRFList

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

func (*VRFList) DeepCopyInto

func (in *VRFList) DeepCopyInto(out *VRFList)

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

func (*VRFList) DeepCopyObject

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

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

type VRFSpec

type VRFSpec struct {
	// DeviceName is the name of the Device this object belongs to. The Device object must exist in the same namespace.
	// Immutable.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DeviceRef is immutable"
	DeviceRef LocalObjectReference `json:"deviceRef"`

	// ProviderConfigRef is a reference to a resource holding the provider-specific configuration of this interface.
	// This reference is used to link the VRF to its provider-specific configuration.
	// +optional
	ProviderConfigRef *TypedLocalObjectReference `json:"providerConfigRef,omitempty"`

	// Name is the name of the VRF.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=32
	Name string `json:"name"`

	// Description provides a human-readable description of the VRF.
	// +optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=255
	Description string `json:"description,omitempty"`

	// VNI is the VXLAN Network Identifier for the VRF (always an L3).
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=16777215
	VNI uint32 `json:"vni,omitempty"`

	// RouteDistinguisher is the route distinguisher for the VRF.
	// Formats supported:
	//  - Type 0: <asn(0-65535)>:<number(0-4294967295)>
	//  - Type 1: <ipv4>:<number(0-65535)>
	//  - Type 2: <asn(65536-4294967295)>:<number(0-65535)>
	//
	// Validation via admission webhook for the VRF type.
	//
	// +optional
	RouteDistinguisher string `json:"routeDistinguisher,omitempty"`

	// RouteTargets is the list of route targets for the VRF.
	// +optional
	// +listType=map
	// +listMapKey=value
	RouteTargets []RouteTarget `json:"routeTargets,omitempty"`
}

VRFSpec defines the desired state of VRF

func (*VRFSpec) DeepCopy

func (in *VRFSpec) DeepCopy() *VRFSpec

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

func (*VRFSpec) DeepCopyInto

func (in *VRFSpec) DeepCopyInto(out *VRFSpec)

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

type VRFStatus

type VRFStatus struct {
	// The conditions are a list of status objects that describe the state of the VRF.
	//+listType=map
	//+listMapKey=type
	//+patchStrategy=merge
	//+patchMergeKey=type
	//+optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

VRFStatus defines the observed state of VRF.

func (*VRFStatus) DeepCopy

func (in *VRFStatus) DeepCopy() *VRFStatus

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

func (*VRFStatus) DeepCopyInto

func (in *VRFStatus) DeepCopyInto(out *VRFStatus)

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

Jump to

Keyboard shortcuts

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