Skip to content

Commit 3a94d3a

Browse files
fix(ci): re-merge 1.96.5 (#33)
#32 bumped this repo to 1.96.5, but was an incomplete merge. This PR correctly merges in the upstream tag.
2 parents 522f9b5 + 0477665 commit 3a94d3a

9 files changed

Lines changed: 1375 additions & 192 deletions

File tree

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.94.1
1+
1.96.5

k8s-operator/api-proxy/proxy.go

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Tailscale Inc & AUTHORS
1+
// Copyright (c) Tailscale Inc & contributors
22
// SPDX-License-Identifier: BSD-3-Clause
33

44
//go:build !plan9
@@ -21,14 +21,14 @@ import (
2121
"strings"
2222
"time"
2323

24+
"github.com/pires/go-proxyproto"
2425
"go.uber.org/zap"
2526
"k8s.io/apimachinery/pkg/util/sets"
2627
"k8s.io/apiserver/pkg/endpoints/request"
2728
"k8s.io/client-go/rest"
2829
"k8s.io/client-go/transport"
2930
"tailscale.com/client/local"
3031
"tailscale.com/client/tailscale/apitype"
31-
"tailscale.com/envknob"
3232
ksr "tailscale.com/k8s-operator/sessionrecording"
3333
"tailscale.com/kube/kubetypes"
3434
"tailscale.com/net/netx"
@@ -43,13 +43,7 @@ import (
4343
var (
4444
// counterNumRequestsproxies counts the number of API server requests proxied via this proxy.
4545
counterNumRequestsProxied = clientmetric.NewCounter("k8s_auth_proxy_requests_proxied")
46-
// NOTE: adding this metric so we can keep track of users during deprecation
47-
counterExperimentalEventsVarUsed = clientmetric.NewCounter("ts_experimental_kube_api_events_var_used")
48-
whoIsKey = ctxkey.New("", (*apitype.WhoIsResponse)(nil))
49-
)
50-
51-
const (
52-
eventsEnabledVar = "TS_EXPERIMENTAL_KUBE_API_EVENTS"
46+
whoIsKey = ctxkey.New("", (*apitype.WhoIsResponse)(nil))
5347
)
5448

5549
// NewAPIServerProxy creates a new APIServerProxy that's ready to start once Run
@@ -103,7 +97,6 @@ func NewAPIServerProxy(zlog *zap.SugaredLogger, restConfig *rest.Config, ts *tsn
10397
upstreamURL: u,
10498
ts: ts,
10599
sendEventFunc: sessionrecording.SendEvent,
106-
eventsEnabled: envknob.Bool(eventsEnabledVar),
107100
}
108101
ap.rp = &httputil.ReverseProxy{
109102
Rewrite: func(pr *httputil.ProxyRequest) {
@@ -134,11 +127,6 @@ func (ap *APIServerProxy) Run(ctx context.Context) error {
134127
TLSNextProto: make(map[string]func(*http.Server, *tls.Conn, http.Handler)),
135128
}
136129

137-
if ap.eventsEnabled {
138-
counterExperimentalEventsVarUsed.Add(1)
139-
ap.log.Warnf("DEPRECATED: %q environment variable is deprecated, and will be removed in v1.96. See documentation for more detail.", eventsEnabledVar)
140-
}
141-
142130
mode := "noauth"
143131
if ap.authMode {
144132
mode = "auth"
@@ -163,10 +151,18 @@ func (ap *APIServerProxy) Run(ctx context.Context) error {
163151
}
164152
} else {
165153
var err error
166-
proxyLn, err = net.Listen("tcp", "localhost:80")
154+
baseLn, err := net.Listen("tcp", "localhost:80")
167155
if err != nil {
168156
return fmt.Errorf("could not listen on :80: %w", err)
169157
}
158+
proxyLn = &proxyproto.Listener{
159+
Listener: baseLn,
160+
ReadHeaderTimeout: 10 * time.Second,
161+
ConnPolicy: proxyproto.ConnPolicyFunc(func(opts proxyproto.ConnPolicyOptions) (proxyproto.Policy,
162+
error) {
163+
return proxyproto.REQUIRE, nil
164+
}),
165+
}
170166
serve = ap.hs.Serve
171167
}
172168

@@ -205,10 +201,6 @@ type APIServerProxy struct {
205201
upstreamURL *url.URL
206202

207203
sendEventFunc func(ap netip.AddrPort, event io.Reader, dial netx.DialFunc) error
208-
209-
// Flag used to enable sending API requests as events to tsrecorder.
210-
// Deprecated: events are now set via ACLs (see https://tailscale.com/kb/1246/tailscale-ssh-session-recording#turn-on-session-recording-in-your-tailnet-policy-file)
211-
eventsEnabled bool
212204
}
213205

214206
// serveDefault is the default handler for Kubernetes API server requests.
@@ -237,8 +229,7 @@ func (ap *APIServerProxy) serveDefault(w http.ResponseWriter, r *http.Request) {
237229
return
238230
}
239231

240-
// NOTE: (ChaosInTheCRD) ap.eventsEnabled deprecated, remove in v1.96
241-
if c.enableEvents || ap.eventsEnabled {
232+
if c.enableEvents {
242233
if err = ap.recordRequestAsEvent(r, who, c.recorderAddresses, c.failOpen); err != nil {
243234
msg := fmt.Sprintf("error recording Kubernetes API request: %v", err)
244235
ap.log.Errorf(msg)
@@ -308,8 +299,7 @@ func (ap *APIServerProxy) sessionForProto(w http.ResponseWriter, r *http.Request
308299
return
309300
}
310301

311-
// NOTE: (ChaosInTheCRD) ap.eventsEnabled deprecated, remove in v1.96
312-
if c.enableEvents || ap.eventsEnabled {
302+
if c.enableEvents {
313303
if err = ap.recordRequestAsEvent(r, who, c.recorderAddresses, c.failOpen); err != nil {
314304
msg := fmt.Sprintf("error recording Kubernetes API request: %v", err)
315305
ap.log.Errorf(msg)

net/netmon/interfaces.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Tailscale Inc & AUTHORS
1+
// Copyright (c) Tailscale Inc & contributors
22
// SPDX-License-Identifier: BSD-3-Clause
33

44
package netmon

tsnet/example/tsnet-services/tsnet-services.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Tailscale Inc & AUTHORS
1+
// Copyright (c) Tailscale Inc & contributors
22
// SPDX-License-Identifier: BSD-3-Clause
33

44
// The tsnet-services example demonstrates how to use tsnet with Services.

tsnet/example_tsnet_listen_service_multiple_ports_test.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Tailscale Inc & AUTHORS
1+
// Copyright (c) Tailscale Inc & contributors
22
// SPDX-License-Identifier: BSD-3-Clause
33

44
package tsnet_test
@@ -19,21 +19,19 @@ import (
1919
// Service on multiple ports. In this example, we run an HTTPS server on 443 and
2020
// an HTTP server handling pprof requests to the same runtime on 6060.
2121
func ExampleServer_ListenService_multiplePorts() {
22-
s := &tsnet.Server{
23-
Hostname: "tsnet-services-demo",
22+
srv := &tsnet.Server{
23+
Hostname: "shu",
2424
}
25-
defer s.Close()
2625

27-
ln, err := s.ListenService("svc:my-service", tsnet.ServiceModeHTTP{
26+
ln, err := srv.ListenService("svc:my-service", tsnet.ServiceModeHTTP{
2827
HTTPS: true,
2928
Port: 443,
3029
})
3130
if err != nil {
3231
log.Fatal(err)
3332
}
34-
defer ln.Close()
3533

36-
pprofLn, err := s.ListenService("svc:my-service", tsnet.ServiceModeTCP{
34+
pprofLn, err := srv.ListenService("svc:my-service", tsnet.ServiceModeTCP{
3735
Port: 6060,
3836
})
3937
if err != nil {

tsnet/example_tsnet_test.go

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Tailscale Inc & AUTHORS
1+
// Copyright (c) Tailscale Inc & contributors
22
// SPDX-License-Identifier: BSD-3-Clause
33

44
package tsnet_test
@@ -205,19 +205,17 @@ func ExampleServer_ListenFunnel_funnelOnly() {
205205

206206
// ExampleServer_ListenService demonstrates how to advertise an HTTPS Service.
207207
func ExampleServer_ListenService() {
208-
s := &tsnet.Server{
209-
Hostname: "tsnet-services-demo",
208+
srv := &tsnet.Server{
209+
Hostname: "atum",
210210
}
211-
defer s.Close()
212211

213-
ln, err := s.ListenService("svc:my-service", tsnet.ServiceModeHTTP{
212+
ln, err := srv.ListenService("svc:my-service", tsnet.ServiceModeHTTP{
214213
HTTPS: true,
215214
Port: 443,
216215
})
217216
if err != nil {
218217
log.Fatal(err)
219218
}
220-
defer ln.Close()
221219

222220
log.Printf("Listening on https://%v\n", ln.FQDN)
223221
log.Fatal(http.Serve(ln, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
@@ -238,19 +236,17 @@ func ExampleServer_ListenService_reverseProxy() {
238236
Host: targetAddress,
239237
})
240238

241-
s := &tsnet.Server{
242-
Hostname: "tsnet-services-demo",
239+
srv := &tsnet.Server{
240+
Hostname: "tefnut",
243241
}
244-
defer s.Close()
245242

246-
ln, err := s.ListenService("svc:my-service", tsnet.ServiceModeHTTP{
243+
ln, err := srv.ListenService("svc:my-service", tsnet.ServiceModeHTTP{
247244
HTTPS: true,
248245
Port: 443,
249246
})
250247
if err != nil {
251248
log.Fatal(err)
252249
}
253-
defer ln.Close()
254250

255251
log.Printf("Listening on https://%v\n", ln.FQDN)
256252
log.Fatal(http.Serve(ln, reverseProxy))

0 commit comments

Comments
 (0)