3 回答
TA贡献2051条经验 获得超10个赞
他们的 API 已经更新,所以它是这样的:
import k8sJson "k8s.io/apimachinery/pkg/runtime/serializer/json"
...
serializer := k8sJson.NewSerializerWithOptions(
k8sJson.DefaultMetaFactory, nil, nil,
k8sJson.SerializerOptions{
Yaml: true,
Pretty: true,
Strict: true,
},
)
TA贡献1840条经验 获得超5个赞
找到它,以供将来参考,以下是您可能想要执行的操作:
package main
import (
"os"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/runtime/serializer/json"
)
func main() {
ns := &v1.Namespace{
TypeMeta: unversioned.TypeMeta{
Kind: "Namespace",
APIVersion: "v1",
},
ObjectMeta: v1.ObjectMeta{
Name: "test",
},
}
e := json.NewYAMLSerializer(json.DefaultMetaFactory, nil, nil)
err := e.EncodeToStream(ns, os.Stdout)
if err != nil {
panic(err)
}
}
这可能不是最佳实践(欢迎提出更好的建议),但它确实可以。
TA贡献1820条经验 获得超10个赞
package main
import (
"os"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/serializer/json"
)
func main() {
ns := &v1.Namespace{
TypeMeta: metav1.TypeMeta{
Kind: "Namespace",
APIVersion: "v1",
},
ObjectMeta: metav1.ObjectMeta{
Name: "test",
},
}
e := json.NewYAMLSerializer(json.DefaultMetaFactory, nil, nil)
//err := e.EncodeToStream(ns, os.Stdout)
err := e.Encode(ns, os.Stdout)
if err != nil {
panic(err)
}
}
- 3 回答
- 0 关注
- 144 浏览
添加回答
举报