Как клиент времени выполнения контроллера может заставить RESTClient выполнить команду
Мы успешно создали оператора через kubebuilder 2.0. В этом операторе нам нужно запустить cmd в модуле, прежде чем мы используем k8s.io/client-go/kubernetes.Clientset, который захватывает restconfig и запускает как
execReq := o.clientset.CoreV1().RESTClient().Post().
Resource("pods").
Name(Podname).
Namespace("default").
SubResource("exec")
execReq.VersionedParams(&corev1.PodExecOptions{
Command: SqlCommand,
Stdin: true,
Stdout: true,
Stderr: true,
}, scheme.ParameterCodec)
exec, err := remotecommand.NewSPDYExecutor(o.restConfig, "POST", execReq.URL())
if err != nil {
return fmt.Errorf("error while creating Executor: %v", err)
}
err = exec.Stream(remotecommand.StreamOptions{
Stdin: os.Stdin,
Stdout: os.Stdout,
Stderr: os.Stderr,
Tty: false,
})
if err != nil {
return fmt.Errorf("error in Stream: %v", err)
} else {
return nil
}
В мире времени выполнения контроллера я не могу найти RESTClient от клиента времени выполнения контроллера.
Интересно, как мы можем выполнить cmd в модуле от оператора?
спасибо (отредактировано)