Skip to content

API Reference

Packages

agent.githedgehog.com/v1alpha2

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.

Resource Types

Agent

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.

Field Description
apiVersion string agent.githedgehog.com/v1alpha2
kind string Agent
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec AgentSpec Spec is the desired state of the Agent
status AgentStatus Status is the observed state of the Agent

AgentStatus

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.

Appears in: - Agent

Field Description
version string Current running agent version
installID string ID of the agent installation, used to track NOS re-installs
runID string ID of the agent run, used to track NOS reboots
lastHeartbeat Time Time of the last heartbeat from the agent
lastAttemptTime Time Time of the last attempt to apply configuration
lastAttemptGen integer Generation of the last attempt to apply configuration
lastAppliedTime Time Time of the last successful configuration application
lastAppliedGen integer Generation of the last successful configuration application
nosInfo NOSInfo Information about the switch and NOS
statusUpdates ApplyStatusUpdate array Status updates from the agent
conditions Condition array Conditions of the agent, includes readiness marker for use with kubectl wait

NOSInfo

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

Appears in: - AgentStatus

Field Description
asicVersion string ASIC name, such as "broadcom" or "vs"
buildCommit string NOS build commit
buildDate string NOS build date
builtBy string NOS build user
configDbVersion string NOS config DB version, such as "version_4_2_1"
distributionVersion string Distribution version, such as "Debian 10.13"
hardwareVersion string Hardware version, such as "X01"
hwskuVersion string Hwsku version, such as "DellEMC-S5248f-P-25G-DPB"
kernelVersion string Kernel version, such as "5.10.0-21-amd64"
mfgName string Manufacturer name, such as "Dell EMC"
platformName string Platform name, such as "x86_64-dellemc_s5248f_c3538-r0"
productDescription string NOS product description, such as "Enterprise SONiC Distribution by Broadcom - Enterprise Base package"
productVersion string NOS product version, empty for Broadcom SONiC
serialNumber string Switch serial number
softwareVersion string NOS software version, such as "4.2.0-Enterprise_Base"
upTime string Switch uptime, such as "21:21:27 up 1 day, 23:26, 0 users, load average: 1.92, 1.99, 2.00 "

dhcp.githedgehog.com/v1alpha2

Package v1alpha2 contains API Schema definitions for the dhcp v1alpha2 API group. It is the primarely internal API group for the intended Hedgehog DHCP server configuration and storing leases as well as making them available to the end user through API. Not intended to be modified by the user.

Resource Types

DHCPAllocated

DHCPAllocated is a single allocated IP with expiry time and hostname from DHCP requests, it's effectively a DHCP lease

Appears in: - DHCPSubnetStatus

Field Description
ip string Allocated IP address
expiry Time Expiry time of the lease
hostname string Hostname from DHCP request

DHCPSubnet

DHCPSubnet is the configuration (spec) for the Hedgehog DHCP server and storage for the leases (status). It's primarely internal API group, but it makes allocated IPs / leases information available to the end user through API. Not intended to be modified by the user.

Field Description
apiVersion string dhcp.githedgehog.com/v1alpha2
kind string DHCPSubnet
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec DHCPSubnetSpec Spec is the desired state of the DHCPSubnet
status DHCPSubnetStatus Status is the observed state of the DHCPSubnet

DHCPSubnetSpec

DHCPSubnetSpec defines the desired state of DHCPSubnet

Appears in: - DHCPSubnet

Field Description
subnet string Full VPC subnet name (including VPC name), such as "vpc-0/default"
cidrBlock string CIDR block to use for VPC subnet, such as "10.10.10.0/24"
gateway string Gateway, such as 10.10.10.1
startIP string Start IP from the CIDRBlock to allocate IPs, such as 10.10.10.10
endIP string End IP from the CIDRBlock to allocate IPs, such as 10.10.10.99
vrf string VRF name to identify specific VPC (will be added to DHCP packets by DHCP relay in suboption 151), such as "VrfVvpc-1" as it's named on switch
circuitID string VLAN ID to identify specific subnet withing the VPC, such as "Vlan1000" as it's named on switch

