1 回答

TA貢獻1820條經驗 獲得超10個贊
首先,您需要修復結構字段標簽以反映您想要的結構。Spec在NetworkPolicy需要序列化為鍵spec及其字段PodSelector為podselector:
type NetworkPolicy struct {
ApiVersion string `yaml:"apiVersion`
Kind string `yaml:"kind"`
Metadata Metadata `yaml:"metadata"`
Spec Spec `yaml:"spec"`
PolicyTypes []string `yaml:"policyTypes"`
}
type Spec struct {
PodSelector NetworkPolicySpecPodSelector `yaml:"podselector"`
}
然后你可以簡單地使用文字:
np := NetworkPolicy{
ApiVersion: "networking.k8s.io/v1",
Kind: "NetworkPolicy",
Metadata: Metadata{
Name: "allow-ingress",
Namespace: "default",
},
Spec: Spec{
PodSelector: NetworkPolicySpecPodSelector{
MatchLabels: map[string][]string{
"env": []string{"prod"},
},
},
},
PolicyTypes: []string{"Ingress"},
}
這是操場上的完整示例:https ://go.dev/play/p/xJ-mmCVcv2M
注意:在您的代碼片段中,類型MatchLabels是map[string][]string. 我保持這樣,雖然從示例中看起來像你想要map[string]string的。
- 1 回答
- 0 關注
- 108 瀏覽
添加回答
舉報