43 Commits

Author SHA1 Message Date
Anton Kosyakov
5bdf47767e Revert "ws-daemon: Use a pair of veths instead of slirp4netns"
This reverts commit 4fef102695684ad3e98ed90c7f368d79aa1e304d.
2022-04-08 18:19:21 +05:30
utam0k
4fef102695 ws-daemon: Use a pair of veths instead of slirp4netns
Pod Network Namespace(ring1)
+------------------------------------------------+
|                                                |
|       Workspace Network Namesapce(ring2)       |
| +--------------------------------------------+ |
| |                                            | |
| |              default via veth0             | |
| |                                            | |
| |                                            | |
| |     +------+  +--------------+             | |
| |     |  lo  |  |    ceth0     | 10.0.2.2/24 | |
| |     +------+  +--^--------+--+             | |
| |                  |        |                | |
| +------------------+--------+----------------+ |
|                    |        |                  |
|                 +--+--------v--+               |
|   +-----------> |    veth0     | 10.0.2.1/24   |
|   |             +-----------+--+               |
|   |                         |                  |
|   |          +--------------v-----+            |
|   |          |                    |            |
|   |          |      nftables      |            |
|   |          |   (ip masquerade)  |            |
|   |          +--------------+-----+            |
|   |                         |                  |
|   |   +------+  +-----------v--+               |
|   |   |  lo  |  |     eth0     |               |
|   |   +------+  +--^--------+--+               |
|   |                |        |                  |
|   |          +-----+--------v-----+            |
|   |          |                    |            |
|   +----------+      nftables      |            |
| if with port | (port redirecter)  |            |
|              +-----^--------+-----+            |
|                    |        |                  |
+--------------------+--------+------------------+
                     |        |
                     |        |
                     |        v
                    o u t s i d e
2022-04-08 13:41:21 +05:30
Jean Pierre
ddd3ced7bf Only ignore served ports bound to the workspace IP address if we have corresponding reverse proxy 2022-01-17 04:39:09 +01:00
Jean Pierre
301f6c4f3e Don't try to connect to opened ports
Otherwise it causes an exception to be thrown constantly in the vscode-js-debug extension while debugging causing the extension host to crash after some time
2022-01-16 17:43:09 +01:00
Anton Kosyakov
de440410fb Revert "[supervisor] Add log for exposed port instance update"
This reverts commit 73e93f3f5497978f98d2628e7651b70e9915992a.
2022-01-15 17:17:08 +01:00
Victor Nogueira
f85494006d [supervisor] Provide port Name and Description along with the port status 2021-12-20 18:42:44 +01:00
Cornelius A. Ludmann
73e93f3f54 [supervisor] Add log for exposed port instance update 2021-12-07 09:20:32 +01:00
Manuel Alejandro de Brito Fontes
fe5bc40d12 Fix readNetTCPFile 2021-11-05 10:33:03 +01:00
Manuel Alejandro de Brito Fontes
bb1349fd94 Refactor supervisor port exposure 2021-11-05 10:33:03 +01:00
Manuel Alejandro de Brito Fontes
5934558596 Provide a stable port order 2021-11-03 14:58:11 +01:00
Manuel Alejandro de Brito Fontes
d70eb53070 [supervisor] Lint code 2021-11-03 14:58:11 +01:00
Christian Weichel
8f6e4bc79b [supervisor] Add slirp4netns support 2021-10-26 20:42:04 +02:00
Anton Kosyakov
9f5270c694 fix #5929: use sync.Cond to notify about gitpod config changes
There was some kind of deadlock while one listener was trying to read a config changes.
I rewrote gitpod config service to use conditional variable to announce changes in gitpod config to avoid synchronization over map of listeners.
I changed clients as well that they don't consider nil config as closed channel and stop reading.
2021-10-14 09:57:01 -03:00
Manuel Alejandro de Brito Fontes
cbd0718a8c [supervisor] Remove unnecessary log about port already exposed 2021-09-03 07:26:09 +02:00
Manuel Alejandro de Brito Fontes
347ad95d80 Switch from fmt.Errorf to xerrors.Errorf 2021-08-30 02:47:28 -03:00
Anton Kosyakov
57b7b7cfb6 [supervisor] allow retry auto exposing port 2021-06-23 11:43:24 +05:00
Cornelius A. Ludmann
caa322c871 Make port visibility private by default 2021-06-21 16:22:15 +02:00
Manuel Alejandro de Brito Fontes
bd3ba7cdec Refactor port parsing 2021-06-16 10:45:31 -04:00
Anton Kosyakov
f7b2e37cbd [supervisor] support tunneled ports 2021-05-20 09:49:33 +02:00
Manuel Alejandro de Brito Fontes
d3ebfd454b Update golangci-lint 2021-05-11 07:15:24 -04:00
Manuel Alejandro de Brito Fontes
3b4ebc9bad Migrate deprecated methods from ioutil package 2021-03-02 06:37:49 -03:00
Manuel Alejandro de Brito Fontes
2b6a56bc40 Update go imports 2021-03-02 06:37:49 -03:00
Anton Kosyakov
2cab99e5e7 [supervisor] handle rate limitting of exposed ports 2021-02-08 14:46:28 +01:00
Christian Weichel
6b10ec9eb0 [supervisor] Don't blindly deref port configs
fixes #3007

