v1alpha1

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2022 License: Apache-2.0 Imports: 8 Imported by: 1

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the topo v1alpha1 API group +kubebuilder:object:generate=true +groupName=topo.yndd.io

Index

Constants

View Source
const (
	// Group in the kubernetes api
	Group = "topo.yndd.io"
	// Version in the kubernetes api
	Version = "v1alpha1"
)
View Source
const (
	LabelKeyTopologyPosition          = "topology.yndd.io/Position"
	LabelKeyTopologyRelativeNodeIndex = "topology.yndd.io/RelativeNodeIndex"
	LabelKeyTopologyPodIndex          = "topology.yndd.io/PodIndex"
	LabelKeyTopologyPlaneIndex        = "topology.yndd.io/PlaneIndex"
	LabelKeyTopologyPlatform          = "topology.yndd.io/Platform"
	LabelKeyTopologyVendorType        = "topology.yndd.io/VendorType"
	LabelKeyTopology                  = "topology.yndd.io/Topology"
)
View Source
const (
	MaxUint32 = ^uint32(0)
	MinUint32 = 0
	MaxInt    = int(MaxUint32 >> 1)
	MinInt    = -MaxInt - 1
)
View Source
const (
	NodePrefix            = "node"          // used in topology links to identify nodes in a mh endpoint
	KeyNode               = "node"          // used in allocation e.g. aspool and ipam
	KeyInterface          = "interface"     // used in allocation e.g. ipam
	KeyNodePlatform       = "platform"      // ixdd2, sr1, sr1s
	KeyNodePosition       = "position"      // server, leaf, spine, superspine, borderleaf, dcgw, server
	KeyNodeIndex          = "index"         // index for determinsitic allocations
	KeyLink               = "link"          // used in allocation
	KeyLinkLagMember      = "lag-member"    // true or false (default) -> this is set in the config
	KeyLinkLag            = "lag"           // true or false (default) -> this is set on the logical link which is created by the topolink parser
	KeyLinkLacp           = "lacp"          // true (default) or false
	KeyLinkKind           = "kind"          // "infra" (default), "loop" -> used when both sides of the link are the same
	KeyLinkEPKind         = "kind"          // "infra" (default), "loop", "access", "oob"
	KeyLinkEPLacpFallback = "lacp-fallback" // true or false (default)
	//keyLinkEPSRIOV   = "sriov"   // "true", "false" (default)
	//keyLinkEPIPVLAN   = "ipvlan"   // "true", "false" (default)
	KeyLinkEPGroup           = "endpoint-group"   //  server-pod1, dcgw1 -> default("")
	KeyLinkEPLagName         = "lag-name"         // flexible string
	KeyLinkEPMultiHoming     = "multihoming"      // true or false (default)
	KeyLinkEPMultiHomingName = "multihoming-name" // flexible string (group)

)

Variables

View Source
var (
	DefinitionKind             = reflect.TypeOf(Definition{}).Name()
	DefinitionGroupKind        = schema.GroupKind{Group: Group, Kind: DefinitionKind}.String()
	DefinitionKindAPIVersion   = DefinitionKind + "." + GroupVersion.String()
	DefinitionGroupVersionKind = GroupVersion.WithKind(DefinitionKind)
)

Definition type metadata.

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

	// 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 (
	LinkKind             = reflect.TypeOf(Link{}).Name()
	LinkGroupKind        = schema.GroupKind{Group: Group, Kind: LinkKind}.String()
	LinkKindAPIVersion   = LinkKind + "." + GroupVersion.String()
	LinkGroupVersionKind = GroupVersion.WithKind(LinkKind)
)

Link type metadata.

View Source
var (
	NodeKind             = reflect.TypeOf(Node{}).Name()
	NodeGroupKind        = schema.GroupKind{Group: Group, Kind: NodeKind}.String()
	NodeKindAPIVersion   = NodeKind + "." + GroupVersion.String()
	NodeGroupVersionKind = GroupVersion.WithKind(NodeKind)
)

Node type metadata.

View Source
var (
	TemplateKind             = reflect.TypeOf(Template{}).Name()
	TemplateGroupKind        = schema.GroupKind{Group: Group, Kind: TemplateKind}.String()
	TemplateKindAPIVersion   = TemplateKind + "." + GroupVersion.String()
	TemplateGroupVersionKind = GroupVersion.WithKind(TemplateKind)
)