DHCPSubnetStatus

DHCPSubnetStatus defines the observed state of DHCPSubnet

Appears in: - DHCPSubnet

Field Description
allocated object (keys:string, values:DHCPAllocated) Allocated is a map of allocated IPs with expiry time and hostname from DHCP requests

vpc.githedgehog.com/v1alpha2

Package v1alpha2 contains API Schema definitions for the vpc v1alpha2 API group. It is public API group for the VPCs and Externals APIs. Intended to be used by the user.

Resource Types

External

External object represents an external system connected to the Fabric and available to the specific IPv4Namespace. Users can do external peering with the external system by specifying the name of the External Object without need to worry about the details of how external system is attached to the Fabric.

Field Description
apiVersion string vpc.githedgehog.com/v1alpha2
kind string External
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ExternalSpec Spec is the desired state of the External
status ExternalStatus Status is the observed state of the External

ExternalAttachment

ExternalAttachment is a definition of how specific switch is connected with external system (External object). Effectively it represents BGP peering between the switch and external system including all needed configuration.

Field Description
apiVersion string vpc.githedgehog.com/v1alpha2
kind string ExternalAttachment
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ExternalAttachmentSpec Spec is the desired state of the ExternalAttachment
status ExternalAttachmentStatus Status is the observed state of the ExternalAttachment

ExternalAttachmentNeighbor

ExternalAttachmentNeighbor defines the BGP neighbor configuration for the external attachment

Appears in: - ExternalAttachmentSpec

Field Description
asn integer ASN is the ASN of the BGP neighbor
ip string IP is the IP address of the BGP neighbor to peer with

ExternalAttachmentSpec

ExternalAttachmentSpec defines the desired state of ExternalAttachment

Appears in: - AgentSpec - ExternalAttachment

Field Description
external string External is the name of the External object this attachment belongs to
connection string Connection is the name of the Connection object this attachment belongs to (essentialy the name of the switch/port)
switch ExternalAttachmentSwitch Switch is the switch port configuration for the external attachment
neighbor ExternalAttachmentNeighbor Neighbor is the BGP neighbor configuration for the external attachment

ExternalAttachmentStatus

ExternalAttachmentStatus defines the observed state of ExternalAttachment

Appears in: - ExternalAttachment

ExternalAttachmentSwitch

ExternalAttachmentSwitch defines the switch port configuration for the external attachment

Appears in: - ExternalAttachmentSpec

Field Description
vlan integer VLAN is the VLAN ID used for the subinterface on a switch port specified in the connection
ip string IP is the IP address of the subinterface on a switch port specified in the connection

ExternalPeering

ExternalPeering is the Schema for the externalpeerings API

Field Description
apiVersion string vpc.githedgehog.com/v1alpha2
kind string ExternalPeering
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ExternalPeeringSpec Spec is the desired state of the ExternalPeering
status ExternalPeeringStatus Status is the observed state of the ExternalPeering

ExternalPeeringSpec

ExternalPeeringSpec defines the desired state of ExternalPeering

Appears in: - AgentSpec - ExternalPeering

Field Description
permit ExternalPeeringSpecPermit Permit defines the peering policy - which VPC and External to peer with and which subnets/prefixes to permit

ExternalPeeringSpecExternal

ExternalPeeringSpecExternal defines the External-side of the configuration to peer with

Appears in: - ExternalPeeringSpecPermit

Field Description
name string Name is the name of the External to peer with
prefixes ExternalPeeringSpecPrefix array Prefixes is the list of prefixes to permit from the External to the VPC

ExternalPeeringSpecPermit

ExternalPeeringSpecPermit defines the peering policy - which VPC and External to peer with and which subnets/prefixes to permit

Appears in: - ExternalPeeringSpec

Field Description
vpc ExternalPeeringSpecVPC VPC is the VPC-side of the configuration to peer with
external ExternalPeeringSpecExternal External is the External-side of the configuration to peer with

ExternalPeeringSpecPrefix

