Skip to content

Commit 07ef366

Browse files
committed
add Confidential Containers gov review
1 parent e316b8e commit 07ef366

File tree

1 file changed

+342
-0
lines changed

1 file changed

+342
-0
lines changed
Lines changed: 342 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,342 @@
1+
# Confidential Containers - Governance Review - 2026-03
2+
3+
What follows is a governance review and assessment for the Confidential
4+
Containers project. The review was executed as part of due diligence when
5+
Confidential Containers submitted to move to Incubation level at CNCF in
6+
[#1504](https://github.com/cncf/toc/issues/1504).
7+
8+
- Project: <https://github.com/confidential-containers>
9+
- Site: <https://confidentialcontainers.org/>
10+
- Matriculation issue: <https://github.com/cncf/toc/issues/1504>
11+
- Governance review issue: <https://github.com/cncf/toc/issues/2034>
12+
13+
This review is based on the template at
14+
<https://github.com/cncf/toc/blob/main/toc_subprojects/project-reviews-subproject/governance-review-template.md>
15+
and integrates information provided by project maintainers in [the matriculation
16+
issue](https://github.com/cncf/toc/issues/1504).
17+
18+
## Summary and Assessment
19+
20+
**Status:** Mostly Satisfactory
21+
22+
### Governance Summary
23+
24+
The Confidential Containers project builds on Kata Containers to provide an isolated and secret environment for containerized workloads to run.
25+
26+
Contributors and Maintainers for each sub-project manage daily activity and features, and a Steering Committee with representation from many contributing companies sets high-level direction and resolves conflicts.
27+
28+
The project maintains a strong relationship with its dependency Kata Containers; contributors to Kata Containers are part of the Confidential Containers Steering Committee.
29+
30+
### Must-Fix Items
31+
32+
**The following issues have been identified that need to be resolved before
33+
Incubation:**
34+
35+
* A public list of Maintainers for each project should be published. Currently
36+
maintainers are listed within GitHub teams and not publicly readable.
37+
38+
### Points of Excellence
39+
40+
**The following aspects of governance are exemplary, and can be referenced as
41+
examples for other projects to copy:**
42+
43+
* The Steering Committee is designed to represent all major contributing
44+
companies and is currently comprised of members from 7 companies. A process is
45+
defined to ensure membership continues to reflect major contributors.
46+
* Each sub-project is defined by its own repo, and the relationship of
47+
components to sub-projects is listed
48+
[here](https://confidentialcontainers.org/docs/architecture/design-overview/#components).
49+
* The project intentionally cultivates a connection with its major dependency of
50+
Kata Containers.
51+
52+
## Review
53+
54+
**The following review primarily consists of an audit on the project's
55+
self-assessment in their Incubation application.**
56+
57+
### Governance Evolution
58+
59+
**Governance has continuously been iterated upon by the project as a result of
60+
their experience applying it, with the governance history demonstrating
61+
evolution of maturity alongside the project's maturity evolution.**
62+
<br />
63+
**Incubating:** Suggested | **Graduated:** Suggested
64+
65+
* The main governance document has evolved over time, see history at
66+
<https://github.com/confidential-containers/confidential-containers/commits/main/governance.md>.
67+
* See discussions at:
68+
* https://github.com/confidential-containers/confidential-containers/issues/9
69+
* https://github.com/confidential-containers/confidential-containers/pull/56
70+
* https://github.com/confidential-containers/confidential-containers/issues/144
71+
* Specific examples of changes include:
72+
* https://github.com/confidential-containers/confidential-containers/pull/235
73+
* https://github.com/confidential-containers/confidential-containers/pull/229
74+
75+
### Discoverability
76+
77+
**Clear and discoverable project governance documentation.**
78+
<br />
79+
**Incubating:** Suggested | **Graduated:** Required
80+
81+
* The project maintains a metadata repo at
82+
<https://github.com/confidential-containers/confidential-containers>.
83+
Governance is documented there at
84+
<https://github.com/confidential-containers/confidential-containers/blob/main/governance.md>.
85+
* CONTRIBUTING and CODE-OF-CONDUCT docs are in
86+
<https://github.com/confidential-containers/.github>.
87+
* The CONTRIBUTING doc is also published on the web site at
88+
<https://confidentialcontainers.org/docs/contributing/>.
89+
90+
### Accuracy and Clarity
91+
92+
**Governance is up to date with actual project activities, including any
93+
meetings, elections, leadership, or approval processes.**
94+
<br />
95+
**Incubating:** Suggested | **Graduated:** Required
96+
97+
* The process for election of Maintainers and Steering Committee members is
98+
documented in
99+
<https://github.com/confidential-containers/confidential-containers/blob/main/governance.md>.
100+
* Examples of election process for Steering Committee:
101+
* https://github.com/confidential-containers/confidential-containers/pull/326
102+
* https://github.com/confidential-containers/confidential-containers/pull/339
103+
* A community meeting schedule is documented in the contributing guide:
104+
<https://github.com/confidential-containers/confidential-containers/?tab=contributing-ov-file#community-meeting>,
105+
and in running notes:
106+
<https://docs.google.com/document/d/1E3GLCzNgrcigUlgWAZYlgqNTdVwiMwCRTJ0QnJhLZGA/>.
107+
108+
**Governance clearly documents [vendor-neutrality] of project direction.**
109+
<br />
110+
**Incubating:** Suggested | **Graduated:** Required
111+
112+
The project's
113+
[overview](https://github.com/confidential-containers/confidential-containers/blob/main/overview.md)
114+
states that a key consideration is to "support multiple TEE and hardware
115+
platforms", and the doc goes on to say that AMD, Intel and IBM TEE technologies
116+
are actively supported.
117+
118+
The [steering committee
119+
members](https://github.com/confidential-containers/confidential-containers/blob/main/overview.md)
120+
come from a broad swath of companies, including Alibaba, IBM, Intel, AMD, Red
121+
Hat, Nvidia and Microsoft.
122+
123+
There is no statement about vendor-neutrality in the governance docs though.
124+
125+
### Decisions and Role Assignments
126+
127+
**Document how the project makes decisions on leadership roles, contribution
128+
acceptance, requests to the CNCF, and changes to governance or project goals.**
129+
<br />
130+
**Incubating:** Suggested | **Graduated:** Required
131+
132+
Anyone can suggest contributions and become a Contributor to the project by
133+
following typical git/GitHub workflows to submit PRs, as documented in
134+
<https://github.com/confidential-containers/confidential-containers/blob/main/governance.md#contributor>.
135+
136+
Contributors can become Maintainers by establishing trust and making relevant
137+
contributions, then opening an issue for the project in question. Per [the
138+
project's governance
139+
document](https://github.com/confidential-containers/confidential-containers/blob/main/governance.md)
140+
"this decision process is not formally defined and is based on lazy consensus
141+
from the existing maintainers."
142+
143+
The Steering Committee defines high-level strategy and roadmap and handles
144+
administrative functions. New members can be added to the steering committee
145+
with a 2/3 vote of existing members as described
146+
[here](https://github.com/confidential-containers/confidential-containers/blob/main/governance.md#expansion).
147+
148+
**Document how role, function-based members, or sub-teams are assigned,
149+
onboarded, and removed for specific teams (example: Security Response
150+
Committee).**
151+
<br />
152+
**Incubating:** Suggested | **Graduated:** Required
153+
154+
The primary role to be added or removed from Contributors is the Maintainer
155+
role, which is granted by adding the Contributor to a GitHub team for the
156+
targeted project as documented
157+
[here](https://github.com/confidential-containers/confidential-containers/blob/main/governance.md#becoming-a-project-maintainer).
158+
GitHub teams and their members are not publicly listed so there isn't a current
159+
list of actual maintainers.
160+
161+
Maintainers for a project are also "security managers" for those projects, but
162+
in addition dedicated security managers can be added across all projects
163+
following the procedure documented at
164+
<https://github.com/confidential-containers/confidential-containers/blob/main/governance.md#security-manager>.
165+
Since attachment to this role is based on membership in a GitHub team, the
166+
current list is also not available.
167+
168+
### Maintainers and Maintainer Lifecycle
169+
170+
**Document a complete maintainer lifecycle process (including roles, onboarding,
171+
offboarding, and emeritus status).**
172+
<br />
173+
**Incubating:** Suggested | **Graduated:** Required
174+
175+
As described in [the governance
176+
doc](https://github.com/confidential-containers/confidential-containers/blob/main/governance.md)
177+
Contributors become Maintainers by building trust and making contributions.
178+
Steering Commitee members are elected to represent major contributing companies
179+
to the project and do not have to otherwise be Maintainers. Processes for
180+
removal from Maintainer or Steering Committee membership are documented in the
181+
governance doc as well.
182+
183+
**Demonstrate usage of the maintainer lifecycle with outcomes, either through
184+
the addition or replacement of maintainers as project events have required.**
185+
<br />
186+
**Incubating:** Suggested | **Graduated:** Required
187+
188+
Examples of Maintainer updates for sub-projects:
189+
190+
* Maintainer updates for Trustee: <https://github.com/confidential-containers/trustee/issues?q=is%3Aissue++in%3Atitle+maintainer>
191+
* Maintainer updates for guest-components: <https://github.com/confidential-containers/guest-components/issues?q=is%3Aissue++in%3Atitle+maintainer>
192+
193+
**Document complete list of current maintainers, including names, contact
194+
information, domain of responsibility, and affiliation.**
195+
<br />
196+
**Incubating:** Required | **Graduated:** Required
197+
198+
GitHub Teams are used to track maintainers for projects/repos. The list is
199+
available to org members here:
200+
<https://github.com/orgs/confidential-containers/teams>
201+
202+
However, there is no public list of current maintainers.
203+
204+
Steering committee members and their affiliations are listed in the governance
205+
doc here:
206+
<https://github.com/confidential-containers/confidential-containers/blob/main/governance.md#members>
207+
208+
**A number of active maintainers which is appropriate to the size and scope of
209+
the project.**
210+
<br />
211+
**Incubating:** Required | **Graduated:** Required
212+
213+
The list of active maintainers is not publicly available. But [LFX
214+
Insights](https://insights.linuxfoundation.org/project/confcont/contributors)
215+
shows a pretty broad group of contributors and contributing organizations.
216+
217+
**Project maintainers from at least 2 organizations that demonstrates
218+
survivability.**
219+
<br />
220+
**Incubating:** N/A | **Graduated:** Required
221+
222+
A list of active maintainers and their affiliations is not publicly available.
223+
224+
### Ownership
225+
226+
**Code and Doc ownership in Github and elsewhere matches documented governance
227+
roles.**
228+
<br />
229+
**Incubating:** Required | **Graduated:** Required
230+
231+
Code and doc ownership is governed by CODEOWNERS files in each project/repo
232+
which delegate control to GitHub teams.
233+
234+
### Code of Conduct
235+
236+
**Document adoption and adherence to the CNCF Code of Conduct or the project's
237+
CoC which is based off the CNCF CoC and not in conflict with it.**
238+
<br />
239+
**Incubating:** Required | **Graduated:** Required
240+
241+
The top-level project declares that it follows the CNCF Code of Conduct in
242+
<https://github.com/confidential-containers/confidential-containers/blob/main/CODE_OF_CONDUCT.md>.
243+
244+
**CNCF Code of Conduct is cross-linked from other governance documents.**
245+
<br />
246+
**Incubating:** Required | **Graduated:** Required
247+
248+
The CNCF Code of Conduct is linked in
249+
<https://github.com/confidential-containers/confidential-containers/blob/main/CODE_OF_CONDUCT.md>.
250+
251+
### Subprojects
252+
253+
**All subprojects, if any, are listed.**
254+
<br />
255+
**Incubating:** Required | **Graduated:** Required
256+
257+
A list of components used in the project is at
258+
<https://confidentialcontainers.org/docs/architecture/design-overview/#components>
259+
260+
Per the incubation issue in cncf/toc here are the current sub-projects and their repos:
261+
262+
| Project | Description | Repo |
263+
| ----------------- | ------------------------------- | ------------------------------------------------------------ |
264+
| Trustee | CoCo attestation services | https://github.com/confidential-containers/trustee |
265+
| guest-components | CoCo TEE/client side components | https://github.com/confidential-containers/guest-components |
266+
| cloud-api-adaptor | CoCo "peer-pods" deployment | https://github.com/confidential-containers/cloud-api-adaptor |
267+
| operator | CoCo "installer" | https://github.com/confidential-containers/operator |
268+
| trustee-operator | CoCo Trustee "installer" | https://github.com/confidential-containers/trustee-operator |
269+
| td-shim | CoCo minimal virtual firmware | https://github.com/confidential-containers/td-shim |
270+
271+
**If the project has subprojects: subproject leadership, contribution, maturity
272+
status documented, including add/remove process.**
273+
<br />
274+
**Incubating:** Suggested | **Graduated:** Required
275+
276+
Subproject leadership and contributor status follow the framework documented in
277+
<https://github.com/confidential-containers/confidential-containers/commits/main/governance.md>.
278+
279+
Maturity for subprojects is not documented but can perhaps be inferred from
280+
release version numbers, all of which are v0.x.
281+
282+
A public list of maintainers for each project is not available as mentioned
283+
above.
284+
285+
### Contributors and Community
286+
287+
**Contributor ladder with multiple roles for contributors.**
288+
<br />
289+
**Incubating:** Suggested | **Graduated:** Suggested
290+
291+
Defined in [governance
292+
doc](https://github.com/confidential-containers/confidential-containers/blob/main/governance.md#community-members-and-roles).
293+
294+
**Clearly defined and discoverable process to submit issues or changes.**
295+
<br />
296+
**Incubating:** Required | **Graduated:** Required
297+
298+
Contributing guide here:
299+
<https://confidentialcontainers.org/docs/contributing/#making-contributions>
300+
301+
**Project must have, and document, at least one public communications channel
302+
for users and/or contributors.**
303+
<br />
304+
**Incubating:** Required | **Graduated:** Required
305+
306+
Slack channel and community meeting info are documented here:
307+
<https://confidentialcontainers.org/docs/contributing/#connecting-with-the-community>.
308+
309+
**List and document all project communication channels, including subprojects
310+
(mail list/slack/etc.). List any non-public communications channels and what
311+
their special purpose is.**
312+
<br />
313+
**Incubating:** Required | **Graduated:** Required
314+
315+
* CNCF Slack channel: <https://cloud-native.slack.com/archives/C039JSH0807>
316+
* Community meeting: <https://docs.google.com/document/d/1E3GLCzNgrcigUlgWAZYlgqNTdVwiMwCRTJ0QnJhLZGA/>
317+
318+
**Up-to-date public meeting schedulers and/or integration with CNCF calendar.**
319+
<br />
320+
**Incubating:** Required | **Graduated:** Required
321+
322+
Weekly meetings are mentioned here: <https://github.com/confidential-containers>
323+
and further described in [this Google
324+
doc](https://docs.google.com/document/d/1E3GLCzNgrcigUlgWAZYlgqNTdVwiMwCRTJ0QnJhLZGA/).
325+
326+
**Documentation of how to contribute, with increasing detail as the project
327+
matures.**
328+
<br />
329+
**Incubating:** Required | **Graduated:** Required
330+
331+
A contributing guide is available here:
332+
<https://confidentialcontainers.org/docs/contributing/>. It has not been updated
333+
since being published in 2024.
334+
335+
**Demonstrate contributor activity and recruitment.**
336+
<br />
337+
**Incubating:** Required | **Graduated:** Required
338+
339+
See LFX Insights: <https://insights.linuxfoundation.org/project/confcont>
340+
341+
[project milestone or other requirement]: https://github.com/cncf/toc/tree/main/process#how-to-apply-to-move-levels
342+
[vendor-neutrality]: https://contribute.cncf.io/maintainers/community/vendor-neutrality/

0 commit comments

Comments
 (0)