0

我正在尝试通过客户端调用更新部署 go for k8。但是我很难通过client-go API更新deployment.yaml文件的任何代码示例,以等效于kubectl apply -f deployment.yaml

4

1 回答 1

0

此示例程序演示了管理部署资源的基本操作,例如Create、和。ListUpdateDelete

此处提供了此代码以及适用于 Kubernetes的 Go 客户端的整个文档。.

或者您可以编写自己的函数来将 yaml 部署为参数。

func cellDeploy(pathToFileName string) error {
    cmd := exec.Command("kubectl", "apply", "-f", pathToFileName)
    stdoutReader, _ := cmd.StdoutPipe()
    stdoutScanner := bufio.NewScanner(stdoutReader)
    go func() {
        for stdoutScanner.Scan() {
            fmt.Println(stdoutScanner.Text())
        }
    }()
    stderrReader, _ := cmd.StderrPipe()
    stderrScanner := bufio.NewScanner(stderrReader)
    go func() {
        for stderrScanner.Scan() {
            fmt.Println(stderrScanner.Text())
        }
    }()
    err := cmd.Start()
    if err != nil {
        fmt.Printf("Error : %v \n", err)
        os.Exit(1)
    }
    err = cmd.Wait()
    if err != nil {
        fmt.Printf("Error: %v \n", err)
        os.Exit(1)
    }

    return nil
}
于 2019-07-22T13:45:25.270 回答