ExternalPeeringSpecPrefix defines the prefix to permit from the External to the VPC

Appears in: - ExternalPeeringSpecExternal

Field Description
prefix string Prefix is the subnet to permit from the External to the VPC, e.g. 0.0.0.0/0 for default route
ge integer Ge is the minimum prefix length to permit from the External to the VPC, e.g. 24 for /24
le integer Le is the maximum prefix length to permit from the External to the VPC, e.g. 32 for /32

ExternalPeeringSpecVPC

ExternalPeeringSpecVPC defines the VPC-side of the configuration to peer with

Appears in: - ExternalPeeringSpecPermit

Field Description
name string Name is the name of the VPC to peer with
subnets string array Subnets is the list of subnets to advertise from VPC to the External

ExternalPeeringStatus

ExternalPeeringStatus defines the observed state of ExternalPeering

Appears in: - ExternalPeering

ExternalSpec

ExternalSpec describes IPv4 namespace External belongs to and inbound/outbound communities which are used to filter routes from/to the external system.

Appears in: - AgentSpec - External

Field Description
ipv4Namespace string IPv4Namespace is the name of the IPv4Namespace this External belongs to
inboundCommunity string InboundCommunity is the name of the inbound community to filter routes from the external system
outboundCommunity string OutboundCommunity is the name of the outbound community that all outbound routes will be stamped with

ExternalStatus

ExternalStatus defines the observed state of External

Appears in: - External

IPv4Namespace

IPv4Namespace represents a namespace for VPC subnets allocation. All VPC subnets withing a single IPv4Namespace are non-overlapping. Users can create multiple IPv4Namespaces to allocate same VPC subnets.

Field Description
apiVersion string vpc.githedgehog.com/v1alpha2
kind string IPv4Namespace
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec IPv4NamespaceSpec Spec is the desired state of the IPv4Namespace
status IPv4NamespaceStatus Status is the observed state of the IPv4Namespace

IPv4NamespaceSpec

IPv4NamespaceSpec defines the desired state of IPv4Namespace

Appears in: - AgentSpec - IPv4Namespace

Field Description
subnets string array Subnets is the list of subnets to allocate VPC subnets from, couldn't overlap between each other and with Fabric reserved subnets

IPv4NamespaceStatus

IPv4NamespaceStatus defines the observed state of IPv4Namespace

Appears in: - IPv4Namespace

VPC

VPC is Virtual Private Cloud, similar to the public cloud VPC it provides an isolated private network for the resources with support for multiple subnets each with user-provided VLANs and on-demand DHCP.

Field Description
apiVersion string vpc.githedgehog.com/v1alpha2
kind string VPC
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VPCSpec Spec is the desired state of the VPC
status VPCStatus Status is the observed state of the VPC

VPCAttachment

VPCAttachment is the Schema for the vpcattachments API

Field Description
apiVersion string vpc.githedgehog.com/v1alpha2
kind string VPCAttachment
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VPCAttachmentSpec Spec is the desired state of the VPCAttachment
status VPCAttachmentStatus Status is the observed state of the VPCAttachment

VPCAttachmentSpec

VPCAttachmentSpec defines the desired state of VPCAttachment

Appears in: - AgentSpec - VPCAttachment

Field Description
subnet string Subnet is the full name of the VPC subnet to attach to, such as "vpc-1/default"
connection string Connection is the name of the connection to attach to the VPC

VPCAttachmentStatus

VPCAttachmentStatus defines the observed state of VPCAttachment

Appears in: - VPCAttachment

VPCDHCP

VPCDHCP defines the on-demand DHCP configuration for the subnet

Appears in: - VPCSubnet

Field Description
relay string Relay is the DHCP relay IP address, if specified, DHCP server will be disabled
enable boolean Enable enables DHCP server for the subnet
range VPCDHCPRange Range is the DHCP range for the subnet if DHCP server is enabled

VPCDHCPRange

Underlying type: struct{Start string "json:\"start,omitempty\""; End string "json:\"end,omitempty\""}

