Skip to content

Commit ce29d9c

Browse files
authored
Merge pull request #43159 from fsmunoz/sig-arch-conformance-spotlight
Add SIG Architecture Conformance spotlight interview
2 parents 317df88 + 80c988c commit ce29d9c

File tree

1 file changed

+197
-0
lines changed

1 file changed

+197
-0
lines changed
Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
---
2+
layout: blog
3+
title: "Spotlight on SIG Architecture: Conformance"
4+
slug: sig-architecture-conformance-spotlight-2023
5+
date: 2023-10-05
6+
canonicalUrl: https://www.k8s.dev/blog/2023/10/05/sig-architecture-conformance-spotlight-2023/
7+
---
8+
9+
10+
**Author**: Frederico Muñoz (SAS Institute)
11+
12+
_This is the first interview of a SIG Architecture Spotlight series
13+
that will cover the different subprojects. We start with the SIG
14+
Architecture: Conformance subproject_
15+
16+
In this [SIG
17+
Architecture](https://github.com/kubernetes/community/blob/master/sig-architecture/README.md)
18+
spotlight, we talked with [Riaan
19+
Kleinhans](https://github.com/Riaankl) (ii-Team), Lead for the
20+
[Conformance
21+
sub-project](https://github.com/kubernetes/community/blob/master/sig-architecture/README.md#conformance-definition-1).
22+
23+
## About SIG Architecture and the Conformance subproject
24+
25+
**Frederico (FSM)**: Hello Riaan, and welcome! For starters, tell us a
26+
bit about yourself, your role and how you got involved in Kubernetes.
27+
28+
**Riaan Kleinhans (RK)**: Hi! My name is Riaan Kleinhans and I live in
29+
South Africa. I am the Project manager for the [ii-Team](ii.nz) in New
30+
Zealand. When I joined ii the plan was to move to New Zealand in April
31+
2020 and then Covid happened. Fortunately, being a flexible and
32+
dynamic team we were able to make it work remotely and in very
33+
different time zones.
34+
35+
The ii team have been tasked with managing the Kubernetes Conformance
36+
testing technical debt and writing tests to clear the technical
37+
debt. I stepped into the role of project manager to be the link
38+
between monitoring, test writing and the community. Through that work
39+
I had the privilege of meeting [Dan Kohn](https://github.com/dankohn)
40+
in those first months, his enthusiasm about the work we were doing was
41+
a great inspiration.
42+
43+
**FSM**: Thank you - so, your involvement in SIG Architecture started
44+
because of the conformance work?
45+
46+
**RK**: SIG Architecture is the home for the Kubernetes Conformance
47+
subproject. Initially, most of my interactions were directly with SIG
48+
Architecture through the Conformance sub-project. However, as we
49+
began organizing the work by SIG, we started engaging directly with
50+
each individual SIG. These engagements with the SIGs that own the
51+
untested APIs have helped us accelerate our work.
52+
53+
**FSM**: How would you describe the main goals and
54+
areas of intervention of the Conformance sub-project?
55+
56+
**RM**: The Kubernetes Conformance sub-project focuses on guaranteeing
57+
compatibility and adherence to the Kubernetes specification by
58+
developing and maintaining a comprehensive conformance test suite. Its
59+
main goals include assuring compatibility across different Kubernetes
60+
implementations, verifying adherence to the API specification,
61+
supporting the ecosystem by encouraging conformance certification, and
62+
fostering collaboration within the Kubernetes community. By providing
63+
standardised tests and promoting consistent behaviour and
64+
functionality, the Conformance subproject ensures a reliable and
65+
compatible Kubernetes ecosystem for developers and users alike.
66+
67+
## More on the Conformance Test Suite
68+
69+
**FSM**: A part of providing those standardised tests is, I believe,
70+
the [Conformance Test
71+
Suite](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md). Could
72+
you explain what it is and its importance?
73+
74+
**RK**: The Kubernetes Conformance Test Suite checks if Kubernetes
75+
distributions meet the project's specifications, ensuring
76+
compatibility across different implementations. It covers various
77+
features like APIs, networking, storage, scheduling, and
78+
security. Passing the tests confirms proper implementation and
79+
promotes a consistent and portable container orchestration platform.
80+
81+
**FSM**: Right, the tests are important in the way they define the
82+
minimum features that any Kubernetes cluster must support. Could you
83+
describe the process around determining which features are considered
84+
for inclusion? Is there any tension between a more minimal approach,
85+
and proposals from the other SIGs?
86+
87+
**RK**: The requirements for each endpoint that undergoes conformance
88+
testing are clearly defined by SIG Architecture. Only API endpoints
89+
that are generally available and non-optional features are eligible
90+
for conformance. Over the years, there have been several discussions
91+
regarding conformance profiles, exploring the possibility of including
92+
optional endpoints like RBAC, which are widely used by most end users,
93+
in specific profiles. However, this aspect is still a work in
94+
progress.
95+
96+
Endpoints that do not meet the conformance criteria are listed in
97+
[ineligible_endpoints.yaml](https://github.com/kubernetes/kubernetes/blob/master/test/conformance/testdata/ineligible_endpoints.yaml),
98+
which is publicly accessible in the Kubernetes repo. This file can be
99+
updated to add or remove endpoints as their status or requirements
100+
change. These ineligible endpoints are also visible on
101+
[APISnoop](https://apisnoop.cncf.io/).
102+
103+
Ensuring transparency and incorporating community input regarding the
104+
eligibility or ineligibility of endpoints is of utmost importance to
105+
SIG Architecture.
106+
107+
**FSM**: Writing tests for new features is something generally
108+
requires some kind of enforcement. How do you see the evolution of
109+
this in Kubernetes? Was there a specific effort to improve the process
110+
in a way that required tests would be a first-class citizen, or was
111+
that never an issue?
112+
113+
**RK**: When discussions surrounding the Kubernetes conformance
114+
programme began in 2018, only approximately 11% of endpoints were
115+
covered by tests. At that time, the CNCF's governing board requested
116+
that if funding were to be provided for the work to cover missing
117+
conformance tests, the Kubernetes Community should adopt a policy of
118+
not allowing new features to be added unless they include conformance
119+
tests for their stable APIs.
120+
121+
SIG Architecture is responsible for stewarding this requirement, and
122+
[APISnoop](https://apisnoop.cncf.io/) has proven to be an invaluable
123+
tool in this regard. Through automation, APISnoop generates a pull
124+
request every weekend to highlight any discrepancies in Conformance
125+
coverage. If any endpoints are promoted to General Availability
126+
without a conformance test, it will be promptly identified. This
127+
approach helps prevent the accumulation of new technical debt.
128+
129+
Additionally, there are plans in the near future to create a release
130+
informing job, which will add an additional layer to prevent any new
131+
technical debt.
132+
133+
**FSM**: I see, tooling and automation play an important role
134+
there. What are, in your opinion, the areas that, conformance-wise,
135+
still require some work to be done? In other words, what are the
136+
current priority areas marked for improvement?
137+
138+
**RK**: We have reached the “100% Conformance Tested” milestone in
139+
release 1.27!
140+
141+
At that point, the community took another look at all the endpoints
142+
that were listed as ineligible for conformance. The list was populated
143+
through community input over several years. Several endpoints
144+
that were previously deemed ineligible for conformance have been
145+
identified and relocated to a new dedicated list, which is currently
146+
receiving focused attention for conformance test development. Again,
147+
that list can also be checked on apisnoop.cncf.io.
148+
149+
To ensure the avoidance of new technical debt in the conformance
150+
project, there are upcoming plans to establish a release informing job
151+
as an additional preventive measure.
152+
153+
While APISnoop is currently hosted on CNCF infrastructure, the project
154+
has been generously donated to the Kubernetes community. Consequently,
155+
it will be transferred to community-owned infrastructure before the
156+
end of 2023.
157+
158+
**FSM**: That's great news! For anyone wanting to help, what are the
159+
venues for collaboration that you would highlight? Do all of them
160+
require solid knowledge of Kubernetes as a whole, or are there ways
161+
someone newer to the project can contribute?
162+
163+
**RK**: Contributing to conformance testing is akin to the task of
164+
"washing the dishes" – it may not be highly visible, but it remains
165+
incredibly important. It necessitates a strong understanding of
166+
Kubernetes, particularly in the areas where the endpoints need to be
167+
tested. This is why working with each SIG that owns the API endpoint
168+
being tested is so important.
169+
170+
As part of our commitment to making test writing accessible to
171+
everyone, the ii team is currently engaged in the development of a
172+
"click and deploy" solution. This solution aims to enable anyone to
173+
swiftly create a working environment on real hardware within
174+
minutes. We will share updates regarding this development as soon as
175+
we are ready.
176+
177+
**FSM**: That's very helpful, thank you. Any final comments you would
178+
like to share with our readers?
179+
180+
**RK**: Conformance testing is a collaborative community endeavour that
181+
involves extensive cooperation among SIGs. SIG Architecture has
182+
spearheaded the initiative and provided guidance. However, the
183+
progress of the work relies heavily on the support of all SIGs in
184+
reviewing, enhancing, and endorsing the tests.
185+
186+
I would like to extend my sincere appreciation to the ii team for
187+
their unwavering commitment to resolving technical debt over the
188+
years. In particular, [Hippie Hacker](https://github.com/hh)'s
189+
guidance and stewardship of the vision has been
190+
invaluable. Additionally, I want to give special recognition to
191+
Stephen Heywood for shouldering the majority of the test writing
192+
workload in recent releases, as well as to Zach Mandeville for his
193+
contributions to APISnoop.
194+
195+
**FSM**: Many thanks for your availability and insightful comments,
196+
I've personally learned quite a bit with it and I'm sure our readers
197+
will as well.

0 commit comments

Comments
 (0)