Documentation ¶
Overview ¶
Package v1 contains API Schema definitions for the autoscaling v1 API group +k8s:deepcopy-gen=package,register +groupName=autoscaling.openshift.io
Package v1 contains API Schema definitions for the autoscaling v1 API group +k8s:deepcopy-gen=package,register +groupName=autoscaling.openshift.io
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "autoscaling.openshift.io", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} )
Functions ¶
This section is empty.
Types ¶
type ClusterAutoscaler ¶
type ClusterAutoscaler struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // Desired state of ClusterAutoscaler resource Spec ClusterAutoscalerSpec `json:"spec,omitempty"` // Most recently observed status of ClusterAutoscaler resource Status ClusterAutoscalerStatus `json:"status,omitempty"` }
ClusterAutoscaler is the Schema for the clusterautoscalers API +k8s:openapi-gen=true +kubebuilder:resource:path=clusterautoscalers,shortName=ca,scope=Cluster +kubebuilder:subresource:status +genclient:nonNamespaced
func (*ClusterAutoscaler) DeepCopy ¶
func (in *ClusterAutoscaler) DeepCopy() *ClusterAutoscaler
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterAutoscaler.
func (*ClusterAutoscaler) DeepCopyInto ¶
func (in *ClusterAutoscaler) DeepCopyInto(out *ClusterAutoscaler)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterAutoscaler) DeepCopyObject ¶
func (in *ClusterAutoscaler) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterAutoscalerList ¶
type ClusterAutoscalerList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ClusterAutoscaler `json:"items"` }
ClusterAutoscalerList contains a list of ClusterAutoscaler
func (*ClusterAutoscalerList) DeepCopy ¶
func (in *ClusterAutoscalerList) DeepCopy() *ClusterAutoscalerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterAutoscalerList.
func (*ClusterAutoscalerList) DeepCopyInto ¶
func (in *ClusterAutoscalerList) DeepCopyInto(out *ClusterAutoscalerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterAutoscalerList) DeepCopyObject ¶
func (in *ClusterAutoscalerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterAutoscalerSpec ¶
type ClusterAutoscalerSpec struct { // Constraints of autoscaling resources ResourceLimits *ResourceLimits `json:"resourceLimits,omitempty"` // Configuration of scale down operation ScaleDown *ScaleDownConfig `json:"scaleDown,omitempty"` // Gives pods graceful termination time before scaling down MaxPodGracePeriod *int32 `json:"maxPodGracePeriod,omitempty"` // Maximum time CA waits for node to be provisioned // +kubebuilder:validation:Pattern=^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$ MaxNodeProvisionTime string `json:"maxNodeProvisionTime,omitempty"` // To allow users to schedule "best-effort" pods, which shouldn't trigger // Cluster Autoscaler actions, but only run when there are spare resources available, // More info: https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-does-cluster-autoscaler-work-with-pod-priority-and-preemption PodPriorityThreshold *int32 `json:"podPriorityThreshold,omitempty"` // BalanceSimilarNodeGroups enables/disables the // `--balance-similar-node-groups` cluster-autoscaler feature. // This feature will automatically identify node groups with // the same instance type and the same set of labels and try // to keep the respective sizes of those node groups balanced. BalanceSimilarNodeGroups *bool `json:"balanceSimilarNodeGroups,omitempty"` // BalancingIgnoredLabels sets "--balancing-ignore-label <label name>" flag on cluster-autoscaler for each listed label. // This option specifies labels that cluster autoscaler should ignore when considering node group similarity. // For example, if you have nodes with "topology.ebs.csi.aws.com/zone" label, you can add name of this label here // to prevent cluster autoscaler from spliting nodes into different node groups based on its value. BalancingIgnoredLabels []string `json:"balancingIgnoredLabels,omitempty"` // Enables/Disables `--ignore-daemonsets-utilization` CA feature flag. Should CA ignore DaemonSet pods when calculating resource utilization for scaling down. false by default IgnoreDaemonsetsUtilization *bool `json:"ignoreDaemonsetsUtilization,omitempty"` // Enables/Disables `--skip-nodes-with-local-storage` CA feature flag. If true cluster autoscaler will never delete nodes with pods with local storage, e.g. EmptyDir or HostPath. true by default at autoscaler SkipNodesWithLocalStorage *bool `json:"skipNodesWithLocalStorage,omitempty"` // Sets the autoscaler log level. // Default value is 1, level 4 is recommended for DEBUGGING and level 6 will enable almost everything. // // This option has priority over log level set by the `CLUSTER_AUTOSCALER_VERBOSITY` environment variable. // +kubebuilder:validation:Minimum=0 LogVerbosity *int32 `json:"logVerbosity,omitempty"` // Sets the type and order of expanders to be used during scale out operations. // This option specifies an ordered list, highest priority first, of expanders that // will be used by the cluster autoscaler to select node groups for expansion // when scaling out. // Expanders instruct the autoscaler on how to choose node groups when scaling out // the cluster. They can be specified in order so that the result from the first expander // is used as the input to the second, and so forth. For example, if set to `[LeastWaste, Random]` // the autoscaler will first evaluate node groups to determine which will have the least // resource waste, if multiple groups are selected the autoscaler will then randomly choose // between those groups to determine the group for scaling. // The following expanders are available: // * LeastWaste - selects the node group that will have the least idle CPU (if tied, unused memory) after scale-up. // * Priority - selects the node group that has the highest priority assigned by the user. For details, please see https://github.com/openshift/kubernetes-autoscaler/blob/master/cluster-autoscaler/expander/priority/readme.md // * Random - selects the node group randomly. // If not specified, the default value is `Random`, available options are: `LeastWaste`, `Priority`, `Random`. // // +listType=set // +kubebuilder:validation:MaxItems=3 // +optional Expanders []ExpanderString `json:"expanders"` }
ClusterAutoscalerSpec defines the desired state of ClusterAutoscaler
func (*ClusterAutoscalerSpec) DeepCopy ¶
func (in *ClusterAutoscalerSpec) DeepCopy() *ClusterAutoscalerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterAutoscalerSpec.
func (*ClusterAutoscalerSpec) DeepCopyInto ¶
func (in *ClusterAutoscalerSpec) DeepCopyInto(out *ClusterAutoscalerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterAutoscalerStatus ¶
type ClusterAutoscalerStatus struct { }
ClusterAutoscalerStatus defines the observed state of ClusterAutoscaler
func (*ClusterAutoscalerStatus) DeepCopy ¶
func (in *ClusterAutoscalerStatus) DeepCopy() *ClusterAutoscalerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterAutoscalerStatus.
func (*ClusterAutoscalerStatus) DeepCopyInto ¶
func (in *ClusterAutoscalerStatus) DeepCopyInto(out *ClusterAutoscalerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExpanderString ¶
type ExpanderString string
ExpanderString contains the name of an expander to be used by the cluster autoscaler. +kubebuilder:validation:Enum=LeastWaste;Priority;Random
const ( LeastWasteExpander ExpanderString = "LeastWaste" PriorityExpander ExpanderString = "Priority" RandomExpander ExpanderString = "Random" )
These constants define the valid values for an ExpanderString
type GPULimit ¶
type GPULimit struct { // The type of GPU to associate with the minimum and maximum limits. // This value is used by the Cluster Autoscaler to identify Nodes that will have GPU capacity by searching // for it as a label value on the Node objects. For example, Nodes that carry the label key // `cluster-api/accelerator` with the label value being the same as the Type field will be counted towards // the resource limits by the Cluster Autoscaler. // +kubebuilder:validation:MinLength=1 Type string `json:"type"` // +kubebuilder:validation:Minimum=0 Min int32 `json:"min"` // +kubebuilder:validation:Minimum=1 Max int32 `json:"max"` }
func (*GPULimit) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GPULimit.
func (*GPULimit) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceLimits ¶
type ResourceLimits struct { // Maximum number of nodes in all node groups. // Cluster autoscaler will not grow the cluster beyond this number. // +kubebuilder:validation:Minimum=0 MaxNodesTotal *int32 `json:"maxNodesTotal,omitempty"` // Minimum and maximum number of cores in cluster, in the format <min>:<max>. // Cluster autoscaler will not scale the cluster beyond these numbers. Cores *ResourceRange `json:"cores,omitempty"` // Minimum and maximum number of GiB of memory in cluster, in the format <min>:<max>. // Cluster autoscaler will not scale the cluster beyond these numbers. Memory *ResourceRange `json:"memory,omitempty"` // Minimum and maximum number of different GPUs in cluster, in the format <gpu_type>:<min>:<max>. // Cluster autoscaler will not scale the cluster beyond these numbers. Can be passed multiple times. GPUS []GPULimit `json:"gpus,omitempty"` }
func (*ResourceLimits) DeepCopy ¶
func (in *ResourceLimits) DeepCopy() *ResourceLimits
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceLimits.
func (*ResourceLimits) DeepCopyInto ¶
func (in *ResourceLimits) DeepCopyInto(out *ResourceLimits)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceRange ¶
type ResourceRange struct { // +kubebuilder:validation:Minimum=0 Min int32 `json:"min"` Max int32 `json:"max"` }
func (*ResourceRange) DeepCopy ¶
func (in *ResourceRange) DeepCopy() *ResourceRange
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRange.
func (*ResourceRange) DeepCopyInto ¶
func (in *ResourceRange) DeepCopyInto(out *ResourceRange)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScaleDownConfig ¶
type ScaleDownConfig struct { // Should CA scale down the cluster Enabled bool `json:"enabled"` // How long after scale up that scale down evaluation resumes // +kubebuilder:validation:Pattern=([0-9]*(\.[0-9]*)?[a-z]+)+ DelayAfterAdd *string `json:"delayAfterAdd,omitempty"` // How long after node deletion that scale down evaluation resumes, defaults to scan-interval // +kubebuilder:validation:Pattern=([0-9]*(\.[0-9]*)?[a-z]+)+ DelayAfterDelete *string `json:"delayAfterDelete,omitempty"` // How long after scale down failure that scale down evaluation resumes // +kubebuilder:validation:Pattern=([0-9]*(\.[0-9]*)?[a-z]+)+ DelayAfterFailure *string `json:"delayAfterFailure,omitempty"` // How long a node should be unneeded before it is eligible for scale down // +kubebuilder:validation:Pattern=([0-9]*(\.[0-9]*)?[a-z]+)+ UnneededTime *string `json:"unneededTime,omitempty"` // Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down // +kubebuilder:validation:Pattern=(0.[0-9]+) UtilizationThreshold *string `json:"utilizationThreshold,omitempty"` }
func (*ScaleDownConfig) DeepCopy ¶
func (in *ScaleDownConfig) DeepCopy() *ScaleDownConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleDownConfig.
func (*ScaleDownConfig) DeepCopyInto ¶
func (in *ScaleDownConfig) DeepCopyInto(out *ScaleDownConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.