File tree 2 files changed +18
-4
lines changed
2 files changed +18
-4
lines changed Original file line number Diff line number Diff line change 54
54
55
55
# # Ingress Tunnel
56
56
57
+ - Add an information banner for tunnels that have been requested and are active.
58
+
57
59
# # Egress Tunnel
58
60
61
+ - Add an information banner for tunnels that have been requested and are active.
62
+ - Keep the task running even if the first connect fails - need to be able to
63
+ retry it without restarting the session.
59
64
- Display error for when the `tcpip_forward` address is `localhost`.
60
65
- Need some way to do cleanup and lifecycle management of endpoints and
61
66
services.
67
+ - Cleanup services/endpoints on :
68
+ - Shutdown - especially termination of the channel.
69
+ - Startup - because we can't do cross-namespace owner references, anything
70
+ created that doesn't have an active pod should be removed (via `targetRef`
71
+ on the `endpointSlice`).
72
+ - Test what happens when a service is replaced. It looks like the endpointslice
73
+ sticks around but it is unclear if the separate endpointslice's endpoints are
74
+ used or not.
62
75
63
76
# # Build
64
77
Original file line number Diff line number Diff line change @@ -112,6 +112,11 @@ impl Egress {
112
112
. expect ( "current pod has an IP address" ) ;
113
113
let address_type = if addr. is_ipv4 ( ) { "IPv4" } else { "IPv6" } ;
114
114
115
+ // Owner references cannot be cross-namespace. Because the server will run in
116
+ // namespace X and the services can be in namespace Y, this results in the
117
+ // EndpointSlice being immediately deleted. It would be nice to have some kind
118
+ // of garbage collection tied to the pod itself - but that might need to be a
119
+ // startup process.
115
120
let mut metadata = self . metadata . clone ( ) ;
116
121
metadata. labels . get_or_insert ( BTreeMap :: new ( ) ) . extend ( [
117
122
(
@@ -120,10 +125,6 @@ impl Egress {
120
125
) ,
121
126
( "kubernetes.io/service-name" . to_string ( ) , self . name_any ( ) ) ,
122
127
] ) ;
123
- metadata
124
- . owner_references
125
- . get_or_insert ( Vec :: new ( ) )
126
- . push ( self . current_pod . owner_ref ( & ( ) ) . expect ( "pods can be owners" ) ) ;
127
128
128
129
#[ allow( clippy:: cast_lossless) ]
129
130
let endpoint = EndpointSlice {
You can’t perform that action at this time.
0 commit comments