Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the topo v1alpha1 API group +kubebuilder:object:generate=true +groupName=topo.yndd.io
Index ¶
- Constants
- Variables
- func GetLevel(p Position) int
- type Definition
- type DefinitionList
- type DefinitionProperties
- type DefinitionSpec
- type DefinitionStatus
- type DiscoveryRule
- type DiscoveryRuleReference
- type EndpointKindProperties
- type Endpoints
- type FabricTemplate
- func (x *FabricTemplate) CheckTemplate(master bool) error
- func (in *FabricTemplate) DeepCopy() *FabricTemplate
- func (in *FabricTemplate) DeepCopyInto(out *FabricTemplate)
- func (x *FabricTemplate) GetSuperSpines() uint32
- func (x *FabricTemplate) HasBorderLeaf() bool
- func (x *FabricTemplate) HasDefinitionRef() bool
- func (x *FabricTemplate) HasPodDefinition() bool
- func (x *FabricTemplate) HasReference() bool
- func (x *FabricTemplate) HasTemplateRef() bool
- func (x *FabricTemplate) HasTier1() bool
- type FabricTemplateSettings
- type FabricTierVendorInfo
- type Link
- type LinkKindProperties
- type LinkList
- type LinkProperties
- type LinkSpec
- type LinkStatus
- type Location
- type Node
- func (in *Node) DeepCopy() *Node
- func (in *Node) DeepCopyInto(out *Node)
- func (in *Node) DeepCopyObject() runtime.Object
- func (x *Node) GetPlaneIndex() string
- func (x *Node) GetPlatform() string
- func (x *Node) GetPodIndex() string
- func (x *Node) GetPosition() Position
- func (x *Node) GetRelativeNodeIndex() string
- func (x *Node) GetVendorType() targetv1.VendorType
- type NodeList
- type NodeProperties
- type NodeSpec
- type NodeStatus
- type PodTemplate
- func (x *PodTemplate) CheckPodTemplate(master bool) error
- func (in *PodTemplate) DeepCopy() *PodTemplate
- func (in *PodTemplate) DeepCopyInto(out *PodTemplate)
- func (x *PodTemplate) GetPodNumber() uint32
- func (x *PodTemplate) HasDefinitionRef() bool
- func (x *PodTemplate) HasReference() bool
- func (x *PodTemplate) HasTemplateRef() bool
- func (x *PodTemplate) IsToBeDeployed() bool
- func (x *PodTemplate) SetToBeDeployed(b bool)
- type Position
- type Range
- type SupportServers
- type Template
- type TemplateList
- type TemplateProperties
- type TemplateReference
- type TemplateRule
- type TemplateSpec
- type TemplateStatus
- type TemplateSubnet
- type TierTemplate
- type Topology
- type TopologyDefaults
- type TopologyList
- type TopologyProperties
- type TopologySpec
- type TopologyStatus
Constants ¶
const ( // Group in the kubernetes api Group = "topo.yndd.io" // Version in the kubernetes api Version = "v1alpha1" )
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" )
const ( MaxUint32 = ^uint32(0) MinUint32 = 0 MaxInt = int(MaxUint32 >> 1) MinInt = -MaxInt - 1 )
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 ¶
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.
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 )
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.
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.
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.
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 ¶
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 ¶
func (in *DefinitionProperties) DeepCopy() *DefinitionProperties
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 ¶
func (in *DiscoveryRuleReference) DeepCopy() *DiscoveryRuleReference
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoints.
func (*Endpoints) DeepCopyInto ¶
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 ¶
func (in *FabricTemplateSettings) DeepCopy() *FabricTemplateSettings
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 ¶
func (in *FabricTierVendorInfo) DeepCopy() *FabricTierVendorInfo
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Link.
func (*Link) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Link) DeepCopyObject ¶
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinkList.
func (*LinkList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinkList) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinkSpec.
func (*LinkSpec) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Location.
func (*Location) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Node.
func (*Node) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Node) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Node) GetPlaneIndex ¶ added in v0.0.3
func (*Node) GetPlatform ¶ added in v0.0.3
func (*Node) GetPodIndex ¶ added in v0.0.3
func (*Node) GetPosition ¶ added in v0.0.3
func (*Node) GetRelativeNodeIndex ¶ added in v0.0.3
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeList.
func (*NodeList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeList) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSpec.
func (*NodeSpec) DeepCopyInto ¶
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 ¶
func (*Range) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Range.
func (*Range) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Template.
func (*Template) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Template) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Template) GetNumPods ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Topology.
func (*Topology) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Topology) DeepCopyObject ¶
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.