我从中解析结构values.yaml
并想在其中使用它template.yaml
这是我的values.yaml
文件:
services: app: image: matryoshka/app replicaCount: 1 cron: image: matryoshka/cron replicaCount: 1
这是我的template.yaml
(无效代码):
{{- range $key, $value := .Services}} {{$key}}{{$value}} {{- end}}
这给了我错误:
panic: template: template.yaml:1:26: executing "template.yaml" at <.Services>: range can't iterate over {{atryoshka/app 1} {matryoshka/cron 1}}
这是我的.go
代码:
package main
import (
"html/template"
"io/ioutil"
"os"
"path/filepath"
"gopkg.in/yaml.v2"
)
type Values struct {
Services struct {
App struct {
Image string `yaml:"image"`
ReplicaCount string `yaml:"replicaCount"`
} `yaml:"app"`
Cron struct {
Image string `yaml:"image"`
ReplicaCount string `yaml:"replicaCount"`
} `yaml:"cron"`
}
}
func parseValues() Values {
var values Values
filename, _ := filepath.Abs("./values.yaml")
yamlFile, err := ioutil.ReadFile(filename)
err = yaml.Unmarshal(yamlFile, &values)
if err != nil {
panic(err)
}
return values
}
func insertValues(class Values) {
paths := []string{"template.yaml"}
t, err := template.New(paths[0]).ParseFiles(paths...)
if err != nil {
panic(err)
}
err = t.Execute(os.Stdout, class)
if err != nil {
panic(err)
}
}
func main() {
values := parseValues()
insertValues(values)
}
如何.Services正确迭代template.yaml?我发现只有选项,{{- range $key, $value := .Services}}但它不起作用。
函数式编程
相关分类