You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/cmd/k8s-operator
Nick Khyl 4941cd7c73 cmd/tailscaled,ipn/{auditlog,desktop,ipnext,ipnlocal},tsd: extract LocalBackend extension interfaces and implementation
In this PR, we refactor the LocalBackend extension system, moving from direct callbacks to a more organized extension host model.

Specifically, we:
- Extract interface and callback types used by packages extending LocalBackend functionality into a new ipn/ipnext package.
- Define ipnext.Host as a new interface that bridges extensions with LocalBackend.
  It enables extensions to register callbacks and interact with LocalBackend in a concurrency-safe, well-defined, and controlled way.
- Move existing callback registration and invocation code from ipnlocal.LocalBackend into a new type called ipnlocal.ExtensionHost,
  implementing ipnext.Host.
- Improve docs for existing types and methods while adding docs for the new interfaces.
- Add test coverage for both the extracted and the new code.
- Remove ipn/desktop.SessionManager from tsd.System since ipn/desktop is now self-contained.
- Update existing extensions (e.g., ipn/auditlog and ipn/desktop) to use the new interfaces where appropriate.

We're not introducing new callback and hook types (e.g., for ipn.Prefs changes) just yet, nor are we enhancing current callbacks,
such as by improving conflict resolution when more than one extension tries to influence profile selection via a background profile resolver.
These further improvements will be submitted separately.

Updates #12614
Updates tailscale/corp#27645
Updates tailscale/corp#26435
Updates tailscale/corp#18342

Signed-off-by: Nick Khyl <nickk@tailscale.com>
8 months ago
..
deploy cmd/k8s-operator,k8s-operator: enable HA Ingress again. (#15453) 8 months ago
e2e cmd,tsnet,internal/client: create internal shim to deprecated control plane API 10 months ago
generate cmd/k8s-operator,k8s-operator: add ProxyGroup CRD (#13591) 1 year ago
connector.go cmd/k8s-operator: don't error for transient failures (#14073) 1 year ago
connector_test.go go.{mod,sum},cmd/{k8s-operator,derper,stund}/depaware.txt: bump kube deps (#14601) 11 months ago
depaware.txt cmd/tailscaled,ipn/{auditlog,desktop,ipnext,ipnlocal},tsd: extract LocalBackend extension interfaces and implementation 8 months ago
dnsrecords.go cmd/k8s-operator: don't error for transient failures (#14073) 1 year ago
dnsrecords_test.go cmd/k8s-operator: configure proxies for HA Ingress to run in cert share mode (#15308) 9 months ago
egress-eps.go cmd/{k8s-operator,containerboot},kube: ensure egress ProxyGroup proxies don't terminate while cluster traffic is still routed to them (#14436) 10 months ago
egress-eps_test.go go.{mod,sum},cmd/{k8s-operator,derper,stund}/depaware.txt: bump kube deps (#14601) 11 months ago
egress-pod-readiness.go cmd/k8s-operator: configure proxies for HA Ingress to run in cert share mode (#15308) 9 months ago
egress-pod-readiness_test.go cmd/k8s-operator: configure proxies for HA Ingress to run in cert share mode (#15308) 9 months ago
egress-services-readiness.go cmd/k8s-operator: check that cluster traffic is routed to egress ProxyGroup Pod before marking it as ready (#14792) 10 months ago
egress-services-readiness_test.go go.{mod,sum},cmd/{k8s-operator,derper,stund}/depaware.txt: bump kube deps (#14601) 11 months ago
egress-services.go cmd/k8s-operator: configure proxies for HA Ingress to run in cert share mode (#15308) 9 months ago
egress-services_test.go cmd/{k8s-operator,containerboot},kube: ensure egress ProxyGroup proxies don't terminate while cluster traffic is still routed to them (#14436) 10 months ago
ingress-for-pg.go cmd/k8s-operator,k8s-operator: enable HA Ingress again. (#15453) 8 months ago
ingress-for-pg_test.go cmd/{k8s-operator,containerboot}: check TLS cert before advertising VIPService (#15427) 8 months ago
ingress.go cmd/k8s-operator: ensure HA Ingress can operate in multicluster mode. (#15157) 9 months ago
ingress_test.go cmd/k8s-operator,k8s-operator: allow optionally using LE staging endpoint for Ingress (#15360) 9 months ago
metrics_resources.go cmd/k8s-operator: configure proxies for HA Ingress to run in cert share mode (#15308) 9 months ago
nameserver.go cmd/k8s-operator: don't error for transient failures (#14073) 1 year ago
nameserver_test.go go.{mod,sum},cmd/{k8s-operator,derper,stund}/depaware.txt: bump kube deps (#14601) 11 months ago
operator.go cmd/k8s-operator,k8s-operator: enable HA Ingress again. (#15453) 8 months ago
operator_test.go cmd/k8s-operator: configure proxies for HA Ingress to run in cert share mode (#15308) 9 months ago
proxy.go all: use new LocalAPI client package location 10 months ago
proxy_test.go cmd/k8s-operator,ssh/tailssh,tsnet: optionally record 'kubectl exec' sessions via Kubernetes operator's API server proxy (#12274) 1 year ago
proxyclass.go cmd/k8s-operator,k8s-operator: allow users to set custom labels for the optional ServiceMonitor (#14475) 11 months ago
proxyclass_test.go go.{mod,sum},cmd/{k8s-operator,derper,stund}/depaware.txt: bump kube deps (#14601) 11 months ago
proxygroup.go cmd/k8s-operator,k8s-operator: allow optionally using LE staging endpoint for Ingress (#15360) 9 months ago
proxygroup_specs.go cmd/{containerboot,k8s-operator},kube/kubetypes: unadvertise ingress services on shutdown (#15451) 8 months ago
proxygroup_test.go cmd/k8s-operator,k8s-operator: allow optionally using LE staging endpoint for Ingress (#15360) 9 months ago
sts.go cmd/k8s-operator,k8s-operator: allow optionally using LE staging endpoint for Ingress (#15360) 9 months ago
sts_test.go cmd/k8s-operator: configure proxies for HA Ingress to run in cert share mode (#15308) 9 months ago
svc.go cmd/k8s-operator: configure proxies for HA Ingress to run in cert share mode (#15308) 9 months ago
testutils_test.go cmd/k8s-operator: configure proxies for HA Ingress to run in cert share mode (#15308) 9 months ago
tsclient.go client/tailscale,cmd/k8s-operator,internal/client/tailscale: move VIP service client methods into internal control client 10 months ago
tsrecorder.go cmd/k8s-operator: wait for VIPService before updating HA Ingress status (#15343) 9 months ago
tsrecorder_specs.go cmd/k8s-operator,kube/kubeclient,docs/k8s: update rbac to emit events + small fixes (#14164) 1 year ago
tsrecorder_specs_test.go cmd/k8s-operator,k8s-operator,kube: Add TSRecorder CRD + controller (#13299) 1 year ago
tsrecorder_test.go go.{mod,sum},cmd/{k8s-operator,derper,stund}/depaware.txt: bump kube deps (#14601) 11 months ago