Template type metadata.

View Source
var (
	TopologyKind             = reflect.TypeOf(Topology{}).Name()
	TopologyGroupKind        = schema.GroupKind{Group: Group, Kind: TopologyKind}.String()
	TopologyKindAPIVersion   = TopologyKind + "." + GroupVersion.String()
	TopologyGroupVersionKind = GroupVersion.WithKind(TopologyKind)
)

Topology type metadata.

Functions

func GetLevel

func GetLevel(p Position) int

Types

type Definition

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

	Spec   DefinitionSpec   `json:"spec,omitempty"`
	Status DefinitionStatus `json:"status,omitempty"`
}

Definition is the Schema for the Topology API +kubebuilder:subresource:status +kubebuilder:printcolumn:name="SYNC",type="string",JSONPath=".status.conditions[?(@.kind=='Synced')].status" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.conditions[?(@.kind=='Ready')].status" +kubebuilder:printcolumn:name="ORG",type="string",JSONPath=".status.oda[?(@.key=='organization')].value" +kubebuilder:printcolumn:name="DEP",type="string",JSONPath=".status.oda[?(@.key=='deployment')].value" +kubebuilder:printcolumn:name="AZ",type="string",JSONPath=".status.oda[?(@.key=='availability-zone')].value" +kubebuilder:printcolumn:name="TOPO",type="string",JSONPath=".status.topology-name" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:categories={yndd,topo}

func (*Definition) DeepCopy

func (in *Definition) DeepCopy() *Definition

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

func (*Definition) DeepCopyInto

func (in *Definition) DeepCopyInto(out *Definition)

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

func (*Definition) DeepCopyObject

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

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

type DefinitionList

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

DefinitionList contains a list of Definitions

func (*DefinitionList) DeepCopy

func (in *DefinitionList) DeepCopy() *DefinitionList

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

func (*DefinitionList) DeepCopyInto

func (in *DefinitionList) DeepCopyInto(out *DefinitionList)

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

func (*DefinitionList) DeepCopyObject

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

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

type DefinitionProperties

type DefinitionProperties struct {
	Location       *Location        `json:"location,omitempty"`
	Templates      []*TemplateRule  `json:"templates,omitempty"`
	DiscoveryRules []*DiscoveryRule `json:"discoveryRules,omitempty"`
}

DefinitionProperties define the properties of the Definition

func (*DefinitionProperties) DeepCopy

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

func (*DefinitionProperties) DeepCopyInto

func (in *DefinitionProperties) DeepCopyInto(out *DefinitionProperties)

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

type DefinitionSpec

type DefinitionSpec struct {
	// Properties define the properties of the Definition
	Properties *DefinitionProperties `json:"properties,omitempty"`
}

DefinitionSpec struct

func (*DefinitionSpec) DeepCopy

func (in *DefinitionSpec) DeepCopy() *DefinitionSpec

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

func (*DefinitionSpec) DeepCopyInto

func (in *DefinitionSpec) DeepCopyInto(out *DefinitionSpec)

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

type DefinitionStatus

type DefinitionStatus struct {
}

A DefinitionStatus represents the observed state of a Definition.

func (*DefinitionStatus) DeepCopy

func (in *DefinitionStatus) DeepCopy() *DefinitionStatus

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

func (*DefinitionStatus) DeepCopyInto

func (in *DefinitionStatus) DeepCopyInto(out *DefinitionStatus)

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

type DiscoveryRule

type DiscoveryRule struct {
	DiscoveryRuleRef *DiscoveryRuleReference `json:"discoveryRuleRef"`
	// +kubebuilder:default=false
	DigitalTwin bool `json:"digitalTwin,omitempty"`
}

func (*DiscoveryRule) DeepCopy

func (in *DiscoveryRule) DeepCopy() *DiscoveryRule

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

func (*DiscoveryRule) DeepCopyInto

func (in *DiscoveryRule) DeepCopyInto(out *DiscoveryRule)

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

type DiscoveryRuleReference

type DiscoveryRuleReference struct {
	// Namespace is the namespace of the discovery rule
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Name is the name of the discovery rule
	Name string `json:"name"`
}

DiscoveryRuleReference is used to reference a particular discovery rule.

func (*DiscoveryRuleReference) DeepCopy

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

func (*DiscoveryRuleReference) DeepCopyInto

func (in *DiscoveryRuleReference) DeepCopyInto(out *DiscoveryRuleReference)

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

type EndpointKindProperties

type EndpointKindProperties string
const (
	EndpointKindUnknown  EndpointKindProperties = "unknown"
	EndpointKindInfra    EndpointKindProperties = "infra"
	EndpointKindLoop     EndpointKindProperties = "loop"
	EndpointKindExternal EndpointKindProperties = "external"
	EndpointKindOob      EndpointKindProperties = "oob"
)

LinkPropertiesKind enums.

type Endpoints

type Endpoints struct {
	// kubebuilder:validation:MinLength=3
	// kubebuilder:validation:MaxLength=20
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`int-([1-9](\d){0,1}(/[abcd])?(/[1-9](\d){0,1})?/(([1-9](\d){0,1})|(1[0-1]\d)|(12[0-8])))|`
	InterfaceName   string                 `json:"interfaceName"`
	NodeName        string                 `json:"nodeName"`
	Kind            EndpointKindProperties `json:"kind,omitempty"`
	LacpFallback    bool                   `json:"lacpFallback,omitempty"`
	LagName         string                 `json:"lagName,omitempty"`
	EndpointGroup   string                 `json:"endpointGroup,omitempty"`
	MultiHoming     bool                   `json:"multiHoming,omitempty"`
	MultiHomingName string                 `json:"multiHomingName,omitempty"`
	Tag             map[string]string      `json:"tag,omitempty"`
}

LinkEndpoints struct

func (*Endpoints) DeepCopy

func (in *Endpoints) DeepCopy() *Endpoints

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

func (*Endpoints) DeepCopyInto

func (in *Endpoints) DeepCopyInto(out *Endpoints)

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

type FabricTemplate

type FabricTemplate struct {
	// superspine
	Tier1      *TierTemplate           `json:"tier1,omitempty"`
	BorderLeaf *TierTemplate           `json:"borderLeaf,omitempty"`
	Pod        []*PodTemplate          `json:"pod,omitempty"`
	Settings   *FabricTemplateSettings `json:"settings,omitempty"`
	Tag        map[string]string       `json:"tag,omitempty"`
}

func (*FabricTemplate) CheckTemplate

func (x *FabricTemplate) CheckTemplate(master bool) error

func (*FabricTemplate) DeepCopy

func (in *FabricTemplate) DeepCopy() *FabricTemplate

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

func (*FabricTemplate) DeepCopyInto

func (in *FabricTemplate) DeepCopyInto(out *FabricTemplate)

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

func (*FabricTemplate) GetSuperSpines

func (x *FabricTemplate) GetSuperSpines() uint32

getSuperSPines identifies the max number of spines in a pod

func (*FabricTemplate) HasBorderLeaf

func (x *FabricTemplate) HasBorderLeaf() bool

func (*FabricTemplate) HasDefinitionRef

func (x *FabricTemplate) HasDefinitionRef() bool

func (*FabricTemplate) HasPodDefinition

func (x *FabricTemplate) HasPodDefinition() bool

func (*FabricTemplate) HasReference

func (x *FabricTemplate) HasReference() bool

func (*FabricTemplate) HasTemplateRef

func (x *FabricTemplate) HasTemplateRef() bool

func (*FabricTemplate) HasTier1

func (x *FabricTemplate) HasTier1() bool

type FabricTemplateSettings

type FabricTemplateSettings struct {
	// max number of uplink per node to the next tier
	// default should be 1 and max is 4
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4
	// +kubebuilder:default=1
	MaxUplinksTier2ToTier1 uint32 `json:"maxUplinksTier2ToTier1,omitempty"`
	// max number of uplink per node to the next tier
	// default should be 1 and max is 4
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4
	// +kubebuilder:default=1
	MaxUplinksTier3ToTier2 uint32 `json:"maxUplinksTier3ToTier2,omitempty"`
	// max spines per pod is relevant in a border leaf configuration
	// it ensures the indexes are not impacted as long as the spines per pod
	// are below this limit and if this limit is not changed once the template
	// is instantiated
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=8
	// +kubebuilder:default=2
	MaxSpinesPerPod uint32 `json:"maxSpinesPerPod,omitempty"`
}

