如何使用yq工具从Helm umbrella chart中按依赖名称获取版本?
使用yq从Helm Umbrella Chart中提取指定依赖的版本
针对你给出的Chart.yaml文件,以下是两种主流yq工具的实现方式:
1. mikefarah/yq(Go语言实现,当前主流版本)
直接指定依赖名称
要获取chart1的版本,执行以下命令:
yq e '.dependencies[] | select(.name == "chart1") | .version' Chart.yaml
输出结果:v1.13.0
动态传入依赖名称
通过环境变量动态指定目标依赖名称:
CHART_NAME="chart2" yq e '.dependencies[] | select(.name == strenv(CHART_NAME)) | .version' Chart.yaml
输出结果:v0.11.0
2. kislyuk/yq(Python实现,基于jq)
直接指定依赖名称
要获取chart1的版本,执行以下命令:
yq -r '.dependencies[] | select(.name == "chart1") | .version' Chart.yaml
输出结果:v1.13.0
动态传入依赖名称
通过参数传递目标依赖名称:
CHART_NAME="chart2" yq -r --arg chart "$CHART_NAME" '.dependencies[] | select(.name == $chart) | .version' Chart.yaml
输出结果:v0.11.0
语法说明
.dependencies[]:遍历所有依赖项select(.name == "xxx"):筛选出名称匹配的依赖项.version:提取该依赖项的版本字段
内容的提问来源于stack exchange,提问作者Demmy
相关产品推荐
相关产品推荐

