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

feat(network): add egress tunneling #10

Merged
merged 1 commit into from
Sep 5, 2024
Merged

Conversation

grampelberg
Copy link
Owner

  • Enabled ssh -R for tunneling from the cluster to the local host. This introduces a bunch of weirdness around "how does the cluster contact the server".
  • Moved stream to tunnel and direct to ingress. This is closer to what it is actually doing, especially because I didn't understand the difference between direct/forward/tcpip.
  • Added feature flags. Now, what features are enabled can be configured at runtime. This allows any incoming requests to be short-circuited if they'd never work or shouldn't be supported.
  • Made Authenticate return an identity (that has been authenticated) instead of a client. It is weird to have Identity::authenticate return an identity, but it makes more sense for Key.
  • Moved Identity into State::Authenticated. This was primarily to get the user's identity on the created Egress tunnel but likely makes more sense anyways as you end up creating a new client all the time as it is. Unfortunately, the Controller is still required to create that client - they can't be minted fresh from an Identity.

- Enabled `ssh -R` for tunneling from the cluster
  to the local host. This introduces a bunch of
  weirdness around "how does the cluster contact
  the server".
- Moved `stream` to `tunnel` and `direct` to
  `ingress`. This is closer to what it is actually
  doing, especially because I didn't understand
  the difference between direct/forward/tcpip.
- Added feature flags. Now, what features are
  enabled can be configured at runtime. This
  allows any incoming requests to be
  short-circuited if they'd never work or
  shouldn't be supported.
- Made `Authenticate` return an identity (that has
  been authenticated) instead of a client. It is
  weird to have `Identity::authenticate` return an
  identity, but it makes more sense for `Key`.
- Moved `Identity` into `State::Authenticated`.
  This was primarily to get the user's identity on
  the created `Egress` tunnel but likely makes
  more sense anyways as you end up creating a new
  client all the time as it is. Unfortunately, the
  `Controller` is still required to create that
  client - they can't be minted fresh from an
  Identity.
@grampelberg grampelberg merged commit c6cda54 into main Sep 5, 2024
7 checks passed
@grampelberg grampelberg deleted the thomas--reverse-forward branch September 5, 2024 01:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant