From 9a03f87c0b37a49f6108dd02db14784f44ae513a Mon Sep 17 00:00:00 2001 From: Rob Scott Date: Thu, 23 May 2019 16:50:37 +0200 Subject: [PATCH] adding exception for init container resource checks --- pkg/validator/container.go | 6 ++++++ pkg/validator/container_test.go | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/pkg/validator/container.go b/pkg/validator/container.go index b289400a2..5db508de6 100644 --- a/pkg/validator/container.go +++ b/pkg/validator/container.go @@ -55,6 +55,12 @@ func ValidateContainer(cnConf *conf.Configuration, container *corev1.Container, } func (cv *ContainerValidation) validateResources(resConf *conf.Resources) { + // Only validate resources for primary containers. Although it can + // be helpful to set these in certain cases, it usually isn't + if cv.IsInitContainer { + return + } + category := messages.CategoryResources res := cv.Container.Resources diff --git a/pkg/validator/container_test.go b/pkg/validator/container_test.go index 7e1a4fd7d..913652863 100644 --- a/pkg/validator/container_test.go +++ b/pkg/validator/container_test.go @@ -161,6 +161,27 @@ func TestValidateResourcesPartiallyValid(t *testing.T) { testValidateResources(t, &container, &resourceConf1, &expectedErrors, &expectedWarnings) } +func TestValidateResourcesInit(t *testing.T) { + cvEmpty := ContainerValidation{ + Container: &corev1.Container{}, + ResourceValidation: &ResourceValidation{}, + } + cvInit := ContainerValidation{ + Container: &corev1.Container{}, + ResourceValidation: &ResourceValidation{}, + IsInitContainer: true, + } + + parsedConf, err := conf.Parse([]byte(resourceConf1)) + assert.NoError(t, err, "Expected no error when parsing config") + + cvEmpty.validateResources(&parsedConf.Resources) + assert.Len(t, cvEmpty.Errors, 4) + + cvInit.validateResources(&parsedConf.Resources) + assert.Len(t, cvInit.Errors, 0) +} + func TestValidateResourcesFullyValid(t *testing.T) { cpuRequest, err := resource.ParseQuantity("300m") assert.NoError(t, err, "Error parsing quantity")