func (*FabricTemplateSettings) DeepCopy

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

func (*FabricTemplateSettings) DeepCopyInto

func (in *FabricTemplateSettings) DeepCopyInto(out *FabricTemplateSettings)

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

type FabricTierVendorInfo

type FabricTierVendorInfo struct {
	Platform         string              `json:"platform,omitempty"`
	VendorType       targetv1.VendorType `json:"vendorType,omitempty"`
	InitialSwVersion string              `json:"initialSwVersion,omitempty"`
	Breakout         string              `json:"breakout,omitempty"`
	UpperTierlinks   Range               `json:"upperTierLinks,omitempty"`
	LowerTierlinks   Range               `json:"lowerTierLinks,omitempty"`
	Tag              map[string]string   `json:"tag,omitempty"`
}

func (*FabricTierVendorInfo) DeepCopy

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

func (*FabricTierVendorInfo) DeepCopyInto

func (in *FabricTierVendorInfo) DeepCopyInto(out *FabricTierVendorInfo)

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

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

	Spec   LinkSpec   `json:"spec,omitempty"`
	Status LinkStatus `json:"status,omitempty"`
}

Link is the Schema for the Link API +kubebuilder:subresource:status +kubebuilder:printcolumn:name="SYNC",type="string",JSONPath=".status.conditions[?(@.kind=='Synced')].status" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.conditions[?(@.kind=='Ready')].status" +kubebuilder:printcolumn:name="ORG",type="string",JSONPath=".status.oda.organization" +kubebuilder:printcolumn:name="DEP",type="string",JSONPath=".status.oda.deployment" +kubebuilder:printcolumn:name="AZ",type="string",JSONPath=".status.oda.availabilityZone" +kubebuilder:printcolumn:name="TOPO",type="string",JSONPath=".status.oda.resourceName" +kubebuilder:printcolumn:name="LAG",type="boolean",JSONPath=".spec.properties.lag" +kubebuilder:printcolumn:name="MEMBER",type="boolean",JSONPath=".spec.properties.lagmember" +kubebuilder:printcolumn:name="NODE-EPA",type="string",JSONPath=".spec.properties.endpoints[0].nodeName" +kubebuilder:printcolumn:name="ITFCE-EPA",type="string",JSONPath=".spec.properties.endpoints[0].interfaceName" +kubebuilder:printcolumn:name="MH-EPA",type="string",JSONPath=".spec.properties.endpoints[0].multiHomingName" +kubebuilder:printcolumn:name="NODE-EPB",type="string",JSONPath=".spec.properties.endpoints[1].nodeName" +kubebuilder:printcolumn:name="ITFCE-EPB",type="string",JSONPath=".spec.properties.endpoints[1].interfaceName" +kubebuilder:printcolumn:name="MH-EPB",type="string",JSONPath=".spec.properties.endpoints[1].multiHomingName" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:categories={yndd,topo}

func (*Link) DeepCopy

func (in *Link) DeepCopy() *Link

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

func (*Link) DeepCopyInto

func (in *Link) DeepCopyInto(out *Link)

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

func (*Link) DeepCopyObject

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

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

type LinkKindProperties

type LinkKindProperties string
const (
	LinkKindUnknown LinkKindProperties = "unknown"
	LinkKindInfra   LinkKindProperties = "infra"
	LinkKindLoop    LinkKindProperties = "loop"
)

LinkPropertiesKind enums.

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

LinkList contains a list of Links

func (*LinkList) DeepCopy

func (in *LinkList) DeepCopy() *LinkList

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

func (*LinkList) DeepCopyInto

func (in *LinkList) DeepCopyInto(out *LinkList)

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

func (*LinkList) DeepCopyObject

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

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

type LinkProperties

type LinkProperties struct {
	Endpoints []*Endpoints       `json:"endpoints,omitempty"`
	LagMember bool               `json:"lagMember,omitempty"`
	Lacp      bool               `json:"lacp,omitempty"`
	Lag       bool               `json:"lag,omitempty"`
	Kind      LinkKindProperties `json:"kind,omitempty"`
	Tag       map[string]string  `json:"tag,omitempty"`
}

LinkProperties struct

func (*LinkProperties) DeepCopy

func (in *LinkProperties) DeepCopy() *LinkProperties

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

func (*LinkProperties) DeepCopyInto

func (in *LinkProperties) DeepCopyInto(out *LinkProperties)

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

type LinkSpec

type LinkSpec struct {
	// Properties define the properties of the Topology
	Properties *LinkProperties `json:"properties,omitempty"`
}

TopologyLinkSpec struct

func (*LinkSpec) DeepCopy

func (in *LinkSpec) DeepCopy() *LinkSpec

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

func (*LinkSpec) DeepCopyInto

func (in *LinkSpec) DeepCopyInto(out *LinkSpec)

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

type LinkStatus

type LinkStatus struct {
}

A LinkStatus represents the observed state of a Link.

func (*LinkStatus) DeepCopy

func (in *LinkStatus) DeepCopy() *LinkStatus

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

func (*LinkStatus) DeepCopyInto

func (in *LinkStatus) DeepCopyInto(out *LinkStatus)

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

type Location

type Location struct {
	Latitude  string `json:"latitude,omitempty"`
	Longitude string `json:"longitude,omitempty"`
}

func (*Location) DeepCopy

func (in *Location) DeepCopy() *Location

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

func (*Location) DeepCopyInto

func (in *Location) DeepCopyInto(out *Location)

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

type Node

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

	Spec   NodeSpec   `json:"spec,omitempty"`
	Status NodeStatus `json:"status,omitempty"`
}

Node is the Schema for the Node API +kubebuilder:subresource:status +kubebuilder:printcolumn:name="SYNC",type="string",JSONPath=".status.conditions[?(@.kind=='Synced')].status" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.conditions[?(@.kind=='Ready')].status" +kubebuilder:printcolumn:name="ORG",type="string",JSONPath=".status.oda.organization" +kubebuilder:printcolumn:name="DEP",type="string",JSONPath=".status.oda.deployment" +kubebuilder:printcolumn:name="AZ",type="string",JSONPath=".status.oda.availabilityZone" +kubebuilder:printcolumn:name="TOPO",type="string",JSONPath=".status.oda.resourceName" +kubebuilder:printcolumn:name="VENDORTYPE",type="string",JSONPath=".spec.properties.vendorType" +kubebuilder:printcolumn:name="PLATFORM",type="string",JSONPath="..spec.properties.platform" +kubebuilder:printcolumn:name="POSITION",type="string",JSONPath="..spec.properties.position" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:categories={yndd,topo}

func (*Node) DeepCopy

func (in *Node) DeepCopy() *Node

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

func (*Node) DeepCopyInto

func (in *Node) DeepCopyInto(out *Node)

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

func (*Node) DeepCopyObject

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

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

func (*Node) GetPlaneIndex added in v0.0.3

func (x *Node) GetPlaneIndex() string

func (*Node) GetPlatform added in v0.0.3

func (x *Node) GetPlatform() string

func (*Node) GetPodIndex added in v0.0.3

func (x *Node) GetPodIndex() string

func (*Node) GetPosition added in v0.0.3

func (x *Node) GetPosition() Position

func (*Node) GetRelativeNodeIndex added in v0.0.3

func (x *Node) GetRelativeNodeIndex() string

func (*Node) GetVendorType added in v0.0.3

func (x *Node) GetVendorType() targetv1.VendorType

type NodeList

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

NodeList contains a list of Nodes

func (*NodeList) DeepCopy

func (in *NodeList) DeepCopy() *NodeList

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

func (*NodeList) DeepCopyInto

func (in *NodeList) DeepCopyInto(out *NodeList)

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

func (*NodeList) DeepCopyObject

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

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

type NodeProperties

type NodeProperties struct {
	VendorType        targetv1.VendorType `json:"vendorType,omitempty"`
	Platform          string              `json:"platform,omitempty"`
	Position          Position            `json:"position,omitempty"`
	MacAddress        string              `json:"macAddress,omitempty"`
	SerialNumber      string              `json:"serialNumber,omitempty"`
	ExpectedSWVersion string              `json:"expectedSwVersion,omitempty"`
	MgmtIPAddress     string              `json:"mgmtIPAddress,omitempty"`
	Location          *Location           `json:"location,omitempty"`
	Tag               map[string]string   `json:"tag,omitempty"`
}

