У вас поля в структуре не экспортируемые, по этому и не работает.
Вот рабочий пример
package main
import (
"fmt"
"io/ioutil"
"gopkg.in/yaml.v3"
)
func main() {
fmt.Println("start")
c, err := readYaml("./tets.yml")
if err != nil {
panic(err.Error())
}
fmt.Println(c.Master, c.Kibana, c.Data, c.Pass, c.User)
}
type ClusterEnv struct {
Master []string `yaml:"master,flow"`
Data []string `yaml:"data,flow"`
Kibana []string `yaml:"kibana,flow"`
User string `yaml:"user"`
Pass string `yaml:"pass"`
}
func readYaml(filename string) (*ClusterEnv, error) {
buf, err := ioutil.ReadFile(filename)
if err != nil {
return nil, err
}
c := &ClusterEnv{}
err = yaml.Unmarshal(buf, c)
if err != nil {
return nil, fmt.Errorf("in file %q: %v", filename, err)
}
return c, nil
}