我们提供安全,免费的手游软件下载!

安卓手机游戏下载_安卓手机软件下载_安卓手机应用免费下载-先锋下载

当前位置: 主页 > 软件教程 > 软件教程

深度重构:Kubernetes Operator开发中的e2e测试

来源:网络 更新时间:2024-05-28 11:31:23

最近在为opentelemetry-operator提交一个标签选择器的功能时,因为当时修改的函数是私有的,无法添加单测函数,所以社区建议我补充一个e2e test。

在当前版本下,只要给deployment打上了 instrumentation.opentelemetry.io/inject-java: "true" 这类注解就会给该deployment注入agent。但没办法指定不同的agent版本(或者不同的环境变量),所以希望可以新增一个选择器,同时可以针对不同的deployment维护不同版本的 Instrumentation (用于控制需要注入deployment的资源);这样就可以灵活控制了。

在这之前我其实也很少做kubernetes的operator开发,对如何做kubernetes的e2e测试也比较陌生,好在社区提供了详细的贡献文档。

安装

简单来说需要两个关键组件:

  • kind: kubernetes in docker,是可以在本地利用docker启动一个kubernetes集群的工具,通常用于在本地进行开发、测试关于kubernetes相关的功能。
    • 安装kind的前提是本地已经安装好了docker。
  • chainsaw: 一个e2e测试框架,提供了声明式的方式定义测试用例,也有着丰富断言功能。

他们的安装都很简单,只要本地安装好了golang,直接使用go install即可:

go install sigs.k8s.io/kind@v0.22.0
go install github.com/kyverno/chainsaw@latest