Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiuser-OpenShift on OpenShift behind Proxy not starting Workspaces #14052

Closed
wgbeckmann opened this issue Jul 28, 2019 · 36 comments
Closed

Multiuser-OpenShift on OpenShift behind Proxy not starting Workspaces #14052

wgbeckmann opened this issue Jul 28, 2019 · 36 comments
Labels
kind/bug Outline of a bug - must adhere to the bug report template. severity/P1 Has a major impact to usage or development of the system. status/info-needed More information is needed before the issue can move into the “analyzing” state for engineering.
Milestone

Comments

@wgbeckmann
Copy link

Bug

In OpenShift, behind a Proxy Eclipse Che cannot start a workspace.
In the Che-Window I can see:

Loading...
Cleaning /plugins dir
Starting Init Plugin Broker
Unified Che Plugin Broker
List of plugins and editors to install
- redhat/java/latest - Java Linting, Intellisense, formatting, refactoring, Maven/Gradle support and more...
- eclipse/che-machine-exec-plugin/0.0.1 - Che Plug-in with che-machine-exec service to provide creation terminal or tasks for Eclipse CHE workspace machines.
- eclipse/che-theia/7.0.0-next - Eclipse Theia, get the latest release each day.
Starting VS Code and Theia plugins processing
Downloading VS Code extension for plugin 'redhat/java/latest'
Starting Che plugins and editor processing
Downloading VS Code extension for plugin 'redhat/java/latest'
All plugins have been successfully processed
MountVolume.SetUp succeeded for volume "jwtproxy-config-volume" 
MountVolume.SetUp succeeded for volume "che-workspace-token-kb5v4" 
MountVolume.SetUp succeeded for volume "vol28" 
MountVolume.SetUp succeeded for volume "vol36" 
MountVolume.SetUp succeeded for volume "vol35" 
MountVolume.SetUp succeeded for volume "vol139-custom-pv" 
MountVolume.SetUp succeeded for volume "che-workspace-token-kb5v4" 
pulling image "eclipse/che-jwtproxy:latest"
Container image "maven:3.6.0-jdk-11" already present on machine
Created container
Successfully pulled image "eclipse/che-jwtproxy:latest"
Created container
Started container
pulling image "eclipse/che-machine-exec"
Started container
Successfully pulled image "eclipse/che-machine-exec"
Created container
Started container
pulling image "eclipse/che-theia:7.0.0-next"
Successfully pulled image "eclipse/che-theia:7.0.0-next"
Created container
Started container
pulling image "eclipse/che-remote-plugin-runner-java8:7.0.0-next"
Successfully pulled image "eclipse/che-remote-plugin-runner-java8:7.0.0-next"
Created container
Started container

and then, after some time:

Error: Failed to run the workspace: "Server 'theia' in container 'theia-ide7du' not available."

Additionaly I tried to add java-proxy options to the docker-container by setting the java opts in the environment via openshift:
-Dhttp.proxyHost=a.b.c.d -Dhttp.proxyPort=8080 -Dhttps.proxyHost=a.b.c.d -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts='localhost|127.0.0.1|*.my-company.de|vm-openshift-02|*.vm-openshift-02|*.vm-openshift-02.my-company.de|172.30.*|10.*'

I can see in the log of the che-pod that the options are used, but it didn't help.

Che version

7.0.0-rc-5.0-SNAPSHOT

Steps to reproduce

  1. be behind a proxy ;-)
  2. Install OpenShift (in my case v3.9.0, but I think that is not the problem...)
  3. Set the environment for the installation
export CHE_WORKSPACE_HTTP__PROXY=http://x.x.x.x:8080/
export CHE_WORKSPACE_HTTPS__PROXY=http://x.x.x.x:8080/
export CHE_WORKSPACE_NO__PROXY=.my-company.de,vm-openshift-02.my-company.de,127.0.0.1,x.y.z.a,localhost,vm-openshift-02,.vm-openshift-02.my-company.de
  1. install eclipse che with ./deploy_che.sh --multiuser --project=eclipse-che-mu
    .....
  2. create a new (java) project

Expected behavior

a workspace is running ;-)

