Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ClusterResources = []string{
"CertificateSigningRequests",
"ClusterRoleBindings",
"ClusterRoles",
"ComponentStatuses",
"CustomResourceDefinitions",
"Nodes",
"PersistentVolumes",
"PodSecurityPolicies",
"StorageClasses",
"ThirdPartyResources",
}
ClusterResources is the list of API resources that are scoped to the entire cluster (ie. not to any particular namespace)
var NamespacedResources = []string{
"ConfigMaps",
"ControllerRevisions",
"CronJobs",
"DaemonSets",
"Deployments",
"Endpoints",
"Events",
"HorizontalPodAutoscalers",
"Ingresses",
"Jobs",
"LimitRanges",
"NetworkPolicies",
"PersistentVolumeClaims",
"PodDisruptionBudgets",
"PodPresets",
"PodTemplates",
"Pods",
"ReplicaSets",
"ReplicationControllers",
"ResourceQuotas",
"RoleBindings",
"Roles",
"Secrets",
"ServiceAccounts",
"Services",
"StatefulSets",
}
NamespacedResources is the list of API resources that are scoped to a kubernetes namespace.
var SpecialResources = []string{
"PodLogs",
"ServerGroups",
"ServerVersion",
}
SpecialResources are resources that aren't queried (or stored) the same was as the rest, so need special casing for querying them.
Functions ¶
func LoadClient ¶
func LoadClient(cfg *Config) (kubernetes.Interface, error)
LoadClient creates a kube-clientset, using given sonobuoy configuration
Types ¶
type Config ¶
type Config struct { /////////////////////////////////////////////// // Meta-Data collection options /////////////////////////////////////////////// Description string `json:"Description" mapstructure:"Description"` UUID string `json:"UUID" mapstructure:"UUID"` Version string `json:"Version" mapstructure:"Version"` ResultsDir string `json:"ResultsDir" mapstructure:"ResultsDir"` Kubeconfig string `json:"Kubeconfig" mapstructure:"Kubeconfig"` /////////////////////////////////////////////// // Data collection options /////////////////////////////////////////////// Resources []string `json:"Resources" mapstructure:"Resources"` /////////////////////////////////////////////// // Filtering options /////////////////////////////////////////////// Filters FilterOptions `json:"Filters" mapstructure:"Filters"` /////////////////////////////////////////////// // Limit options /////////////////////////////////////////////// Limits LimitConfig `json:"Limits" mapstructure:"Limits"` /////////////////////////////////////////////// // plugin configurations settings /////////////////////////////////////////////// Aggregation plugin.AggregationConfig `json:"Server" mapstructure:"Server"` PluginSelections []plugin.Selection `json:"Plugins" mapstructure:"Plugins"` PluginSearchPath []string `json:"PluginSearchPath" mapstructure:"PluginSearchPath"` PluginNamespace string `json:"PluginNamespace" mapstructure:"PluginNamespace"` LoadedPlugins []plugin.Interface // this is assigned when plugins are loaded. }
Config is the input struct used to determine what data to collect.
func LoadConfig ¶
LoadConfig will load the current sonobuoy configuration using the filesystem and environment variables, and returns a config object
func NewWithDefaults ¶
func NewWithDefaults() *Config
NewWithDefaults returns a newly-constructed Config object with default values.
func (*Config) FilterResources ¶
FilterResources is a utility function used to parse Resources
type FilterOptions ¶
type FilterOptions struct { Namespaces string `json:"Namespaces"` LabelSelector string `json:"LabelSelector"` }
FilterOptions allow operators to select sets to include in a report
type LimitConfig ¶ added in v0.9.0
type LimitConfig struct {
PodLogs SizeOrTimeLimitConfig `json:"PodLogs" mapstructure:"PodLogs"`
}
LimitConfig is a configuration on the limits of sizes of various responses.
type SizeOrTimeLimitConfig ¶ added in v0.9.0
type SizeOrTimeLimitConfig struct { LimitSize string `json:"LimitSize" mapstructure:"LimitSize"` LimitTime string `json:"LimitTime" mapstructure:"LimitTime"` }
SizeOrTimeLimitConfig represents configuration that limits the size of something either by a total disk size, or by a length of time.
func (SizeOrTimeLimitConfig) SizeLimitBytes ¶ added in v0.9.0
func (c SizeOrTimeLimitConfig) SizeLimitBytes(defaultVal int64) int64
SizeLimitBytes returns how many bytes the configuration is set to limit, returning defaultVal if not set.
func (SizeOrTimeLimitConfig) TimeLimitDuration ¶ added in v0.9.0
func (c SizeOrTimeLimitConfig) TimeLimitDuration(defaultVal time.Duration) time.Duration
TimeLimitDuration returns the duration the configuration is set to limit, returning defaultVal if not set.