Documentation ¶
Index ¶
- Constants
- Variables
- func AddDeleteAllFlag(flag *bool, flags *pflag.FlagSet)
- func AddE2EConfigFlags(flags *pflag.FlagSet) *pflag.FlagSet
- func AddImagePullPolicyFlag(policy *ImagePullPolicy, flags *pflag.FlagSet)
- func AddKubeConformanceImage(image *string, flags *pflag.FlagSet)
- func AddKubeConformanceImageVersion(imageVersion *ConformanceImageVersion, flags *pflag.FlagSet, ...)
- func AddKubeconfigFlag(cfg *Kubeconfig, flags *pflag.FlagSet)
- func AddModeFlag(mode *ops.Mode, flags *pflag.FlagSet)
- func AddNamespaceFlag(str *string, flags *pflag.FlagSet)
- func AddRBACModeFlags(mode *RBACMode, flags *pflag.FlagSet, defaultMode RBACMode)
- func AddSSHKeyPathFlag(path *string, flags *pflag.FlagSet)
- func AddSSHUserFlag(user *string, flags *pflag.FlagSet)
- func AddSkipPreflightFlag(flag *bool, flags *pflag.FlagSet)
- func AddSonobuoyConfigFlag(cfg *SonobuoyConfig, flags *pflag.FlagSet)
- func AddSonobuoyImage(image *string, flags *pflag.FlagSet)
- func E2EFlagSet(cfg *e2eFlags) *pflag.FlagSet
- func GenFlagSet(cfg *genFlags, rbac RBACMode, version ConformanceImageVersion) *pflag.FlagSet
- func GetConfigWithMode(sonobuoyCfg *SonobuoyConfig, mode client.Mode) *config.Config
- func GetE2EConfig(mode ops.Mode, flags *pflag.FlagSet) (*ops.E2EConfig, error)
- func RunFlagSet(cfg *runFlags) *pflag.FlagSet
- func ValidPullPolicies() []string
- type ConformanceImageVersion
- type GenPluginConfig
- type ImagePullPolicy
- type Kubeconfig
- type RBACMode
- type SonobuoyConfig
Constants ¶
const ( // ConformanceImageVersionAuto represents detecting the server's kubernetes version. ConformanceImageVersionAuto = "auto" // ConformanceImageVersionLatest represents always using the server's latest version. ConformanceImageVersionLatest = "latest" )
Variables ¶
var ( //ErrImageVersionNoClient is the error returned when we need a client but didn't get on ErrImageVersionNoClient = errors.New(`can't use nil client with "auto" image version`) )
var ( //ErrRBACNoClient is the error returned when we need a client but didn't get on ErrRBACNoClient = errors.New(`can't use nil client with "detect" RBAC mode`) )
var GenCommand = &cobra.Command{ Use: "gen", Short: "Generates a sonobuoy manifest for submission via kubectl", Run: genManifest, Args: cobra.ExactArgs(0), }
GenCommand is exported so it can be extended.
var RootCmd = &cobra.Command{
Use: "sonobuoy",
Short: "Generate reports on your kubernetes cluster",
Long: "Sonobuoy is an introspective kubernetes component that generates reports on cluster conformance, configuration, and more",
Run: rootCmd,
}
RootCmd is the root command that is executed when sonobuoy is run without any subcommands.
Functions ¶
func AddDeleteAllFlag ¶ added in v0.11.0
AddDeleteAllFlag adds a boolean flag for deleting everything (including E2E tests).
func AddE2EConfigFlags ¶ added in v0.11.0
AddE2EConfigFlags adds three arguments: --e2e-focus, --e2e-skip and --e2e-parallel. These are not taken as pointers, as they are only used by GetE2EConfig. Instead, they are returned as a Flagset which should be passed to GetE2EConfig. The returned flagset will be added to the passed in flag set.
e2e-parallel is added as a hidden flag that should only be used by "power" users. Using e2e-parallel incorrectly has the potential to destroy clusters!
func AddImagePullPolicyFlag ¶ added in v0.11.0
func AddImagePullPolicyFlag(policy *ImagePullPolicy, flags *pflag.FlagSet)
AddImagePullPolicyFlag adds a boolean flag for deleting everything (including E2E tests).
func AddKubeConformanceImage ¶ added in v0.11.0
AddKubeConformanceImage initialises an image url flag.
func AddKubeConformanceImageVersion ¶ added in v0.11.4
func AddKubeConformanceImageVersion(imageVersion *ConformanceImageVersion, flags *pflag.FlagSet, defaultVersion ConformanceImageVersion)
AddKubeConformanceImageVersion initialises an image version flag.
func AddKubeconfigFlag ¶ added in v0.11.0
func AddKubeconfigFlag(cfg *Kubeconfig, flags *pflag.FlagSet)
AddKubeconfigFlag adds a kubeconfig flag to the provided command.
func AddModeFlag ¶ added in v0.11.0
AddModeFlag initialises a mode flag. The mode is a preset configuration of sonobuoy configuration and e2e configuration variables. Mode can be partially or fully overridden by specifying config, e2e-focus, and e2e-skip. The variables specified by those flags will overlay the defaults provided by the given mode.
func AddNamespaceFlag ¶ added in v0.11.0
AddNamespaceFlag initialises a namespace flag.
func AddRBACModeFlags ¶ added in v0.11.0
AddRBACModeFlags adds an E2E Argument with the provided default.
func AddSSHKeyPathFlag ¶ added in v0.12.0
AddSSHKeyPathFlag initialises an SSH key path flag. The SSH key is uploaded as a secret and used in the containers to enable running of E2E tests which require SSH keys to be present.
func AddSSHUserFlag ¶ added in v0.12.0
AddSSHUserFlag initialises an SSH user flag. Used by the container when enabling E2E tests which require SSH.
func AddSkipPreflightFlag ¶ added in v0.11.0
AddSkipPreflightFlag adds a boolean flag to skip preflight checks.
func AddSonobuoyConfigFlag ¶ added in v0.11.0
func AddSonobuoyConfigFlag(cfg *SonobuoyConfig, flags *pflag.FlagSet)
AddSonobuoyConfigFlag adds a SonobuoyConfig flag to the provided command.
func AddSonobuoyImage ¶ added in v0.11.0
AddSonobuoyImage initialises an image url flag.
func E2EFlagSet ¶ added in v0.11.0
func GenFlagSet ¶ added in v0.11.0
func GenFlagSet(cfg *genFlags, rbac RBACMode, version ConformanceImageVersion) *pflag.FlagSet
func GetConfigWithMode ¶ added in v0.11.0
func GetConfigWithMode(sonobuoyCfg *SonobuoyConfig, mode client.Mode) *config.Config
GetConfigWithMode creates a config with the following algorithm: If no config is supplied defaults will be returned. If a config is supplied then the default values will be merged into the supplied config in order to allow users to supply a minimal config that will still work.
func GetE2EConfig ¶ added in v0.11.0
GetE2EConfig gets the E2EConfig from the mode, then overrides them with e2e-focus, e2e-skip and e2e-parallel if they are provided. We can't rely on the zero value of the flags, as "" is a valid focus, skip or parallel value.
func RunFlagSet ¶ added in v0.11.0
func ValidPullPolicies ¶ added in v0.11.0
func ValidPullPolicies() []string
Types ¶
type ConformanceImageVersion ¶ added in v0.11.4
type ConformanceImageVersion string
ConformanceImageVersion represents the version of a conformance image, or "auto" to detect the version
func (*ConformanceImageVersion) Get ¶ added in v0.11.4
func (c *ConformanceImageVersion) Get(client discovery.ServerVersionInterface) (string, error)
Get retrieves the preset version if there is one, or queries client if the ConformanceImageVersion is set to `auto`. kubernetes.Interface.Discovery() provides ServerVersionInterface. don't require the entire kubernetes.Interface to simplify the required test mocks
func (*ConformanceImageVersion) Set ¶ added in v0.11.4
func (c *ConformanceImageVersion) Set(str string) error
Set the ImageVersion to either the string "auto" or a version string
func (*ConformanceImageVersion) String ¶ added in v0.11.4
func (c *ConformanceImageVersion) String() string
String needed for pflag.Value.
func (*ConformanceImageVersion) Type ¶ added in v0.11.4
func (c *ConformanceImageVersion) Type() string
Type needed for pflag.Value.
type GenPluginConfig ¶ added in v0.11.4
GenPluginConfig are the input options for running
type ImagePullPolicy ¶ added in v0.11.0
type ImagePullPolicy v1.PullPolicy
func (*ImagePullPolicy) Set ¶ added in v0.11.0
func (i *ImagePullPolicy) Set(str string) error
func (*ImagePullPolicy) String ¶ added in v0.11.0
func (i *ImagePullPolicy) String() string
func (*ImagePullPolicy) Type ¶ added in v0.11.0
func (i *ImagePullPolicy) Type() string
type Kubeconfig ¶ added in v0.11.0
type Kubeconfig struct {
*clientcmd.ClientConfigLoadingRules
}
Kubeconfig represents an explict or implict kubeconfig
func (*Kubeconfig) Get ¶ added in v0.11.0
func (c *Kubeconfig) Get() (*rest.Config, error)
Get returns a rest Config, possibly based on a provided config
func (*Kubeconfig) Set ¶ added in v0.11.0
func (c *Kubeconfig) Set(str string) error
Set sets the explicit path of the loader to the provided config file
func (*Kubeconfig) String ¶ added in v0.11.0
func (c *Kubeconfig) String() string
String needed for pflag.Value
func (*Kubeconfig) Type ¶ added in v0.11.0
func (c *Kubeconfig) Type() string
Type needed for pflag.Value
type RBACMode ¶ added in v0.11.0
type RBACMode string
RBACMode determines whether to enable or disable RBAC for a Sonobuoy run
func (*RBACMode) Enabled ¶ added in v0.11.0
func (r *RBACMode) Enabled(client kubernetes.Interface) (bool, error)
Enabled retrieves whether to enable or disable rbac. If the mode is disable or enabled, the client is unused. If the mode is "detect", the client will be used to query the server's API groups and detect whether an RBAC api group exists.
func (*RBACMode) Set ¶ added in v0.11.0
Set the RBACMode to the given string, or error if it's not a known RBAC mode.
type SonobuoyConfig ¶ added in v0.11.0
SonobuoyConfig is a config.Config that implements pflag.Value from a file path
func (*SonobuoyConfig) Get ¶ added in v0.11.0
func (c *SonobuoyConfig) Get() *config.Config
Get will return the config.Config if one is available, otherwise nil.
func (*SonobuoyConfig) Set ¶ added in v0.11.0
func (c *SonobuoyConfig) Set(str string) error
Set attempts to read a file, then deserialise the json into a config.Config struct.
func (*SonobuoyConfig) String ¶ added in v0.11.0
func (c *SonobuoyConfig) String() string
String is needed for pflag.Value.
func (*SonobuoyConfig) Type ¶ added in v0.11.0
func (c *SonobuoyConfig) Type() string
Type is needed for pflag.Value.