Documentation ¶
Overview ¶
Package v1alpha1 is the v1alpha1 version of the crane API. +k8s:deepcopy-gen=package,register +groupName=topology.crane.io
Index ¶
Constants ¶
const ( // AnnotationPodCPUPolicyKey is the pod annotation key of cpu-policy. AnnotationPodCPUPolicyKey = "topology.crane.io/cpu-policy" // AnnotationPodTopologyAwarenessKey is the pod annotation key of topology-awareness. AnnotationPodTopologyAwarenessKey = "topology.crane.io/topology-awareness" // AnnotationPodTopologyResultKey is the pod scheduling annotation key of topology-result. AnnotationPodTopologyResultKey = "topology.crane.io/topology-result" // AnnotationPodExcludeReservedCPUs is the pod annotation key of exclude reserved cpus AnnotationPodExcludeReservedCPUs = "topology.crane.io/exclude-reserved-cpus" )
const ( // AnnotationPodCPUPolicyNone specifies none cpu policy. If specified, pod // will use the default CPUSet. AnnotationPodCPUPolicyNone = "none" // AnnotationPodCPUPolicyExclusive specifies exclusive cpu policy. If specified, // pod will never share CPUSet with others. AnnotationPodCPUPolicyExclusive = "exclusive" // AnnotationPodCPUPolicyNUMA specifies NUMA cpu policy. If specified, pod // will use the default CPUSet which belongs to single NUMA node. AnnotationPodCPUPolicyNUMA = "numa" // AnnotationPodCPUPolicyImmovable specifies immovable cpu policy. If specified, // pod will use part of the default CPUSet to avoid uncertain context switch. AnnotationPodCPUPolicyImmovable = "immovable" )
const GroupName = "topology.crane.io"
GroupName specifies the group name used to register the objects.
const ( // LabelNodeTopologyAwarenessKey is the node label key of topology-awareness. // This label is used to determine the default topology awareness policy of // a node when pod does not specify topology-awareness. LabelNodeTopologyAwarenessKey = "topology.crane.io/topology-awareness" )
const (
// ReservedSystemCPUsAttributes is the attributes key represent system reserved cpus
ReservedSystemCPUsAttributes = "go.crane.io/reserved-system-cpus"
)
Variables ¶
var ( // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. SchemeBuilder runtime.SchemeBuilder // Depreciated: use Install instead AddToScheme = localSchemeBuilder.AddToScheme Install = localSchemeBuilder.AddToScheme )
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}
GroupVersion specifies the group and the version used to register the objects.
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type CPUManagerPolicy ¶
type CPUManagerPolicy string
CPUManagerPolicy represents policy of the crane agent cpu manager.
const ( // CPUManagerPolicyNone name of none policy. CPUManagerPolicyNone CPUManagerPolicy = "None" // CPUManagerPolicyStatic is the name of the static policy. CPUManagerPolicyStatic CPUManagerPolicy = "Static" )
type CostInfo ¶
type CostInfo struct { // Name represents the zone name. // +required Name string `json:"name"` // Value represents the cost value. // +required Value int64 `json:"value"` }
CostInfo describes the cost (or distance) between two Zones.
func (*CostInfo) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CostInfo.
func (*CostInfo) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CostList ¶
type CostList []CostInfo
CostList contains an array of CostInfo objects.
func (CostList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CostList.
func (CostList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManagerPolicy ¶
type ManagerPolicy struct { // CPUManagerPolicy represents policy of the crane agent cpu manager. // +kubebuilder:validation:Enum=None;Static // +required CPUManagerPolicy CPUManagerPolicy `json:"cpuManagerPolicy"` // TopologyManagerPolicy represents policy of the crane agent resource management component. // Defaults to SingleNUMANodePodLevel. // +kubebuilder:validation:Enum=None;SingleNUMANodePodLevel // +kubebuilder:default=SingleNUMANodePodLevel // +required TopologyManagerPolicy TopologyManagerPolicy `json:"topologyManagerPolicy"` }
ManagerPolicy describes the associated manager policy.
func (*ManagerPolicy) DeepCopy ¶
func (in *ManagerPolicy) DeepCopy() *ManagerPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagerPolicy.
func (*ManagerPolicy) DeepCopyInto ¶
func (in *ManagerPolicy) DeepCopyInto(out *ManagerPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeResourceTopology ¶
type NodeResourceTopology struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // CraneManagerPolicy describes the associated manager policy of crane agent. // +required CraneManagerPolicy ManagerPolicy `json:"craneManagerPolicy"` // Reserved describes resources reserved for system and kubernetes components. // +optional Reserved corev1.ResourceList `json:"reserved,omitempty"` // Zones represents all resource topology zones of a node. // +optional Zones ZoneList `json:"zones,omitempty"` // Attributes represents node attributes if any. // +optional Attributes map[string]string `json:"attributes,omitempty"` }
NodeResourceTopology describes node resources and their topology.
func (*NodeResourceTopology) DeepCopy ¶
func (in *NodeResourceTopology) DeepCopy() *NodeResourceTopology
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeResourceTopology.
func (*NodeResourceTopology) DeepCopyInto ¶
func (in *NodeResourceTopology) DeepCopyInto(out *NodeResourceTopology)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeResourceTopology) DeepCopyObject ¶
func (in *NodeResourceTopology) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NodeResourceTopologyList ¶
type NodeResourceTopologyList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []NodeResourceTopology `json:"items"` }
NodeResourceTopologyList is a list of NodeResourceTopology resources
func (*NodeResourceTopologyList) DeepCopy ¶
func (in *NodeResourceTopologyList) DeepCopy() *NodeResourceTopologyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeResourceTopologyList.
func (*NodeResourceTopologyList) DeepCopyInto ¶
func (in *NodeResourceTopologyList) DeepCopyInto(out *NodeResourceTopologyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeResourceTopologyList) DeepCopyObject ¶
func (in *NodeResourceTopologyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ResourceInfo ¶
type ResourceInfo struct { // Capacity of the resource, corresponding to capacity in node status, i.e. // total amount of this resource that the node has. // +optional Capacity corev1.ResourceList `json:"capacity,omitempty"` // Allocatable quantity of the resource, corresponding to allocatable in // node status, i.e. total amount of this resource available to be used by // pods. // +optional Allocatable corev1.ResourceList `json:"allocatable,omitempty"` // ReservedCPUNums specifies the cpu numbers reserved for the host level system threads and kubernetes related threads. // +optional ReservedCPUNums int32 `json:"reservedCPUNums,omitempty"` }
ResourceInfo contains information about one resource type.
func (*ResourceInfo) DeepCopy ¶
func (in *ResourceInfo) DeepCopy() *ResourceInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceInfo.
func (*ResourceInfo) DeepCopyInto ¶
func (in *ResourceInfo) DeepCopyInto(out *ResourceInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TopologyManagerPolicy ¶
type TopologyManagerPolicy string
TopologyManagerPolicy represents policy of the crane agent resource management component.
const ( // TopologyManagerPolicyNone policy is the default policy and does not perform any topology alignment. TopologyManagerPolicyNone TopologyManagerPolicy = "None" // TopologyManagerPolicySingleNUMANodePodLevel enables pod level resource counting, this policy assumes // TopologyManager policy single-numa-node also was set on the node. TopologyManagerPolicySingleNUMANodePodLevel TopologyManagerPolicy = "SingleNUMANodePodLevel" )
Constants of type TopologyManagerPolicy represent policy of the agent node's resource management component. It's TopologyManager in kubele.
type Zone ¶
type Zone struct { // Name represents the zone name. // +required Name string `json:"name"` // Type represents the zone type. // +kubebuilder:validation:Enum=Node;Socket;Core // +required Type ZoneType `json:"type"` // Parent represents the name of parent zone. // +optional Parent string `json:"parent,omitempty"` // Costs represents the cost between different zones. // +optional Costs CostList `json:"costs,omitempty"` // Attributes represents zone attributes if any. // +optional Attributes map[string]string `json:"attributes,omitempty"` // Resources represents the resource info of the zone. // +optional Resources *ResourceInfo `json:"resources,omitempty"` }
Zone represents a resource topology zone, e.g. socket, node, die or core.
func (*Zone) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Zone.
func (*Zone) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ZoneList ¶
type ZoneList []Zone
ZoneList contains an array of Zone objects.
func (ZoneList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZoneList.
func (ZoneList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.