kuma
1package config
2
3import (
4"sigs.k8s.io/yaml"
5)
6
7func FromYAML(content []byte, cfg Config) error {
8return yaml.Unmarshal(content, cfg)
9}
10
11func ToYAML(cfg Config) ([]byte, error) {
12return yaml.Marshal(cfg)
13}
14
15// ToJson converts through YAML, because we only have `yaml` tags on Config.
16// This JSON cannot be parsed by json.Unmarshal because durations are marshaled by yaml to pretty form like "1s".
17// To change it to simple json.Marshal we need to add `json` tag everywhere.
18func ToJson(cfg Config) ([]byte, error) {
19yamlBytes, err := ToYAML(cfg)
20if err != nil {
21return nil, err
22}
23// there is no easy way to convert yaml to json using gopkg.in/yaml.v2
24return yaml.YAMLToJSON(yamlBytes)
25}
26