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