VPCDHCPRange defines the DHCP range for the subnet if DHCP server is enabled

Appears in: - VPCDHCP

VPCPeer

Appears in: - VPCPeeringSpec

Field Description
subnets string array Subnets is the list of subnets to advertise from current VPC to the peer VPC

VPCPeering

VPCPeering represents a peering between two VPCs with corresponding filtering rules. Minimal example of the VPC peering showing vpc-1 to vpc-2 peering with all subnets allowed: spec: permit: - vpc-1: {} vpc-2: {}

Field Description
apiVersion string vpc.githedgehog.com/v1alpha2
kind string VPCPeering
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VPCPeeringSpec Spec is the desired state of the VPCPeering
status VPCPeeringStatus Status is the observed state of the VPCPeering

VPCPeeringSpec

VPCPeeringSpec defines the desired state of VPCPeering

Appears in: - AgentSpec - VPCPeering

Field Description
remote string
permit map[string]VPCPeer array Permit defines a list of the peering policies - which VPC subnets will have access to the peer VPC subnets.

VPCPeeringStatus

VPCPeeringStatus defines the observed state of VPCPeering

Appears in: - VPCPeering

VPCSpec

VPCSpec defines the desired state of VPC. At least one subnet is required.

Appears in: - AgentSpec - VPC

Field Description
subnets object (keys:string, values:VPCSubnet) Subnets is the list of VPC subnets to configure
ipv4Namespace string IPv4Namespace is the name of the IPv4Namespace this VPC belongs to
vlanNamespace string VLANNamespace is the name of the VLANNamespace this VPC belongs to

VPCStatus

VPCStatus defines the observed state of VPC

Appears in: - VPC

Field Description
vni integer VNI is the global Fabric-level VNI allocated for the VPC
subnetVNIs object (keys:string, values:integer) SubnetVNIs is the map of subnet names to the global Fabric-level VNIs allocated for the VPC subnets

VPCSubnet

VPCSubnet defines the VPC subnet configuration

Appears in: - VPCSpec

Field Description
subnet string Subnet is the subnet CIDR block, such as "10.0.0.0/24", should belong to the IPv4Namespace and be unique within the namespace
dhcp VPCDHCP DHCP is the on-demand DHCP configuration for the subnet
vlan string VLAN is the VLAN ID for the subnet, should belong to the VLANNamespace and be unique within the namespace

wiring.githedgehog.com/v1alpha2

Package v1alpha2 contains API Schema definitions for the wiring v1alpha2 API group. It is public API group mainly for the underlay definition including Switches, Server, wiring between them and etc. Intended to be used by the user.

Resource Types

BasePortName

BasePortName defines the full name of the switch port

Appears in: - ConnExternalLink - ConnFabricLinkSwitch - ConnMgmtLinkServer - ConnMgmtLinkSwitch - ConnStaticExternalLinkSwitch - ServerToSwitchLink - SwitchToSwitchLink

Field Description
port string Port defines the full name of the switch port in the format of "device/port", such as "spine-1/Ethernet1". SONiC port name is used as a port name and switch name should be same as the name of the Switch object.

ConnBundled

ConnBundled defines the bundled connection (port channel, single server to a single switch with multiple links)

Appears in: - ConnectionSpec

Field Description
links ServerToSwitchLink array Links is the list of server-to-switch links
mtu integer MTU is the MTU to be configured on the switch port or port channel

ConnExternal

ConnExternal defines the external connection (single switch to a single external device with a single link)

Appears in: - ConnectionSpec

Field Description
link ConnExternalLink Link is the external connection link

ConnExternalLink defines the external connection link

Appears in: - ConnExternal

Field Description
switch BasePortName

ConnFabric

ConnFabric defines the fabric connection (single spine to a single leaf with at least one link)

Appears in: - ConnectionSpec

Field Description
links FabricLink array Links is the list of spine-to-leaf links

ConnFabricLinkSwitch

ConnFabricLinkSwitch defines the switch side of the fabric link

Appears in: - FabricLink

