From 49c540e99316232a1b199a2344af802ac84d2189 Mon Sep 17 00:00:00 2001 From: Robert Brennan Date: Fri, 3 Jan 2020 17:32:56 +0000 Subject: [PATCH] type -> kind --- pkg/config/supportedcontrollers.go | 10 +++++----- pkg/validator/container.go | 8 ++++---- pkg/validator/controller.go | 9 +++++---- pkg/validator/controller_test.go | 10 +++++----- pkg/validator/controllers/cronjob.go | 4 ++-- pkg/validator/controllers/daemonset.go | 4 ++-- pkg/validator/controllers/deployment.go | 4 ++-- pkg/validator/controllers/interface.go | 10 +++++----- pkg/validator/controllers/job.go | 4 ++-- pkg/validator/controllers/replicationcontroller.go | 4 ++-- pkg/validator/controllers/statefulsets.go | 4 ++-- pkg/validator/fullaudit_test.go | 12 ++++++------ pkg/validator/output.go | 2 +- pkg/validator/pod.go | 8 ++++---- pkg/validator/schema.go | 12 ++++++------ 15 files changed, 53 insertions(+), 52 deletions(-) diff --git a/pkg/config/supportedcontrollers.go b/pkg/config/supportedcontrollers.go index 808a9538..3959d28b 100644 --- a/pkg/config/supportedcontrollers.go +++ b/pkg/config/supportedcontrollers.go @@ -33,11 +33,11 @@ const ( // ControllerStrings are strongly ordered to match the SupportedController enum var ControllerStrings = []string{ "Unsupported", - "Deployments", - "StatefulSets", - "DaemonSets", - "Jobs", - "CronJobs", + "Deployment", + "StatefulSet", + "DaemonSet", + "Job", + "CronJob", "ReplicationController", } diff --git a/pkg/validator/container.go b/pkg/validator/container.go index 0d6d3a56..8039079e 100644 --- a/pkg/validator/container.go +++ b/pkg/validator/container.go @@ -19,8 +19,8 @@ import ( corev1 "k8s.io/api/core/v1" ) -func ValidateContainer(conf *config.Configuration, basePod *corev1.PodSpec, container *corev1.Container, controllerName string, controllerType config.SupportedController, isInit bool) ContainerResult { - results, err := applyContainerSchemaChecks(conf, basePod, container, controllerName, controllerType, isInit) +func ValidateContainer(conf *config.Configuration, basePod *corev1.PodSpec, container *corev1.Container, controllerName string, controllerKind config.SupportedController, isInit bool) ContainerResult { + results, err := applyContainerSchemaChecks(conf, basePod, container, controllerName, controllerKind, isInit) // FIXME: don't panic if err != nil { panic(err) @@ -34,10 +34,10 @@ func ValidateContainer(conf *config.Configuration, basePod *corev1.PodSpec, cont return cRes } -func ValidateContainers(conf *config.Configuration, basePod *corev1.PodSpec, containers []corev1.Container, controllerName string, controllerType config.SupportedController, isInit bool) []ContainerResult { +func ValidateContainers(conf *config.Configuration, basePod *corev1.PodSpec, containers []corev1.Container, controllerName string, controllerKind config.SupportedController, isInit bool) []ContainerResult { results := []ContainerResult{} for _, container := range containers { - cRes := ValidateContainer(conf, basePod, &container, controllerName, controllerType, isInit) + cRes := ValidateContainer(conf, basePod, &container, controllerName, controllerKind, isInit) results = append(results, cRes) } return results diff --git a/pkg/validator/controller.go b/pkg/validator/controller.go index 93558095..f32c1f37 100644 --- a/pkg/validator/controller.go +++ b/pkg/validator/controller.go @@ -27,12 +27,13 @@ const exemptionAnnotationKey = "polaris.fairwinds.com/exempt" // ValidateController validates a single controller, returns a ControllerResult. func ValidateController(conf *conf.Configuration, controller controller.Interface) ControllerResult { - controllerType := controller.GetType() + controllerKind := controller.GetKind() pod := controller.GetPodSpec() - podResult := ValidatePod(conf, pod, controller.GetName(), controllerType) + podResult := ValidatePod(conf, pod, controller.GetName(), controllerKind) result := ControllerResult{ - Type: controllerType.String(), + Kind: controllerKind.String(), Name: controller.GetName(), + Messages: ResultSet{}, PodResult: podResult, } return result @@ -43,7 +44,7 @@ func ValidateController(conf *conf.Configuration, controller controller.Interfac func ValidateControllers(config *conf.Configuration, kubeResources *kube.ResourceProvider) []ControllerResult { var controllersToAudit []controller.Interface for _, supportedControllers := range config.ControllersToScan { - loadedControllers, _ := controllers.LoadControllersByType(supportedControllers, kubeResources) + loadedControllers, _ := controllers.LoadControllersByKind(supportedControllers, kubeResources) controllersToAudit = append(controllersToAudit, loadedControllers...) } diff --git a/pkg/validator/controller_test.go b/pkg/validator/controller_test.go index 07bce7be..5530e757 100644 --- a/pkg/validator/controller_test.go +++ b/pkg/validator/controller_test.go @@ -48,7 +48,7 @@ func TestValidateController(t *testing.T) { actualResult := ValidateController(&c, deployment) - assert.Equal(t, "Deployments", actualResult.Type) + assert.Equal(t, "Deployment", actualResult.Kind) assert.Equal(t, 1, len(actualResult.PodResult.ContainerResults), "should be equal") assert.EqualValues(t, expectedSum, actualResult.GetSummary()) assert.EqualValues(t, expectedMessages, actualResult.PodResult.Messages) @@ -82,7 +82,7 @@ func TestSkipHealthChecks(t *testing.T) { "livenessProbeMissing": {ID: "livenessProbeMissing", Message: "Liveness probe should be configured", Success: false, Severity: "warning", Category: "Health Checks"}, } actualResult := ValidateController(&c, deployment) - assert.Equal(t, "Deployments", actualResult.Type) + assert.Equal(t, "Deployment", actualResult.Kind) assert.Equal(t, 2, len(actualResult.PodResult.ContainerResults), "should be equal") assert.EqualValues(t, expectedSum, actualResult.GetSummary()) assert.EqualValues(t, ResultSet{}, actualResult.PodResult.ContainerResults[0].Messages) @@ -96,7 +96,7 @@ func TestSkipHealthChecks(t *testing.T) { } expectedMessages = ResultSet{} actualResult = ValidateController(&c, job) - assert.Equal(t, "Jobs", actualResult.Type) + assert.Equal(t, "Job", actualResult.Kind) assert.Equal(t, 1, len(actualResult.PodResult.ContainerResults), "should be equal") assert.EqualValues(t, expectedSum, actualResult.GetSummary()) assert.EqualValues(t, expectedMessages, actualResult.PodResult.ContainerResults[0].Messages) @@ -109,7 +109,7 @@ func TestSkipHealthChecks(t *testing.T) { } expectedMessages = ResultSet{} actualResult = ValidateController(&c, cronjob) - assert.Equal(t, "CronJobs", actualResult.Type) + assert.Equal(t, "CronJob", actualResult.Kind) assert.Equal(t, 1, len(actualResult.PodResult.ContainerResults), "should be equal") assert.EqualValues(t, expectedSum, actualResult.GetSummary()) assert.EqualValues(t, expectedMessages, actualResult.PodResult.ContainerResults[0].Messages) @@ -136,7 +136,7 @@ func TestControllerExemptions(t *testing.T) { } actualResults := ValidateControllers(&c, resources) assert.Equal(t, 1, len(actualResults)) - assert.Equal(t, "Deployments", actualResults[0].Type) + assert.Equal(t, "Deployment", actualResults[0].Kind) assert.EqualValues(t, expectedSum, actualResults[0].GetSummary()) resources.Deployments[0].ObjectMeta.Annotations = map[string]string{ diff --git a/pkg/validator/controllers/cronjob.go b/pkg/validator/controllers/cronjob.go index 2e94ba8a..e832acc1 100644 --- a/pkg/validator/controllers/cronjob.go +++ b/pkg/validator/controllers/cronjob.go @@ -22,8 +22,8 @@ func (c CronJobController) GetPodSpec() *kubeAPICoreV1.PodSpec { return &c.K8SResource.Spec.JobTemplate.Spec.Template.Spec } -// GetType returns the supportedcontroller enum type -func (c CronJobController) GetType() config.SupportedController { +// GetKind returns the supportedcontroller enum type +func (c CronJobController) GetKind() config.SupportedController { return config.CronJobs } diff --git a/pkg/validator/controllers/daemonset.go b/pkg/validator/controllers/daemonset.go index 4a6ea455..5dacab77 100644 --- a/pkg/validator/controllers/daemonset.go +++ b/pkg/validator/controllers/daemonset.go @@ -27,8 +27,8 @@ func (d DaemonSetController) GetAnnotations() map[string]string { return d.K8SResource.ObjectMeta.Annotations } -// GetType returns the supportedcontroller enum type -func (d DaemonSetController) GetType() config.SupportedController { +// GetKind returns the supportedcontroller enum type +func (d DaemonSetController) GetKind() config.SupportedController { return config.DaemonSets } diff --git a/pkg/validator/controllers/deployment.go b/pkg/validator/controllers/deployment.go index ddf76a58..23f45c77 100644 --- a/pkg/validator/controllers/deployment.go +++ b/pkg/validator/controllers/deployment.go @@ -27,8 +27,8 @@ func (d DeploymentController) GetAnnotations() map[string]string { return d.K8SResource.ObjectMeta.Annotations } -// GetType returns the supportedcontroller enum type -func (d DeploymentController) GetType() config.SupportedController { +// GetKind returns the supportedcontroller enum type +func (d DeploymentController) GetKind() config.SupportedController { return config.Deployments } diff --git a/pkg/validator/controllers/interface.go b/pkg/validator/controllers/interface.go index f69dd422..da4fc4fe 100644 --- a/pkg/validator/controllers/interface.go +++ b/pkg/validator/controllers/interface.go @@ -14,7 +14,7 @@ type Interface interface { GetNamespace() string GetPodTemplate() *kubeAPICoreV1.PodTemplateSpec GetPodSpec() *kubeAPICoreV1.PodSpec - GetType() config.SupportedController + GetKind() config.SupportedController GetAnnotations() map[string]string } @@ -34,10 +34,10 @@ func (g GenericController) GetNamespace() string { return g.Namespace } -// LoadControllersByType loads a list of controllers from the kubeResources by detecting their type -func LoadControllersByType(controllerType config.SupportedController, kubeResources *kube.ResourceProvider) ([]Interface, error) { +// LoadControllersByKind loads a list of controllers from the kubeResources by detecting their type +func LoadControllersByKind(controllerKind config.SupportedController, kubeResources *kube.ResourceProvider) ([]Interface, error) { interfaces := []Interface{} - switch controllerType { + switch controllerKind { case config.Deployments: for _, deploy := range kubeResources.Deployments { interfaces = append(interfaces, NewDeploymentController(deploy)) @@ -66,5 +66,5 @@ func LoadControllersByType(controllerType config.SupportedController, kubeResour if len(interfaces) > 0 { return interfaces, nil } - return nil, fmt.Errorf("Controller type (%s) does not have a generator", controllerType) + return nil, fmt.Errorf("Controller type (%s) does not have a generator", controllerKind) } diff --git a/pkg/validator/controllers/job.go b/pkg/validator/controllers/job.go index f48fa03b..6e137e31 100644 --- a/pkg/validator/controllers/job.go +++ b/pkg/validator/controllers/job.go @@ -27,8 +27,8 @@ func (j JobController) GetAnnotations() map[string]string { return j.K8SResource.ObjectMeta.Annotations } -// GetType returns the supportedcontroller enum type -func (j JobController) GetType() config.SupportedController { +// GetKind returns the supportedcontroller enum type +func (j JobController) GetKind() config.SupportedController { return config.Jobs } diff --git a/pkg/validator/controllers/replicationcontroller.go b/pkg/validator/controllers/replicationcontroller.go index d03f6e30..ea7ca5a2 100644 --- a/pkg/validator/controllers/replicationcontroller.go +++ b/pkg/validator/controllers/replicationcontroller.go @@ -29,8 +29,8 @@ func (r ReplicationControllerController) GetAnnotations() map[string]string { return r.K8SResource.ObjectMeta.Annotations } -// GetType returns the supportedcontroller enum type -func (r ReplicationControllerController) GetType() config.SupportedController { +// GetKind returns the supportedcontroller enum type +func (r ReplicationControllerController) GetKind() config.SupportedController { return config.ReplicationControllers } diff --git a/pkg/validator/controllers/statefulsets.go b/pkg/validator/controllers/statefulsets.go index 16c8f1bb..69039961 100644 --- a/pkg/validator/controllers/statefulsets.go +++ b/pkg/validator/controllers/statefulsets.go @@ -27,8 +27,8 @@ func (s StatefulSetController) GetAnnotations() map[string]string { return s.K8SResource.ObjectMeta.Annotations } -// GetType returns the supportedcontroller enum type -func (s StatefulSetController) GetType() config.SupportedController { +// GetKind returns the supportedcontroller enum type +func (s StatefulSetController) GetKind() config.SupportedController { return config.StatefulSets } diff --git a/pkg/validator/fullaudit_test.go b/pkg/validator/fullaudit_test.go index 4ca9ab6d..44e7c38a 100644 --- a/pkg/validator/fullaudit_test.go +++ b/pkg/validator/fullaudit_test.go @@ -45,27 +45,27 @@ func TestGetTemplateData(t *testing.T) { assert.Equal(t, 6, len(actualAudit.Results)) - assert.Equal(t, "Deployments", actualAudit.Results[0].Type) + assert.Equal(t, "Deployment", actualAudit.Results[0].Kind) assert.Equal(t, 1, len(actualAudit.Results[0].PodResult.ContainerResults)) assert.Equal(t, 2, len(actualAudit.Results[0].PodResult.ContainerResults[0].Messages)) - assert.Equal(t, "StatefulSets", actualAudit.Results[1].Type) + assert.Equal(t, "StatefulSet", actualAudit.Results[1].Kind) assert.Equal(t, 1, len(actualAudit.Results[1].PodResult.ContainerResults)) assert.Equal(t, 2, len(actualAudit.Results[1].PodResult.ContainerResults[0].Messages)) - assert.Equal(t, "DaemonSets", actualAudit.Results[2].Type) + assert.Equal(t, "DaemonSet", actualAudit.Results[2].Kind) assert.Equal(t, 1, len(actualAudit.Results[2].PodResult.ContainerResults)) assert.Equal(t, 2, len(actualAudit.Results[2].PodResult.ContainerResults[0].Messages)) - assert.Equal(t, "Jobs", actualAudit.Results[3].Type) + assert.Equal(t, "Job", actualAudit.Results[3].Kind) assert.Equal(t, 1, len(actualAudit.Results[3].PodResult.ContainerResults)) assert.Equal(t, 0, len(actualAudit.Results[3].PodResult.ContainerResults[0].Messages)) - assert.Equal(t, "CronJobs", actualAudit.Results[4].Type) + assert.Equal(t, "CronJob", actualAudit.Results[4].Kind) assert.Equal(t, 1, len(actualAudit.Results[4].PodResult.ContainerResults)) assert.Equal(t, 0, len(actualAudit.Results[4].PodResult.ContainerResults[0].Messages)) - assert.Equal(t, "ReplicationController", actualAudit.Results[5].Type) + assert.Equal(t, "ReplicationController", actualAudit.Results[5].Kind) assert.Equal(t, 1, len(actualAudit.Results[5].PodResult.ContainerResults)) assert.Equal(t, 2, len(actualAudit.Results[5].PodResult.ContainerResults[0].Messages)) } diff --git a/pkg/validator/output.go b/pkg/validator/output.go index ed6e0dd6..e17dd6ac 100644 --- a/pkg/validator/output.go +++ b/pkg/validator/output.go @@ -63,7 +63,7 @@ type ResultSet map[string]ResultMessage // ControllerResult provides results for a controller type ControllerResult struct { Name string - Type string + Kind string Messages ResultSet PodResult PodResult } diff --git a/pkg/validator/pod.go b/pkg/validator/pod.go index ef14290c..d26c0221 100644 --- a/pkg/validator/pod.go +++ b/pkg/validator/pod.go @@ -20,8 +20,8 @@ import ( ) // ValidatePod validates that each pod conforms to the Polaris config, returns a ResourceResult. -func ValidatePod(conf *config.Configuration, pod *corev1.PodSpec, controllerName string, controllerType config.SupportedController) PodResult { - podResults, err := applyPodSchemaChecks(conf, pod, controllerName, controllerType) +func ValidatePod(conf *config.Configuration, pod *corev1.PodSpec, controllerName string, controllerKind config.SupportedController) PodResult { + podResults, err := applyPodSchemaChecks(conf, pod, controllerName, controllerKind) // FIXME: don't panic if err != nil { panic(err) @@ -36,9 +36,9 @@ func ValidatePod(conf *config.Configuration, pod *corev1.PodSpec, controllerName podCopy.InitContainers = []corev1.Container{} podCopy.Containers = []corev1.Container{} - containerResults := ValidateContainers(conf, &podCopy, pod.InitContainers, controllerName, controllerType, true) + containerResults := ValidateContainers(conf, &podCopy, pod.InitContainers, controllerName, controllerKind, true) pRes.ContainerResults = append(pRes.ContainerResults, containerResults...) - containerResults = ValidateContainers(conf, &podCopy, pod.Containers, controllerName, controllerType, false) + containerResults = ValidateContainers(conf, &podCopy, pod.Containers, controllerName, controllerKind, false) pRes.ContainerResults = append(pRes.ContainerResults, containerResults...) return pRes diff --git a/pkg/validator/schema.go b/pkg/validator/schema.go index 6ec7bb41..d5f5a4a8 100644 --- a/pkg/validator/schema.go +++ b/pkg/validator/schema.go @@ -72,7 +72,7 @@ func parseCheck(rawBytes []byte) (config.SchemaCheck, error) { } } -func resolveCheck(conf *config.Configuration, checkID string, controllerName string, controllerType config.SupportedController, target config.TargetKind, isInitContainer bool) (*config.SchemaCheck, error) { +func resolveCheck(conf *config.Configuration, checkID string, controllerName string, controllerKind config.SupportedController, target config.TargetKind, isInitContainer bool) (*config.SchemaCheck, error) { check, ok := conf.CustomChecks[checkID] if !ok { check, ok = builtInChecks[checkID] @@ -83,7 +83,7 @@ func resolveCheck(conf *config.Configuration, checkID string, controllerName str if !conf.IsActionable(check.ID, controllerName) { return nil, nil } - if !check.IsActionable(target, controllerType, isInitContainer) { + if !check.IsActionable(target, controllerKind, isInitContainer) { return nil, nil } return &check, nil @@ -104,11 +104,11 @@ func makeResult(conf *config.Configuration, check *config.SchemaCheck, passes bo return result } -func applyPodSchemaChecks(conf *config.Configuration, pod *corev1.PodSpec, controllerName string, controllerType config.SupportedController) (ResultSet, error) { +func applyPodSchemaChecks(conf *config.Configuration, pod *corev1.PodSpec, controllerName string, controllerKind config.SupportedController) (ResultSet, error) { results := ResultSet{} checkIDs := getSortedKeys(conf.Checks) for _, checkID := range checkIDs { - check, err := resolveCheck(conf, checkID, controllerName, controllerType, config.TargetPod, false) + check, err := resolveCheck(conf, checkID, controllerName, controllerKind, config.TargetPod, false) if err != nil { return nil, err } @@ -126,11 +126,11 @@ func applyPodSchemaChecks(conf *config.Configuration, pod *corev1.PodSpec, contr return results, nil } -func applyContainerSchemaChecks(conf *config.Configuration, basePod *corev1.PodSpec, container *corev1.Container, controllerName string, controllerType config.SupportedController, isInit bool) (ResultSet, error) { +func applyContainerSchemaChecks(conf *config.Configuration, basePod *corev1.PodSpec, container *corev1.Container, controllerName string, controllerKind config.SupportedController, isInit bool) (ResultSet, error) { results := ResultSet{} checkIDs := getSortedKeys(conf.Checks) for _, checkID := range checkIDs { - check, err := resolveCheck(conf, checkID, controllerName, controllerType, config.TargetContainer, isInit) + check, err := resolveCheck(conf, checkID, controllerName, controllerKind, config.TargetContainer, isInit) if err != nil { return nil, err } else if check == nil {