opencurve / curve-operator

Curve Storage Orchestration for Kubernetes
23 stars 21 forks source link

Question about Curve Summer Coding Camp #77

Closed tiansuo114 closed 4 months ago

tiansuo114 commented 1 year ago

General Question

我在对开发者活动中的项目进行查看时,发现在opencurve/curve项目目录下有develop_guides.md这类文档,来对想要参与的开发者进行指引,其中提到了如何参与项目并进行提交pr,以及代码检查等等细节,我注意到其中提到在进行提交时会自动经过curve ci进行代码检查,我猜测在对curve中提出的issue进行编写时,并不需要在本地运行整个项目,只需通过测试工具保证代码质量并且通过ci测试,即可保证pr中编写的代码是符合规范并且可运行的(不一定正确) 而curve-operator目录下没有develop_guides.md这类文档,并且curve-operator无法进行k8s单机部署,如果我想参与curve-operator的代码提交编写工作,我该如何在无法本地构建k8s 三节点集群的情况下,参与curve-operator的开发

Questions to answer

1.curve-operator是否有类似于opencurve/curve/develop_guides.md 的开发者指引文档,若有,我该以何种方式找到他 2.如果我想参与curve-operator的代码提交编写工作,我该如何在无法本地构建k8s 三节点集群的情况下,参与curve-operator的开发

lizonglingo commented 1 year ago

Q1

关于 curve-operator

curve-operator 貌似没有 Contribute 规范相关文档,您可以看到目前这个仓库还需要更多的贡献者参与,同时 curve 也努力在适配 k8s 的部署范式。curve-operator 本身是为了最大程度减少 curve 在 k8s 上部署的运维压力,将不同组件之间较复杂的部署逻辑封装在 operator 中,自动化完成部署工作。

关于贡献

我认为,开发 operator 不需要了解 curve core 的实现细节,但要了解 curve bs/fs 不同组件的职能和协作,同时,curve 的组件以容器化运行,这使不同组件之间有比较清晰的界限。

curve operator 的主要内容在 pkg 中,该目录的划分相对清晰,可以结合源码和 curve-operator 运行时的 log 过一遍 curve 各个组件的启动顺序。

我的做法是 fork 仓库后,自己决定是否在新的分支上进行开发,修改代码后,使用仓库中的 Dockerfile 打包上传自己的仓库,然后在部署时将 operator 换为自己的镜像,部署集群,验证功能。

关于测试

在 workflow 中,可看到对新构建的 operator 进行了部署,验证集群中负载的状态,我是这样理解的。对一个功能进行全面的测试还是很费功夫的,有时候 Pod Ready 可能不能证明功能正确。这方面看团队如何去优化。

Q2