/werft no-preview
2021-01-28 14:06:01 +01:00
Christian Weichel
9336b090be [supervisor] Make reaper terminating during shutdown
Fixes gitpod-io/gitpod#2654
2021-01-15 14:11:21 +01:00
Christian Weichel
7935b7f015 [gitpod-protocol] Move Go server API client to gitpod-protocol
This way it's accessible from packages other than supervisor,
e.g. future integration tests.
2021-01-08 13:40:43 +01:00
Christian Weichel
b7dda84ad0 [license] Update license header from TypeFox GmbH to Gitpod GmbH 2021-01-04 15:12:02 +01:00
Christian Weichel
028552b19f [supervisor] Don't nil-deref on broken Gitpod connection 2020-12-17 09:42:52 +01:00
Anton Kosyakov
bdbaca3740 fix flaky port tests 2020-12-16 14:32:59 +01:00
Anton Kosyakov
53591f7d9f [supervisor] ensure that each served port appears only once 2020-12-16 10:06:33 +01:00
Anton Kosyakov
34a1cde10a [supervisor] avoid auto exposing the same port multiple times 2020-12-08 08:50:10 +01:00
Anton Kosyakov
d103bd857c [supervisor] don't drop last ports/tasks updates 2020-11-27 15:36:30 +01:00
Christian Weichel
bb1225bf76 [supervisor] Disable flakey auto expose configured ports test 2020-11-27 14:59:44 +01:00
Anton Kosyakov
a0f4afb928 fix #2290: ensure that clients don't miss ports/tasks status updates 2020-11-27 09:38:20 +01:00
Christian Weichel
b576c0dbc5 [supervisor] Adapt to port API changes 2020-11-25 15:59:36 +01:00
Christian Weichel
4cbf87b0de [supervisor] Improve ports concurrency behaviour 2020-11-25 09:52:17 +01:00
Christian Weichel
dcbc44e130 [supervisor] Adapt to updated grpc-gateway 2020-11-24 09:59:57 +01:00
Christian Weichel
5f59ba05b2 [supervisor] Don't panic when instance updates stop 2020-11-19 10:02:01 +01:00
Anton Kosyakov
49b95bf029 [supervisor] incremental port updates 2020-11-04 05:50:23 +01:00
Anton Kosyakov
94981bd214 [theia] move port handling to the supervisor 2020-11-04 05:50:23 +01:00
Anton Kosyakov
53b6460de7 [supervisor] port config service 2020-11-04 05:50:23 +01:00
Christian Weichel
43e26558bb [merge] Provide instance updates 2020-11-04 05:50:23 +01:00
Christian Weichel
1afe83d3b3 [supervisor] Provide holistic port view
including exposed ports, not just the served ones.
Also, auto-expose newly served ports.
2020-11-04 05:50:23 +01:00