Field Description
port string Port defines the full name of the switch port in the format of "device/port", such as "spine-1/Ethernet1". SONiC port name is used as a port name and switch name should be same as the name of the Switch object.
ip string IP is the IP address of the switch side of the fabric link (switch port configuration)

ConnMCLAG

ConnMCLAG defines the MCLAG connection (port channel, single server to multiple switches with multiple links)

Appears in: - ConnectionSpec

Field Description
links ServerToSwitchLink array Links is the list of server-to-switch links
mtu integer MTU is the MTU to be configured on the switch port or port channel

ConnMCLAGDomain

ConnMCLAGDomain defines the MCLAG domain connection which makes two switches into a single logical switch or redundancy group and allows to use MCLAG connections to connect servers in a multi-homed way.

Appears in: - ConnectionSpec

Field Description
peerLinks SwitchToSwitchLink array PeerLinks is the list of peer links between the switches, used to pass server traffic between switch
sessionLinks SwitchToSwitchLink array SessionLinks is the list of session links between the switches, used only to pass MCLAG control plane and BGP traffic between switches

ConnMgmt

ConnMgmt defines the management connection (single control node/server to a single switch with a single link)

Appears in: - ConnectionSpec

Field Description
link ConnMgmtLink

ConnMgmtLink defines the management connection link

Appears in: - ConnMgmt

Field Description
server ConnMgmtLinkServer Server is the server side of the management link
switch ConnMgmtLinkSwitch Switch is the switch side of the management link

ConnMgmtLinkServer

ConnMgmtLinkServer defines the server side of the management link

Appears in: - ConnMgmtLink

Field Description
port string Port defines the full name of the switch port in the format of "device/port", such as "spine-1/Ethernet1". SONiC port name is used as a port name and switch name should be same as the name of the Switch object.
ip string IP is the IP address of the server side of the management link (control node port configuration)
mac string MAC is an optional MAC address of the control node port for the management link, if specified will be used to create a "virtual" link with the connection names on the control node

ConnMgmtLinkSwitch

ConnMgmtLinkSwitch defines the switch side of the management link

Appears in: - ConnMgmtLink

Field Description
port string Port defines the full name of the switch port in the format of "device/port", such as "spine-1/Ethernet1". SONiC port name is used as a port name and switch name should be same as the name of the Switch object.
ip string IP is the IP address of the switch side of the management link (switch port configuration)
oniePortName string ONIEPortName is an optional ONIE port name of the switch side of the management link that's only used by the IPv6 Link Local discovery

ConnStaticExternal

ConnStaticExternal defines the static external connection (single switch to a single external device with a single link)

Appears in: - ConnectionSpec

Field Description
link ConnStaticExternalLink Link is the static external connection link

ConnStaticExternalLink defines the static external connection link

Appears in: - ConnStaticExternal

Field Description
switch ConnStaticExternalLinkSwitch Switch is the switch side of the static external connection link

ConnStaticExternalLinkSwitch

ConnStaticExternalLinkSwitch defines the switch side of the static external connection link

Appears in: - ConnStaticExternalLink

Field Description
port string Port defines the full name of the switch port in the format of "device/port", such as "spine-1/Ethernet1". SONiC port name is used as a port name and switch name should be same as the name of the Switch object.
ip string IP is the IP address of the switch side of the static external connection link (switch port configuration)
nextHop string NextHop is the next hop IP address for static routes that will be created for the subnets
subnets string array Subnets is the list of subnets that will get static routes using the specified next hop
vlan integer VLAN is the optional VLAN ID to be configured on the switch port

ConnUnbundled

ConnUnbundled defines the unbundled connection (no port channel, single server to a single switch with a single link)

Appears in: - ConnectionSpec

Field Description
link ServerToSwitchLink Link is the server-to-switch link
mtu integer MTU is the MTU to be configured on the switch port or port channel

ConnVPCLoopback

ConnVPCLoopback defines the VPC loopback connection (multiple port pairs on a single switch) that enables automated workaround named "VPC Loopback" that allow to avoid switch hardware limitations and traffic going through CPU in some cases

Appears in: - ConnectionSpec

Field Description
links SwitchToSwitchLink array Links is the list of VPC loopback links

Connection

Connection object represents a logical and physical connections between any devices in the Fabric (Switch, Server and External objects). It's needed to define all physical and logical connections between the devices in the Wiring Diagram. Connection type is defined by the top-level field in the ConnectionSpec. Exactly one of them could be used in a single Connection object.

Field Description
apiVersion string wiring.githedgehog.com/v1alpha2
kind string Connection
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ConnectionSpec Spec is the desired state of the Connection
status ConnectionStatus Status is the observed state of the Connection

ConnectionSpec

ConnectionSpec defines the desired state of Connection

Appears in: - AgentSpec - Connection

Field Description
unbundled ConnUnbundled Unbundled defines the unbundled connection (no port channel, single server to a single switch with a single link)
bundled ConnBundled Bundled defines the bundled connection (port channel, single server to a single switch with multiple links)
management ConnMgmt Management defines the management connection (single control node/server to a single switch with a single link)
mclag ConnMCLAG MCLAG defines the MCLAG connection (port channel, single server to multiple switches with multiple links)
mclagDomain ConnMCLAGDomain MCLAGDomain defines the MCLAG domain connection which makes two switches into a single logical switch for server multi-homing
fabric ConnFabric Fabric defines the fabric connection (single spine to a single leaf with at least one link)
vpcLoopback ConnVPCLoopback VPCLoopback defines the VPC loopback connection (multiple port pairs on a single switch) for automated workaround
external ConnExternal External defines the external connection (single switch to a single external device with a single link)
staticExternal ConnStaticExternal StaticExternal defines the static external connection (single switch to a single external device with a single link)

ConnectionStatus

ConnectionStatus defines the observed state of Connection

Appears in: - Connection

FabricLink defines the fabric connection link

Appears in: - ConnFabric

Field Description
spine ConnFabricLinkSwitch Spine is the spine side of the fabric link
leaf ConnFabricLinkSwitch Leaf is the leaf side of the fabric link

Location

Location defines the geopraphical position of the device in a datacenter

Appears in: - SwitchSpec

Field Description
location string
aisle string
row string
rack string
slot string

LocationSig

LocationSig contains signatures for the location UUID as well as the device location itself

Appears in: - SwitchSpec

Field Description
sig string
uuidSig string

Rack

Rack is the Schema for the racks API

Field Description
apiVersion string wiring.githedgehog.com/v1alpha2
kind string Rack
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec RackSpec
status RackStatus

RackPosition

RackPosition defines the geopraphical position of the rack in a datacenter

Appears in: - RackSpec

Field Description
location string
aisle string
row string

RackSpec

RackSpec defines the properties of a rack which we are modelling

Appears in: - Rack

Field Description
numServers integer
hasControlNode boolean
hasConsoleServer boolean
position RackPosition

RackStatus

RackStatus defines the observed state of Rack

Appears in: - Rack

Server

Server is the Schema for the servers API

Field Description
apiVersion string wiring.githedgehog.com/v1alpha2
kind string Server
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ServerSpec Spec is desired state of the server
status ServerStatus Status is the observed state of the server

ServerFacingConnectionConfig

ServerFacingConnectionConfig defines any server-facing connection (unbundled, bundled, mclag, etc.) configuration

Appears in: - ConnBundled - ConnMCLAG - ConnUnbundled

Field Description
mtu integer MTU is the MTU to be configured on the switch port or port channel

ServerSpec

ServerSpec defines the desired state of Server

Appears in: - Server

Field Description
type ServerType Type is the type of server, could be control for control nodes or default (empty string) for everything else
description string Description is a description of the server
profile string Profile is the profile of the server, name of the ServerProfile object to be used for this server, currently not used by the Fabric

ServerStatus

ServerStatus defines the observed state of Server

Appears in: - Server

ServerToSwitchLink defines the server-to-switch link

