Documentation ¶
Index ¶
- Constants
- Variables
- func ActuationSuiteE2eDescribe(name string, body func()) bool
- func AdmissionControllerE2eDescribe(name string, body func()) bool
- func AnnotatePod(f *framework.Framework, podName, annotationName, annotationValue string)
- func CheckNoPodsEvicted(f *framework.Framework, initialPodSet PodSet)
- func CreateCPUHorizontalPodAutoscaler(rc *ResourceConsumer, cpu, minReplicas, maxRepl int32) *autoscalingv1.HorizontalPodAutoscaler
- func DeleteHorizontalPodAutoscaler(rc *ResourceConsumer, autoscalerName string)
- func E2eDescribe(scenario, name string, body func()) bool
- func FullVpaE2eDescribe(name string, body func()) bool
- func GetEvictedPodsCount(currentPodSet PodSet, initialPodSet PodSet) int
- func GetHamsterPods(f *framework.Framework) (*apiv1.PodList, error)
- func GetResourceConsumerImage() string
- func InstallLimitRangeWithMax(f *framework.Framework, maxCpuLimit, maxMemoryLimit string, ...)
- func InstallLimitRangeWithMin(f *framework.Framework, minCpuLimit, minMemoryLimit string, ...)
- func InstallVPA(f *framework.Framework, vpa *vpa_types.VerticalPodAutoscaler)
- func NewHamsterDeployment(f *framework.Framework) *appsv1.Deployment
- func NewHamsterDeploymentWithGuaranteedResources(f *framework.Framework, cpuQuantity, memoryQuantity resource.Quantity) *appsv1.Deployment
- func NewHamsterDeploymentWithResources(f *framework.Framework, cpuQuantity, memoryQuantity resource.Quantity) *appsv1.Deployment
- func NewHamsterDeploymentWithResourcesAndLimits(f *framework.Framework, ...) *appsv1.Deployment
- func NewVPA(f *framework.Framework, name string, ...) *vpa_types.VerticalPodAutoscaler
- func ParseQuantityOrDie(text string) resource.Quantity
- func PatchVpaRecommendation(f *framework.Framework, vpa *vpa_types.VerticalPodAutoscaler, ...)
- func RecommenderE2eDescribe(name string, body func()) bool
- func RunE2ETests(t *testing.T)
- func SIGDescribe(text string, body func()) bool
- func SetupHamsterDeployment(f *framework.Framework, cpu, memory string, replicas int32) *appsv1.Deployment
- func SetupVPA(f *framework.Framework, cpu string, mode vpa_types.UpdateMode, ...)
- func SetupVPAForTwoHamsters(f *framework.Framework, cpu string, mode vpa_types.UpdateMode, ...)
- func UpdaterE2eDescribe(name string, body func()) bool
- func WaitForPodsEvicted(f *framework.Framework, podList *apiv1.PodList) error
- func WaitForPodsRestarted(f *framework.Framework, podList *apiv1.PodList) error
- func WaitForRecommendationPresent(c *vpa_clientset.Clientset, vpa *vpa_types.VerticalPodAutoscaler) (*vpa_types.VerticalPodAutoscaler, error)
- func WaitForVPAMatch(c *vpa_clientset.Clientset, vpa *vpa_types.VerticalPodAutoscaler, ...) (*vpa_types.VerticalPodAutoscaler, error)
- func WerePodsSuccessfullyRestarted(currentPodSet PodSet, initialPodSet PodSet) bool
- type PodSet
- type ResourceConsumer
- func (rc *ResourceConsumer) CleanUp()
- func (rc *ResourceConsumer) ConsumeCPU(millicores int)
- func (rc *ResourceConsumer) ConsumeCustomMetric(amount int)
- func (rc *ResourceConsumer) ConsumeMem(megabytes int)
- func (rc *ResourceConsumer) EnsureDesiredReplicas(desiredReplicas int, duration time.Duration)
- func (rc *ResourceConsumer) GetReplicas() int
- func (rc *ResourceConsumer) Pause()
- func (rc *ResourceConsumer) Resume()
- func (rc *ResourceConsumer) WaitForReplicas(desiredReplicas int, duration time.Duration)
Constants ¶
const ( // VpaEvictionTimeout is a timeout for VPA to restart a pod if there are no // mechanisms blocking it (for example PDB). VpaEvictionTimeout = 3 * time.Minute )
Variables ¶
var ( // KindRC var KindRC = schema.GroupVersionKind{Version: "v1", Kind: "ReplicationController"} // KindDeployment var KindDeployment = schema.GroupVersionKind{Group: "apps", Version: "v1beta2", Kind: "Deployment"} // KindReplicaSet var KindReplicaSet = schema.GroupVersionKind{Group: "apps", Version: "v1beta2", Kind: "ReplicaSet"} )
Functions ¶
func ActuationSuiteE2eDescribe ¶
ActuationSuiteE2eDescribe describes a VPA actuation e2e test.
func AdmissionControllerE2eDescribe ¶
AdmissionControllerE2eDescribe describes a VPA admission controller e2e test.
func AnnotatePod ¶
AnnotatePod adds annotation for an existing pod.
func CheckNoPodsEvicted ¶
CheckNoPodsEvicted waits for long enough period for VPA to start evicting pods and checks that no pods were restarted.
func CreateCPUHorizontalPodAutoscaler ¶
func CreateCPUHorizontalPodAutoscaler(rc *ResourceConsumer, cpu, minReplicas, maxRepl int32) *autoscalingv1.HorizontalPodAutoscaler
CreateCPUHorizontalPodAutoscaler func
func DeleteHorizontalPodAutoscaler ¶
func DeleteHorizontalPodAutoscaler(rc *ResourceConsumer, autoscalerName string)
DeleteHorizontalPodAutoscaler func
func E2eDescribe ¶
E2eDescribe describes a VPA e2e test.
func FullVpaE2eDescribe ¶
FullVpaE2eDescribe describes a VPA full stack e2e test.
func GetEvictedPodsCount ¶
GetEvictedPodsCount returns the count of pods from initialPodSet that have been evicted comparing to currentPodSet.
func GetHamsterPods ¶
GetHamsterPods returns running hamster pods (matched by hamsterLabels)
func GetResourceConsumerImage ¶
func GetResourceConsumerImage() string
GetResourceConsumerImage func
func InstallLimitRangeWithMax ¶
func InstallLimitRangeWithMax(f *framework.Framework, maxCpuLimit, maxMemoryLimit string, lrType apiv1.LimitType)
InstallLimitRangeWithMax installs a LimitRange with a maximum limit for CPU and memory.
func InstallLimitRangeWithMin ¶
func InstallLimitRangeWithMin(f *framework.Framework, minCpuLimit, minMemoryLimit string, lrType apiv1.LimitType)
InstallLimitRangeWithMin installs a LimitRange with a minimum limit for CPU and memory.
func InstallVPA ¶
func InstallVPA(f *framework.Framework, vpa *vpa_types.VerticalPodAutoscaler)
InstallVPA installs a VPA object in the test cluster.
func NewHamsterDeployment ¶
func NewHamsterDeployment(f *framework.Framework) *appsv1.Deployment
NewHamsterDeployment creates a simple hamster deployment for e2e test purposes.
func NewHamsterDeploymentWithGuaranteedResources ¶
func NewHamsterDeploymentWithGuaranteedResources(f *framework.Framework, cpuQuantity, memoryQuantity resource.Quantity) *appsv1.Deployment
NewHamsterDeploymentWithGuaranteedResources creates a simple hamster deployment with specific resource requests for e2e test purposes. Since the container in the pod specifies resource limits but not resource requests K8s will set requests equal to limits and the pod will have guaranteed QoS class.
func NewHamsterDeploymentWithResources ¶
func NewHamsterDeploymentWithResources(f *framework.Framework, cpuQuantity, memoryQuantity resource.Quantity) *appsv1.Deployment
NewHamsterDeploymentWithResources creates a simple hamster deployment with specific resource requests for e2e test purposes.
func NewHamsterDeploymentWithResourcesAndLimits ¶
func NewHamsterDeploymentWithResourcesAndLimits(f *framework.Framework, cpuQuantityRequest, memoryQuantityRequest, cpuQuantityLimit, memoryQuantityLimit resource.Quantity) *appsv1.Deployment
NewHamsterDeploymentWithResourcesAndLimits creates a simple hamster deployment with specific resource requests and limits for e2e test purposes.
func NewVPA ¶
func NewVPA(f *framework.Framework, name string, targetRef *autoscaling.CrossVersionObjectReference) *vpa_types.VerticalPodAutoscaler
NewVPA creates a VPA object for e2e test purposes.
func ParseQuantityOrDie ¶
ParseQuantityOrDie parses quantity from string and dies with an error if unparsable.
func PatchVpaRecommendation ¶
func PatchVpaRecommendation(f *framework.Framework, vpa *vpa_types.VerticalPodAutoscaler, recommendation *vpa_types.RecommendedPodResources)
PatchVpaRecommendation installs a new reocmmendation for VPA object.
func RecommenderE2eDescribe ¶
RecommenderE2eDescribe describes a VPA recommender e2e test.
func RunE2ETests ¶
RunE2ETests checks configuration parameters (specified through flags) and then runs E2E tests using the Ginkgo runner. If a "report directory" is specified, one or more JUnit test reports will be generated in this directory, and cluster logs will also be saved. This function is called on each Ginkgo node in parallel mode.
func SIGDescribe ¶
SIGDescribe adds sig-autoscaling tag to test description.
func SetupHamsterDeployment ¶
func SetupHamsterDeployment(f *framework.Framework, cpu, memory string, replicas int32) *appsv1.Deployment
SetupHamsterDeployment creates and installs a simple hamster deployment for e2e test purposes, then makes sure the deployment is running.
func SetupVPA ¶
func SetupVPA(f *framework.Framework, cpu string, mode vpa_types.UpdateMode, targetRef *autoscaling.CrossVersionObjectReference)
SetupVPA creates and installs a simple hamster VPA for e2e test purposes.
func SetupVPAForTwoHamsters ¶
func SetupVPAForTwoHamsters(f *framework.Framework, cpu string, mode vpa_types.UpdateMode, targetRef *autoscaling.CrossVersionObjectReference)
SetupVPAForTwoHamsters creates and installs a simple pod with two hamster containers for e2e test purposes.
func UpdaterE2eDescribe ¶
UpdaterE2eDescribe describes a VPA updater e2e test.
func WaitForPodsEvicted ¶
WaitForPodsEvicted waits until some pods from the list are evicted.
func WaitForPodsRestarted ¶
WaitForPodsRestarted waits until some pods from the list are restarted.
func WaitForRecommendationPresent ¶
func WaitForRecommendationPresent(c *vpa_clientset.Clientset, vpa *vpa_types.VerticalPodAutoscaler) (*vpa_types.VerticalPodAutoscaler, error)
WaitForRecommendationPresent pools VPA object until recommendations are not empty. Returns polled vpa object. On timeout returns error.
func WaitForVPAMatch ¶
func WaitForVPAMatch(c *vpa_clientset.Clientset, vpa *vpa_types.VerticalPodAutoscaler, match func(vpa *vpa_types.VerticalPodAutoscaler) bool) (*vpa_types.VerticalPodAutoscaler, error)
WaitForVPAMatch pools VPA object until match function returns true. Returns polled vpa object. On timeout returns error.
func WerePodsSuccessfullyRestarted ¶
WerePodsSuccessfullyRestarted returns true if some pods from initialPodSet have been successfully restarted comparing to currentPodSet (pods were evicted and are running).
Types ¶
type PodSet ¶
PodSet is a simplified representation of PodList mapping names to UIDs.
func MakePodSet ¶
MakePodSet converts PodList to podset for easier comparison of pod collections.
type ResourceConsumer ¶
type ResourceConsumer struct {
// contains filtered or unexported fields
}
ResourceConsumer is a tool for testing. It helps create specified usage of CPU or memory typical use case: rc.ConsumeCPU(600) // ... check your assumption here rc.ConsumeCPU(300) // ... check your assumption here
func NewDynamicResourceConsumer ¶
func NewDynamicResourceConsumer(name, nsName string, kind schema.GroupVersionKind, replicas, initCPUTotal, initMemoryTotal, initCustomMetric int, cpuRequest, memRequest resource.Quantity, clientset clientset.Interface, internalClientset *internalclientset.Clientset) *ResourceConsumer
NewDynamicResourceConsumer func
func NewStaticResourceConsumer ¶
func NewStaticResourceConsumer(name, nsName string, replicas, initCPUTotal, initMemoryTotal, initCustomMetric int, cpuRequest, memRequest resource.Quantity, clientset clientset.Interface, internalClientset *internalclientset.Clientset) *ResourceConsumer
NewStaticResourceConsumer TODO this still defaults to replication controller
func (*ResourceConsumer) ConsumeCPU ¶
func (rc *ResourceConsumer) ConsumeCPU(millicores int)
ConsumeCPU consumes given number of CPU
func (*ResourceConsumer) ConsumeCustomMetric ¶
func (rc *ResourceConsumer) ConsumeCustomMetric(amount int)
ConsumeCustomMetric consumes given number of custom metric
func (*ResourceConsumer) ConsumeMem ¶
func (rc *ResourceConsumer) ConsumeMem(megabytes int)
ConsumeMem consumes given number of Mem
func (*ResourceConsumer) EnsureDesiredReplicas ¶
func (rc *ResourceConsumer) EnsureDesiredReplicas(desiredReplicas int, duration time.Duration)
EnsureDesiredReplicas func
func (*ResourceConsumer) GetReplicas ¶
func (rc *ResourceConsumer) GetReplicas() int
GetReplicas func
func (*ResourceConsumer) Pause ¶
func (rc *ResourceConsumer) Pause()
Pause stops background goroutines responsible for consuming resources.
func (*ResourceConsumer) Resume ¶
func (rc *ResourceConsumer) Resume()
Resume starts background goroutines responsible for consuming resources.
func (*ResourceConsumer) WaitForReplicas ¶
func (rc *ResourceConsumer) WaitForReplicas(desiredReplicas int, duration time.Duration)
WaitForReplicas func