Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the autoscaler v1alpha1 API group +kubebuilder:object:generate=true +groupName=autoscaler.allthatjazzleo
Index ¶
Constants ¶
const PVCScalingController = "PVCScaling"
PVCScalingController is the canonical controller name.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "autoscaler.allthatjazzleo", Version: "v1alpha1"} // 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 )
Functions ¶
This section is empty.
Types ¶
type PVCScalingSpec ¶
type PVCScalingSpec struct { // The percentage of used disk space required to trigger scaling. // Example, if set to 80, autoscaling will not trigger until used space reaches >=80% of capacity. // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:MaxSize=100 UsedSpacePercentage int32 `json:"usedSpacePercentage"` // How much to increase the PVC's capacity. // Either a percentage (e.g. 20%) or a resource storage quantity (e.g. 100Gi). // // If a percentage, the existing capacity increases by the percentage. // E.g. PVC of 100Gi capacity + IncreaseQuantity of 20% increases disk to 120Gi. // // If a storage quantity (e.g. 100Gi), increases by that amount. IncreaseQuantity string `json:"increaseQuantity"` // How long to wait before scaling again. // For AWS EBS, this is 6 hours. // +optional Cooldown metav1.Duration `json:"cooldown"` // A resource storage quantity (e.g. 2000Gi). // When increasing PVC capacity reaches >= MaxSize, autoscaling ceases. // Safeguards against storage quotas and costs. // +optional MaxSize resource.Quantity `json:"maxSize"` }
PVCScalingSpec is part of the PodDiskInspectorSpec.
func (*PVCScalingSpec) DeepCopy ¶
func (in *PVCScalingSpec) DeepCopy() *PVCScalingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PVCScalingSpec.
func (*PVCScalingSpec) DeepCopyInto ¶
func (in *PVCScalingSpec) DeepCopyInto(out *PVCScalingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodDiskInspector ¶
type PodDiskInspector struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec PodDiskInspectorSpec `json:"spec,omitempty"` Status PodDiskInspectorStatus `json:"status,omitempty"` }
PodDiskInspector is the Schema for the poddiskinspectors API
func (*PodDiskInspector) DeepCopy ¶
func (in *PodDiskInspector) DeepCopy() *PodDiskInspector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDiskInspector.
func (*PodDiskInspector) DeepCopyInto ¶
func (in *PodDiskInspector) DeepCopyInto(out *PodDiskInspector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PodDiskInspector) DeepCopyObject ¶
func (in *PodDiskInspector) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PodDiskInspectorList ¶
type PodDiskInspectorList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []PodDiskInspector `json:"items"` }
PodDiskInspectorList contains a list of PodDiskInspector
func (*PodDiskInspectorList) DeepCopy ¶
func (in *PodDiskInspectorList) DeepCopy() *PodDiskInspectorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDiskInspectorList.
func (*PodDiskInspectorList) DeepCopyInto ¶
func (in *PodDiskInspectorList) DeepCopyInto(out *PodDiskInspectorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PodDiskInspectorList) DeepCopyObject ¶
func (in *PodDiskInspectorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PodDiskInspectorSpec ¶
type PodDiskInspectorSpec struct { // SidecarImage is the docker reference in "repository:tag" format. E.g. busybox:latest. // This is for the sidecar container running the disk health check process. // +kubebuilder:validation:MinLength:=1 SidecarImage string `json:"sidecarImage"` // Your cluster must support and use the ExpandInUsePersistentVolumes feature gate. This allows volumes to // expand while a pod is attached to it, thus eliminating the need to restart pods. // If you cluster does not support ExpandInUsePersistentVolumes, you will need to manually restart pods after // resizing is complete. // +optional PVCScaling *PVCScalingSpec `json:"pvcScaling"` }
PodDiskInspectorSpec defines the desired state of PodDiskInspector
func (*PodDiskInspectorSpec) DeepCopy ¶
func (in *PodDiskInspectorSpec) DeepCopy() *PodDiskInspectorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDiskInspectorSpec.
func (*PodDiskInspectorSpec) DeepCopyInto ¶
func (in *PodDiskInspectorSpec) DeepCopyInto(out *PodDiskInspectorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodDiskInspectorStatus ¶
type PodDiskInspectorStatus struct { // PVCScalingStatus contains the status of the PVCScaling controller. // Map key is the PVC NamespacedName // +optional // +mapType:=granular PVCScalingStatus map[string]ScalingStatus `json:"pvcScalingStatus,omitempty"` }
PodDiskInspectorStatus defines the observed state of PodDiskInspector
func (*PodDiskInspectorStatus) DeepCopy ¶
func (in *PodDiskInspectorStatus) DeepCopy() *PodDiskInspectorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDiskInspectorStatus.
func (*PodDiskInspectorStatus) DeepCopyInto ¶
func (in *PodDiskInspectorStatus) DeepCopyInto(out *PodDiskInspectorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalingStatus ¶
type ScalingStatus struct { // The PVC size requested by the PVCScaling controller. RequestedSize resource.Quantity `json:"requestedSize"` // The timestamp the PVCScaling controller requested a PVC increase. RequestedAt metav1.Time `json:"requestedAt"` }
func (*ScalingStatus) DeepCopy ¶
func (in *ScalingStatus) DeepCopy() *ScalingStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalingStatus.
func (*ScalingStatus) DeepCopyInto ¶
func (in *ScalingStatus) DeepCopyInto(out *ScalingStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.