v1alpha1

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Nov 5, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the autoscaler v1alpha1 API group +kubebuilder:object:generate=true +groupName=autoscaler.allthatjazzleo

Index

Constants

View Source
const PVCScalingController = "PVCScaling"

PVCScalingController is the canonical controller name.

Variables

View Source
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

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

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

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL