You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grafana Tanka中跳过Helm测试资源的部署?

忽略Helm Chart测试资源的三种方法

方法1:通过Tanka的helm.template参数跳过测试渲染

Helm的helm template命令支持--skip-tests选项,Tanka的helm.template可直接传递skipTests参数启用该功能,这是最直接的解决方式:

local tanka = import 'github.com/grafana/jsonnet-libs/tanka-util/main.libsonnet';
local helm = tanka.helm.new(std.thisFile);

{
  myChart: helm.template('chart', '../../charts/mychart', {
     namespace: 'mychart',
     values: {
       // 保留原有的values配置
     },
     skipTests: true, // 新增此参数,跳过所有测试资源渲染
   }),
}

方法2:用Jsonnet过滤测试资源

如果skipTests参数不生效,或需要自定义过滤规则,可在Tanka中手动过滤测试资源。比如筛选掉名称含test的Job、或带有特定测试注解的资源:

local tanka = import 'github.com/grafana/jsonnet-libs/tanka-util/main.libsonnet';
local helm = tanka.helm.new(std.thisFile);

// 先渲染完整的Chart资源
local rawChartResources = helm.template('chart', '../../charts/mychart', {
     namespace: 'mychart',
     values: {
       // 保留原有的values配置
     },
   });

// 过滤测试资源,可根据实际场景调整条件
{
  myChart: std.filter(function(res) {
    // 示例:排除名称含"test"的Job,或带有helm测试专属注解的资源
    local isTestJob = res.kind == 'Job' and std.strContains(res.metadata.name, 'test');
    local isTestAnnotated = res.metadata.annotations and res.metadata.annotations['helm.sh/chart-test'] == 'true';
    return !isTestJob and !isTestAnnotated;
  }, rawChartResources),
}

方法3:通过Chart的Values禁用测试资源

多数Helm Chart自带禁用测试资源的配置项,通常为tests.enabled: false,直接在values中配置即可从源头关闭测试资源渲染:

local tanka = import 'github.com/grafana/jsonnet-libs/tanka-util/main.libsonnet';
local helm = tanka.helm.new(std.thisFile);

{
  myChart: helm.template('chart', '../../charts/mychart', {
     namespace: 'mychart',
     values: {
       // 保留原有的values配置
       tests: {
         enabled: false, // 禁用Chart内置的测试资源
       },
     },
   }),
}

内容的提问来源于stack exchange,提问作者Lukas Ignatavičius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:31:08