Runtime

  • [1.9] kubernetes
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.1+a0ce1bc657", GitCommit:"a0ce1bc", GitTreeState:"clean", BuildDate:"2018-06-24T01:54:00Z", GoVersion:"go1.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.1+a0ce1bc657", GitCommit:"a0ce1bc", GitTreeState:"clean", BuildDate:"2018-06-24T01:54:00Z", GoVersion:"go1.9", Compiler:"gc", Platform:"linux/amd64"}
  • [3.9.0] Openshift
oc v3.9.0+71543b2-33
kubernetes v1.9.1+a0ce1bc657
features: Basic-Auth GSSAPI Kerberos SPNEGO

Server https://console.vm-openshift-02.team-pb.de:8443
openshift v3.9.0+71543b2-33
kubernetes v1.9.1+a0ce1bc657
  • [1.13.1] docker-desktop
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-88.git07f3374.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      07f3374/1.13.1
 Built:           Fri Dec  7 16:13:51 2018
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-88.git07f3374.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      07f3374/1.13.1
 Built:           Fri Dec  7 16:13:51 2018
 OS/Arch:         linux/amd64
 Experimental:    false

Installation method

deploy_che.sh

Environment

CentOS Linux release 7.6.1810 (Core)
and a Proxy

There are so many docker container. From which one do you need the log?
I looked thrue the logs and I cann not see anything special.

So I think, that the communication between the workspace and the core do not work, because the sender thinks he has to use the proxy ... (but it is only a guess...)

@sunix sunix added kind/bug Outline of a bug - must adhere to the bug report template. status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. labels Jul 29, 2019
@l0rd
Copy link
Contributor

l0rd commented Jul 29, 2019

@wgbeckmann I cannot see any evidence thats' a proxy problem: the fact that che-server is not able to contact the workspace may be caused by different problems. It would be useful if you could retrieve theia containers logs anyway or look for any failure in the events or any container that is restarted in the workspace pod. Not saying that's not a proxy problem but it may be something else as well. Another thing is that you are using deploy_che.sh to deploy Che but I would suggest to use chectl instead.

@skabashnyuk is @wgbeckmann configuring the proxy settings correctly?

@l0rd l0rd added status/info-needed More information is needed before the issue can move into the “analyzing” state for engineering. and removed status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. labels Jul 29, 2019
@wgbeckmann
Copy link
Author

Hmm, I cannot find en error in the logs.

Theia:

