mirror of
https://github.com/FairwindsOps/polaris.git
synced 2026-05-11 03:37:42 +00:00
**Changes** - Refactored the way controllers work to be an interface - Added configurable controllers to include in scans - Added daemonsets, jobs and cronjobs in scans - Added `ReplicationController` type controllers to the supported list - Adjusted logic for failed YAML parsing to bubble up errors - Added better logic for calculating summaries on cluster wide results - Relocated responsibilities for counting types into validators vs spreading it around more packages - Fixed bug where cronjob parsing was using wrong KIND - Added fixtures for mocking new controller types - Added example yamls to test scanning files - Added functions to NamespacedResult(s) to reduce code complexity deep set iterations - Refactored how results get added to namespacedresults so adding more later is easier - Minor signature changes for interface implementing structs for controllers
38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
package controllers
|
|
|
|
import (
|
|
"github.com/fairwindsops/polaris/pkg/config"
|
|
kubeAPIAppsV1 "k8s.io/api/apps/v1"
|
|
kubeAPICoreV1 "k8s.io/api/core/v1"
|
|
)
|
|
|
|
// StatefulSetController is an implementation of controller for deployments
|
|
type StatefulSetController struct {
|
|
GenericController
|
|
K8SResource kubeAPIAppsV1.StatefulSet
|
|
}
|
|
|
|
// GetPodTemplate returns the kubernetes template spec
|
|
func (s StatefulSetController) GetPodTemplate() *kubeAPICoreV1.PodTemplateSpec {
|
|
return &s.K8SResource.Spec.Template
|
|
}
|
|
|
|
// GetPodSpec returns the podspec from the original kubernetes resource
|
|
func (s StatefulSetController) GetPodSpec() *kubeAPICoreV1.PodSpec {
|
|
return &s.K8SResource.Spec.Template.Spec
|
|
}
|
|
|
|
// GetType returns the supportedcontroller enum type
|
|
func (s StatefulSetController) GetType() config.SupportedController {
|
|
return config.StatefulSets
|
|
}
|
|
|
|
// NewStatefulSetController builds a statefulset controller
|
|
func NewStatefulSetController(originalResource kubeAPIAppsV1.StatefulSet) Interface {
|
|
controller := StatefulSetController{}
|
|
controller.Name = originalResource.Name
|
|
controller.Namespace = originalResource.Namespace
|
|
controller.K8SResource = originalResource
|
|
return controller
|
|
}
|