Skip to content

Instantly share code, notes, and snippets.

@klingtnet
Created June 25, 2019 16:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save klingtnet/f243f494b8f167631f6dc0f9607ea59f to your computer and use it in GitHub Desktop.
Save klingtnet/f243f494b8f167631f6dc0f9607ea59f to your computer and use it in GitHub Desktop.
package main
import (
"bytes"
"fmt"
"io"
"log"
"gopkg.in/yaml.v2"
)
// https://github.com/kubernetes/kubernetes/blob/master/hack/testdata/multi-resource-yaml.yaml
const multiYAML = `
apiVersion: v1
kind: Service
metadata:
name: mock
labels:
app: mock
spec:
ports:
- port: 99
protocol: TCP
targetPort: 9949
selector:
app: mock
---
apiVersion: v1
kind: ReplicationController
metadata:
name: mock
spec:
replicas: 1
selector:
app: mock
template:
metadata:
labels:
app: mock
spec:
containers:
- name: mock-container
image: k8s.gcr.io/pause:2.0
ports:
- containerPort: 9949
`
func main() {
b := bytes.NewBufferString(multiYAML)
dec := yaml.NewDecoder(b)
// https://github.com/go-yaml/yaml/pull/301/files
l := []map[interface{}]interface{}{}
for {
m := make(map[interface{}]interface{})
err := dec.Decode(&m)
if err != nil {
if err != io.EOF {
log.Fatal(err)
} else {
break
}
}
l = append(l, m)
}
fmt.Printf("%v\n", l)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment