in tpu-provisioner/internal/cloud/gke_service.go [41:62]
func (g *GKENodePoolService) Create(ctx context.Context, req *containerv1beta1.CreateNodePoolRequest, callbacks OpCallbacks) error {
call := g.Service.Projects.Locations.Clusters.NodePools.Create(g.ClusterContext.ClusterName(), req)
op, err := call.Do()
if err != nil {
if callbacks.ReqFailure != nil {
callbacks.ReqFailure(err)
}
return fmt.Errorf("do: %w", err)
}
if err := waitForGkeOp(g.Service, g.ClusterContext, op); err != nil {
if callbacks.OpFailure != nil {
callbacks.OpFailure(err)
}
return fmt.Errorf("waiting for operation: %w", err)
}
if callbacks.Success != nil {
callbacks.Success()
}
return nil
}