root INFO Theia app listening on http://0.0.0.0:3100 .
root INFO unzipping the plugin ProxyPluginDeployerEntry {
  deployer:
   PluginTheiaFileHandler { unpackedFolder: '/tmp/theia-unpacked' },
  delegate:
   PluginDeployerEntryImpl {
     originId: 'local-dir:///default-theia-plugins',
     pluginId: 'eclipse_che_ports_plugin.theia',
     map: Map {},
     changes: [],
     acceptedTypes: [],
     currentPath: '/default-theia-plugins/eclipse_che_ports_plugin.theia',
     initPath: '/default-theia-plugins/eclipse_che_ports_plugin.theia',
     resolved: true,
     resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  deployerName: 'PluginTheiaFileHandler' }
root INFO unzipping the plugin ProxyPluginDeployerEntry {
  deployer:
   PluginTheiaFileHandler { unpackedFolder: '/tmp/theia-unpacked' },
  delegate:
   PluginDeployerEntryImpl {
     originId: 'local-dir:///default-theia-plugins',
     pluginId: 'eclipse_che_theia_containers_plugin.theia',
     map: Map {},
     changes: [],
     acceptedTypes: [],
     currentPath:
      '/default-theia-plugins/eclipse_che_theia_containers_plugin.theia',
     initPath:
      '/default-theia-plugins/eclipse_che_theia_containers_plugin.theia',
     resolved: true,
     resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  deployerName: 'PluginTheiaFileHandler' }
root INFO unzipping the plugin ProxyPluginDeployerEntry {
  deployer:
   PluginTheiaFileHandler { unpackedFolder: '/tmp/theia-unpacked' },
  delegate:
   PluginDeployerEntryImpl {
     originId: 'local-dir:///default-theia-plugins',
     pluginId: 'eclipse_che_theia_factory_plugin.theia',
     map: Map {},
     changes: [],
     acceptedTypes: [],
     currentPath:
      '/default-theia-plugins/eclipse_che_theia_factory_plugin.theia',
     initPath:
      '/default-theia-plugins/eclipse_che_theia_factory_plugin.theia',
     resolved: true,
     resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  deployerName: 'PluginTheiaFileHandler' }
root INFO unzipping the plugin ProxyPluginDeployerEntry {
  deployer:
   PluginTheiaFileHandler { unpackedFolder: '/tmp/theia-unpacked' },
  delegate:
   PluginDeployerEntryImpl {
     originId: 'local-dir:///default-theia-plugins',
     pluginId: 'eclipse_che_theia_ssh_plugin.theia',
     map: Map {},
     changes: [],
     acceptedTypes: [],
     currentPath: '/default-theia-plugins/eclipse_che_theia_ssh_plugin.theia',
     initPath: '/default-theia-plugins/eclipse_che_theia_ssh_plugin.theia',
     resolved: true,
     resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  deployerName: 'PluginTheiaFileHandler' }
root INFO unzipping the plugin ProxyPluginDeployerEntry {
  deployer:
   PluginTheiaFileHandler { unpackedFolder: '/tmp/theia-unpacked' },
  delegate:
   PluginDeployerEntryImpl {
     originId: 'local-dir:///default-theia-plugins',
     pluginId: 'eclipse_che_welcome_plugin.theia',
     map: Map {},
     changes: [],
     acceptedTypes: [],
     currentPath: '/default-theia-plugins/eclipse_che_welcome_plugin.theia',
     initPath: '/default-theia-plugins/eclipse_che_welcome_plugin.theia',
     resolved: true,
     resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  deployerName: 'PluginTheiaFileHandler' }
root INFO unzipping the plugin ProxyPluginDeployerEntry {
  deployer:
   PluginTheiaFileHandler { unpackedFolder: '/tmp/theia-unpacked' },
  delegate:
   PluginDeployerEntryImpl {
     originId: 'local-dir:///default-theia-plugins',
     pluginId: 'task_plugin.theia',
     map: Map {},
     changes: [],
     acceptedTypes: [],
     currentPath: '/default-theia-plugins/task_plugin.theia',
     initPath: '/default-theia-plugins/task_plugin.theia',
     resolved: true,
     resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  deployerName: 'PluginTheiaFileHandler' }
root INFO unzipping the plugin ProxyPluginDeployerEntry {
  deployer:
   PluginTheiaFileHandler { unpackedFolder: '/tmp/theia-unpacked' },
  delegate:
   PluginDeployerEntryImpl {
     originId: 'local-dir:///default-theia-plugins',
     pluginId: 'theia_yeoman_plugin.theia',
     map: Map {},
     changes: [],
     acceptedTypes: [],
     currentPath: '/default-theia-plugins/theia_yeoman_plugin.theia',
     initPath: '/default-theia-plugins/theia_yeoman_plugin.theia',
     resolved: true,
     resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  deployerName: 'PluginTheiaFileHandler' }
root INFO unzipping the plugin ProxyPluginDeployerEntry {
  deployer:
   PluginVsCodeFileHandler { unpackedFolder: '/tmp/vscode-unpacked' },
  delegate:
   PluginDeployerEntryImpl {
     originId: 'local-dir:///default-theia-plugins',
     pluginId: 'vscode-git-1.3.0.1.vsix',
     map: Map {},
     changes: [],
     acceptedTypes: [],
     currentPath: '/default-theia-plugins/vscode-git-1.3.0.1.vsix',
     initPath: '/default-theia-plugins/vscode-git-1.3.0.1.vsix',
     resolved: true,
     resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  deployerName: 'PluginVsCodeFileHandler' }
root INFO PluginTheiaDirectoryHandler: accepting plugin with path /tmp/theia-unpacked/eclipse_che_ports_plugin.theia
root INFO PluginTheiaDirectoryHandler: accepting plugin with path /tmp/theia-unpacked/eclipse_che_theia_containers_plugin.theia
root INFO PluginTheiaDirectoryHandler: accepting plugin with path /tmp/theia-unpacked/eclipse_che_theia_factory_plugin.theia
root INFO PluginTheiaDirectoryHandler: accepting plugin with path /tmp/theia-unpacked/eclipse_che_theia_ssh_plugin.theia
root INFO PluginTheiaDirectoryHandler: accepting plugin with path /tmp/theia-unpacked/eclipse_che_welcome_plugin.theia
root INFO PluginTheiaDirectoryHandler: accepting plugin with path /tmp/theia-unpacked/task_plugin.theia
root INFO PluginTheiaDirectoryHandler: accepting plugin with path /tmp/theia-unpacked/theia_yeoman_plugin.theia
root INFO PluginTheiaDirectoryHandler: accepting plugin with path /tmp/vscode-unpacked/vscode-git-1.3.0.1.vsix
root INFO Resolved "vscode-git-1.3.0.1.vsix" to a VS Code extension "git@1.0.0" with engines: { vscode: '^1.5.0' }
root INFO PluginTheiaDirectoryHandler: accepting plugin with path /plugins/sidecars
root INFO Deploying backend plugin "@eclipse-che/ports-plugin@0.0.1" from "/tmp/theia-unpacked/eclipse_che_ports_plugin.theia/lib/ports-plugin.js"
root INFO Deploying backend plugin "@eclipse-che/theia-containers-plugin@0.0.2" from "/tmp/theia-unpacked/eclipse_che_theia_containers_plugin.theia/lib/containers-plugin.js"
root INFO Deploying backend plugin "@eclipse-che/theia-factory-plugin@0.0.1" from "/tmp/theia-unpacked/eclipse_che_theia_factory_plugin.theia/lib/factory-plugin.js"
root INFO Deploying backend plugin "@eclipse-che/theia-ssh-plugin@0.0.1" from "/tmp/theia-unpacked/eclipse_che_theia_ssh_plugin.theia/lib/ssh-plugin-backend.js"
root INFO Deploying backend plugin "@eclipse-che/welcome-plugin@0.0.1" from "/tmp/theia-unpacked/eclipse_che_welcome_plugin.theia/lib/welcome-plugin.js"
root INFO Deploying backend plugin "task-plugin@0.0.1" from "/tmp/theia-unpacked/task_plugin.theia/lib/task-plugin-backend.js"
root INFO Deploying backend plugin "@theia/yeoman-plugin@0.0.1-1539189859" from "/tmp/theia-unpacked/theia_yeoman_plugin.theia/lib/theia-yeoman-plugin-backend-plugin.js"
root INFO Deploying backend plugin "git@1.0.0" from "/tmp/vscode-unpacked/vscode-git-1.3.0.1.vsix/extension/out/main"
2019/07/30 04:07:57 Use kubernetes implementation
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:	export GIN_MODE=release
 - using code:	gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /connect                  --> main.main.func1 (3 handlers)
[GIN-debug] GET    /attach/:id               --> main.main.func2 (3 handlers)
⇩ Registered RPCRoutes:

Json-rpc MachineExec Routes:
✓ create
✓ check
✓ resize
[GIN-debug] Listening and serving HTTP on :4444

VS-Code

Starting the deployer with the list of resolvers [ LocalDirectoryPluginDeployerResolver {},
  GithubPluginDeployerResolver { unpackedFolder: '/tmp/github-remote' },
  HttpPluginDeployerResolver { unpackedFolder: '/tmp/http-remote' },
  VsCodePluginDeployerResolver { vscodeExtensionsFolder: '/tmp/vscode-extension-marketplace' } ]
Theia Endpoint 17/pid listening on port 2503
Found the list of default plugins ID on env: undefined
Found the list of plugins ID on env: local-dir:///plugins/sidecars/redhat_java_latest
Found the list of default plugins ID from CLI: undefined
unzipping the plugin ProxyPluginDeployerEntry {
  deployer:
   PluginVsCodeFileHandler { unpackedFolder: '/tmp/vscode-unpacked' },
  delegate:
   PluginDeployerEntryImpl {
     originId: 'local-dir:///plugins/sidecars/redhat_java_latest',
     pluginId:
      'redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix',
     map: Map {},
     changes: [],
     acceptedTypes: [],
     currentPath:
      '/plugins/sidecars/redhat_java_latest/redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix',
     initPath:
      '/plugins/sidecars/redhat_java_latest/redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix',
     resolved: true,
     resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  deployerName: 'PluginVsCodeFileHandler' }
unzipping the plugin ProxyPluginDeployerEntry {
  deployer:
   PluginVsCodeFileHandler { unpackedFolder: '/tmp/vscode-unpacked' },
  delegate:
   PluginDeployerEntryImpl {
     originId: 'local-dir:///plugins/sidecars/redhat_java_latest',
     pluginId: 'redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix',
     map: Map {},
     changes: [],
     acceptedTypes: [],
     currentPath:
      '/plugins/sidecars/redhat_java_latest/redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix',
     initPath:
      '/plugins/sidecars/redhat_java_latest/redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix',
     resolved: true,
     resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  deployerName: 'PluginVsCodeFileHandler' }
PluginTheiaDirectoryHandler: accepting plugin with path /tmp/vscode-unpacked/redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix
Resolving "redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix" as a VS Code extension...
Resolved "redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix" to a VS Code extension "vscode-java-debug@0.19.0" with engines: { vscode: '^1.32.0' }
PluginTheiaDirectoryHandler: accepting plugin with path /tmp/vscode-unpacked/redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix
Resolving "redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix" as a VS Code extension...
Resolved "redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix" to a VS Code extension "java@0.46.0" with engines: { vscode: '^1.31.0' }
the accepted plugins are []
the acceptedFrontendPlugins plugins are []
the acceptedBackendPlugins plugins are [ PluginDeployerEntryImpl {
    originId: 'local-dir:///plugins/sidecars/redhat_java_latest',
    pluginId:
     'redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix',
    map: Map { 'package.json' => [Object] },
    changes:
     [ 'PluginVsCodeFileHandler', 'PluginVsCodeDirectoryHandler' ],
    acceptedTypes: [ 1 ],
    currentPath:
     '/tmp/vscode-unpacked/redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix/extension',
    initPath:
     '/plugins/sidecars/redhat_java_latest/redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix',
    resolved: true,
    resolvedByName: 'LocalDirectoryPluginDeployerResolver' },
  PluginDeployerEntryImpl {
    originId: 'local-dir:///plugins/sidecars/redhat_java_latest',
    pluginId: 'redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix',
    map: Map { 'package.json' => [Object] },
    changes:
     [ 'PluginVsCodeFileHandler', 'PluginVsCodeDirectoryHandler' ],
    acceptedTypes: [ 1 ],
    currentPath:
     '/tmp/vscode-unpacked/redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix/extension',
    initPath:
     '/plugins/sidecars/redhat_java_latest/redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix',
    resolved: true,
    resolvedByName: 'LocalDirectoryPluginDeployerResolver' } ]
local path to deploy on remote instance [ '/tmp/vscode-unpacked/redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix/extension',
  '/tmp/vscode-unpacked/redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix/extension' ]
Backend plug-in "vscode-java-debug@0.19.0" from "/tmp/vscode-unpacked/redhat.java.latest.epqtnquayn.vscode-java-debug-0.19.0.vsix/extension/dist/extension is now available"
Backend plug-in "java@0.46.0" from "/tmp/vscode-unpacked/redhat.java.latest.wyqvlcfklt.java-0.46.0-1549.vsix/extension/dist/extension is now available"

LWT-Proxy

time="2019-07-30T04:07:56Z" level=info msg="Starting reverse proxy (Listening on ':4400')" 

@wgbeckmann
Copy link
Author

@l0rd can you tell me how to install eclipse che with chectl

@wgbeckmann
Copy link
Author

Perhaps I forgot to mention. I use multi-user mode.

@wgbeckmann
Copy link
Author

Ok, i tried chectl but it can only use an openshift "minishift" installation. But the Openshift-Installation I use is a Cluster-Installation with one node.

@wgbeckmann
Copy link
Author

Ok, I just install the single-user version there it runs. (Hmm, but we need multiuser)

@wgbeckmann wgbeckmann changed the title OpenShift behind Proxy Multiuser-OpenShift on OpenShift behind Proxy not starting Workspaces Aug 1, 2019
@wgbeckmann
Copy link
Author

No, also the single-user version is not working. The workspace comes up, but you cannot start a terminal or task. --> There are problems with the communication...

@wgbeckmann
Copy link
Author

Now I added to the CHE_WORKSPACE_NO__PROXY the ip 172.30.0.1 and restartet the workspace and tada, there is a Terminal...
But 172.30.0.1 is something openshift or docker internal...

@l0rd
Copy link
Contributor

l0rd commented Aug 2, 2019

It looks like you have solved your problem @wgbeckmann

We can add that to the documentation but it's still not clear what's the platform where you have deployed Che: Kubernetes, OpenShift or Docker Desktop ?

@wgbeckmann
Copy link
Author

No, I just tried to find out what works and what do not work.

Single User Eclipse Che is working behind a proxy on OpenShift
Multi User Eclipse Che is not working bihind a proxy on OpenShift

The platform is deployed on OpenShift installed with Ansible (so it is not a minishift installation)

@AmitChameides
Copy link

I have also encountered the same issue as described in the original post. I'm also trying to set up Eclipse Che multiuser behind a proxy. Has a fix been found?

@wgbeckmann
Copy link
Author

No, I'm using singleuser mode at the moment, but also only after playing arround with proxy-settings at multiple places.

@skabashnyuk
Copy link
Contributor

Single User Eclipse Che is working behind a proxy on OpenShift
Multi User Eclipse Che is not working bihind a proxy on OpenShift

https://github.com/eclipse/che-jwtproxy might be an issue.

@skabashnyuk skabashnyuk added this to the 7.2.0 milestone Aug 21, 2019
@andy316x
Copy link

andy316x commented Aug 27, 2019

I have the same issue when running in multiuser mode on an Openshift deployment behind a corporate proxy.

I was able to get past the server ‘theia’ in container not available error, this was down to jwtproxy, it was attempting to go through the corporate proxy even though no_proxy was set, I removed the proxy settings entirely just for that container and it was then able to start Theia - clearly not a sufficient workaround as changes are lost for each new workspace. It looks as though Go in jwtproxy may not be respecting the no_proxy property correctly.

Unfortunately there is then an additional issue, once in Theia it is not possible to retrieve the workspace configuration, this time axios seems to be mis-handling the no_proxy configuration.

@AmitChameides
Copy link

Hey @andy316x , thanks for the pointer. I'll try that given the chance.
Depressing to hear about the additional issue. Mind sharing what is currently set as your no_proxy? Just for comparison in case I run into the same issue when trying your bypass.

@andy316x
Copy link

@AmitChameides, I have set the wildcard domain of my openshift router, and used both variations of no proxy syntax, .my.router.domain and *.my.router.domain. I also have the AWS nodes domain suffixes, I.e. .compute.internal. - not sure it matters for Che but added anyway.

@skabashnyuk skabashnyuk added the severity/P1 Has a major impact to usage or development of the system. label Aug 30, 2019
@AmitChameides
Copy link

Alright @andy316x. Thanks.
I tried your bypass and it also worked for me, however I did also encounter the same error as you later did. If you made any progress getting beyond that point, I'd love to know.

@skabashnyuk
Copy link
Contributor

@AmitChameides fyi #14335

@AmitChameides
Copy link

Oh, cool!
Just clearing things up - Is this patch supposed to fix the jwtproxy error we have encountered?

@skabashnyuk
Copy link
Contributor

I hope so.

@wgbeckmann
Copy link
Author

Just try to start a Workspace with 7.2.0-SNAPSHOT.
The Workspace comes up when I delete the proxy Setting of the JWTProxy-Deployment.
So you are right. This is the issue....

@AmitChameides
Copy link

@wgbeckmann good to hear you also managed to bypass the JWTProxy issue.
Just out of curiosity - Do you also now experience the issue @andy316x described, the one with the inability to retrieve the workspace configuration in Theia?

@andy316x
Copy link

andy316x commented Sep 8, 2019

@AmitChameides, I did try the same trick with the Theia container of removing the proxy configuration, it was then able to load the workspace configuration but caused other issues, I expect because Theia legitimately needs access to the internet through the proxy. So either one of the components does not respect the no_proxy parameter or I have misconfigured the no_proxy parameter, not sure which one it is at the minute.

Great to see the jwtproxy fix, hopefully will get merged soon.

@mshaposhnik
Copy link
Contributor

Fix is merged, please let us know if it works for you now, thanks.

@AmitChameides
Copy link

I created a new Eclipse Che OCP project to test this out (I wanted to make sure it's getting the most recent version and using modified images as little as possible), and unfortunately the error persisted. I was still getting the Theia error, and removing the proxy settings from the JwtProxy continued to bypass this issue (Only to cause more issues later on).
@wgbeckmann, @andy316x, please let me know if you have the same situation, because this may be caused by some mistake I made locally and I think it's important we confirm if the patch is successful or not.

@wgbeckmann
Copy link
Author

@mshaposhnik to test it, I try to deploy the "che" deployment-config in my Openshift installtion tomorrow . That would pull the nightly build Image eclipse/che-server:nightly. Is that right?
image

@mshaposhnik
Copy link
Contributor

@wgbeckmann yes, but make sure that image pull policy is set to Always in the deployment config.

@wgbeckmann
Copy link
Author

@mshaposhnik Ok, I tested ist and the workspace comes up!
So the Error, with the JWTProxy is fixed. Thank You.

@andy316x
Copy link

@wgbeckmann is this issue actually resolved for you? The workspace now loads for me with the JWTProxy fix, as was the case when I manually removed the proxy environment variable from the JWTProxy container, however I still get the problem where it tells me the workspace configuration cannot be loaded, so I still don't think Che works behind a corporate proxy on OpenShift?

I did some digging on the subsequent issue, I believe it happens when the che-theia container attempts to call the workspace api using the workspace-client package. This package uses axios to make the REST request, the problem is the version of axios that is used is 0.18.0, which will accept http_proxy/https_proxy config, but not no_proxy - this is added in 0.19.0. I think the che workspace client needs to update to axios v0.19.0.

If you could let me know how you are getting on that would really help.

@skabashnyuk
Copy link
Contributor

orkspace configuration cannot be loaded,

@andy316x make sure you are running che7(devfile based) workspaces on che7

@andy316x
Copy link

@skabashnyuk thanks for your response. I am running the latest nightly che so I assume that is che7 and choosing the default workspace that is selected when creating a workspace, so I presume that is devfile based.

I believe it is a proxy problem but can’t be certain. I tried removing the proxy environment variables from the che-theia container and it seems then to be able to load the workspace configuration. I then get subsequent errors which I have not investigated further, but I presume this could be because Theia legitimately needs to go through the proxy for some subsequent calls. I think this demonstrates Theia is not respecting the no_proxy property, which would seem to make sense as the version of a axios used by che/workspace-client does not seem to support no_proxy.

Any thoughts on this would be greatly appreciated, I have been stuck with this particular problem for a long time now with no known workaround. I am really keen to adopt che within our organisation as I think it will add a huge amount of value.

@andy316x
Copy link

@skabashnyuk The error was "Failed to load workspace configuration" - apologies

@Clicksurfer
Copy link

Just saying I have the same situation as @andy316x . We would love to use Che, but I haven't been able to deploy Che due to all the various proxy-caused problems (I also have the 'Failed to load workspace configuration' error)

@skabashnyuk
Copy link
Contributor

@andy316x @Clicksurfer I'm sorry that you have such UX. Can you create a separate issue and w will try to provide you some help/inputs?

@l0rd
Copy link
Contributor

l0rd commented Sep 26, 2019

@andy316x @Clicksurfer it's hard to figure out if your problems are related and if they are really related to this issue. We need the following details (preferably in a new issue):

@andy316x
Copy link

andy316x commented Sep 26, 2019

@l0rd thanks for your response, I have created a new issue #14676 with the detail you requested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Outline of a bug - must adhere to the bug report template. severity/P1 Has a major impact to usage or development of the system. status/info-needed More information is needed before the issue can move into the “analyzing” state for engineering.
Projects
None yet
Development

No branches or pull requests

8 participants