go-templates - 无法将 readFile 的输出转换为 List 进行迭代
问题描述
我正在使用helmfile进行 helm 发布。
我有一个 yaml 文件projects.yaml
# projects.yaml
- yako
- pera
- okta
在values.yaml.gotmpl中,我想遍历projects.yaml的内容:
# values.yaml.gotmpl
{{ $projects := readFile 'projects.yaml' }}
{{ range $_, $project := $projects }}
# do something with $project . e.g: tpl (readFile 'proj-config.yaml') (dict $name $project)
{{ end}}
不幸的是,我收到了这个错误:
failed to render [values.yaml.gotmpl], because of template: stringTemplate:60:41:
executing "stringTemplate" at <$projects>: range can't iterate over projects:
- yako
- pera
- okta
我做了很多盲目的尝试来让它发挥作用:
{{ range $_, $project := $projects | fromYaml }}
{{ range $_, $project := $projects | toYaml }}
{{ range $_, $project := $projects | list }}
没门
解决方案
{{ $projects := readFile "./projects.yaml"}}
{{ range $_, $project := get "projects" $projects }}
{{ $project.attr1 }}
{{end}}
推荐阅读
- python - UPDATE 无法更新 sqlite3 数据库中的属性
- java - 类型参数 T 扩展类不允许在方法中将类用作 T 参数
- python - 在将 kwargs 附加到列表 python 时获取 KeyError
- c# - 使用 Visual Studio 2017 创建 cs2php 编译器
- python - 如何在 Python 中将嵌套数组转换为多维数组(张量)
- c++ - 执行 operator>> 时出错:C++ no operator 与这些操作数匹配,操作数类型为:std::istream >> const double error
- python - Pdoc 将类信息添加到每个枚举变量
- android - 如何正确地将 PorterDuff.Mode.MULTIPLY 应用于 onDraw() 中的可绘制矢量;
- java - 如何在 Java 中从数组中的特定索引向下计数?
- javascript - 动态创建 web 组件