我正在尝试通过客户端调用更新部署 go for k8。但是我很难通过client-go API更新deployment.yaml文件的任何代码示例,以等效于kubectl apply -f deployment.yaml
问问题
229 次
1 回答
0
此示例程序演示了管理部署资源的基本操作,例如
Create
、和。List
Update
Delete
此处提供了此代码以及适用于 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 回答