NodeProperties struct

func (*NodeProperties) DeepCopy

func (in *NodeProperties) DeepCopy() *NodeProperties

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

func (*NodeProperties) DeepCopyInto

func (in *NodeProperties) DeepCopyInto(out *NodeProperties)

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

type NodeSpec

type NodeSpec struct {
	// Properties define the properties of the Topology
	Properties *NodeProperties `json:"properties,omitempty"`
}

NodeSpec struct

func (*NodeSpec) DeepCopy

func (in *NodeSpec) DeepCopy() *NodeSpec

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

func (*NodeSpec) DeepCopyInto

func (in *NodeSpec) DeepCopyInto(out *NodeSpec)

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

type NodeStatus

type NodeStatus struct {
}

A NodeStatus represents the observed state of a node.

func (*NodeStatus) DeepCopy

func (in *NodeStatus) DeepCopy() *NodeStatus

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

func (*NodeStatus) DeepCopyInto

func (in *NodeStatus) DeepCopyInto(out *NodeStatus)

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

type PodTemplate

type PodTemplate struct {
	// number of pods defined based on this template
	// no default since templates should not define the pod number
	// default should be 1 and max is 16
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=16
	PodNumber *uint32 `json:"num,omitempty"`
	// Tier2 template, that defines the spine parameters in the pod definition
	Tier2 *TierTemplate `json:"tier2,omitempty"`
	// Tier3 template, that defines the leaf parameters in the pod definition
	Tier3 *TierTemplate `json:"tier3,omitempty"`
	// template reference to a template that defines the pod definition
	TemplateRef *TemplateReference `json:"templateRef,omitempty"`
	// definition reference to a template that defines the pod definition
	//DefinitionReference *string           `json:"definitionRef,omitempty"`
	Tag map[string]string `json:"tag,omitempty"`
}

func (*PodTemplate) CheckPodTemplate

func (x *PodTemplate) CheckPodTemplate(master bool) error

func (*PodTemplate) DeepCopy

func (in *PodTemplate) DeepCopy() *PodTemplate

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

func (*PodTemplate) DeepCopyInto

func (in *PodTemplate) DeepCopyInto(out *PodTemplate)

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

func (*PodTemplate) GetPodNumber

func (x *PodTemplate) GetPodNumber() uint32

func (*PodTemplate) HasDefinitionRef

func (x *PodTemplate) HasDefinitionRef() bool

func (*PodTemplate) HasReference

func (x *PodTemplate) HasReference() bool

func (*PodTemplate) HasTemplateRef

func (x *PodTemplate) HasTemplateRef() bool

func (*PodTemplate) IsToBeDeployed

func (x *PodTemplate) IsToBeDeployed() bool

func (*PodTemplate) SetToBeDeployed

func (x *PodTemplate) SetToBeDeployed(b bool)

type Position

type Position string
const (
	PositionUnknown    Position = "unknown"
	PositionLeaf       Position = "leaf"
	PositionSpine      Position = "spine"
	PositionSuperspine Position = "superspine"
	PositionBorderLeaf Position = "borderleaf"
	PositionDcgw       Position = "dcgw"
	PositionWan        Position = "wan"
	PositionCpe        Position = "cpe"
	PositionServer     Position = "server"
	PositionInfra      Position = "infra"
)

Position enums.

type Range

type Range struct {
	Start string `json:"start,omitempty"`
	End   string `json:"end,omitempty"`
}

func (*Range) DeepCopy

func (in *Range) DeepCopy() *Range

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

func (*Range) DeepCopyInto

func (in *Range) DeepCopyInto(out *Range)

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

type SupportServers

type SupportServers struct {
	DnsServers []*string `json:"dnsServers,omitempty"`
	NtPServers []*string `json:"ntpServers,omitempty"`
}

func (*SupportServers) DeepCopy

func (in *SupportServers) DeepCopy() *SupportServers

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

func (*SupportServers) DeepCopyInto

func (in *SupportServers) DeepCopyInto(out *SupportServers)

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

type Template

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

	Spec   TemplateSpec   `json:"spec,omitempty"`
	Status TemplateStatus `json:"status,omitempty"`
}

Template is the Schema for the Template API +kubebuilder:subresource:status +kubebuilder:printcolumn:name="SYNC",type="string",JSONPath=".status.conditions[?(@.kind=='Synced')].status" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.conditions[?(@.kind=='Ready')].status" +kubebuilder:printcolumn:name="ORG",type="string",JSONPath=".status.oda[?(@.key=='organization')].value" +kubebuilder:printcolumn:name="DEP",type="string",JSONPath=".status.oda[?(@.key=='deployment')].value" +kubebuilder:printcolumn:name="AZ",type="string",JSONPath=".status.oda[?(@.key=='availabilityZone')].value" +kubebuilder:printcolumn:name="TOPO",type="string",JSONPath=".status.oda[?(@.key=='resourceName')].value" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:categories={yndd,topo}

func (*Template) DeepCopy

func (in *Template) DeepCopy() *Template

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

func (*Template) DeepCopyInto

func (in *Template) DeepCopyInto(out *Template)

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

func (*Template) DeepCopyObject

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

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

func (*Template) GetNumPods

func (x *Template) GetNumPods() uint32

type TemplateList

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

TemplateList contains a list of Templates

func (*TemplateList) DeepCopy

func (in *TemplateList) DeepCopy() *TemplateList

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

func (*TemplateList) DeepCopyInto

func (in *TemplateList) DeepCopyInto(out *TemplateList)

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

func (*TemplateList) DeepCopyObject

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

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

type TemplateProperties

type TemplateProperties struct {
	SupportServers `json:"inline,omitempty"`
	Subnet         *TemplateSubnet `json:"subnet,omitempty"`
	Fabric         *FabricTemplate `json:"fabric,omitempty"`
}

TemplateProperties define the properties of the Template

func (*TemplateProperties) DeepCopy

func (in *TemplateProperties) DeepCopy() *TemplateProperties

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

func (*TemplateProperties) DeepCopyInto

func (in *TemplateProperties) DeepCopyInto(out *TemplateProperties)

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

type TemplateReference

type TemplateReference struct {
	// Namespace is the namespace of the template
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Name is the name of the template
	Name string `json:"name"`
}

TemplateReference is used to reference a particular template.

func (*TemplateReference) DeepCopy

func (in *TemplateReference) DeepCopy() *TemplateReference

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

func (*TemplateReference) DeepCopyInto

func (in *TemplateReference) DeepCopyInto(out *TemplateReference)

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

type TemplateRule

type TemplateRule struct {
	TemplateRef *TemplateReference `json:"templateRef"`
	// +kubebuilder:default=false
	DigitalTwin bool `json:"digitalTwin,omitempty"`
}

func (*TemplateRule) DeepCopy

func (in *TemplateRule) DeepCopy() *TemplateRule

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

func (*TemplateRule) DeepCopyInto

func (in *TemplateRule) DeepCopyInto(out *TemplateRule)

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

type TemplateSpec

type TemplateSpec struct {
	// Properties define the properties of the Template
	Properties TemplateProperties `json:"properties,omitempty"`
}

TemplateSpec struct

func (*TemplateSpec) DeepCopy

func (in *TemplateSpec) DeepCopy() *TemplateSpec

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

func (*TemplateSpec) DeepCopyInto

func (in *TemplateSpec) DeepCopyInto(out *TemplateSpec)

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

type TemplateStatus

type TemplateStatus struct {
	TopologyName string `json:"topology-name,omitempty"`
}

A TemplateStatus represents the observed state of a Template.

func (*TemplateStatus) DeepCopy

func (in *TemplateStatus) DeepCopy() *TemplateStatus

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

func (*TemplateStatus) DeepCopyInto

func (in *TemplateStatus) DeepCopyInto(out *TemplateStatus)

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

type TemplateSubnet

type TemplateSubnet struct {
	IPSubnet       string `json:"ipSubnet,omitempty"`
	SupportServers `json:"inline,omitempty"`
}

func (*TemplateSubnet) DeepCopy

func (in *TemplateSubnet) DeepCopy() *TemplateSubnet

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

func (*TemplateSubnet) DeepCopyInto

func (in *TemplateSubnet) DeepCopyInto(out *TemplateSubnet)

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

