|
1 | 1 | # Fluid Incubation Due Diligence |
2 | 2 |
|
3 | | -- Link to [Incubation application issue]() |
| 3 | +- [Fluid Incubation application issue](https://github.com/cncf/toc/issues/1317) |
4 | 4 |
|
5 | 5 | <!-- This template provides the TOC with the outline for completing due diligence of a project to move levels. This universal template is designed to capture all criteria so the TOC may ensure prior level criteria do not regress. As part of completing the due diligence, the TOC member should update the template to convey the level the project applied for the criteria by bolding the level indicated where the criteria is relevant. --> |
6 | 6 |
|
7 | 7 | ## Incubation Evaluation Summary for Fluid |
8 | 8 |
|
9 | 9 | ### Criteria Evaluation |
10 | 10 |
|
11 | | -_$TOCMEMBER conducted the due diligence of Fluid who applied for $LEVEL. The project [has/has not] completed the criteria that show its maturity at $LEVEL. The following criteria implementations are noteworthy to call out... $NOTABLES. The following actions were provided to the project that were considered blocking but since resolved... $BLOCKERS. The following recommendations were provided to the project that are non-blocking in the TOC's assessment but should be completed by the project to ensure continued viability of the project... $RECOMMENDATIONS._ |
| 11 | +Katie Gamanji (@kgamanji) and Alex Chircop (@chira001) conducted the due diligence of Fluid who applied for Incubation. The project has completed the criteria that show its maturity at Incubation. The following criteria implementations are noteworthy to call out: |
| 12 | +- TODO ... $NOTABLES. |
| 13 | + |
| 14 | +The following actions were provided to the project that were considered blocking but since resolved: |
| 15 | +- the project presented to TAG Storage over 1y ago. Considering the ongoing TAG Reboot initiative, maintainers were advised to complete the General Technical Review for the project |
| 16 | +- the security contact page was returning a 404 error in [Reporting a Vulnerability](https://github.com/fluid-cloudnative/fluid/blob/master/SECURITY.md#private-disclosure-processes) and should be fixed |
| 17 | +- provide a community meeting calendar to simplify the path for contributors and adopters to join future calls. It is specified that the calls are on a bi-weekly cadence, but the date of the next meeting date is unknown |
| 18 | +- fix the inconsistency in community meeting times. The agenda to propose topics specifies a Zoom link as opposed to DingTalk Group where the calls are actually taking place. Consolidation and removal of references to unused resources is required. |
| 19 | +- the link to CoC in Join Our [Community as a Member](https://github.com/fluid-cloudnative/fluid/blob/a6c6343a0ee448f1498aafcdfecada55d5fa283b/CONTRIBUTING.md#join-our-community-as-a-member) returns a 404 error and should be fixed. |
| 20 | + |
| 21 | +The following recommendations were provided to the project that are non-blocking in the TOC's assessment but should be completed by the project to ensure continued viability of the project: |
| 22 | + |
| 23 | +- Consider renaming the development branch from master -> main e.g. [Kubernetes Default Branch Migration](https://www.kubernetes.dev/resources/rename/). Also, note that renaming the branch would require an update for the contributor and release process guidelines |
| 24 | +- Community meetings are taking place regularly and are held in Mandarin. No blockers here, however, would suggest working with CNCF staff to use an automated transcript tool if possible. |
| 25 | +- take action on the outstanding items that lower the [OpenSSF scorecard score](https://scorecard.dev/viewer/?uri=github.com/fluid-cloudnative/fluid) |
| 26 | +- for the listed [Fluid Adopters](https://github.com/fluid-cloudnative/fluid/blob/master/ADOPTERS.md) all GitHub handles for "contact" are 404ing and pointing to email addresses of adopters. Email addresses could represent a privacy risk, and we would recommend pointing to GitHub handlers instead. |
12 | 27 |
|
13 | 28 | ### Adoption Evaluation |
14 | 29 |
|
15 | | -_The adopter interviews reflect a project [in use/too early] for the level which the project applied. They show ... $INTERVIEWSUMMARY._ |
| 30 | +The adopter interviews reflect the project use for the Incubation level to which the project has applied. |
| 31 | + |
| 32 | +TODO |
16 | 33 |
|
17 | 34 | ### Final Assessment |
18 | 35 |
|
19 | | -_[The TOC has found the project to have satisfied the criteria for $LEVEL/ The TOC's evaluation of the project shows a needed focus to complete the outstanding blockers and reapply when the following conditions are met ... $CONDITIONS]._ |
| 36 | +The TOC has found the project to have satisfied the criteria for Incubation. |
| 37 | + |
20 | 38 |
|
21 | 39 | ## Application Process Principles |
22 | 40 |
|
|
26 | 44 |
|
27 | 45 | ### Required |
28 | 46 |
|
29 | | -- [ ] **Give a presentation and engage with the domain specific TAG(s) to increase awareness** |
30 | | - - This was completed and occurred on DD-MMM-YYYY, and can be discovered at $LINK. |
| 47 | +- [x] **Give a presentation and engage with the domain specific TAG(s) to increase awareness** |
| 48 | + - The project presented to TAG Storage on 10-07-2024, and can be discovered at [here](https://www.youtube.com/watch?v=kBZNRbP4nOU). |
31 | 49 |
|
32 | 50 | <!-- (TOC Evaluation goes here) --> |
33 | 51 |
|
34 | | -- [ ] **TAG provides insight/recommendation of the project in the context of the landscape** |
| 52 | +- [x] **TAG provides insight/recommendation of the project in the context of the landscape** |
35 | 53 |
|
36 | 54 | <!-- (TOC Evaluation goes here) --> |
37 | 55 |
|
38 | | -- [ ] **All project metadata and resources are [vendor-neutral](https://contribute.cncf.io/maintainers/community/vendor-neutrality/).** |
| 56 | +The feedback from the TAG was positive, however it was conducted more than 1 year ago at the time of the project assessment for Incubation. The project maintainers were asked to complete the General Technical Review for Fluid, which can be found [here](https://github.com/fluid-cloudnative/community/blob/1215ac22dc7b757cc9b63eee8660c3e15210ba8f/docs/general-technical-review-cncf-incubating.md). |
| 57 | + |
| 58 | +- [x] **All project metadata and resources are [vendor-neutral](https://contribute.cncf.io/maintainers/community/vendor-neutrality/).** |
39 | 59 |
|
40 | 60 | <!-- (TOC Evaluation goes here) --> |
41 | 61 |
|
42 | | -- [ ] **Review and acknowledgement of expectations for [Sandbox](sandbox.cncf.io) projects and requirements for moving forward through the CNCF Maturity levels.** |
43 | | -- Met during Project's application on DD-MMM-YYYY. |
| 62 | +The project fulfills the vendor-neutral criteria. The main communication channel is on DingTalk and WeChat groups. Also the project uses [Slack](https://cloud-native.slack.com/archives/C02ADG209SP), on the CNCF workspace via `#fluid` channel. |
| 63 | +[Community meetings](https://github.com/fluid-cloudnative/community/wiki/Meeting-Schedule) are held on DingTalk with a bi-weekly cadence. Users are also capable of finding the meeting notes on [Fluid GitHub Community Repository](https://github.com/fluid-cloudnative/community/wiki/Meeting-Schedule) and to follow up on the latest topics of discussion. |
| 64 | + |
| 65 | + |
| 66 | +- [x] **Review and acknowledgement of expectations for [Sandbox](sandbox.cncf.io) projects and requirements for moving forward through the CNCF Maturity levels.** |
| 67 | +- Met during Project's application on 27-Apr-2021. |
44 | 68 |
|
45 | 69 | <!-- (TOC Evaluation goes here) --> |
46 | 70 |
|
47 | | -- [ ] **Due Diligence Review.** |
| 71 | +Fluid Sandbox application can be found [here](https://github.com/cncf/sandbox/issues/245). |
| 72 | + |
| 73 | +The project maintainers have understood the expectations for Sandbox projects and requirements for moving forward through the CNCF incubation level. |
| 74 | + |
| 75 | +- [x] **Due Diligence Review.** |
48 | 76 |
|
49 | 77 | Completion of this due diligence document, resolution of concerns raised, and presented for public comment satisfies the Due Diligence Review criteria. |
50 | 78 |
|
51 | | -- [ ] **Additional documentation as appropriate for project type, e.g.: installation documentation, end user documentation, reference implementation and/or code samples.** |
| 79 | +- [x] **Additional documentation as appropriate for project type, e.g.: installation documentation, end user documentation, reference implementation and/or code samples.** |
52 | 80 |
|
53 | 81 | <!-- (TOC Evaluation goes here) --> |
54 | 82 |
|
| 83 | +The project maintainers have added the following additional documentation as follows. |
| 84 | +- [Installation documentation](https://fluid-cloudnative.github.io/docs/next/get-started/installation) |
| 85 | +- [User documentation](https://fluid-cloudnative.github.io/docs/next) |
| 86 | +- [Architecture documentation](https://fluid-cloudnative.github.io/docs/next/core-concepts/architecture-and-concepts) |
| 87 | + |
55 | 88 | ## Governance and Maintainers |
56 | 89 |
|
57 | 90 | Note: this section may be augmented by the completion of a Governance Review from TAG Contributor Strategy. |
@@ -122,39 +155,73 @@ Note: this section may be augmented by the completion of a Governance Review fro |
122 | 155 |
|
123 | 156 | ## Contributors and Community |
124 | 157 |
|
125 | | -Note: this section may be augmented by the completion of a Governance Review from TAG Contributor Strategy. |
126 | 158 |
|
127 | 159 | ### Suggested |
128 | 160 |
|
129 | | -- [ ] **Contributor ladder with multiple roles for contributors.** |
| 161 | +- [x] **Contributor ladder with multiple roles for contributors.** |
130 | 162 |
|
131 | 163 | <!-- (TOC Evaluation goes here) --> |
| 164 | +The project provides [3 levels of engagement routes](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/GOVERNANCE.md) for community members, each one building on the previous responsibilities: |
| 165 | +- Contributors - base level interaction on the project through comments on issues or pull request |
| 166 | +- Committers - community members who have shown that they are committed to the continued development of the project through ongoing engagement |
| 167 | +- Maintainers - lead the development of the project, through contributions to increasingly complicated PRs/designs and review PRs/designs, under the guidance of the existing maintainers |
132 | 168 |
|
133 | 169 | ### Required |
134 | 170 |
|
135 | | -- [ ] **Clearly defined and discoverable process to submit issues or changes.** |
| 171 | +- [x] **Clearly defined and discoverable process to submit issues or changes.** |
136 | 172 |
|
137 | 173 | <!-- (TOC Evaluation goes here) --> |
| 174 | +Fluid makes use of GitHub issues and PRs. The following guidelines are available: |
| 175 | +- [Filling an issue](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/CONTRIBUTING.md#filing-issues), including templates for: |
| 176 | + - [Report a bug](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/.github/ISSUE_TEMPLATE/bug-report.md) |
| 177 | + - [Document improvements](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/.github/ISSUE_TEMPLATE/docs-defect.md) |
| 178 | + - [Feature Request](https://github.com/fluid-cloudnative/fluid/blob/master/.github/ISSUE_TEMPLATE/feature-request.md) |
| 179 | +- with a list of examples for [code contributions](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/CONTRIBUTING.md#code-contributions) |
| 180 | + |
| 181 | +The project also provides a guide on how to set up a [development workspace |
| 182 | +](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/CONTRIBUTING.md#setting-up-development-workspace) and submit a PR through available [template](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/.github/PULL_REQUEST_TEMPLATE.md). |
| 183 | + |
138 | 184 |
|
139 | | -- [ ] **Project must have, and document, at least one public communications channel for users and/or contributors.** |
| 185 | +- [x] **Project must have, and document, at least one public communications channel for users and/or contributors.** |
140 | 186 |
|
141 | 187 | <!-- (TOC Evaluation goes here) --> |
142 | 188 |
|
143 | | -- [ ] **List and document all project communication channels, including subprojects (mail list/slack/etc.). List any non-public communications channels and what their special purpose is.** |
| 189 | +Public communication channels for Fluid are listed [here](https://github.com/fluid-cloudnative/fluid?tab=readme-ov-file#community), including a DingTalk and WeChat groups, and Slack. |
| 190 | + |
| 191 | +- [x] **List and document all project communication channels, including subprojects (mail list/slack/etc.). List any non-public communications channels and what their special purpose is.** |
144 | 192 |
|
145 | 193 | <!-- (TOC Evaluation goes here) --> |
| 194 | +The main channel of communication are listed below: |
| 195 | +- CNCF Slack channel: [#fluid](https://cloud-native.slack.com/archives/C02ADG209SP) |
| 196 | +- WeChat Group: Fluid Open Source Group |
| 197 | +- DingTalk Group: Fluid Open Source Group |
| 198 | + |
| 199 | +[Community meetings](https://github.com/fluid-cloudnative/community/wiki/Meeting-Schedule) are held on [DingTalk Group](https://qr.dingtalk.com/action/joingroup) with a bi-weekly cadence. |
146 | 200 |
|
147 | | -- [ ] **Up-to-date public meeting schedulers and/or integration with CNCF calendar.** |
| 201 | +- [x] **Up-to-date public meeting schedulers and/or integration with CNCF calendar.** |
148 | 202 |
|
149 | 203 | <!-- (TOC Evaluation goes here) --> |
| 204 | +Community members are able to join community meetings on a bi-weekly basis. The meeting notes can be found on [Fluid GitHub Community Repository](https://github.com/fluid-cloudnative/community/wiki/Meeting-Schedule) and to follow up on the latest topics of discussion. |
| 205 | + |
| 206 | +Community meetings are held in Mandarin, and are a great way to engage with the maintainers and get involved in project development. |
150 | 207 |
|
151 | | -- [ ] **Documentation of how to contribute, with increasing detail as the project matures.** |
| 208 | +TODO: calendar for meetings |
| 209 | + |
| 210 | + |
| 211 | +- [x] **Documentation of how to contribute, with increasing detail as the project matures.** |
152 | 212 |
|
153 | 213 | <!-- (TOC Evaluation goes here) --> |
154 | 214 |
|
155 | | -- [ ] **Demonstrate contributor activity and recruitment.** |
| 215 | +Details on how to contribute and engage with the project are listed on the [Contributing Guidelines](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/CONTRIBUTING.md), including a path to [join the community as a member](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/CONTRIBUTING.md#join-our-community-as-a-member). The contributing members are also encouraged to follow the [Code of Conduct](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/CODE_OF_CONDUCT.md) as part of getting involved. |
| 216 | + |
| 217 | + |
| 218 | +- [x] **Demonstrate contributor activity and recruitment.** |
156 | 219 |
|
157 | 220 | <!-- (TOC Evaluation goes here) --> |
| 221 | +The project has a good history of adding new contributors e.g. [listing 10 new contributors](https://github.com/fluid-cloudnative/fluid/commit/37ddcf63e88303578fee99e3970465fbddc404e3) in addition to existing maintainers. Also, there is a good distribution of involved organizations, ensuring the continuity of the vendor-neutral development of Fluid. |
| 222 | + |
| 223 | +Also, over the last 2 years the project has a consistent ratio of contribution vs involved contributors, that can observed in the [DevStats contribution distribution](https://fluid.devstats.cncf.io/d/74/contributions-chart?orgId=1&var-period=m&var-metric=contributions&var-repogroup_name=All&var-country_name=All&var-company_name=All&var-company=all&from=now-2y&to=now). |
| 224 | + |
158 | 225 |
|
159 | 226 | ## Engineering Principles |
160 | 227 |
|
@@ -200,25 +267,53 @@ N/A |
200 | 267 |
|
201 | 268 | ### Required |
202 | 269 |
|
203 | | -- [ ] **Clearly defined and discoverable process to report security issues.** |
| 270 | +- [x] **Clearly defined and discoverable process to report security issues.** |
204 | 271 |
|
205 | 272 | <!-- (TOC Evaluation goes here) --> |
| 273 | +The [SECURITY.md ](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/SECURITY.md#reporting-a-vulnerability) file outlines the vulnerability reporting process, including a mailing list ( [email protected]) monitored by the maintainers that can be used for private disclosures. |
| 274 | + |
| 275 | +Community members have the option to reach out to [security contacts](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/SECURITY_CONTACTS) to kickstart any private or public disclosure processes. |
| 276 | + |
| 277 | +Successful examples of fixed reported security issues, can be found below: |
| 278 | +- [On a compromised node, the fluid-csi service account can be used to modify node specs](https://github.com/fluid-cloudnative/fluid/security/advisories/GHSA-93xx-cvmc-9w3v) |
| 279 | +- [OS Command Injection for Fluid Users with JuicefsRuntime](https://github.com/fluid-cloudnative/fluid/security/advisories/GHSA-wx8q-4gm9-rj2g) |
206 | 280 |
|
207 | | -- [ ] **Enforcing Access Control Rules to secure the code base against attacks (Example: two factor authentication enforcement, and/or use of ACL tools.)** |
| 281 | + |
| 282 | +- [x] **Enforcing Access Control Rules to secure the code base against attacks (Example: two factor authentication enforcement, and/or use of ACL tools.)** |
208 | 283 |
|
209 | 284 | <!-- (TOC Evaluation goes here) --> |
210 | 285 |
|
211 | | -- [ ] **Document assignment of security response roles and how reports are handled.** |
| 286 | +2FA required for org members; branch protections enabled. |
| 287 | + |
| 288 | +To be added as a GitHub member within the Fluid organization, each member should enable two-factor authentication (2FA). Also, the repository has branch protection rules enabled, which enforce certain workflows or requirements before a collaborator can push changes to a branch in the repository. |
| 289 | + |
| 290 | +- [x] **Document assignment of security response roles and how reports are handled.** |
212 | 291 |
|
213 | 292 | <!-- (TOC Evaluation goes here) --> |
| 293 | +One of the core responsibility for maintainers is to respond to time-sensitive security release processes. Although this should be a rare occurrence, if a serious vulnerability is found the maintainers are expected to dedicate time to the fix, which is a process that might take up to several full days of work to implement. |
214 | 294 |
|
215 | | -- [ ] **Document Security Self-Assessment.** |
| 295 | +[GitHub Security Advisor](https://github.com/fluid-cloudnative/fluid/security/advisories) is used as the communication channel during the process of identifying, fixing & shipping the mitigation of the reported vulnerability. |
| 296 | + |
| 297 | +The advisory will only be made public when the patched version is released to inform the community of the breach and its potential security impact. |
| 298 | + |
| 299 | +Additionally, security scanning is enabled for the Fluid project and the[security contacts](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/SECURITY_CONTACTS) are responsible for assessing and providing a fix for the reported vulnerability. |
| 300 | + |
| 301 | + |
| 302 | +- [x] **Document Security Self-Assessment.** |
216 | 303 |
|
217 | 304 | <!-- (TOC Evaluation goes here) --> |
218 | 305 |
|
219 | | -- [ ] **Achieve the Open Source Security Foundation (OpenSSF) Best Practices passing badge.** |
| 306 | +The completed security self-assessment can be found [here](https://github.com/fluid-cloudnative/fluid/blob/3c08916896125990963b34d0b7fb6caae2c78bda/security/self-assessment.md). |
| 307 | + |
| 308 | + |
| 309 | +- [x] **Achieve the Open Source Security Foundation (OpenSSF) Best Practices passing badge.** |
220 | 310 |
|
221 | 311 | <!-- (TOC Evaluation goes here) --> |
| 312 | +The project has a passing [OpenSSF Best Practices](https://www.bestpractices.dev/en/projects/4886) badge, with a 100% completion level, which is linked in [Fluid](https://github.com/fluid-cloudnative/fluid/tree/master) repository. |
| 313 | + |
| 314 | +In addition, Fluid has [OpenSSF Scorecard report](https://scorecard.dev/viewer/?uri=github.com/fluid-cloudnative/fluid) via a score of 9.1 at the time of due diligence assessment. |
| 315 | + |
| 316 | + |
222 | 317 |
|
223 | 318 | ## Ecosystem |
224 | 319 |
|
@@ -250,15 +345,6 @@ Refer to the Adoption portion of this document. |
250 | 345 |
|
251 | 346 | #### Adoption |
252 | 347 |
|
253 | | -##### Adopter 1 - $COMPANY/$INDUSTRY |
254 | | - |
255 | | -_If the Adopting organization needs to remain anonymous, stating the industry vertical is sufficient._ |
256 | | -MONTH YEAR |
257 | | - |
258 | | -##### Adopter 2 - $COMPANY/$INDUSTRY |
259 | | - |
260 | | -_If the Adopting organization needs to remain anonymous, stating the industry vertical is sufficient._ |
261 | | -MONTH YEAR |
262 | 348 |
|
263 | 349 | ##### Adopter 3 - $COMPANY/$INDUSTRY |
264 | 350 |
|
|
0 commit comments