如果您想给 Higress 贡献代码,请参考参与贡献

    代码目录结构说明

    • cmd: 命令行参数解析等处理代码

    • pkg/ingress: Ingress 资源转换为 Istio 资源等相关代码

    • pkg/bootstrap: 包括启动 gRPC/xDS/HTTP server 等的代码

    • registry: 实现对接多种注册中心进行服务发现的代码

    • envoy: 依赖的 envoy 仓库 commit

    • istio: 依赖的 istio 仓库 commit

    • plugins: Higress 插件 sdk,以及官方内置插件代码

    • script: 编译相关脚本

    • docker: docker 镜像构建相关脚本

    在编译过程中会自动执行make prebuild,将产生 external 目录,这是将用到的 envoy 和 istio 依赖

    如果要修改 envoy 和 istio 代码,可以直接在 external 目录下修改,并进行重命名,再执行 prebuild,之后对比生成补丁文件,例如:

    1. mv external/envoy external/envoy_new
    2. make prebuild
    3. cd external
    4. diff -Naur envoy envoy_new > envoy.patch

    测试完成后,可以将对应的补丁文件,patch 到 envoy 或 istio 的仓库里进行提交.

    首先 fork higress 的 envoyistio 仓库,接着推送你的改动,并提交 PR,例如:

    1. cd envoy
    2. git checkout -b <Your branch name>
    3. patch -p1 < envoy.patch
    4. git add -u
    5. git commit -m <Your change info>
    6. git push origin <Your branch name>