Merge pull request #4296 from jbartosik/test-cluster-feeder
Add a test for clusterStateFeeder.InitFromHistoryProvider
This commit is contained in:
commit
7c1b8078d9
|
|
@ -19,6 +19,7 @@ package input
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/golang/mock/gomock"
|
"github.com/golang/mock/gomock"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
@ -28,6 +29,7 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
vpa_types "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1"
|
vpa_types "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1"
|
||||||
controllerfetcher "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/recommender/input/controller_fetcher"
|
controllerfetcher "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/recommender/input/controller_fetcher"
|
||||||
|
"k8s.io/autoscaler/vertical-pod-autoscaler/pkg/recommender/input/history"
|
||||||
"k8s.io/autoscaler/vertical-pod-autoscaler/pkg/recommender/input/spec"
|
"k8s.io/autoscaler/vertical-pod-autoscaler/pkg/recommender/input/spec"
|
||||||
"k8s.io/autoscaler/vertical-pod-autoscaler/pkg/recommender/model"
|
"k8s.io/autoscaler/vertical-pod-autoscaler/pkg/recommender/model"
|
||||||
target_mock "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/target/mock"
|
target_mock "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/target/mock"
|
||||||
|
|
@ -350,3 +352,75 @@ func TestClusterStateFeeder_LoadPods(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type fakeHistoryProvider struct {
|
||||||
|
history map[model.PodID]*history.PodHistory
|
||||||
|
err error
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fhp *fakeHistoryProvider) GetClusterHistory() (map[model.PodID]*history.PodHistory, error) {
|
||||||
|
return fhp.history, fhp.err
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestClusterStateFeeder_InitFromHistoryProvider(t *testing.T) {
|
||||||
|
pod1 := model.PodID{
|
||||||
|
Namespace: "ns",
|
||||||
|
PodName: "a-pod",
|
||||||
|
}
|
||||||
|
memAmount := model.ResourceAmount(128 * 1024 * 1024)
|
||||||
|
t0 := time.Date(2021, time.August, 30, 10, 21, 0, 0, time.UTC)
|
||||||
|
containerCpu := "containerCpu"
|
||||||
|
containerMem := "containerMem"
|
||||||
|
pod1History := history.PodHistory{
|
||||||
|
LastLabels: map[string]string{},
|
||||||
|
LastSeen: t0,
|
||||||
|
Samples: map[string][]model.ContainerUsageSample{
|
||||||
|
containerCpu: {
|
||||||
|
{
|
||||||
|
MeasureStart: t0,
|
||||||
|
Usage: 10,
|
||||||
|
Request: 101,
|
||||||
|
Resource: model.ResourceCPU,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
containerMem: {
|
||||||
|
{
|
||||||
|
MeasureStart: t0,
|
||||||
|
Usage: memAmount,
|
||||||
|
Request: 1024 * 1024 * 1024,
|
||||||
|
Resource: model.ResourceMemory,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
provider := fakeHistoryProvider{
|
||||||
|
history: map[model.PodID]*history.PodHistory{
|
||||||
|
pod1: &pod1History,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
clusterState := model.NewClusterState()
|
||||||
|
feeder := clusterStateFeeder{
|
||||||
|
clusterState: clusterState,
|
||||||
|
}
|
||||||
|
feeder.InitFromHistoryProvider(&provider)
|
||||||
|
if !assert.Contains(t, feeder.clusterState.Pods, pod1) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
pod1State := feeder.clusterState.Pods[pod1]
|
||||||
|
if !assert.Contains(t, pod1State.Containers, containerCpu) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
containerState := pod1State.Containers[containerCpu]
|
||||||
|
if !assert.NotNil(t, containerState) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
assert.Equal(t, t0, containerState.LastCPUSampleStart)
|
||||||
|
if !assert.Contains(t, pod1State.Containers, containerMem) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
containerState = pod1State.Containers[containerMem]
|
||||||
|
if !assert.NotNil(t, containerState) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
assert.Equal(t, memAmount, containerState.GetMaxMemoryPeak())
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue