背景
golang想要解析yaml文件,基本上得先转结构体。那能不能使用一些简单的语法来直接访问呢?
比如我要访问kubernetes deployment的副本值:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
spec.replicas
轮子
我写了一个解析动态yaml的库,地址在:https://github.com/oneslideicywater/go-yamlparser
可以使用简单的语法,直接访问到动态yaml的值:
func main() {
// result:=ReadString("metadata.name","test.yaml")
result:=ReadString("spec.template.spec.containers[0].name","test.yaml")
fmt.Println(result)
result2:=ReadInt("spec.replica","test.yaml")
fmt.Println(result2)
}