[英]client-go for Kubernetes run apply commands
如何通過 client-go 從 go 運行 kubectl apply 命令? 例如:我有一個名為 crds.yaml 的文件,我想通過 client-go 運行它
我找不到任何有關如何操作的示例,有人可以幫忙嗎?
您需要解碼您的 .yaml 文件
這是完整的答案(帶有代碼示例)
根據您提供的鏈接上的內容,我最終接到了此類電話
yamlFile, err := ioutil.ReadFile("custom.yaml")
if err != nil {
log.Printf("yamlFile.Get err #%v ", err)
}
var ctx context.Context
var c client.Client
var actionFn ForEachObjectInYAMLActionFunc
err = ForEachObjectInYAML(ctx, c, yamlFile, "default", actionFn)
if err != nil {
fmt.Println(err)
}
但它失敗了
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x10ac5cc]
goroutine 1 [running]:
main.ForEachObjectInYAML({0x0, 0x0}, {0x0, 0x0}, {0xc000880000?, 0xc0000021a0?, 0x200000003?}, {0x12bf20f, 0x7}, 0x0)
apply.go:125 +0x12c
main.main()
apply.go:34 +0xc5
exit status 2
還有:
if err := actionFn(ctx, c, obj); err != nil {
return err
}
知道我做錯了什么嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.