Python 从头盔图表中提取docker图像
有没有办法通过python从helm图表中提取docker图像 我希望避免任何: 舵安装-干运行舵图>日志 bash脚本来提取此信息 例如,如果头盔图表包含两幅图像,我想提取这些图像 例如:Python 从头盔图表中提取docker图像,python,docker,extract,kubernetes-helm,docker-image,Python,Docker,Extract,Kubernetes Helm,Docker Image,有没有办法通过python从helm图表中提取docker图像 我希望避免任何: 舵安装-干运行舵图>日志 bash脚本来提取此信息 例如,如果头盔图表包含两幅图像,我想提取这些图像 例如: image: repo/image1:1.0 image1.yaml file image: repo/image2:1.0 image2.yaml file 将头盔图表的内容呈现为YAML文件,并将其打印到标准输出。一个又快又脏的回答是 helm template helm-chart
image: repo/image1:1.0 image1.yaml file
image: repo/image2:1.0 image2.yaml file
将头盔图表的内容呈现为YAML文件,并将其打印到标准输出。一个又快又脏的回答是
helm template helm-chart | grep 'image:'
但是您也可以使用一些工具,比如基于YAML结构进行查询
您确实需要使用某种类型的Helm命令来渲染模板,因为它非常常见,可以指定如下内容
image: 'some/image:{{ .Values.tag }}'
这取决于输入文件。另一方面,您可以使用常用的Helm-set或-f选项来指定值,因此如果您要在不同的环境或不同的构建中使用不同的图像,或者只包括一些基于设置的部署,您将获得部署内容的准确反映。将头盔图表的内容呈现为YAML文件,并将其打印到标准输出。一个又快又脏的回答是
helm template helm-chart | grep 'image:'
但是您也可以使用一些工具,比如基于YAML结构进行查询
您确实需要使用某种类型的Helm命令来渲染模板,因为它非常常见,可以指定如下内容
image: 'some/image:{{ .Values.tag }}'
这取决于输入文件。另一方面,您可以使用常用的Helm-set或-f选项来指定值,因此如果您要在不同的环境或不同的构建中使用不同的图像,或者只包括一些基于设置的部署,您将获得部署内容的准确反映。在一篇博文中提供了一个极好的答案,所有的功劳都归于他
要列出给定舵图中的所有唯一图像,请执行以下操作:
helm template . \
| yq '..|.image? | select(.)' \
| sort -u
头盔模板
这假定您位于包含舵图的目录中。template命令打印出通常通过helm安装创建的所有Kubernetes对象。其输出格式为yaml
yq’…|图像?|选择。”
yq是流行的jq命令行工具的变体。jq希望处理JSON流,而yq允许您处理yaml
yq的神奇之处在于它提供的过滤器。过滤器作用于某些输入并执行某些操作以产生输出。在本例中,我们使用递归下降操作符查找所有名为image的字段。这个在图像中?指示yq应生成图像值,如果图像值不存在,则应生成null。要选择的管道。将忽略所有空值,最后返回一个新行分隔的图像字符串。在一篇博文中提供了一个非常好的答案,所有功劳都归他所有
要列出给定舵图中的所有唯一图像,请执行以下操作:
helm template . \
| yq '..|.image? | select(.)' \
| sort -u
头盔模板
这假定您位于包含舵图的目录中。template命令打印出通常通过helm安装创建的所有Kubernetes对象。其输出格式为yaml
yq’…|图像?|选择。”
yq是流行的jq命令行工具的变体。jq希望处理JSON流,而yq允许您处理yaml
yq的神奇之处在于它提供的过滤器。过滤器作用于某些输入并执行某些操作以产生输出。在本例中,我们使用递归下降操作符查找所有名为image的字段。这个在图像中?指示yq应生成图像值,如果图像值不存在,则应生成null。要选择的管道。将忽略所有空值,最终返回一个新行分隔的图像字符串。我有一个类似的用例,并构建了一个工具来提取图像、标记并将它们推送到不同的注册表 创建包含所有图表的yaml文件 通过传递配置文件-helm\u image\u mirror-c config.yaml来运行该工具
我有一个类似的用例,并构建了一个工具来提取图像、标记并将它们推送到不同的注册中心 创建包含所有图表的yaml文件 通过传递配置文件-helm\u image\u mirror-c config.yaml来运行该工具
你是什么意思?你只需要图像名称吗?@C.Nivs我想在掌舵图中列出所有docker图像的列表。所有图像:repo/image1:1.0图像:repo/image2:1.0提取是什么意思?你只需要图像名称吗?@C.Nivs我想在掌舵图中列出所有docker图像的列表。所有图像:repo/image1:1.0图像:repo/image2:1.0要清除,使用的yq工具为。要清除,使用的yq工具为。