v0.14.3
Sonobuoy v0.14.3
What's New:
A new Sonobuoy website: sonobuoy.io
The website is generated from documentation in the repo itself and uses Netlify to generate a site preview when we change those documents.
Setting arbitrary env vars on plugins
A new flag --plugin-env
can be used to set any env var on any plugin. This will prevent you from having to (1) add a flag to Sonobuoy to edit your env vars (2) save and edit the YAML for the plugin in order to modify the env var.
You can set env vars on any plugin (whether or not it is a custom or built-in plugin) by referring to the plugin by name:
sonobuoy run --plugin-env e2e.E2E_DRYRUN=true --plugin ./myplugin.yaml --plugin-env myPlugin.FOO=BAR
Custom annotations on Pods
In some situations you may need to have the Sonobuoy pods all lauched with custom annotations, for example, to use KIAM permissions. A new field, CustomAnnotations
, in the config file format supports this.
For example, to add the annotation foo:bar
to your pods:
sonobuoy gen config | jq '.CustomAnnotations={"foo":"bar"}' > myConfig.json
sonobuoy run --config myConfig.json
What's Better:
Improved the feedback loop when a plugin failed to run
Up to this point, if a plugin failed to run, the logic in the server overreacted and would exit entirely. Now, it reports the error for that plugin and continues the run as normal.
Improved the feedback loop when a plugin exited without returning results.
In this case, the Sonobuoy sidecar would continue to wait for the results from the main container (your plugin) despite it already having exited. Now, the aggregator will watch for this condition and report it as an error running the plugin. This avoids the aggregator server hanging until the timeout waiting for results.
Improved stability in situations where network failures are high.
The Sonobuoy sidecar on the plugins automatically was retrying to send plugin results if the connection failed for some reason. However, the aggregator server was not accepting retries appropriately. This led to situations where your plugin results would be missing or truncated, despite the pod logs of the plugin showing more full results.
Other bug fixes:
-
Fixed a bug which could cause the Sonobuoy status to never report completed if no plugins were run.
-
Fixed a bug which prevented the user from providing an empty array of resources to gather (indicating to gather them all).
-
Fixed a bug which caused numerous resource directories to be created in the results tarball, even if no resources of that type existed.
-
Fixed a deadlock issue which could occur if you tried to run
sonobuoy logs
when pods were not yet ready. -
Fixed a bug which would have caused a manually specified conformance image to be improperly manipulated causing a failed image lookup.
-
Documentation improvements:
- Clarified the support matrix (3 minor versions total)
- Added documentation describing how to use a Sonobuoy image which is in a private registry.
- Fixed a broken link in the conformance docs
-
Code cleanup:
- Combined two code flows into one for reuse when handling plugin results.
- Made GetStatus library command have a signature consistent with other methods
- Code cleanup including removing redundant and confusing fields from
GenConfig
Changelog
6d02613 Fix build and cleanup test to ensure clean state for release (#747)
439de5f Bump version to v0.14.3 (#743)
6466ac3 Fix excerpt separator being shown in blog posts (#742)
3324bc4 Add checks for if a container has terminated (#734)
a7bba9b Add daemonSet monitoring tests (#740)
61ac7be Add tests for job.Monitor logic (#739)
edb4bf5 Adjust README description of support matrix (#737)
4d4ff7a Merge pull request #730 from johnSchnake/retryResults
f51d88d Reprocess results if there was a processing error
98d7d32 Unify http/non-http result handling (#729)
cfd9cfc Use a struct for GetStatus to be consistent (#731)
a07aed2 Add ability to specify custom annotations (#723)
f77a792 Documentation usability and readability update (#727)
d5c624c Fix/simplify the config loading logic enabling empty resources (#725)
f2c885d Add initial annotation to the pod when starting (#724)
d34e9cf Don't create resource directories if not querying for resources (#726)
e9aba66 Properly report error when a plugin fails to run (#720)
90b3df8 Ensure plugin selection list and resources can be empty (#722)
0fa9c4f Merge pull request #712 from smalltalk-ai/master
34a4918 Update version number
dad5f21 Update README | Remove enhancements
875aae4 Update docs from master branch not gh-pages
702c22a Updates to homepage links
68df46a Adding in Jekyll site
9f0c2b0 Set any plugin env vars from the CLI (#709)
9a19511 Fix race/deadlock issues with logs when a pod is not ready (#719)
affd4fb Ensure conformance image version is prefixed with 'v' (#717)
770b85b Fix broken link in conformance doc (#718)
c76f2f5 Use go modules when getting KinD (#714)
a4e9a32 Merge pull request #705 from johnSchnake/pullSecretsDoc
65e2319 Merge pull request #704 from padlar/padlar/issue-691
108d168 remove redundant fields from GenConfig
9070e29 Add documentation about how to pull private Sonobuoy image
3bef2a4 Add example for command runner plugin