loft-sh / devpod

Codespaces but open-source, client-only and unopinionated: Works with any IDE and lets you use any cloud, kubernetes or just localhost docker.
https://devpod.sh
Mozilla Public License 2.0
8.44k stars 311 forks source link

No support for (forward) http proxy #976

Closed u72z closed 3 months ago

u72z commented 3 months ago

DevPod cannot connect to the internet in an airgapped environment (behind a corporate proxy)

I would expect a proxy option in the settings where to configure the proxy or have it use the system's default

J-PC commented 3 months ago

I have the same problem and and I succeeded setting environment variables in powershell and launching DevPod from there.

It obviously respects the http_proxy and https_proxy environment variables but it shouldn't be necessary. A proxy should be configurable from desktop app and CLI setting it manually or better, detecting the system proxy setting on a Windows system like what you can find in Firefox proxy configuration. It's clearly a requirement in a corporate environement.

89luca89 commented 3 months ago

Hi @u72z @J-PC

Yea it would make sense to have an easy to configure (from GUI and CLI) context option for the proxies

Will discuss internally for the feature, or PR are welcome if someone wants to chime in :smile:

u72z commented 3 months ago

I have the same problem and and I succeeded setting environment variables in powershell and launching DevPod from there.

interesting, were you able to have the GUI to connect via the proxy as well or does this only apply to the cli ?

89luca89 commented 3 months ago

I have the same problem and and I succeeded setting environment variables in powershell and launching DevPod from there.

interesting, were you able to have the GUI to connect via the proxy as well or does this only apply to the cli ?

if those are env variables they can be passed by the UI using the new Additional Flags experimental feature:

image

u72z commented 3 months ago

I have the same problem and and I succeeded setting environment variables in powershell and launching DevPod from there.

interesting, were you able to have the GUI to connect via the proxy as well or does this only apply to the cli ?

if those are env variables they can be passed by the UI using the new Additional Flags experimental feature:

image

Running the latest version for Windows and can't see the section CLI Additional Flags in the experimental features, am I missing something ?

image

pascalbreuninger commented 3 months ago

@u72z this will be available with v0.5.5 tomorrow

u72z commented 2 months ago

The cli additional flags is indeed available with the v0.5.5 version, but the proxy variables set with --workspace-env HTTP_PROXY=xxx isn't taken into account (upper and lower case)

pascalbreuninger commented 2 months ago

@u72z There is no HTTP_PROXY env var in your container even after restarting?

u72z commented 2 months ago

yes after restarting. I don't think it goes far enough to even start talking about containers.

Adding a provider or a workspace fails (timeout)

Debug mode is enabled but I don't see any trace of this variable.

The first line while starting a workspace is already pretty explicit:

`[12:16:34] debug error sending telemetry request: Post "https://admin.loft.sh/analytics/v1/devpod/v1/events": context deadline exceeded (Client.Timeout exceeded while awaiting headers) [12:16:51] debug Acquire workspace lock... [12:16:51] debug Acquired workspace lock... [12:16:51] info Creating devcontainer... [12:16:51] debug Inject and run command: 'C:\Program Files\DevPod\devpod-cli.exe' helper ssh-server --stdio --debug

[...]

info error downloading workspace vscode-remote-try-node-docker binaries: downloading binary KUBERNETES_PROVIDER: download binary: download file: Head "https://github.com/loft-sh/devpod-provider-kubernetes/releases/download/v0.1.5/devpod-provider-kubernetes-windows-amd64.exe": dial tcp 140.82.121.4:443: connectex `

pascalbreuninger commented 2 months ago

Ah I see, you'd need to set the proxy on the hostmachine as well... Do you use the GUI?

u72z commented 2 months ago

yes mainly the UI, can those variables be set for the host machine with cli flags too on devpod level, instead of messing around with the (proxy's) system config ?

pascalbreuninger commented 2 months ago

With #1016 you'll be able to set additional environment variables for all commands on your current machine as well 👍 We'll probably release that in a week, in the meantime I can cut an alpha release

pascalbreuninger commented 2 months ago

It's available now with the v0.5.6 release