Skip to content

v0.14.2

Compare
Choose a tag to compare
@heptibot heptibot released this 29 Apr 19:44

What's New in v0.14.2

Improved Plugin Support

The major improvement on this release are the --plugin flag and the sonobuoy gen plugin command.

Use sonobuoy gen plugin to generate a custom plugin definition and then use --plugin with either sonobuoy gen or sonobuoy run to select which plugins to run. For example, to run a custom plugin and the e2e tests together, run the command :

$ sonobuoy gen plugin --name myPlugin --image myImage > customPlugin.yaml
$ sonobuoy run --plugin customPlugin.yaml --e2e

See more details in a this new example.

In addition, the aggregation server will, by default, run all the plugins it can find when it starts. This differs from previous releases where it would only run plugins specified in the Sonobuoy configuration's Plugins field. Now, by default that field is null and it will run everything. If you want, you can still specify that field manually like you did before to require a specific list of plugins to run. If you want to skip all plugins you can provide the empty array ([]).

Dynamic Client for Queries

The query logic (which gathers information about your server after the plugins run) used to have a discrete list of resources it could query. We've updated this so that it dynamically crawls the API to enable it to gather more information. If you want to limit the values it gathers, just set the Resources field in the Sonobuoy configuration file to list the API resource names you want. By default it still explicitly lists the resources it intends to gather, but if you remove the Resources field you can see it gathers everything it can (with the exception of secrets). This can be really useful if you want to see things like CRDs.

The logs also now show explicitly which items the query logic is skipping; that way you can be confident about what you are querying for and what items you could add.

Sonobuoy Configuration File Generation

We added a new command: sonobuoy gen config which will spit out the default Sonobuoy configuration. This has two purposes:

  • Helps you understand what the default values are
  • Makes it easy to take the default and modify a single value or two which are of interest. Now you don't have to wonder what the fields are named or what the defaults are if you just want to slightly tweak something.

ImagePullSecrets for Sonobuoy Image

If you are hosting the Sonobuoy image in a private Docker registry which required a password, in previous releases it was not possible to get Sonobuoy to work without a custom build because the templates and data types didn't "know" the imagePullSecrets field.

Support for that has been added. It requires setting the ImagePullSecrets field in the Sonobuoy configuration and then also manually adding the YAML for your secret in the output from sonobuoy gen and running it all manually via kubectl apply. Future releases may consider how to better handle creating additional resources like this.

Server Timeout Flag

One of the most commonly edited fields in the Sonobuoy config file is the timeout for the aggregation server (how long it will wait for plugins to complete). We added a new --timeout flag to sonobuoy gen and sonobuoy run to make this easier.

Context Flag for KUBECONFIG

A new --context flag has been added everywhere --kubeconfig was supported in order to automatically handle multi-context config files.

Other changes

Preflight checks will now error if you try to run Sonobuoy in an existing namespace. This is to help prevent the situation where you create Sonobuoy in a namespace which you don't want to later destroy (meaning you've got to clean things up manually). If you really want to create Sonobuoy in an existing namespace, you still can: just provide the --skip-preflight flag.

Changelog

ebc7916 Add coverage profile to gitignore to ensure clean state after tests
a38e39e Bump version to v0.14.2
d5927ae Fix servergroups query
ee6ecc8 Update queryies to use the dynamic client
a85b38f Add ability to set args when defining a plugin
ec8b6c6 Properly set default for plugin job driver
bf155c8 Support imagePullSecrets for sonobuoy workers
aaa5e13 Add CLI flag for aggregation timeout
1b56c31 Add plugin flag for custom, local plugins
1a72321 Add sonobuoy gen config file and documentation
012648c Tighten preflight check to err on existing namespace
a5d8610 Update client go and other deps
7af1d5a Run all loaded plugins by default
89bb5b4 Modify the json serialization of config object
f488867 Add test that will run through command creation
b420055 Fix flaky unit test
8f123df Change logic in template to use a list of plugin manifests
0f8ab46 Add gen plugin command to generate boilerplate for plugins
ee335d2 Centralize the process of going from kubeconfig to sonobuoy client
d54a882 Defer assignment of Docker gcr.io secret
566e80a Add context flag whenever kubeconfig flag is added
8eb9fb5 Add CodeCov reports