type TierTemplate

type TierTemplate struct {
	// list to support multiple vendors in a tier - typically criss-cross
	VendorInfo []*FabricTierVendorInfo `json:"vendorInfo,omitempty"`
	// number of nodes in the tier
	// for superspine it is the number of spines in a spine plane
	NodeNumber uint32 `json:"num,omitempty"`
	// number of uplink per node to the next tier
	// default should be 1 and max is 4
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=4
	UplinksPerNode uint32 `json:"uplinkPerNode,omitempty"`
	// +kubebuilder:default=0
	MultiHoming uint32            `json:"multiHoming,omitempty"`
	Tag         map[string]string `json:"tag,omitempty"`
}

func (*TierTemplate) DeepCopy

func (in *TierTemplate) DeepCopy() *TierTemplate

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

func (*TierTemplate) DeepCopyInto

func (in *TierTemplate) DeepCopyInto(out *TierTemplate)

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

type Topology

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

	Spec   TopologySpec   `json:"spec,omitempty"`
	Status TopologyStatus `json:"status,omitempty"`
}

Topology is the Schema for the Topology API +kubebuilder:subresource:status +kubebuilder:printcolumn:name="SYNC",type="string",JSONPath=".status.conditions[?(@.kind=='Synced')].status" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.conditions[?(@.kind=='Ready')].status" +kubebuilder:printcolumn:name="ORG",type="string",JSONPath=".status.oda.organization" +kubebuilder:printcolumn:name="DEP",type="string",JSONPath=".status.oda.deployment" +kubebuilder:printcolumn:name="AZ",type="string",JSONPath=".status.oda.availabilityZone" +kubebuilder:printcolumn:name="TOPO",type="string",JSONPath=".status.oda.resourceName" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:categories={yndd,topo}

func (*Topology) DeepCopy

func (in *Topology) DeepCopy() *Topology

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

func (*Topology) DeepCopyInto

func (in *Topology) DeepCopyInto(out *Topology)

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

func (*Topology) DeepCopyObject

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

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

type TopologyDefaults

type TopologyDefaults struct {
	NodeProperties *NodeProperties   `json:",inline"`
	Tag            map[string]string `json:"tag,omitempty"`
}

TopologySpecDefaults struct

func (*TopologyDefaults) DeepCopy

func (in *TopologyDefaults) DeepCopy() *TopologyDefaults

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

func (*TopologyDefaults) DeepCopyInto

func (in *TopologyDefaults) DeepCopyInto(out *TopologyDefaults)

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

type TopologyList

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

TopologyList contains a list of Topologies

func (*TopologyList) DeepCopy

func (in *TopologyList) DeepCopy() *TopologyList

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

func (*TopologyList) DeepCopyInto

func (in *TopologyList) DeepCopyInto(out *TopologyList)

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

func (*TopologyList) DeepCopyObject

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

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

type TopologyProperties

type TopologyProperties struct {
	Defaults       *TopologyDefaults `json:"defaults,omitempty"`
	Location       *Location         `json:"location,omitempty"`
	VendorTypeInfo []*NodeProperties `json:"vendorTypeInfo,omitempty"`
}

TopologyProperties struct

func (*TopologyProperties) DeepCopy

func (in *TopologyProperties) DeepCopy() *TopologyProperties

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

func (*TopologyProperties) DeepCopyInto

func (in *TopologyProperties) DeepCopyInto(out *TopologyProperties)

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

type TopologySpec

type TopologySpec struct {
	// Properties define the properties of the Topology
	Properties TopologyProperties `json:"properties,omitempty"`
}

TopologyDefinitionSpec struct

func (*TopologySpec) DeepCopy

func (in *TopologySpec) DeepCopy() *TopologySpec

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

func (*TopologySpec) DeepCopyInto

func (in *TopologySpec) DeepCopyInto(out *TopologySpec)

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

type TopologyStatus

type TopologyStatus struct {
}

A TopologyStatus represents the observed state of a Topology.

func (*TopologyStatus) DeepCopy

func (in *TopologyStatus) DeepCopy() *TopologyStatus

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

func (*TopologyStatus) DeepCopyInto

func (in *TopologyStatus) DeepCopyInto(out *TopologyStatus)

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