开发环境构建¶
环境准备¶
Kube-OVN 使用 Go 开发并使用 Go Modules 管理依赖, 请确认环境变量 GO111MODULE="on"
。
golangci-lint 被用来扫描代码规范性问题,需要在开发环境安装,请参考local-installation。
为了降低最终生成镜像大小,Kube-OVN 使用了部分 Docker buildx 试验特性,请更新 Docker 至最新版本 并开启 buildx:
docker buildx create --use
构建镜像¶
使用下面的命令下载代码,并生成运行 Kube-OVN 所需镜像:
git clone https://github.com/kubeovn/kube-ovn.git
cd kube-ovn
make release
如需构建在 ARM 环境下运行的镜像,请执行下面的命令:
make release-arm
构建 base 镜像¶
如需要更改操作系统版本,依赖库,OVS/OVN 代码等,需要对 base 镜像进行重新构建。
base 镜像使用的 Dockerfile 为 dist/images/Dockerfile.base
。
构建方法:
# build x86 base image
make base-amd64
# build arm base image
make base-arm64
运行 E2E¶
Kube-OVN 使用:
- KIND 来构建本地 Kubernetes 集群:
go install sigs.k8s.io/kind@latest
- jinjanator 来渲染模板:
pip install jinjanator
- Ginkgo 来运行测试代码:
go install github.com/onsi/ginkgo/v2/ginkgo; go get github.com/onsi/gomega/...
详情请参考相关文档进行依赖安装。
本地执行 E2E 测试:
make kind-init
make kind-install
make e2e
如需运行 Underlay E2E 测试,执行下列命令:
make kind-init
make kind-install-underlay
make e2e-underlay-single-nic
如需运行 ovn vpc nat gw eip, fip, snat, dnat 测试,执行下列命令:
make kind-init
make kind-install
make ovn-vpc-nat-gw-conformance-e2e
如需运行 iptables vpc nat gw eip, fip, snat, dnat 测试,执行下列命令:
make kind-init
make kind-install-vpc-nat-gw
make iptables-vpc-nat-gw-conformance-e2e
如需运行 loadbalancer service 测试,执行下列命令:
make kind-init
make kind-install-lb-svc
make kube-ovn-lb-svc-conformance-e2e
如需清理,执行下列命令:
make kind-clean
微信群 Slack Twitter Support Meeting