I am trying to call the update deployment through the client go for k8. But I am having hard time update the changes from deployment.yaml file any code examples for an equivalent to kubectl apply -f deployment.yaml through the client-go APIs
This example program demonstrates the fundamental operations for managing on Deployment resources, such as
Create,List,UpdateandDelete.
Code for this is available here and the whole documentation for Go client for Kubernetes..
Or you can just write your own function to deploy the yaml as a parameter.
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
}