Documentation
¶
Index ¶
- Constants
- func ToPerc(v1, v2 int64) int64
- type CRBLister
- type CRLister
- type Cluster
- type ClusterLister
- type ClusterMetricsLister
- type ClusterRole
- type ClusterRoleBinding
- type ClusterRoleBindingLister
- type ClusterRoleBindingRefs
- type ClusterRoleLister
- type Collector
- type CollectorLimiter
- type ConfigLister
- type ConfigMap
- type ConfigMapLister
- type ConsumptionMetrics
- func (d *ConsumptionMetrics) LimitCPURatio() float64
- func (d *ConsumptionMetrics) LimitMEMRatio() float64
- func (d *ConsumptionMetrics) ReqAbsCPURatio() float64
- func (d *ConsumptionMetrics) ReqAbsMEMRatio() float64
- func (d *ConsumptionMetrics) ReqCPURatio() float64
- func (d *ConsumptionMetrics) ReqMEMRatio() float64
- type Container
- type ContainerRestrictor
- type DPLister
- type DaemonLister
- type DaemonSet
- type DaemonSetLister
- type Deployment
- type DeploymentLister
- type EndPointLister
- type HorizontalPodAutoscaler
- type HpaLister
- type IngLister
- type Ingress
- type IngressLister
- type IngressRefs
- type LimitCollector
- type Namespace
- type NamespaceLister
- type NamespaceRefs
- type NamespaceSelectorLister
- type NetworkPolicy
- type NetworkPolicyLister
- type Node
- type NodeLimiter
- type NodeLister
- type NodeMetricsLister
- type NonRootUser
- type PdbLister
- type PersistentVolume
- type PersistentVolumeClaim
- type PersistentVolumeClaimLister
- type PersistentVolumeLister
- type Pod
- type PodDisruptionBudget
- type PodDisruptionBudgetLister
- type PodGetter
- type PodLimiter
- type PodLister
- type PodMXLister
- type PodMetric
- type PodMetricsLister
- type PodRefs
- type PodSelectorLister
- type PodsMetricsLister
- type RBLister
- type ROLister
- type ReplicaLister
- type ReplicaSet
- type ReplicaSetLister
- type Role
- type RoleBinding
- type RoleBindingLister
- type RoleBindingRefs
- type RoleLister
- type SARefs
- type Secret
- type SecretLister
- type Service
- type ServiceAccount
- type ServiceAccountLister
- type ServiceLister
- type StatefulSet
- type StatefulSetLister
Constants ¶
const ( // SecNonRootUndefined denotes no root user set SecNonRootUndefined NonRootUser = iota - 1 // SecNonRootUnset denotes root user SecNonRootUnset = 0 // SecNonRootSet denotes non root user SecNonRootSet = 1 )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CRBLister ¶ added in v0.6.0
type CRBLister interface { ClusterRoleBindingLister ClusterRoleLister RoleLister }
CRBLister represents a cluster role lister.
type CRLister ¶ added in v0.6.0
type CRLister interface { ClusterRoleLister ClusterRoleBindingLister RoleBindingLister }
CRLister lists roles and rolebindings.
type Cluster ¶ added in v0.4.0
type Cluster struct { *issues.Collector ClusterLister }
Cluster tracks cluster sanitization.
func NewCluster ¶ added in v0.4.0
func NewCluster(co *issues.Collector, lister ClusterLister) *Cluster
NewCluster returns a new sanitizer.
type ClusterLister ¶ added in v0.4.0
ClusterLister list available Clusters on a cluster.
type ClusterMetricsLister ¶
type ClusterMetricsLister interface {
ListAvailableMetrics(map[string]*v1.Node) v1.ResourceList
}
ClusterMetricsLister handles cluster metrics.
type ClusterRole ¶ added in v0.6.0
ClusterRole tracks ClusterRole sanitization.
func NewClusterRole ¶ added in v0.6.0
func NewClusterRole(c *issues.Collector, lister CRLister) *ClusterRole
NewClusterRole returns a new ClusterRole sanitizer.
type ClusterRoleBinding ¶ added in v0.6.0
ClusterRoleBinding tracks ClusterRoleBinding sanitization.
func NewClusterRoleBinding ¶ added in v0.6.0
func NewClusterRoleBinding(c *issues.Collector, lister CRBLister) *ClusterRoleBinding
NewClusterRoleBinding returns a new ClusterRoleBinding sanitizer.
type ClusterRoleBindingLister ¶
type ClusterRoleBindingLister interface { ClusterRoleBindingRefs ListClusterRoleBindings() map[string]*rbacv1.ClusterRoleBinding }
ClusterRoleBindingLister list all available ClusterRoleBindings.
type ClusterRoleBindingRefs ¶ added in v0.6.0
ClusterRoleBindingRefs tracks crb references.
type ClusterRoleLister ¶ added in v0.6.0
type ClusterRoleLister interface {
ListClusterRoles() map[string]*rbacv1.ClusterRole
}
ClusterRoleLister list out CRs.
type Collector ¶
type Collector interface { // Outcome collects issues. Outcome() issues.Outcome // AddSubCode records a sub issue. AddSubCode(ctx context.Context, id config.ID, args ...interface{}) // AddCode records a new issue. AddCode(ctx context.Context, id config.ID, args ...interface{}) }
Collector collects sub issues.
type CollectorLimiter ¶ added in v0.5.0
type CollectorLimiter interface { // Collector an issue collector. Collector // ConfigLister track config options. ConfigLister }
CollectorLimiter represents a collector with resource allocation limits.
type ConfigLister ¶
type ConfigLister interface { // CPUResourceLimits returns the CPU utilization threshold. CPUResourceLimits() config.Allocations // MEMResourceLimits returns the MEM utilization threshold. MEMResourceLimits() config.Allocations }
ConfigLister tracks configuration parameters.
type ConfigMap ¶
type ConfigMap struct { *issues.Collector ConfigMapLister }
ConfigMap tracks ConfigMap sanitization.
func NewConfigMap ¶
func NewConfigMap(c *issues.Collector, lister ConfigMapLister) *ConfigMap
NewConfigMap returns a new sanitizer.
type ConfigMapLister ¶
ConfigMapLister list available ConfigMaps on a cluster.
type ConsumptionMetrics ¶
type ConsumptionMetrics struct { QOS v1.PodQOSClass CurrentCPU, CurrentMEM resource.Quantity RequestCPU, RequestMEM resource.Quantity LimitCPU, LimitMEM resource.Quantity RequestedStorage resource.Quantity }
ConsumptionMetrics tracks managed pods resource utilization.
func (*ConsumptionMetrics) LimitCPURatio ¶ added in v0.3.10
func (d *ConsumptionMetrics) LimitCPURatio() float64
LimitCPURatio returns current cpu usage over requested percentage.
func (*ConsumptionMetrics) LimitMEMRatio ¶ added in v0.3.10
func (d *ConsumptionMetrics) LimitMEMRatio() float64
LimitMEMRatio returns current memory usage over requested percentage.
func (*ConsumptionMetrics) ReqAbsCPURatio ¶ added in v0.3.10
func (d *ConsumptionMetrics) ReqAbsCPURatio() float64
ReqAbsCPURatio returns abasolute cpu ratio.
func (*ConsumptionMetrics) ReqAbsMEMRatio ¶ added in v0.3.10
func (d *ConsumptionMetrics) ReqAbsMEMRatio() float64
ReqAbsMEMRatio returns absolute mem ratio.
func (*ConsumptionMetrics) ReqCPURatio ¶
func (d *ConsumptionMetrics) ReqCPURatio() float64
ReqCPURatio returns current cpu usage over requested percentage.
func (*ConsumptionMetrics) ReqMEMRatio ¶
func (d *ConsumptionMetrics) ReqMEMRatio() float64
ReqMEMRatio returns current memory usage over requested percentage.
type Container ¶
type Container struct { LimitCollector // contains filtered or unexported fields }
Container represents a Container linter.
func NewContainer ¶
func NewContainer(fqn string, c LimitCollector) *Container
NewContainer returns a new sanitizer.
type ContainerRestrictor ¶ added in v0.10.0
type ContainerRestrictor interface {
AllowedRegistries() []string
}
type DPLister ¶ added in v0.6.0
type DPLister interface { PodLimiter PodsMetricsLister PodSelectorLister ConfigLister DeploymentLister ListServiceAccounts() map[string]*v1.ServiceAccount }
DPLister represents deployments and deps listers.
type DaemonLister ¶ added in v0.4.0
type DaemonLister interface { ListDaemonSets() map[string]*appsv1.DaemonSet ListServiceAccounts() map[string]*v1.ServiceAccount }
DaemonLister list DaemonSets.
type DaemonSet ¶ added in v0.4.0
type DaemonSet struct { *issues.Collector DaemonSetLister }
DaemonSet tracks DaemonSet sanitization.
func NewDaemonSet ¶ added in v0.4.0
func NewDaemonSet(co *issues.Collector, lister DaemonSetLister) *DaemonSet
NewDaemonSet returns a new sanitizer.
type DaemonSetLister ¶ added in v0.4.0
type DaemonSetLister interface { PodLimiter PodsMetricsLister PodSelectorLister ConfigLister DaemonLister }
DaemonSetLister list available DaemonSets on a cluster.
type Deployment ¶
Deployment tracks Deployment sanitization.
func NewDeployment ¶
func NewDeployment(co *issues.Collector, lister DPLister) *Deployment
NewDeployment returns a new sanitizer.
type DeploymentLister ¶
type DeploymentLister interface {
ListDeployments() map[string]*appsv1.Deployment
}
DeploymentLister list available Deployments on a cluster.
type EndPointLister ¶
EndPointLister find all service endpoints.
type HorizontalPodAutoscaler ¶
HorizontalPodAutoscaler represents a HorizontalPodAutoscaler linter.
func NewHorizontalPodAutoscaler ¶
func NewHorizontalPodAutoscaler(co *issues.Collector, lister HpaLister) *HorizontalPodAutoscaler
NewHorizontalPodAutoscaler returns a new ServiceAccount linter.
type HpaLister ¶
type HpaLister interface { NodeLister DeploymentLister StatefulSetLister ClusterMetricsLister ListHorizontalPodAutoscalers() map[string]*autoscalingv1.HorizontalPodAutoscaler }
HpaLister list available hpas on a cluster.
type Ingress ¶ added in v0.4.0
type Ingress struct { *issues.Collector IngressLister }
Ingress tracks Ingress sanitization.
func NewIngress ¶ added in v0.4.0
func NewIngress(co *issues.Collector, lister IngressLister) *Ingress
NewIngress returns a new sanitizer.
type IngressLister ¶ added in v0.4.0
type IngressLister interface { IngLister }
IngressLister list available Ingresss on a cluster.
type IngressRefs ¶ added in v0.5.0
IngressRefs tracks Ingress object references.
type LimitCollector ¶
type LimitCollector interface { Collector PodLimiter ContainerRestrictor }
LimitCollector represents a collector with resource limits.
type Namespace ¶
type Namespace struct { *issues.Collector NamespaceLister }
Namespace represents a Namespace sanitizer.
func NewNamespace ¶
func NewNamespace(co *issues.Collector, lister NamespaceLister) *Namespace
NewNamespace returns a new sanitizer.
type NamespaceLister ¶
type NamespaceLister interface { NamespaceRefs ListNamespaces() map[string]*v1.Namespace }
NamespaceLister lists all namespaces.
type NamespaceRefs ¶
type NamespaceRefs interface {
ReferencedNamespaces(map[string]struct{})
}
NamespaceRefs tracks namespace references in the cluster.
type NamespaceSelectorLister ¶ added in v0.4.0
type NamespaceSelectorLister interface {
ListNamespacesBySelector(sel *metav1.LabelSelector) map[string]*v1.Namespace
}
NamespaceSelectorLister list a collection of namespaces matching a selector.
type NetworkPolicy ¶ added in v0.4.0
type NetworkPolicy struct { *issues.Collector NetworkPolicyLister }
NetworkPolicy tracks NetworkPolicy sanitization.
func NewNetworkPolicy ¶ added in v0.4.0
func NewNetworkPolicy(co *issues.Collector, lister NetworkPolicyLister) *NetworkPolicy
NewNetworkPolicy returns a new sanitizer.
type NetworkPolicyLister ¶ added in v0.4.0
type NetworkPolicyLister interface { PodSelectorLister NamespaceSelectorLister ListNetworkPolicies() map[string]*nv1.NetworkPolicy }
NetworkPolicyLister list available NetworkPolicys on a cluster.
type Node ¶
type Node struct { *issues.Collector NodeLister }
Node represents a Node sanitizer.
type NodeLimiter ¶
NodeLimiter tracks metrics limit range.
type NodeLister ¶
type NodeLister interface { NodeMetricsLister PodLister NodeLimiter ListNodes() map[string]*v1.Node }
NodeLister lists available nodes.
type NodeMetricsLister ¶
type NodeMetricsLister interface {
ListNodesMetrics() map[string]*mv1beta1.NodeMetrics
}
NodeMetricsLister handle
type NonRootUser ¶ added in v0.6.1
type NonRootUser int
NonRootUser identifies if a security context for nonRootUser is set/unset or undefined.
type PdbLister ¶ added in v0.3.10
type PdbLister interface { ListPodDisruptionBudgets() map[string]*policyv1.PodDisruptionBudget ForLabels(labels map[string]string) *policyv1.PodDisruptionBudget }
PdbLister list pdb matching a given selector
type PersistentVolume ¶
type PersistentVolume struct { *issues.Collector PersistentVolumeLister }
PersistentVolume represents a PersistentVolume sanitizer.
func NewPersistentVolume ¶
func NewPersistentVolume(co *issues.Collector, lister PersistentVolumeLister) *PersistentVolume
NewPersistentVolume returns a new sanitizer.
type PersistentVolumeClaim ¶
type PersistentVolumeClaim struct { *issues.Collector PersistentVolumeClaimLister }
PersistentVolumeClaim represents a PersistentVolumeClaim sanitizer.
func NewPersistentVolumeClaim ¶
func NewPersistentVolumeClaim(co *issues.Collector, lister PersistentVolumeClaimLister) *PersistentVolumeClaim
NewPersistentVolumeClaim returns a new sanitizer.
type PersistentVolumeClaimLister ¶
type PersistentVolumeClaimLister interface { ListPersistentVolumeClaims() map[string]*v1.PersistentVolumeClaim PodLister }
PersistentVolumeClaimLister list available PersistentVolumeClaim on a cluster.
type PersistentVolumeLister ¶
type PersistentVolumeLister interface {
ListPersistentVolumes() map[string]*v1.PersistentVolume
}
PersistentVolumeLister list available PersistentVolume on a cluster.
type Pod ¶
type Pod struct { *issues.Collector PodMXLister }
Pod represents a Pod linter.
type PodDisruptionBudget ¶ added in v0.3.10
type PodDisruptionBudget struct { *issues.Collector PodDisruptionBudgetLister }
PodDisruptionBudget tracks PodDisruptionBudget sanitization.
func NewPodDisruptionBudget ¶ added in v0.3.10
func NewPodDisruptionBudget(c *issues.Collector, lister PodDisruptionBudgetLister) *PodDisruptionBudget
NewPodDisruptionBudget returns a new PodDisruptionBudget sanitizer.
type PodDisruptionBudgetLister ¶ added in v0.3.10
type PodDisruptionBudgetLister interface { PodLister ListPodDisruptionBudgets() map[string]*policyv1.PodDisruptionBudget }
PodDisruptionBudgetLister list available PodDisruptionBudgets on a cluster.
type PodLimiter ¶
PodLimiter tracks metrics limit range.
type PodLister ¶
type PodLister interface { ListPods() map[string]*v1.Pod GetPod(ns string, sel map[string]string) *v1.Pod }
PodLister lists available pods.
type PodMXLister ¶
type PodMXLister interface { PodLimiter PodMetricsLister PodLister PdbLister ConfigLister ListServiceAccounts() map[string]*v1.ServiceAccount }
PodMXLister list available pods.
type PodMetricsLister ¶
type PodMetricsLister interface {
ListPodsMetrics() map[string]*mv1beta1.PodMetrics
}
PodMetricsLister handles pods metrics.
type PodSelectorLister ¶
type PodSelectorLister interface {
ListPodsBySelector(ns string, sel *metav1.LabelSelector) map[string]*v1.Pod
}
PodSelectorLister list a collection of pod matching a selector.
type PodsMetricsLister ¶
type PodsMetricsLister interface {
ListPodsMetrics() map[string]*mv1beta1.PodMetrics
}
PodsMetricsLister handles pods metrics.
type RBLister ¶ added in v0.6.0
type RBLister interface { RoleBindingLister ClusterRoleLister RoleLister }
RBLister represents RB dependencies.
type ROLister ¶ added in v0.6.0
type ROLister interface { RoleLister ClusterRoleBindingLister RoleBindingLister }
ROLister list out roles and deps.
type ReplicaLister ¶ added in v0.4.0
type ReplicaLister interface {
ListReplicaSets() map[string]*appsv1.ReplicaSet
}
ReplicaLister list replicaset.
type ReplicaSet ¶ added in v0.4.0
type ReplicaSet struct { *issues.Collector ReplicaSetLister }
ReplicaSet tracks ReplicaSet sanitization.
func NewReplicaSet ¶ added in v0.4.0
func NewReplicaSet(co *issues.Collector, lister ReplicaSetLister) *ReplicaSet
NewReplicaSet returns a new ReplicaSet sanitizer.
type ReplicaSetLister ¶ added in v0.4.0
type ReplicaSetLister interface { ReplicaLister }
ReplicaSetLister list available ReplicaSets on a cluster.
type Role ¶ added in v0.6.0
Role tracks Role sanitization.
type RoleBinding ¶ added in v0.6.0
RoleBinding tracks RoleBinding sanitization.
func NewRoleBinding ¶ added in v0.6.0
func NewRoleBinding(c *issues.Collector, lister RBLister) *RoleBinding
NewRoleBinding returns a new sanitizer.
type RoleBindingLister ¶
type RoleBindingLister interface { RoleBindingRefs ListRoleBindings() map[string]*rbacv1.RoleBinding }
RoleBindingLister list all available ClusterRoleBindings.
type RoleBindingRefs ¶ added in v0.6.0
RoleBindingRefs tracks rb references.
type RoleLister ¶ added in v0.6.0
RoleLister list out roles.
type Secret ¶
type Secret struct { *issues.Collector SecretLister }
Secret tracks Secret sanitization.
type SecretLister ¶
SecretLister list available Secrets on a cluster.
type Service ¶
type Service struct { *issues.Collector ServiceLister }
Service represents a service sanitizer.
func NewService ¶
func NewService(co *issues.Collector, lister ServiceLister) *Service
NewService returns a new sanitizer.
type ServiceAccount ¶
type ServiceAccount struct { *issues.Collector ServiceAccountLister }
ServiceAccount tracks ServiceAccount sanitizer.
func NewServiceAccount ¶
func NewServiceAccount(co *issues.Collector, lister ServiceAccountLister) *ServiceAccount
NewServiceAccount returns a new sanitizer.
type ServiceAccountLister ¶
type ServiceAccountLister interface { PodLister ClusterRoleBindingLister RoleBindingLister SecretLister ListServiceAccounts() map[string]*v1.ServiceAccount }
ServiceAccountLister list available ServiceAccounts on a cluster.
type ServiceLister ¶
type ServiceLister interface { PodGetter EndPointLister ListServices() map[string]*v1.Service }
ServiceLister list available Services on a cluster.
type StatefulSet ¶
type StatefulSet struct { *issues.Collector StatefulSetLister }
StatefulSet represents a StatefulSet sanitizer.
func NewStatefulSet ¶
func NewStatefulSet(co *issues.Collector, lister StatefulSetLister) *StatefulSet
NewStatefulSet returns a new sanitizer.
type StatefulSetLister ¶
type StatefulSetLister interface { PodLimiter ConfigLister PodSelectorLister PodsMetricsLister ListStatefulSets() map[string]*appsv1.StatefulSet ListServiceAccounts() map[string]*v1.ServiceAccount }
StatefulSetLister handles statefulsets.