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 PodSecurityPolicy
- type PodSecurityPolicyLister
- 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]*polv1beta1.PodDisruptionBudget
ForLabels(labels map[string]string) *polv1beta1.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]*polv1beta1.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 PodSecurityPolicy ¶ added in v0.4.0
type PodSecurityPolicy struct {
*issues.Collector
PodSecurityPolicyLister
}
PodSecurityPolicy tracks PodSecurityPolicy sanitization.
func NewPodSecurityPolicy ¶ added in v0.4.0
func NewPodSecurityPolicy(co *issues.Collector, lister PodSecurityPolicyLister) *PodSecurityPolicy
NewPodSecurityPolicy returns a new sanitizer.
type PodSecurityPolicyLister ¶ added in v0.4.0
type PodSecurityPolicyLister interface {
ListPodSecurityPolicies() map[string]*polv1beta1.PodSecurityPolicy
}
PodSecurityPolicyLister list available PodSecurityPolicys on a cluster.
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.