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
M. J. Fromberger 95426b79a9
logtail: avoid racing eventbus subscriptions with shutdown (#17695)
In #17639 we moved the subscription into NewLogger to ensure we would not race
subscribing with shutdown of the eventbus client. Doing so fixed that problem,
but exposed another: As we were only servicing events occasionally when waiting
for the network to come up, we could leave the eventbus to stall in cases where
a number of network deltas arrived later and weren't processed.

To address that, let's separate the concerns: As before, we'll Subscribe early
to avoid conflicts with shutdown; but instead of using the subscriber directly
to determine readiness, we'll keep track of the last-known network state in a
selectable condition that the subscriber updates for us.  When we want to wait,
we'll wait on that condition (or until our context ends), ensuring all the
events get processed in a timely manner.

Updates #17638
Updates #15160

Change-Id: I28339a372be4ab24be46e2834a218874c33a0d2d
Signed-off-by: M. J. Fromberger <fromberger@tailscale.com>
1 month ago
..
deploy cmd/k8s-operator: allow pod tolerations on nameservers (#17260) 2 months ago
e2e cmd/k8s-operator: simplify scope of e2e tests (#17076) 3 months ago
generate cmd/k8s-operator/generate: skip tests if no network or Helm is down 1 month ago
api-server-proxy-pg.go all-kube: create Tailscale Service for HA kube-apiserver ProxyGroup (#16572) 5 months ago
api-server-proxy-pg_test.go all-kube: create Tailscale Service for HA kube-apiserver ProxyGroup (#16572) 5 months ago
api-server-proxy.go cmd/{k8s-operator,k8s-proxy},kube: use consistent type for auth mode config (#16626) 4 months ago
connector.go cmd/k8s-operator: allow specifying replicas for connectors (#16721) 3 months ago
connector_test.go cmd/k8s-operator: allow specifying replicas for connectors (#16721) 3 months ago
depaware.txt logtail: avoid racing eventbus subscriptions with shutdown (#17695) 1 month ago
dnsrecords.go k8s-operator: add IPv6 support for DNS records (#16691) 2 months ago
dnsrecords_test.go k8s-operator: add IPv6 support for DNS records (#16691) 2 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 all-kube: create Tailscale Service for HA kube-apiserver ProxyGroup (#16572) 5 months ago
egress-pod-readiness.go util/backoff: rename logtail/backoff package to util/backoff 2 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/{containerboot,k8s-operator}: use state Secret for checking device auth (#16328) 5 months ago
egress-services-readiness_test.go cmd/{containerboot,k8s-operator}: use state Secret for checking device auth (#16328) 5 months ago
egress-services.go cmd/{containerboot,k8s-operator}: use state Secret for checking device auth (#16328) 5 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 all-kube: create Tailscale Service for HA kube-apiserver ProxyGroup (#16572) 5 months ago
ingress-for-pg_test.go all-kube: create Tailscale Service for HA kube-apiserver ProxyGroup (#16572) 5 months ago
ingress.go cmd/k8s-operator: allow specifying replicas for connectors (#16721) 3 months ago
ingress_test.go cmd/k8s-operator: allow specifying replicas for connectors (#16721) 3 months ago
logger.go cmd/k8s-operator: send operator logs to tailscale (#17110) 2 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: allow pod tolerations on nameservers (#17260) 2 months ago
nameserver_test.go cmd/k8s-operator: allow pod tolerations on nameservers (#17260) 2 months ago
nodeport-service-ports.go cmd/k8s-operator, k8s-operator: support Static Endpoints on ProxyGroups (#16115) 5 months ago
nodeport-services-ports_test.go cmd/k8s-operator, k8s-operator: support Static Endpoints on ProxyGroups (#16115) 5 months ago
operator.go cmd/k8s-operator: rename 'l' variables (#17700) 1 month ago
operator_test.go k8s-operator: reset service status before append (#17120) 3 months ago
proxyclass.go cmd/k8s-operator, k8s-operator: support Static Endpoints on ProxyGroups (#16115) 5 months ago
proxyclass_test.go cmd/k8s-operator, k8s-operator: support Static Endpoints on ProxyGroups (#16115) 5 months ago
proxygroup.go cmd/k8s-operator: rename 'l' variables (#17700) 1 month ago
proxygroup_specs.go all-kube: create Tailscale Service for HA kube-apiserver ProxyGroup (#16572) 5 months ago
proxygroup_test.go cmd/k8s-operator: rename 'l' variables (#17700) 1 month ago
sts.go cmd/tsrecorder: adds sending api level logging to tsrecorder (#16960) 2 months ago
sts_test.go cmd/k8s-operator: rename 'l' variables (#17700) 1 month ago
svc-for-pg.go all-kube: create Tailscale Service for HA kube-apiserver ProxyGroup (#16572) 5 months ago
svc-for-pg_test.go all-kube: create Tailscale Service for HA kube-apiserver ProxyGroup (#16572) 5 months ago
svc.go k8s-operator: reset service status before append (#17120) 3 months ago
testutils_test.go cmd/k8s-operator: allow specifying replicas for connectors (#16721) 3 months ago
tsclient.go all-kube: create Tailscale Service for HA kube-apiserver ProxyGroup (#16572) 5 months ago
tsrecorder.go cmd/k8s-operator: rename 'l' variables (#17700) 1 month ago
tsrecorder_specs.go cmd/k8s-operator: Set login server on tsrecorder nodes (#16443) 5 months ago
tsrecorder_specs_test.go cmd/k8s-operator: Set login server on tsrecorder nodes (#16443) 5 months ago
tsrecorder_test.go cmd/k8s-operator: rename 'l' variables (#17700) 1 month ago