簡體   English   中英

Kube.netes 的 client-go 運行應用命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM