logo

Conformance Testing the Kubernetes API: Tooling that Makes the Difference

2021-10-14

Authors:   Caleb Woodbine, Stephen Heywood


Summary

The presentation discusses the process of testing and documenting endpoints for Kubernetes conformance and stability.
  • The process involves discovering and testing new endpoints using API Snoops and documenting the process using org mode and various export formats.
  • Existing endpoints can be upgraded to conformance and stability by locating the endpoint in the Kubernetes code base and updating the relevant tests.
  • Documentation and testing are important for achieving conformance and stability and ensuring that development environments are up-to-date and shared.
  • The presentation provides useful links and resources for those interested in contributing to the Kubernetes conformance testing program.
The speaker demonstrates how org mode can be used to document and test endpoints, and how the resulting documentation can be exported to various formats for review and discussion. They also discuss the importance of having up-to-date and shared development environments for achieving conformance and stability.

Abstract

The Certified Kubernetes Conformance Program enables organizations to have confidence that their workloads will interoperate from one installation of Kubernetes to the next. In 2018, to ensure that organization can have the assurance that their workloads can move between vendors the CNCF turned the spotlight on improving the conformance test coverage of the Kubernetes API. This effort has brought us from ~20% of endpoints conformance tested in 1.15 to over 75% by 1.22. Most of the success can be attributed to the tooling developed to streamline the process of locating new endpoints to test before creating a PR to the Kubernetes repo. The tooling helps with identifying the current gaps in conformance, exploring endpoints, writing tests and verifying the test results. In this presentation Stephen will walk us through the tooling that will help us test the remaining 25% of the Kubernetes API.

Materials: