Add SIG Architecture Conformance spotlight interview
Co-Authored-By: Tim Bannister <tim@scalefactory.com>pull/43159/head
parent
afc1a71123
commit
80c988cf0e
|
@ -0,0 +1,197 @@
|
||||||
|
---
|
||||||
|
layout: blog
|
||||||
|
title: "Spotlight on SIG Architecture: Conformance"
|
||||||
|
slug: sig-architecture-conformance-spotlight-2023
|
||||||
|
date: 2023-10-05
|
||||||
|
canonicalUrl: https://www.k8s.dev/blog/2023/10/05/sig-architecture-conformance-spotlight-2023/
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
**Author**: Frederico Muñoz (SAS Institute)
|
||||||
|
|
||||||
|
_This is the first interview of a SIG Architecture Spotlight series
|
||||||
|
that will cover the different subprojects. We start with the SIG
|
||||||
|
Architecture: Conformance subproject_
|
||||||
|
|
||||||
|
In this [SIG
|
||||||
|
Architecture](https://github.com/kubernetes/community/blob/master/sig-architecture/README.md)
|
||||||
|
spotlight, we talked with [Riaan
|
||||||
|
Kleinhans](https://github.com/Riaankl) (ii-Team), Lead for the
|
||||||
|
[Conformance
|
||||||
|
sub-project](https://github.com/kubernetes/community/blob/master/sig-architecture/README.md#conformance-definition-1).
|
||||||
|
|
||||||
|
## About SIG Architecture and the Conformance subproject
|
||||||
|
|
||||||
|
**Frederico (FSM)**: Hello Riaan, and welcome! For starters, tell us a
|
||||||
|
bit about yourself, your role and how you got involved in Kubernetes.
|
||||||
|
|
||||||
|
**Riaan Kleinhans (RK)**: Hi! My name is Riaan Kleinhans and I live in
|
||||||
|
South Africa. I am the Project manager for the [ii-Team](ii.nz) in New
|
||||||
|
Zealand. When I joined ii the plan was to move to New Zealand in April
|
||||||
|
2020 and then Covid happened. Fortunately, being a flexible and
|
||||||
|
dynamic team we were able to make it work remotely and in very
|
||||||
|
different time zones.
|
||||||
|
|
||||||
|
The ii team have been tasked with managing the Kubernetes Conformance
|
||||||
|
testing technical debt and writing tests to clear the technical
|
||||||
|
debt. I stepped into the role of project manager to be the link
|
||||||
|
between monitoring, test writing and the community. Through that work
|
||||||
|
I had the privilege of meeting [Dan Kohn](https://github.com/dankohn)
|
||||||
|
in those first months, his enthusiasm about the work we were doing was
|
||||||
|
a great inspiration.
|
||||||
|
|
||||||
|
**FSM**: Thank you - so, your involvement in SIG Architecture started
|
||||||
|
because of the conformance work?
|
||||||
|
|
||||||
|
**RK**: SIG Architecture is the home for the Kubernetes Conformance
|
||||||
|
subproject. Initially, most of my interactions were directly with SIG
|
||||||
|
Architecture through the Conformance sub-project. However, as we
|
||||||
|
began organizing the work by SIG, we started engaging directly with
|
||||||
|
each individual SIG. These engagements with the SIGs that own the
|
||||||
|
untested APIs have helped us accelerate our work.
|
||||||
|
|
||||||
|
**FSM**: How would you describe the main goals and
|
||||||
|
areas of intervention of the Conformance sub-project?
|
||||||
|
|
||||||
|
**RM**: The Kubernetes Conformance sub-project focuses on guaranteeing
|
||||||
|
compatibility and adherence to the Kubernetes specification by
|
||||||
|
developing and maintaining a comprehensive conformance test suite. Its
|
||||||
|
main goals include assuring compatibility across different Kubernetes
|
||||||
|
implementations, verifying adherence to the API specification,
|
||||||
|
supporting the ecosystem by encouraging conformance certification, and
|
||||||
|
fostering collaboration within the Kubernetes community. By providing
|
||||||
|
standardised tests and promoting consistent behaviour and
|
||||||
|
functionality, the Conformance subproject ensures a reliable and
|
||||||
|
compatible Kubernetes ecosystem for developers and users alike.
|
||||||
|
|
||||||
|
## More on the Conformance Test Suite
|
||||||
|
|
||||||
|
**FSM**: A part of providing those standardised tests is, I believe,
|
||||||
|
the [Conformance Test
|
||||||
|
Suite](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md). Could
|
||||||
|
you explain what it is and its importance?
|
||||||
|
|
||||||
|
**RK**: The Kubernetes Conformance Test Suite checks if Kubernetes
|
||||||
|
distributions meet the project's specifications, ensuring
|
||||||
|
compatibility across different implementations. It covers various
|
||||||
|
features like APIs, networking, storage, scheduling, and
|
||||||
|
security. Passing the tests confirms proper implementation and
|
||||||
|
promotes a consistent and portable container orchestration platform.
|
||||||
|
|
||||||
|
**FSM**: Right, the tests are important in the way they define the
|
||||||
|
minimum features that any Kubernetes cluster must support. Could you
|
||||||
|
describe the process around determining which features are considered
|
||||||
|
for inclusion? Is there any tension between a more minimal approach,
|
||||||
|
and proposals from the other SIGs?
|
||||||
|
|
||||||
|
**RK**: The requirements for each endpoint that undergoes conformance
|
||||||
|
testing are clearly defined by SIG Architecture. Only API endpoints
|
||||||
|
that are generally available and non-optional features are eligible
|
||||||
|
for conformance. Over the years, there have been several discussions
|
||||||
|
regarding conformance profiles, exploring the possibility of including
|
||||||
|
optional endpoints like RBAC, which are widely used by most end users,
|
||||||
|
in specific profiles. However, this aspect is still a work in
|
||||||
|
progress.
|
||||||
|
|
||||||
|
Endpoints that do not meet the conformance criteria are listed in
|
||||||
|
[ineligible_endpoints.yaml](https://github.com/kubernetes/kubernetes/blob/master/test/conformance/testdata/ineligible_endpoints.yaml),
|
||||||
|
which is publicly accessible in the Kubernetes repo. This file can be
|
||||||
|
updated to add or remove endpoints as their status or requirements
|
||||||
|
change. These ineligible endpoints are also visible on
|
||||||
|
[APISnoop](https://apisnoop.cncf.io/).
|
||||||
|
|
||||||
|
Ensuring transparency and incorporating community input regarding the
|
||||||
|
eligibility or ineligibility of endpoints is of utmost importance to
|
||||||
|
SIG Architecture.
|
||||||
|
|
||||||
|
**FSM**: Writing tests for new features is something generally
|
||||||
|
requires some kind of enforcement. How do you see the evolution of
|
||||||
|
this in Kubernetes? Was there a specific effort to improve the process
|
||||||
|
in a way that required tests would be a first-class citizen, or was
|
||||||
|
that never an issue?
|
||||||
|
|
||||||
|
**RK**: When discussions surrounding the Kubernetes conformance
|
||||||
|
programme began in 2018, only approximately 11% of endpoints were
|
||||||
|
covered by tests. At that time, the CNCF's governing board requested
|
||||||
|
that if funding were to be provided for the work to cover missing
|
||||||
|
conformance tests, the Kubernetes Community should adopt a policy of
|
||||||
|
not allowing new features to be added unless they include conformance
|
||||||
|
tests for their stable APIs.
|
||||||
|
|
||||||
|
SIG Architecture is responsible for stewarding this requirement, and
|
||||||
|
[APISnoop](https://apisnoop.cncf.io/) has proven to be an invaluable
|
||||||
|
tool in this regard. Through automation, APISnoop generates a pull
|
||||||
|
request every weekend to highlight any discrepancies in Conformance
|
||||||
|
coverage. If any endpoints are promoted to General Availability
|
||||||
|
without a conformance test, it will be promptly identified. This
|
||||||
|
approach helps prevent the accumulation of new technical debt.
|
||||||
|
|
||||||
|
Additionally, there are plans in the near future to create a release
|
||||||
|
informing job, which will add an additional layer to prevent any new
|
||||||
|
technical debt.
|
||||||
|
|
||||||
|
**FSM**: I see, tooling and automation play an important role
|
||||||
|
there. What are, in your opinion, the areas that, conformance-wise,
|
||||||
|
still require some work to be done? In other words, what are the
|
||||||
|
current priority areas marked for improvement?
|
||||||
|
|
||||||
|
**RK**: We have reached the “100% Conformance Tested” milestone in
|
||||||
|
release 1.27!
|
||||||
|
|
||||||
|
At that point, the community took another look at all the endpoints
|
||||||
|
that were listed as ineligible for conformance. The list was populated
|
||||||
|
through community input over several years. Several endpoints
|
||||||
|
that were previously deemed ineligible for conformance have been
|
||||||
|
identified and relocated to a new dedicated list, which is currently
|
||||||
|
receiving focused attention for conformance test development. Again,
|
||||||
|
that list can also be checked on apisnoop.cncf.io.
|
||||||
|
|
||||||
|
To ensure the avoidance of new technical debt in the conformance
|
||||||
|
project, there are upcoming plans to establish a release informing job
|
||||||
|
as an additional preventive measure.
|
||||||
|
|
||||||
|
While APISnoop is currently hosted on CNCF infrastructure, the project
|
||||||
|
has been generously donated to the Kubernetes community. Consequently,
|
||||||
|
it will be transferred to community-owned infrastructure before the
|
||||||
|
end of 2023.
|
||||||
|
|
||||||
|
**FSM**: That's great news! For anyone wanting to help, what are the
|
||||||
|
venues for collaboration that you would highlight? Do all of them
|
||||||
|
require solid knowledge of Kubernetes as a whole, or are there ways
|
||||||
|
someone newer to the project can contribute?
|
||||||
|
|
||||||
|
**RK**: Contributing to conformance testing is akin to the task of
|
||||||
|
"washing the dishes" – it may not be highly visible, but it remains
|
||||||
|
incredibly important. It necessitates a strong understanding of
|
||||||
|
Kubernetes, particularly in the areas where the endpoints need to be
|
||||||
|
tested. This is why working with each SIG that owns the API endpoint
|
||||||
|
being tested is so important.
|
||||||
|
|
||||||
|
As part of our commitment to making test writing accessible to
|
||||||
|
everyone, the ii team is currently engaged in the development of a
|
||||||
|
"click and deploy" solution. This solution aims to enable anyone to
|
||||||
|
swiftly create a working environment on real hardware within
|
||||||
|
minutes. We will share updates regarding this development as soon as
|
||||||
|
we are ready.
|
||||||
|
|
||||||
|
**FSM**: That's very helpful, thank you. Any final comments you would
|
||||||
|
like to share with our readers?
|
||||||
|
|
||||||
|
**RK**: Conformance testing is a collaborative community endeavour that
|
||||||
|
involves extensive cooperation among SIGs. SIG Architecture has
|
||||||
|
spearheaded the initiative and provided guidance. However, the
|
||||||
|
progress of the work relies heavily on the support of all SIGs in
|
||||||
|
reviewing, enhancing, and endorsing the tests.
|
||||||
|
|
||||||
|
I would like to extend my sincere appreciation to the ii team for
|
||||||
|
their unwavering commitment to resolving technical debt over the
|
||||||
|
years. In particular, [Hippie Hacker](https://github.com/hh)'s
|
||||||
|
guidance and stewardship of the vision has been
|
||||||
|
invaluable. Additionally, I want to give special recognition to
|
||||||
|
Stephen Heywood for shouldering the majority of the test writing
|
||||||
|
workload in recent releases, as well as to Zach Mandeville for his
|
||||||
|
contributions to APISnoop.
|
||||||
|
|
||||||
|
**FSM**: Many thanks for your availability and insightful comments,
|
||||||
|
I've personally learned quite a bit with it and I'm sure our readers
|
||||||
|
will as well.
|
Loading…
Reference in New Issue