通过客户端调用部署Yaml go示例

时间:2019-07-22 06:45:07

标签: kubernetes client-go

我正在尝试通过客户端将更新部署称为k8。但是我很难更新Deployment.yaml文件中的更改 等同于kubectl的任何代码示例均通过客户端API应用于-f deployment.yaml

1 个答案:

答案 0 :(得分:0)

  

该示例程序演示了管理Deployment资源(例如CreateListUpdateDelete)的基本操作。

此代码hereGo client for Kubernetes.的整个文档都可用。

或者您也可以编写自己的函数以将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
}