Currently, there are about 70+ distributions of Kubernetes available, would it be good if there are a set of conformance tests to make sure that a Kubernetes cluster meets the minimal set of features? Sonobuoy is a diagnostic tool that makes it easier to understand the state of a Kubernetes cluster by running a set of Kubernetes conformance tests in an accessible and non-destructive manner. It is a customizable, extendable, and cluster-agnostic way to generate clear, informative reports about your cluster.
Conformance-passing cluster provides the following guarantees
- Best practices: Your Kubernetes is properly configured. This is useful to know whether you are running a distribution out of the box or handling your own custom setup.
- Predictability: All your cluster behavior is well-documented. Available features in the official Kubernetes documentation can be taken as a given. Unexpected bugs should be rare because distribution-specific issues are weeded out during the conformance tests.
- Interoperability: Workloads from other conforming clusters can be ported into your cluster or vice versa. This standardization of Kubernetes is a key advantage of open source software and allows you to avoid vendor lock-in.
In addition to conformance testing, Sonobuoy also supports a plugin model. In this model, worker pods are dispatched into the cluster to collect data from each node and use an aggregation URL to submit their results back to a waiting aggregation pod. This enables you to integrate conformance test results into your reporting.
How to perform conformance testing?
Sonobuoy leverages Kubernetes end-to-end testing plugin (the e2e plugin) to run conformance tests that are maintained by the Kubernetes community. Before we get into conformance testing, let’s look at the prerequisites
- Kubernetes cluster
KUBECONFIGenvironment variable set
Step #1.Install Sonobuoy
Download the latest release for your platform
Extract the tarball
Move the extracted
sonobuoy executable to
Step #2.Run Sonobuoy conformance tests
sonobuoy run command to start conformance testing.It creates a few resources in order to run and expects to run within its own namespace.
You can also run with option
--mode quick to quickly run the conformance tests
Step #3.Inspect results
Export the results using the command
export results=$(sonobuoy retrieve)
sonobuoy delete command to remove its namespace as well as a few cluster scoped resources.
For detailed information about the conformance tests, plugins, and snapshots, check out the documentation here.
Like this post? Don’t forget to share it!