-
Notifications
You must be signed in to change notification settings - Fork 177
Adding atunnel - networking component within ateom #559
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
Changes from all commits
eec34ae
01833ef
66faa0c
b617a77
13cbafd
f2a12d2
60d935b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -184,14 +184,22 @@ func (s *ExtProcServer) handleRequestHeaders( | |
| "actor %s routing failed", actorRef) | ||
| } | ||
|
|
||
| // The actor is reached through the in-worker atunnel ingress server, which | ||
| // listens on :443 (mTLS) and forwards to the actor's :80. The worker no | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm thinking we should use not 443, but own port just in case we need the standard HTTPS port later.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Discussed offline but commeting for posterity. This port is standard https. When we introduce CONNECT on Ingress (client -> atenet/pluggable ingress) - we may also have connect to atunnel, and in that case, we can consider having that a 8443 or any other special port. |
||
| // longer DNATs pod-IP:80 to the actor, so the router dials :443 and the | ||
| // ORIGINAL_DST cluster's upstream TLS context presents the router's | ||
| // podidentity client cert (see buildOriginalDstCluster and | ||
| // buildUpstreamTransportSocket). | ||
| // TODO(bowei) -- handle more than port 80 on the actor. | ||
| targetAddr := net.JoinHostPort(workerIP, "80") | ||
| targetAddr := net.JoinHostPort(workerIP, "443") | ||
|
|
||
| slog.InfoContext(ctx, "Route ok", slog.Any("actor", actorRef), slog.String("targetAddr", targetAddr)) | ||
|
|
||
| // Route by rewriting the :authority header. | ||
| // Route by telling the ORIGINAL_DST cluster which worker atunnel address to | ||
| // dial, without touching :authority — atunnel authorizes the actor by the | ||
| // original Host (actor DNS name). | ||
| mutation := &extprocv3.HeaderMutation{} | ||
| addAuthorityMutation(targetAddr, mutation) | ||
| addOriginalDstMutation(targetAddr, mutation) | ||
|
|
||
| return &extprocv3.HeadersResponse{ | ||
| Response: &extprocv3.CommonResponse{ | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.