v1alpha2

package
v0.35.4 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package v1alpha2 contains API Schema definitions for the agent v1alpha2 API group. This is the internal API group for the switch and control node agents. Not intended to be modified by the user. +kubebuilder:object:generate=true +groupName=agent.githedgehog.com

Index

Constants

View Source
const (
	VirtualEdgeConfigAnnotation = "virtual-edge.hhfab.fabric.githedgehog.com/external-cfg"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "agent.githedgehog.com", Version: "v1alpha2"}

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type AdminStatus added in v0.35.0

type AdminStatus string
const (
	AdminStatusUnset   AdminStatus = ""
	AdminStatusUp      AdminStatus = "up"
	AdminStatusDown    AdminStatus = "down"
	AdminStatusTesting AdminStatus = "testing"
)

func (AdminStatus) ID added in v0.35.0

func (a AdminStatus) ID() (uint8, error)

type Agent

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

	// Spec is the desired state of the Agent
	Spec AgentSpec `json:"spec,omitempty"`
	// Status is the observed state of the Agent
	Status AgentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:categories=hedgehog;fabric,shortName=ag +kubebuilder:printcolumn:name="Role",type=string,JSONPath=`.spec.role`,priority=0 +kubebuilder:printcolumn:name="Descr",type=string,JSONPath=`.spec.description`,priority=0 +kubebuilder:printcolumn:name="HWSKU",type=string,JSONPath=`.status.state.nos.hwskuVersion`,priority=1 +kubebuilder:printcolumn:name="ASIC",type=string,JSONPath=`.status.state.nos.asicVersion`,priority=1 +kubebuilder:printcolumn:name="Heartbeat",type=date,JSONPath=`.status.lastHeartbeat`,priority=1 +kubebuilder:printcolumn:name="Applied",type=date,JSONPath=`.status.lastAppliedTime`,priority=0 +kubebuilder:printcolumn:name="AppliedG",type=string,JSONPath=`.status.lastAppliedGen`,priority=0 +kubebuilder:printcolumn:name="CurrentG",type=string,JSONPath=`.metadata.generation`,priority=0 +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.status.version`,priority=0 +kubebuilder:printcolumn:name="Software",type=string,JSONPath=`.status.state.nos.softwareVersion`,priority=1 +kubebuilder:printcolumn:name="Attempt",type=date,JSONPath=`.status.lastAttemptTime`,priority=2 +kubebuilder:printcolumn:name="AttemptG",type=string,JSONPath=`.status.lastAttemptGen`,priority=2 +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,priority=10 Agent is an internal API object used by the controller to pass all relevant information to the agent running on a specific switch in order to fully configure it and manage its lifecycle. It is not intended to be used directly by users. Spec of the object isn't user-editable, it is managed by the controller. Status of the object is updated by the agent and is used by the controller to track the state of the agent and the switch it is running on. Name of the Agent object is the same as the name of the switch it is running on and it's created in the same namespace as the Switch object.

func (*Agent) DeepCopy

func (in *Agent) DeepCopy() *Agent

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

func (*Agent) DeepCopyInto

func (in *Agent) DeepCopyInto(out *Agent)

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

func (*Agent) DeepCopyObject

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

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

func (*Agent) IsCollapsedCore

func (a *Agent) IsCollapsedCore() bool

func (*Agent) IsFirstInRedundancyGroup

func (a *Agent) IsFirstInRedundancyGroup() bool

func (*Agent) IsSpineLeaf

func (a *Agent) IsSpineLeaf() bool

type AgentList

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

AgentList contains a list of Agent

func (*AgentList) DeepCopy

func (in *AgentList) DeepCopy() *AgentList

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

func (*AgentList) DeepCopyInto

func (in *AgentList) DeepCopyInto(out *AgentList)

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

func (*AgentList) DeepCopyObject

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

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

type AgentSpec

type AgentSpec struct {
	Role                 wiringapi.SwitchRole                     `json:"role,omitempty"`
	Description          string                                   `json:"description,omitempty"`
	Config               AgentSpecConfig                          `json:"config,omitempty"`
	Version              AgentVersion                             `json:"version,omitempty"`
	Users                []UserCreds                              `json:"users,omitempty"`
	Switch               wiringapi.SwitchSpec                     `json:"switch,omitempty"`
	Switches             map[string]wiringapi.SwitchSpec          `json:"switches,omitempty"`
	RedundancyGroupPeers []string                                 `json:"redundancyGroupPeers,omitempty"`
	Connections          map[string]wiringapi.ConnectionSpec      `json:"connections,omitempty"`
	VPCs                 map[string]vpcapi.VPCSpec                `json:"vpcs,omitempty"`
	VPCAttachments       map[string]vpcapi.VPCAttachmentSpec      `json:"vpcAttachments,omitempty"`
	VPCPeerings          map[string]vpcapi.VPCPeeringSpec         `json:"vpcPeers,omitempty"`
	IPv4Namespaces       map[string]vpcapi.IPv4NamespaceSpec      `json:"ipv4Namespaces,omitempty"`
	VLANNamespaces       map[string]wiringapi.VLANNamespaceSpec   `json:"vlanNamespaces,omitempty"`
	Externals            map[string]vpcapi.ExternalSpec           `json:"externals,omitempty"`
	ExternalAttachments  map[string]vpcapi.ExternalAttachmentSpec `json:"externalAttachments,omitempty"`
	ExternalPeerings     map[string]vpcapi.ExternalPeeringSpec    `json:"externalPeerings,omitempty"`
	ConfiguredVPCSubnets map[string]bool                          `json:"configuredVPCSubnets,omitempty"`
	AttachedVPCs         map[string]bool                          `json:"attachedVPCs,omitempty"`
	Reinstall            string                                   `json:"reinstall,omitempty"`  // set to InstallID to reinstall NOS
	Reboot               string                                   `json:"reboot,omitempty"`     // set to RunID to reboot
	PowerReset           string                                   `json:"powerReset,omitempty"` // set to RunID to power reset
	Catalog              CatalogSpec                              `json:"catalog,omitempty"`

	// TODO impl
	StatusUpdates []ApplyStatusUpdate `json:"statusUpdates,omitempty"`
}

AgentSpec defines the desired state of the Agent and includes all relevant information required to fully configure the switch and manage its lifecycle. It is not intended to be used directly by users.

func (*AgentSpec) DeepCopy

func (in *AgentSpec) DeepCopy() *AgentSpec

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

func (*AgentSpec) DeepCopyInto

func (in *AgentSpec) DeepCopyInto(out *AgentSpec)

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

func (*AgentSpec) IsVS

func (s *AgentSpec) IsVS() bool

TODO replace with real profile, temp hack

type AgentSpecConfig

type AgentSpecConfig struct {
	ControlVIP            string                        `json:"controlVIP,omitempty"`
	VPCPeeringDisabled    bool                          `json:"vpcPeeringDisabled,omitempty"`
	CollapsedCore         *AgentSpecConfigCollapsedCore `json:"collapsedCore,omitempty"`
	SpineLeaf             *AgentSpecConfigSpineLeaf     `json:"spineLeaf,omitempty"`
	BaseVPCCommunity      string                        `json:"baseVPCCommunity,omitempty"`
	VPCLoopbackSubnet     string                        `json:"vpcLoopbackSubnet,omitempty"`
	FabricMTU             uint16                        `json:"fabricMTU,omitempty"`
	ServerFacingMTUOffset uint16                        `json:"serverFacingMTUOffset,omitempty"`
	ESLAGMACBase          string                        `json:"eslagMACBase,omitempty"`
	ESLAGESIPrefix        string                        `json:"eslagESIPrefix,omitempty"`
}

func (*AgentSpecConfig) DeepCopy

func (in *AgentSpecConfig) DeepCopy() *AgentSpecConfig

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

func (*AgentSpecConfig) DeepCopyInto

func (in *AgentSpecConfig) DeepCopyInto(out *AgentSpecConfig)

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

type AgentSpecConfigCollapsedCore

type AgentSpecConfigCollapsedCore struct{}

func (*AgentSpecConfigCollapsedCore) DeepCopy

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

func (*AgentSpecConfigCollapsedCore) DeepCopyInto

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

type AgentSpecConfigSpineLeaf

type AgentSpecConfigSpineLeaf struct{}

func (*AgentSpecConfigSpineLeaf) DeepCopy

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

func (*AgentSpecConfigSpineLeaf) DeepCopyInto

func (in *AgentSpecConfigSpineLeaf) DeepCopyInto(out *AgentSpecConfigSpineLeaf)

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

type AgentStatus

type AgentStatus struct {
	// Current running agent version
	Version string `json:"version,omitempty"`
	// ID of the agent installation, used to track NOS re-installs
	InstallID string `json:"installID,omitempty"`
	// ID of the agent run, used to track NOS reboots
	RunID string `json:"runID,omitempty"`
	// Time of the last heartbeat from the agent
	LastHeartbeat metav1.Time `json:"lastHeartbeat,omitempty"`
	// Time of the last attempt to apply configuration
	LastAttemptTime metav1.Time `json:"lastAttemptTime,omitempty"`
	// Generation of the last attempt to apply configuration
	LastAttemptGen int64 `json:"lastAttemptGen,omitempty"`
	// Time of the last successful configuration application
	LastAppliedTime metav1.Time `json:"lastAppliedTime,omitempty"`
	// Generation of the last successful configuration application
	LastAppliedGen int64 `json:"lastAppliedGen,omitempty"`
	// Detailed switch state updated with each heartbeat
	State SwitchState `json:"state,omitempty"`
	// Status updates from the agent
	StatusUpdates []ApplyStatusUpdate `json:"statusUpdates,omitempty"`
	// Conditions of the agent, includes readiness marker for use with kubectl wait
	Conditions []metav1.Condition `json:"conditions"`
}

AgentStatus defines the observed state of the agent running on a specific switch and includes information about the switch itself as well as the state of the agent and applied configuration.

func (*AgentStatus) DeepCopy

func (in *AgentStatus) DeepCopy() *AgentStatus

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

func (*AgentStatus) DeepCopyInto

func (in *AgentStatus) DeepCopyInto(out *AgentStatus)

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

type AgentVersion

type AgentVersion struct {
	Default  string `json:"default,omitempty"`
	Override string `json:"override,omitempty"`
	Repo     string `json:"repo,omitempty"`
	CA       string `json:"ca,omitempty"`
}

func (*AgentVersion) DeepCopy

func (in *AgentVersion) DeepCopy() *AgentVersion

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

func (*AgentVersion) DeepCopyInto

func (in *AgentVersion) DeepCopyInto(out *AgentVersion)

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

type ApplyStatusUpdate

type ApplyStatusUpdate struct {
	APIVersion string `json:"apiVersion,omitempty"`
	Kind       string `json:"kind,omitempty"`
	Name       string `json:"name,omitempty"`
	Namespace  string `json:"namespace,omitempty"`
	Generation int64  `json:"generation,omitempty"`
}

func (*ApplyStatusUpdate) DeepCopy

func (in *ApplyStatusUpdate) DeepCopy() *ApplyStatusUpdate

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

func (*ApplyStatusUpdate) DeepCopyInto

func (in *ApplyStatusUpdate) DeepCopyInto(out *ApplyStatusUpdate)

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

type BGPMessages added in v0.35.0

type BGPMessages struct {
	Received BGPMessagesCounters `json:"received,omitempty"`
	Sent     BGPMessagesCounters `json:"sent,omitempty"`
}

func (*BGPMessages) DeepCopy added in v0.35.0

func (in *BGPMessages) DeepCopy() *BGPMessages

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

func (*BGPMessages) DeepCopyInto added in v0.35.0

func (in *BGPMessages) DeepCopyInto(out *BGPMessages)

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

type BGPMessagesCounters added in v0.35.0

type BGPMessagesCounters struct {
	Capability   uint64 `json:"capability,omitempty"`
	Keepalive    uint64 `json:"keepalive,omitempty"`
	Notification uint64 `json:"notification,omitempty"`
	Open         uint64 `json:"open,omitempty"`
	RouteRefresh uint64 `json:"routeRefresh,omitempty"`
	Update       uint64 `json:"update,omitempty"`
}

func (*BGPMessagesCounters) DeepCopy added in v0.35.0

func (in *BGPMessagesCounters) DeepCopy() *BGPMessagesCounters

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

func (*BGPMessagesCounters) DeepCopyInto added in v0.35.0

func (in *BGPMessagesCounters) DeepCopyInto(out *BGPMessagesCounters)

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

type BGPNeighborSessionState added in v0.35.0

type BGPNeighborSessionState string
const (
	BGPNeighborSessionStateUnset       BGPNeighborSessionState = ""
	BGPNeighborSessionStateIdle        BGPNeighborSessionState = "idle"
	BGPNeighborSessionStateConnect     BGPNeighborSessionState = "connect"
	BGPNeighborSessionStateActive      BGPNeighborSessionState = "active"
	BGPNeighborSessionStateOpenSent    BGPNeighborSessionState = "openSent"
	BGPNeighborSessionStateOpenConfirm BGPNeighborSessionState = "openConfirm"
	BGPNeighborSessionStateEstablished BGPNeighborSessionState = "established"
)

func (BGPNeighborSessionState) ID added in v0.35.0

type BGPPeerType added in v0.35.0

type BGPPeerType string
const (
	BGPPeerTypeUnset    BGPPeerType = ""
	BGPPeerTypeInternal BGPPeerType = "internal"
	BGPPeerTypeExternal BGPPeerType = "external"
)

func (BGPPeerType) ID added in v0.35.0

func (b BGPPeerType) ID() (uint8, error)

type Catalog

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

	Spec   CatalogSpec   `json:"spec,omitempty"`
	Status CatalogStatus `json:"status,omitempty"`
}

Catalog is the Schema for the catalogs API

func (*Catalog) DeepCopy

func (in *Catalog) DeepCopy() *Catalog

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

func (*Catalog) DeepCopyInto

func (in *Catalog) DeepCopyInto(out *Catalog)

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

func (*Catalog) DeepCopyObject

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

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

type CatalogList

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

CatalogList contains a list of Catalog

func (*CatalogList) DeepCopy

func (in *CatalogList) DeepCopy() *CatalogList

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

func (*CatalogList) DeepCopyInto

func (in *CatalogList) DeepCopyInto(out *CatalogList)

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

func (*CatalogList) DeepCopyObject

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

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

type CatalogSpec

type CatalogSpec struct {

	// ConnectionSystemIDs stores connection name -> ID, globally unique for the fabric
	ConnectionIDs map[string]uint32 `json:"connectionIDs,omitempty"`
	// VPCVNIs stores VPC name -> VPC VNI, globally unique for the fabric
	VPCVNIs map[string]uint32 `json:"vpcVNIs,omitempty"`
	// VPCSubnetVNIs stores VPC name -> subnet name -> VPC Subnet VNI, globally unique for the fabric
	VPCSubnetVNIs map[string]map[string]uint32 `json:"vpcSubnetVNIs,omitempty"`

	// IRBVLANs stores VPC name -> IRB VLAN ID, unique per redundancy group (or switch)
	IRBVLANs map[string]uint16 `json:"irbVLANs,omitempty"`
	// PortChannelIDs stores Connection name -> PortChannel ID, unique per redundancy group (or switch)
	PortChannelIDs map[string]uint16 `json:"portChannelIDs,omitempty"`

	// LoopbackWorkaroundLinks stores loopback workaround "request" name (vpc@<vpc-peering> or ext@<external-peering>) -> loopback link name (<port1--port2>), unique per switch
	LooopbackWorkaroundLinks map[string]string `json:"loopbackWorkaroundLinks,omitempty"`
	// LoopbackWorkaroundVLANs stores loopback workaround "request" -> VLAN ID, unique per switch
	LoopbackWorkaroundVLANs map[string]uint16 `json:"loopbackWorkaroundVLANs,omitempty"`
	// ExternalIDs stores external name -> ID, unique per switch
	ExternalIDs map[string]uint16 `json:"externalIDs,omitempty"`
	// SubnetIDs stores subnet -> ID, unique per switch
	SubnetIDs map[string]uint32 `json:"subnetIDs,omitempty"`
}

CatalogSpec defines the desired state of Catalog

func (*CatalogSpec) DeepCopy

func (in *CatalogSpec) DeepCopy() *CatalogSpec

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

func (*CatalogSpec) DeepCopyInto

func (in *CatalogSpec) DeepCopyInto(out *CatalogSpec)

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

func (*CatalogSpec) GetVPCSubnetVNI

func (c *CatalogSpec) GetVPCSubnetVNI(vpc, subnet string) (uint32, bool)

type CatalogStatus

type CatalogStatus struct{}

CatalogStatus defines the observed state of Catalog

func (*CatalogStatus) DeepCopy

func (in *CatalogStatus) DeepCopy() *CatalogStatus

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

func (*CatalogStatus) DeepCopyInto

func (in *CatalogStatus) DeepCopyInto(out *CatalogStatus)

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

type ControlAgent

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

	Spec   ControlAgentSpec   `json:"spec,omitempty"`
	Status ControlAgentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:categories=hedgehog;fabric,shortName=cag +kubebuilder:printcolumn:name="Heartbeat",type=date,JSONPath=`.status.lastHeartbeat`,priority=0 +kubebuilder:printcolumn:name="Applied",type=date,JSONPath=`.status.lastAppliedTime`,priority=0 +kubebuilder:printcolumn:name="AppliedG",type=string,JSONPath=`.status.lastAppliedGen`,priority=0 +kubebuilder:printcolumn:name="CurrentG",type=string,JSONPath=`.metadata.generation`,priority=0 +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.status.version`,priority=0 +kubebuilder:printcolumn:name="Attempt",type=date,JSONPath=`.status.lastAttemptTime`,priority=2 +kubebuilder:printcolumn:name="AttemptG",type=string,JSONPath=`.status.lastAttemptGen`,priority=2 +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,priority=10 ControlAgent is the Schema for the controlagents API

func (*ControlAgent) DeepCopy

func (in *ControlAgent) DeepCopy() *ControlAgent

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

func (*ControlAgent) DeepCopyInto

func (in *ControlAgent) DeepCopyInto(out *ControlAgent)

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

func (*ControlAgent) DeepCopyObject

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

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

type ControlAgentList

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

ControlAgentList contains a list of ControlAgent

func (*ControlAgentList) DeepCopy

func (in *ControlAgentList) DeepCopy() *ControlAgentList

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

func (*ControlAgentList) DeepCopyInto

func (in *ControlAgentList) DeepCopyInto(out *ControlAgentList)

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

func (*ControlAgentList) DeepCopyObject

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

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

type ControlAgentSpec

type ControlAgentSpec struct {
	ControlVIP string            `json:"controlVIP,omitempty"`
	Version    AgentVersion      `json:"version,omitempty"`
	Networkd   map[string]string `json:"networkd,omitempty"`
	Hosts      map[string]string `json:"hosts,omitempty"`
}

ControlAgentSpec defines the desired state of the ControlAgent and includes all relevant information to configure the control node. Not intended to be modified by the user.

func (*ControlAgentSpec) DeepCopy

func (in *ControlAgentSpec) DeepCopy() *ControlAgentSpec

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

func (*ControlAgentSpec) DeepCopyInto

func (in *ControlAgentSpec) DeepCopyInto(out *ControlAgentSpec)

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

type ControlAgentStatus

type ControlAgentStatus struct {
	Conditions      []metav1.Condition `json:"conditions"`
	Version         string             `json:"version,omitempty"`
	LastHeartbeat   metav1.Time        `json:"lastHeartbeat,omitempty"`
	LastAttemptTime metav1.Time        `json:"lastAttemptTime,omitempty"`
	LastAttemptGen  int64              `json:"lastAttemptGen,omitempty"`
	LastAppliedTime metav1.Time        `json:"lastAppliedTime,omitempty"`
	LastAppliedGen  int64              `json:"lastAppliedGen,omitempty"`
}

ControlAgentStatus defines the observed state of ControlAgent

func (*ControlAgentStatus) DeepCopy

func (in *ControlAgentStatus) DeepCopy() *ControlAgentStatus

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

func (*ControlAgentStatus) DeepCopyInto

func (in *ControlAgentStatus) DeepCopyInto(out *ControlAgentStatus)

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

type OperStatus added in v0.35.0

type OperStatus string
const (
	OperStatusUnset          OperStatus = ""
	OperStatusUp             OperStatus = "up"
	OperStatusDown           OperStatus = "down"
	OperStatusTesting        OperStatus = "testing"
	OperStatusUnknown        OperStatus = "unknown"
	OperStatusDormant        OperStatus = "dormant"
	OperStatusNotPresent     OperStatus = "notPresent"
	OperStatusLowerLayerDown OperStatus = "lowerLayerDown"
)

func (OperStatus) ID added in v0.35.0

func (o OperStatus) ID() (uint8, error)

type SwitchState added in v0.35.0

type SwitchState struct {
	// Information about the switch and NOS
	NOS SwitchStateNOS `json:"nos,omitempty"`
	// Switch interfaces state (incl. physical, management and port channels)
	Interfaces map[string]SwitchStateInterface `json:"interfaces,omitempty"`
	// Breakout ports state (port -> breakout state)
	Breakouts map[string]SwitchStateBreakout `json:"breakouts,omitempty"`
	// State of all BGP neighbors (VRF -> neighbor address -> state)
	BGPNeighbors map[string]map[string]SwitchStateBGPNeighbor `json:"bgpNeighbors,omitempty"`
	// State of the switch platform (fans, PSUs, sensors)
	Platform SwitchStatePlatform `json:"platform,omitempty"`
}

func (*SwitchState) DeepCopy added in v0.35.0

func (in *SwitchState) DeepCopy() *SwitchState

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

func (*SwitchState) DeepCopyInto added in v0.35.0

func (in *SwitchState) DeepCopyInto(out *SwitchState)

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

type SwitchStateBGPNeighbor added in v0.35.0

type SwitchStateBGPNeighbor struct {
	ConnectionsDropped     uint64                                    `json:"connectionsDropped,omitempty"`
	Enabled                bool                                      `json:"enabled,omitempty"`
	EstablishedTransitions uint64                                    `json:"establishedTransitions,omitempty"`
	LastEstablished        metav1.Time                               `json:"lastEstablished,omitempty"`
	LastRead               metav1.Time                               `json:"lastRead,omitempty"`
	LastResetReason        string                                    `json:"lastResetReason,omitempty"`
	LastResetTime          metav1.Time                               `json:"lastResetTime,omitempty"`
	LastWrite              metav1.Time                               `json:"lastWrite,omitempty"`
	LocalAS                uint32                                    `json:"localAS,omitempty"`
	Messages               BGPMessages                               `json:"messages,omitempty"`
	PeerAS                 uint32                                    `json:"peerAS,omitempty"`
	PeerGroup              string                                    `json:"peerGroup,omitempty"`
	PeerPort               uint16                                    `json:"peerPort,omitempty"`
	PeerType               BGPPeerType                               `json:"peerType,omitempty"`
	RemoteRouterID         string                                    `json:"remoteRouterID,omitempty"`
	SessionState           BGPNeighborSessionState                   `json:"sessionState,omitempty"`
	ShutdownMessage        string                                    `json:"shutdownMessage,omitempty"`
	Prefixes               map[string]SwitchStateBGPNeighborPrefixes `json:"prefixes,omitempty"`
}

func (*SwitchStateBGPNeighbor) DeepCopy added in v0.35.0

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

func (*SwitchStateBGPNeighbor) DeepCopyInto added in v0.35.0

func (in *SwitchStateBGPNeighbor) DeepCopyInto(out *SwitchStateBGPNeighbor)

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

type SwitchStateBGPNeighborPrefixes added in v0.35.0

type SwitchStateBGPNeighborPrefixes struct {
	Received          uint32 `json:"received,omitempty"`
	ReceivedPrePolicy uint32 `json:"receivedPrePolicy,omitempty"`
	Sent              uint32 `json:"sent,omitempty"`
}

func (*SwitchStateBGPNeighborPrefixes) DeepCopy added in v0.35.0

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

func (*SwitchStateBGPNeighborPrefixes) DeepCopyInto added in v0.35.0

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

type SwitchStateBreakout added in v0.35.0

type SwitchStateBreakout struct {
	Mode    string   `json:"mode,omitempty"`
	Members []string `json:"members,omitempty"`
	Status  string   `json:"status,omitempty"`
}

func (*SwitchStateBreakout) DeepCopy added in v0.35.0

func (in *SwitchStateBreakout) DeepCopy() *SwitchStateBreakout

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

func (*SwitchStateBreakout) DeepCopyInto added in v0.35.0

func (in *SwitchStateBreakout) DeepCopyInto(out *SwitchStateBreakout)

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

type SwitchStateInterface added in v0.35.0

type SwitchStateInterface struct {
	Enabled       bool                          `json:"enabled,omitempty"`
	AdminStatus   AdminStatus                   `json:"adminStatus,omitempty"`
	OperStatus    OperStatus                    `json:"operStatus,omitempty"`
	MAC           string                        `json:"mac,omitempty"`
	LastChange    metav1.Time                   `json:"lastChanged,omitempty"`
	Counters      *SwitchStateInterfaceCounters `json:"counters,omitempty"`
	Transceiver   *SwitchStateTransceiver       `json:"transceiver,omitempty"`
	LLDPNeighbors []SwitchStateLLDPNeighbor     `json:"lldpNeighbors,omitempty"`
}

func (*SwitchStateInterface) DeepCopy added in v0.35.0

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

func (*SwitchStateInterface) DeepCopyInto added in v0.35.0

func (in *SwitchStateInterface) DeepCopyInto(out *SwitchStateInterface)

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

type SwitchStateInterfaceCounters added in v0.35.0

type SwitchStateInterfaceCounters struct {
	InBitsPerSecond  float64     `json:"inBitsPerSecond,omitempty"`
	InDiscards       uint64      `json:"inDiscards,omitempty"`
	InErrors         uint64      `json:"inErrors,omitempty"`
	InPktsPerSecond  float64     `json:"inPktsPerSecond,omitempty"`
	InUtilization    uint8       `json:"inUtilization,omitempty"`
	LastClear        metav1.Time `json:"lastClear,omitempty"`
	OutBitsPerSecond float64     `json:"outBitsPerSecond,omitempty"`
	OutDiscards      uint64      `json:"outDiscards,omitempty"`
	OutErrors        uint64      `json:"outErrors,omitempty"`
	OutPktsPerSecond float64     `json:"outPktsPerSecond,omitempty"`
	OutUtilization   uint8       `json:"outUtilization,omitempty"`
}

func (*SwitchStateInterfaceCounters) DeepCopy added in v0.35.0

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

func (*SwitchStateInterfaceCounters) DeepCopyInto added in v0.35.0

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

type SwitchStateLLDPNeighbor added in v0.35.0

type SwitchStateLLDPNeighbor struct {
	ChassisID         string `json:"chassisID,omitempty"`
	SystemName        string `json:"systemName,omitempty"`
	SystemDescription string `json:"systemDescription,omitempty"`
	PortID            string `json:"portID,omitempty"`
	PortDescription   string `json:"portDescription,omitempty"`

	Manufacturer string `json:"manufacturer,omitempty"`
	Model        string `json:"model,omitempty"`
	SerialNumber string `json:"serialNumber,omitempty"`
}

func (*SwitchStateLLDPNeighbor) DeepCopy added in v0.35.0

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

func (*SwitchStateLLDPNeighbor) DeepCopyInto added in v0.35.0

func (in *SwitchStateLLDPNeighbor) DeepCopyInto(out *SwitchStateLLDPNeighbor)

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

type SwitchStateNOS added in v0.35.0

type SwitchStateNOS struct {
	// ASIC name, such as "broadcom" or "vs"
	AsicVersion string `json:"asicVersion,omitempty"`
	// NOS build commit
	BuildCommit string `json:"buildCommit,omitempty"`
	// NOS build date
	BuildDate string `json:"buildDate,omitempty"`
	// NOS build user
	BuiltBy string `json:"builtBy,omitempty"`
	// NOS config DB version, such as "version_4_2_1"
	ConfigDbVersion string `json:"configDbVersion,omitempty"`
	// Distribution version, such as "Debian 10.13"
	DistributionVersion string `json:"distributionVersion,omitempty"`
	// Hardware version, such as "X01"
	HardwareVersion string `json:"hardwareVersion,omitempty"`
	// Hwsku version, such as "DellEMC-S5248f-P-25G-DPB"
	HwskuVersion string `json:"hwskuVersion,omitempty"`
	// Kernel version, such as "5.10.0-21-amd64"
	KernelVersion string `json:"kernelVersion,omitempty"`
	// Manufacturer name, such as "Dell EMC"
	MfgName string `json:"mfgName,omitempty"`
	// Platform name, such as "x86_64-dellemc_s5248f_c3538-r0"
	PlatformName string `json:"platformName,omitempty"`
	// NOS product description, such as "Enterprise SONiC Distribution by Broadcom - Enterprise Base package"
	ProductDescription string `json:"productDescription,omitempty"`
	// NOS product version, empty for Broadcom SONiC
	ProductVersion string `json:"productVersion,omitempty"`
	// Switch serial number
	SerialNumber string `json:"serialNumber,omitempty"`
	// NOS software version, such as "4.2.0-Enterprise_Base"
	SoftwareVersion string `json:"softwareVersion,omitempty"`
	// Switch uptime, such as "21:21:27 up 1 day, 23:26, 0 users, load average: 1.92, 1.99, 2.00 "
	Uptime string `json:"uptime,omitempty"`
}

SwitchStateNOS contains information about the switch and NOS received from the switch itself by the agent

func (*SwitchStateNOS) DeepCopy added in v0.35.0

func (in *SwitchStateNOS) DeepCopy() *SwitchStateNOS

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

func (*SwitchStateNOS) DeepCopyInto added in v0.35.0

func (in *SwitchStateNOS) DeepCopyInto(out *SwitchStateNOS)

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

type SwitchStatePlatform added in v0.35.0

type SwitchStatePlatform struct {
	Fans         map[string]SwitchStatePlatformFan         `json:"fans,omitempty"`
	PSUs         map[string]SwitchStatePlatformPSU         `json:"psus,omitempty"`
	Temperatures map[string]SwitchStatePlatformTemperature `json:"temperature,omitempty"`
}

func (*SwitchStatePlatform) DeepCopy added in v0.35.0

func (in *SwitchStatePlatform) DeepCopy() *SwitchStatePlatform

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

func (*SwitchStatePlatform) DeepCopyInto added in v0.35.0

func (in *SwitchStatePlatform) DeepCopyInto(out *SwitchStatePlatform)

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

type SwitchStatePlatformFan added in v0.35.0

type SwitchStatePlatformFan struct {
	Direction string  `json:"direction,omitempty"`
	Speed     float64 `json:"speed,omitempty"`
	Presense  bool    `json:"presense,omitempty"`
	Status    bool    `json:"status,omitempty"`
}

func (*SwitchStatePlatformFan) DeepCopy added in v0.35.0

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

func (*SwitchStatePlatformFan) DeepCopyInto added in v0.35.0

func (in *SwitchStatePlatformFan) DeepCopyInto(out *SwitchStatePlatformFan)

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

type SwitchStatePlatformPSU added in v0.35.0

type SwitchStatePlatformPSU struct {
	InputCurrent  float64 `json:"inputCurrent,omitempty"`
	InputPower    float64 `json:"inputPower,omitempty"`
	InputVoltage  float64 `json:"inputVoltage,omitempty"`
	OutputCurrent float64 `json:"outputCurrent,omitempty"`
	OutputPower   float64 `json:"outputPower,omitempty"`
	OutputVoltage float64 `json:"outputVoltage,omitempty"`
	Presense      bool    `json:"presense,omitempty"`
	Status        bool    `json:"status,omitempty"`
}

func (*SwitchStatePlatformPSU) DeepCopy added in v0.35.0

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

func (*SwitchStatePlatformPSU) DeepCopyInto added in v0.35.0

func (in *SwitchStatePlatformPSU) DeepCopyInto(out *SwitchStatePlatformPSU)

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

type SwitchStatePlatformTemperature added in v0.35.0

type SwitchStatePlatformTemperature struct {
	Temperature           float64 `json:"temperature,omitempty"`
	Alarms                string  `json:"alarms,omitempty"`
	HighThreshold         float64 `json:"highThreshold,omitempty"`
	CriticalHighThreshold float64 `json:"criticalHighThreshold,omitempty"`
	LowThreshold          float64 `json:"lowThreshold,omitempty"`
	CriticalLowThreshold  float64 `json:"criticalLowThreshold,omitempty"`
}

func (*SwitchStatePlatformTemperature) DeepCopy added in v0.35.0

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

func (*SwitchStatePlatformTemperature) DeepCopyInto added in v0.35.0

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

type SwitchStateTransceiver added in v0.35.0

type SwitchStateTransceiver struct {
	Description   string  `json:"description,omitempty"`
	CableClass    string  `json:"cableClass,omitempty"`
	FormFactor    string  `json:"formFactor,omitempty"`
	ConnectorType string  `json:"connectorType,omitempty"`
	Present       string  `json:"present,omitempty"`
	CableLength   float64 `json:"cableLength,omitempty"`
	OperStatus    string  `json:"operStatus,omitempty"`
	Temperature   float64 `json:"temperature,omitempty"`
	Voltage       float64 `json:"voltage,omitempty"`
	SerialNumber  string  `json:"serialNumber,omitempty"`
	Vendor        string  `json:"vendor,omitempty"`
	VendorPart    string  `json:"vendorPart,omitempty"`
	VendorOUI     string  `json:"vendorOUI,omitempty"`
	VendorRev     string  `json:"vendorRev,omitempty"`
}

func (*SwitchStateTransceiver) DeepCopy added in v0.35.0

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

func (*SwitchStateTransceiver) DeepCopyInto added in v0.35.0

func (in *SwitchStateTransceiver) DeepCopyInto(out *SwitchStateTransceiver)

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

type UserCreds

type UserCreds struct {
	Name     string   `json:"name,omitempty"`
	Password string   `json:"password,omitempty"`
	Role     string   `json:"role,omitempty"`
	SSHKeys  []string `json:"sshKeys,omitempty"`
}

func (*UserCreds) DeepCopy

func (in *UserCreds) DeepCopy() *UserCreds

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

func (*UserCreds) DeepCopyInto

func (in *UserCreds) DeepCopyInto(out *UserCreds)

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

type VirtualEdgeConfig

type VirtualEdgeConfig struct {
	ASN          string `json:"ASN"`
	VRF          string `json:"VRF"`
	CommunityIn  string `json:"CommunityIn"`
	CommunityOut string `json:"CommunityOut"`
	NeighborIP   string `json:"NeighborIP"`
	IfName       string `json:"ifName"`
	IfVlan       string `json:"ifVlan"`
	IfIP         string `json:"ifIP"`
}

+kubebuilder:skip

func (*VirtualEdgeConfig) DeepCopy

func (in *VirtualEdgeConfig) DeepCopy() *VirtualEdgeConfig

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

func (*VirtualEdgeConfig) DeepCopyInto

func (in *VirtualEdgeConfig) DeepCopyInto(out *VirtualEdgeConfig)

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