|
| 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