Merge pull request #391 from sap-nocops/master

Cpu% and Memory% based on requests rather than limits
mine
Fernand Galiana 2019-10-30 07:58:36 -06:00 committed by GitHub
commit ebbda14404
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 45 additions and 0 deletions

View File

@ -44,6 +44,39 @@ func TestPodFields(t *testing.T) {
assert.Equal(t, "fred", r[0])
}
func TestPodFieldsPercentageCpuAndMemRelatedToContainerRequestSpecAndFallbackToLimit(t *testing.T) {
percentageTests := []struct {
resources v1.ResourceRequirements
metrics mv1beta1.PodMetrics
expectedCpuPercentage string
expectedMemPercentage string
}{
{
v1.ResourceRequirements{
Requests: makeRes("500m", "512Mi"),
},
makeMxPod("fred", "250m", "256Mi"),
"150",
"150",
},
{
v1.ResourceRequirements{
Limits: makeRes("1000m", "1024Mi"),
},
makeMxPod("fred", "250m", "256Mi"),
"75",
"75",
},
}
for _, percentageTest := range percentageTests {
r := NewPodWithMetrics(percentageTest.metrics, percentageTest.resources).Fields("blee")
assert.Equal(t, percentageTest.expectedCpuPercentage, r[6])
assert.Equal(t, percentageTest.expectedMemPercentage, r[7])
}
}
func TestPodMarshal(t *testing.T) {
mc := NewMockConnection()
mr := NewMockCruder()
@ -100,6 +133,11 @@ func BenchmarkPodFields(b *testing.B) {
// ----------------------------------------------------------------------------
// Helpers...
func makePodWithContainerSpec(resources v1.ResourceRequirements) *v1.Pod {
pod := makePod()
pod.Spec.Containers[0].Resources = resources
return pod
}
func makePod() *v1.Pod {
var i int32 = 1
@ -159,6 +197,13 @@ func newPod() resource.Columnar {
return resource.NewPod(mc).New(makePod())
}
func NewPodWithMetrics(metrics mv1beta1.PodMetrics, resources v1.ResourceRequirements) resource.Columnar {
mc := NewMockConnection()
r := resource.NewPod(mc).New(makePodWithContainerSpec(resources))
r.SetPodMetrics(&metrics)
return r
}
func poYaml() string {
return `apiVersion: v1
kind: Pod