Given that there are many ways to create Kubernetes clusters and many environments used to host them, those tasked with maintaining a cluster are often left wondering whether it is ‘correct’. Is it properly configured? Does it work as it should?
Sonobuoy is a diagnostic tool that aims to address these questions. Sonobuoy 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. Its diagnostics provide a customizable, extendable, and cluster-agnostic way to generate clear, informative reports about your cluster, regardless of your deployment details.
Sonobuoy (n): A naval term for an immersive device that provides a view of the ocean using sonar.
Sonobuoy is also built to be cluster-agnostic. Regardless of your setup, it creates a readout of your cluster’s core characteristics, which you can use to verify that things are as you expect. You can also use the output as a way to capture and communicate your cluster configuration when looking for support or filing a bug report.
Why is conformance so important? A key goal for Kubernetes is portability. Developers can build an application in one environment and then deploy it into another with minimal changes. Businesses can pick the hosting platform that best meets their needs based on application requirements. If the requirements change or new offerings emerge the application isn’t tied to a single Kubernetes environment. Without conformance, the key goals of Kubernetes, including portability and automated deployment, cannot be achieved.
In addition, Sonobuoy supports customizable plug-in tests. We expect that the types of tests users run to verify cluster interoperability will change over time; in addition, individual users may have different types of configurations they need to test for. Plug-in support allows developers and operators to extend the system with additional tests. The Sonobuoy team is community driven and would love to hear of any plug-ins that you have created or ideas on what you would like to see developed. Please open an issue or find us on the Kubernetes Slack#sonobuoy!
Interested in joining the Sonobuoy community or contributing to the project? By creating or commenting on Github issues and communicating in Slack you can help influence future priorities. Issues labeled with help wanted or good first issue are a great place to start engaging with the project.
Join the Sonobuoy community * Get updates on Twitter (@projectsonobuoy) * Chat with us on Slack (#sonobuoy on Kubernetes) * Join the K8s-conformance working group: https://github.com/cncf/k8s-conformance