kubernetes / client-go

Go client for Kubernetes.
Apache License 2.0
8.78k stars 2.9k forks source link

`exec` command timeout #1311

Closed HelloFillip closed 3 months ago

HelloFillip commented 8 months ago

I'm trying to run the equivalent of kubectl exec ... on a pod running on a local Rancher Desktop environment. The kubectl command works as expected, and I can list pods easily with client-go.

However, when trying to run a shell command I'm getting a timeout.

    pods, err := clientset.CoreV1().Pods("").List(context.TODO(), metav1.ListOptions{})
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("There are %d pods in the cluster\n", len(pods.Items))

    namespace := "default"
    podName := "vault-0"
    request := clientset.CoreV1().RESTClient().Post().Resource("pods").Name(podName).Namespace("default").SubResource("exec")

    cmd := []string{
        "sh",
        "touch",
        "/tmp/bobsfile",
    }

    option := &v1.PodExecOptions{
        Command:   cmd,
        Container: "",
        Stdin:     false,
        Stdout:    true,
        Stderr:    true,
        TTY:       false,
    }

    scheme := runtime.NewScheme()
    parameterCodec := runtime.NewParameterCodec(scheme)
    v1.AddToScheme(scheme)

    request.VersionedParams(
        option,
        parameterCodec, 
    )

    exec, err := remotecommand.NewSPDYExecutor(kubeConfig, "POST", request.URL())

    if err != nil {
        print(err.Error())
    }

    err = exec.StreamWithContext(context.Background(), remotecommand.StreamOptions{
        Stdin:  os.Stdin,
        Stdout: os.Stdout,
        Stderr: os.Stderr,
    })

    if err != nil {
        print(err.Error())
    }

Any help is greatly appreciated.

HelloFillip commented 8 months ago

When I removed the Stdin option from remotecommand.StreamOptions it works as expected. I'm running macOS & zsh, if that's impacting this.

k8s-triage-robot commented 5 months ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot commented 4 months ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot commented 3 months ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/close not-planned

k8s-ci-robot commented 3 months ago

@k8s-triage-robot: Closing this issue, marking it as "Not Planned".

In response to [this](https://github.com/kubernetes/client-go/issues/1311#issuecomment-2028682945): >The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. > >This bot triages issues according to the following rules: >- After 90d of inactivity, `lifecycle/stale` is applied >- After 30d of inactivity since `lifecycle/stale` was applied, `lifecycle/rotten` is applied >- After 30d of inactivity since `lifecycle/rotten` was applied, the issue is closed > >You can: >- Reopen this issue with `/reopen` >- Mark this issue as fresh with `/remove-lifecycle rotten` >- Offer to help out with [Issue Triage][1] > >Please send feedback to sig-contributor-experience at [kubernetes/community](https://github.com/kubernetes/community). > >/close not-planned > >[1]: https://www.kubernetes.dev/docs/guide/issue-triage/ Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.