Appears in: - ConnBundled - ConnMCLAG - ConnUnbundled

Field Description
server BasePortName Server is the server side of the connection
switch BasePortName Switch is the switch side of the connection

ServerType

Underlying type: string

ServerType is the type of server, could be control for control nodes or default (empty string) for everything else

Appears in: - ServerSpec

Switch

Switch is the Schema for the switches API All switches should always have 1 labels defined: wiring.githedgehog.com/rack. It represents name of the rack it belongs to.

Field Description
apiVersion string wiring.githedgehog.com/v1alpha2
kind string Switch
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec SwitchSpec Spec is desired state of the switch
status SwitchStatus Status is the observed state of the switch

SwitchGroup

SwitchGroup is the marker API object to group switches together, switch can belong to multiple groups

Field Description
apiVersion string wiring.githedgehog.com/v1alpha2
kind string SwitchGroup
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec SwitchGroupSpec Spec is the desired state of the SwitchGroup
status SwitchGroupStatus Status is the observed state of the SwitchGroup

SwitchGroupSpec

SwitchGroupSpec defines the desired state of SwitchGroup

Appears in: - SwitchGroup

SwitchGroupStatus

SwitchGroupStatus defines the observed state of SwitchGroup

Appears in: - SwitchGroup

SwitchRole

Underlying type: string

SwitchRole is the role of the switch, could be spine, server-leaf or border-leaf or mixed-leaf

Appears in: - AgentSpec - SwitchSpec

SwitchSpec

SwitchSpec defines the desired state of Switch

Appears in: - AgentSpec - Switch

Field Description
role SwitchRole Role is the role of the switch, could be spine, server-leaf or border-leaf or mixed-leaf
description string Description is a description of the switch
profile string Profile is the profile of the switch, name of the SwitchProfile object to be used for this switch, currently not used by the Fabric
location Location Location is the location of the switch, it is used to generate the location UUID and location signature
locationSig LocationSig LocationSig is the location signature for the switch
groups string array Groups is a list of switch groups the switch belongs to
vlanNamespaces string array VLANNamespaces is a list of VLAN namespaces the switch is part of, their VLAN ranges could not overlap
asn integer ASN is the ASN of the switch
ip string IP is the IP of the switch that could be used to access it from other switches and control nodes in the Fabric
vtepIP string VTEPIP is the VTEP IP of the switch
protocolIP string ProtocolIP is used as BGP Router ID for switch configuration
portGroupSpeeds object (keys:string, values:string) PortGroupSpeeds is a map of port group speeds, key is the port group name, value is the speed, such as '"2": 10G'
portSpeeds object (keys:string, values:string) PortSpeeds is a map of port speeds, key is the port name, value is the speed
portBreakouts object (keys:string, values:string) PortBreakouts is a map of port breakouts, key is the port name, value is the breakout configuration, such as "1/55: 4x25G"

SwitchStatus

SwitchStatus defines the observed state of Switch

Appears in: - Switch

SwitchToSwitchLink defines the switch-to-switch link

Appears in: - ConnMCLAGDomain - ConnVPCLoopback

Field Description
switch1 BasePortName Switch1 is the first switch side of the connection
switch2 BasePortName Switch2 is the second switch side of the connection

VLANNamespace

VLANNamespace is the Schema for the vlannamespaces API

Field Description
apiVersion string wiring.githedgehog.com/v1alpha2
kind string VLANNamespace
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VLANNamespaceSpec Spec is the desired state of the VLANNamespace
status VLANNamespaceStatus Status is the observed state of the VLANNamespace

VLANNamespaceSpec

VLANNamespaceSpec defines the desired state of VLANNamespace

Appears in: - AgentSpec - VLANNamespace

Field Description
ranges VLANRange array Ranges is a list of VLAN ranges to be used in this namespace, couldn't overlap between each other and with Fabric reserved VLAN ranges

VLANNamespaceStatus

VLANNamespaceStatus defines the observed state of VLANNamespace

Appears in: - VLANNamespace


Last update: January 25, 2024
Created: October 26, 2023