如何并行运行Helm测试?求Helm v3替代v2--parallel选项方案
Helm v3并行执行测试的替代方案
Helm v3确实砍掉了v2里的--parallel --max并行测试选项,目前可以用这几种方式实现类似效果:
Shell脚本+并行工具手动触发测试
先通过helm template渲染出Chart里的所有测试Job,提取每个Job的名称,然后用GNU Parallel或者shell后台执行的方式逐个触发测试运行。举个简单例子:# 渲染Chart并提取测试Job名称 helm template ./my-chart | grep -E 'name: .*-test' | awk '{print $2}' | while read job; do # 后台启动测试Job kubectl create job --from=cronjob/$job $job-run & done # 等待所有测试完成 wait用GNU Parallel的话更简洁:
helm template ./my-chart | grep -E 'name: .*-test' | awk '{print $2}' | parallel kubectl create job --from=cronjob/{} {}-run测试结束后记得清理临时创建的Job。
拆分测试到独立子Chart
如果测试之间依赖不多,可以把不同测试拆到独立的子Chart里,然后并行部署这些子Chart并各自执行测试:helm install test-auth ./auth-test-chart & helm install test-api ./api-test-chart & wait这样能间接实现测试的并行执行。
社区第三方Helm插件
社区里有一些第三方插件专门解决Helm v3测试并行的问题,你可以在Helm插件仓库里找兼容的插件来用。
内容的提问来源于stack exchange,提问作者Vincent J
相关产品推荐
相关产品推荐

