Documentation ¶
Overview ¶
Package client provides primitives for interacting with Sonobuoy and the results archive.
Example ¶
Example shows how to create a client and run Sonobuoy.
package main import ( "github.com/heptio/sonobuoy/pkg/client" "github.com/heptio/sonobuoy/pkg/config" "github.com/heptio/sonobuoy/pkg/dynamic" "k8s.io/client-go/rest" ) // Get a rest config from somewhere. var cfg *rest.Config // Example shows how to create a client and run Sonobuoy. func main() { // Get an APIHelper with default implementations from client-go. apiHelper, err := dynamic.NewAPIHelperFromRESTConfig(cfg) if err != nil { panic(err) } // client.NewSonobuoyClient returns a struct that implements the client.Interface. sonobuoy, err := client.NewSonobuoyClient(cfg, apiHelper) if err != nil { panic(err) } // Each feature of Sonobuoy requires a config to customize the behavior. // Build up a RunConfig struct. // The command line client provides default values with override flags. runConfig := client.RunConfig{ GenConfig: client.GenConfig{ E2EConfig: &client.E2EConfig{ Focus: "[sig-networking]", Skip: "", }, Config: config.New(), Image: config.DefaultImage, Namespace: config.DefaultNamespace, EnableRBAC: true, ImagePullPolicy: "Always", }, } // Runs sonobuoy on the cluster configured in $HOME/.kube/config. if err = sonobuoy.Run(&runConfig); err != nil { panic(err) } }
Output:
Index ¶
- func Focus(testCases []reporters.JUnitTestCase) string
- func GetModes() []string
- func UntarAll(reader io.Reader, destFile, prefix string) (filenames []string, returnErr error)
- type DeleteConfig
- type E2EConfig
- type GenConfig
- type Interface
- type LogConfig
- type Mode
- type ModeConfig
- type PreflightConfig
- type PrintableTestCases
- type Reader
- type RetrieveConfig
- type RunConfig
- type SonobuoyClient
- func (s *SonobuoyClient) Client() (kubernetes.Interface, error)
- func (c *SonobuoyClient) Delete(cfg *DeleteConfig) error
- func (*SonobuoyClient) GenerateManifest(cfg *GenConfig) ([]byte, error)
- func (c *SonobuoyClient) GetStatus(namespace string) (*aggregation.Status, error)
- func (*SonobuoyClient) GetTests(reader io.Reader, show string) ([]reporters.JUnitTestCase, error)
- func (s *SonobuoyClient) LogReader(cfg *LogConfig) (*Reader, error)
- func (c *SonobuoyClient) PreflightChecks(cfg *PreflightConfig) []error
- func (c *SonobuoyClient) RetrieveResults(cfg *RetrieveConfig) (io.Reader, <-chan error)
- func (c *SonobuoyClient) Run(cfg *RunConfig) error
- func (c *SonobuoyClient) Version() (string, error)
- type SonobuoyKubeAPIClient
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Focus ¶
func Focus(testCases []reporters.JUnitTestCase) string
Focus returns a value to be used in the E2E_FOCUS variable that is representative of the test cases in the struct.
Types ¶
type DeleteConfig ¶
DeleteConfig are the input options for cleaning up a Sonobuoy run.
func NewDeleteConfig ¶
func NewDeleteConfig() *DeleteConfig
NewDeleteConfig is a DeleteConfig using default images, RBAC enabled, and DeleteAll enabled.
type E2EConfig ¶
type E2EConfig struct { Focus string Skip string Parallel string // CustomRegistries is the contents of a yaml file which will be // used as KUBE_TEST_REPO_LIST which overrides which registries // e2e tests use. CustomRegistries string }
E2EConfig is the configuration of the E2E tests.
type GenConfig ¶
type GenConfig struct { E2EConfig *E2EConfig Config *config.Config Image string Namespace string EnableRBAC bool ImagePullPolicy string KubeConformanceImage string SSHKeyPath string SSHUser string }
GenConfig are the input options for generating a Sonobuoy manifest.
func NewGenConfig ¶
func NewGenConfig() *GenConfig
NewGenConfig is a GenConfig using the default config and Conformance mode
type Interface ¶
type Interface interface { // Run generates the manifest, then tries to apply it to the cluster. // returns created resources or an error Run(cfg *RunConfig) error // GenerateManifest fills in a template with a Sonobuoy config GenerateManifest(cfg *GenConfig) ([]byte, error) // RetrieveResults copies results from a sonobuoy run into a Reader in tar format. RetrieveResults(cfg *RetrieveConfig) (io.Reader, <-chan error) // GetStatus determines the status of the sonobuoy run in order to assist the user. GetStatus(namespace string) (*aggregation.Status, error) // LogReader returns a reader that contains a merged stream of sonobuoy logs. LogReader(cfg *LogConfig) (*Reader, error) // Delete removes a sonobuoy run, namespace, and all associated resources. Delete(cfg *DeleteConfig) error // PreflightChecks runs a number of preflight checks to confirm the environment is good for Sonobuoy PreflightChecks(cfg *PreflightConfig) []error }
Interface is the main contract that we will give to external consumers of this library This will provide a consistent look/feel to upstream and allow us to expose sonobuoy behavior to other automation systems.
type LogConfig ¶
type LogConfig struct { // Follow determines if the logs should be followed or not (tail -f). Follow bool // Namespace is the namespace the sonobuoy aggregator is running in. Namespace string // Out is the writer to write to. Out io.Writer }
LogConfig are the input options for viewing a Sonobuoy run's logs.
func NewLogConfig ¶
func NewLogConfig() *LogConfig
NewLogConfig is a LogConfig with follow disabled and default images.
type Mode ¶
type Mode string
Mode identifies a specific mode of running Sonobuoy. A mode is a defined configuration of plugins and E2E Focus and Config. Modes form the base level defaults, which can then be overriden by the e2e flags and the config flag.
const ( // Quick runs a single E2E test and the systemd log tests. Quick Mode = "Quick" // Conformance runs all of the E2E tests and the systemd log tests. Conformance Mode = "Conformance" // Extended run all of the E2E tests, the systemd log tests, and // Heptio's E2E Tests. Extended Mode = "Extended" )
func (*Mode) Get ¶
func (m *Mode) Get() *ModeConfig
Get returns the ModeConfig associated with a mode name, or nil if there's no associated mode
type ModeConfig ¶
type ModeConfig struct { // E2EConfig is the focus and skip vars for the conformance tests. E2EConfig E2EConfig // Selectors are the plugins selected by this mode. Selectors []plugin.Selection }
ModeConfig represents the sonobuoy configuration for a given mode.
type PreflightConfig ¶
type PreflightConfig struct {
Namespace string
}
PreflightConfig are the options passed to PreflightChecks.
type PrintableTestCases ¶
type PrintableTestCases []reporters.JUnitTestCase
PrintableTestCases nicely strings a []reporters.JunitTestCase
func (PrintableTestCases) String ¶
func (p PrintableTestCases) String() string
type Reader ¶
type Reader struct {
// contains filtered or unexported fields
}
Reader provides an io.Reader interface to a channel of bytes. The first error received on the error channel will be returned by Read after the bytestream is drained and on all subsequent calls to Read. It is the responsibility of the program writing to bytestream to write an io.EOF to the error stream when it is done and close all channels.
type RetrieveConfig ¶
type RetrieveConfig struct { // Namespace is the namespace the sonobuoy aggregator is running in. Namespace string }
RetrieveConfig are the input options for retrieving a Sonobuoy run's results.
type RunConfig ¶
RunConfig are the input options for running Sonobuoy.
func NewRunConfig ¶
func NewRunConfig() *RunConfig
NewRunConfig is a RunConfig with DefaultGenConfig and and preflight checks enabled.
type SonobuoyClient ¶
SonobuoyClient is a high-level interface to Sonobuoy operations.
func NewSonobuoyClient ¶
func NewSonobuoyClient(restConfig *rest.Config, skc SonobuoyKubeAPIClient) (*SonobuoyClient, error)
NewSonobuoyClient creates a new SonobuoyClient
func (*SonobuoyClient) Client ¶
func (s *SonobuoyClient) Client() (kubernetes.Interface, error)
Client creates or retrieves an existing kubernetes client from the SonobuoyClient's RESTConfig.
func (*SonobuoyClient) Delete ¶
func (c *SonobuoyClient) Delete(cfg *DeleteConfig) error
Delete removes all the resources that Sonobuoy had created including its own namespace, cluster roles/bindings, and optionally e2e scoped namespaces.
func (*SonobuoyClient) GenerateManifest ¶
func (*SonobuoyClient) GenerateManifest(cfg *GenConfig) ([]byte, error)
GenerateManifest fills in a template with a Sonobuoy config
func (*SonobuoyClient) GetStatus ¶
func (c *SonobuoyClient) GetStatus(namespace string) (*aggregation.Status, error)
func (*SonobuoyClient) GetTests ¶
func (*SonobuoyClient) GetTests(reader io.Reader, show string) ([]reporters.JUnitTestCase, error)
GetTests extracts the junit results from a sonobuoy archive and returns the requested tests.
func (*SonobuoyClient) LogReader ¶
func (s *SonobuoyClient) LogReader(cfg *LogConfig) (*Reader, error)
LogReader configures a Reader that provides an io.Reader interface to a merged stream of logs from various containers.
func (*SonobuoyClient) PreflightChecks ¶
func (c *SonobuoyClient) PreflightChecks(cfg *PreflightConfig) []error
PreflightChecks runs all preflight checks in order, returning the first error encountered.
func (*SonobuoyClient) RetrieveResults ¶
func (c *SonobuoyClient) RetrieveResults(cfg *RetrieveConfig) (io.Reader, <-chan error)
func (*SonobuoyClient) Run ¶
func (c *SonobuoyClient) Run(cfg *RunConfig) error
func (*SonobuoyClient) Version ¶ added in v0.14.0
func (c *SonobuoyClient) Version() (string, error)
Version gets the Kubernetes API version
type SonobuoyKubeAPIClient ¶ added in v0.11.4
type SonobuoyKubeAPIClient interface { CreateObject(*unstructured.Unstructured) (*unstructured.Unstructured, error) Name(*unstructured.Unstructured) (string, error) Namespace(*unstructured.Unstructured) (string, error) ResourceVersion(*unstructured.Unstructured) (string, error) }
SonobuoyKubeAPIClient is the interface Sonobuoy uses to communicate with a kube-apiserver.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package results provides a low level API to extract data from a Sonobuoy result archive.
|
Package results provides a low level API to extract data from a Sonobuoy result archive. |
e2e
package e2e defines files and directories found in the e2e plugin results.
|
package e2e defines files and directories found in the e2e plugin results. |