@@ -38,42 +38,67 @@ const (
38
38
39
39
// ClientSet consists of clients connected to each instance of an HA proxy server.
40
40
type ClientSet struct {
41
- mu sync.Mutex //protects the clients.
42
- clients map [string ]* Client // map between serverID and the client
43
- // connects to this server.
44
-
45
- agentID string // ID of this agent
46
- address string // proxy server address. Assuming HA proxy server
47
-
48
- leaseCounter ServerCounter // counts number of proxy server leases
49
- lastReceivedServerCount int // last server count received from a proxy server
50
- lastServerCount int // last server count value from either lease system or proxy server, former takes priority
51
-
52
- // unless it is an HA server. Initialized when the ClientSet creates
53
- // the first client. When syncForever is set, it will be the most recently seen.
54
- syncInterval time.Duration // The interval by which the agent
55
- // periodically checks that it has connections to all instances of the
56
- // proxy server.
57
- probeInterval time.Duration // The interval by which the agent
41
+ // mu guards access to the clients map
42
+ mu sync.Mutex
43
+
44
+ // clients is a map between serverID and the client
45
+ // connected to this server.
46
+ clients map [string ]* Client
47
+
48
+ // agentID is "our ID" - the ID of this agent.
49
+ agentID string
50
+
51
+ // Address is the proxy server address. Assuming HA proxy server
52
+ address string
53
+
54
+ // leaseCounter counts number of proxy server leases
55
+ leaseCounter ServerCounter
56
+
57
+ // lastReceivedServerCount is the last serverCount value received when connecting to a proxy server
58
+ lastReceivedServerCount int
59
+
60
+ // lastServerCount is the most-recently observed serverCount value from either lease system or proxy server,
61
+ // former takes priority unless it is an HA server.
62
+ // Initialized when the ClientSet creates the first client.
63
+ // When syncForever is set, it will be the most recently seen.
64
+ lastServerCount int
65
+
66
+ // syncInterval is the interval at which the agent periodically checks
67
+ // that it has connections to all instances of the proxy server.
68
+ syncInterval time.Duration
69
+
70
+ // The maximum interval for the syncInterval to back off to when unable to connect to the proxy server
71
+ syncIntervalCap time.Duration
72
+
73
+ // syncForever is true if we should continue syncing (support dynamic server count).
74
+ syncForever bool
75
+
76
+ // probeInterval is the interval at which the agent
58
77
// periodically checks if its connections to the proxy server is ready.
59
- syncIntervalCap time.Duration // The maximum interval
60
- // for the syncInterval to back off to when unable to connect to the proxy server
78
+ probeInterval time.Duration
61
79
62
80
dialOptions []grpc.DialOption
63
- // file path contains service account token
81
+
82
+ // serviceAccountTokenPath is the file path to our kubernetes service account token
64
83
serviceAccountTokenPath string
84
+
65
85
// channel to signal that the agent is pending termination.
66
86
drainCh <- chan struct {}
87
+
67
88
// channel to signal shutting down the client set. Primarily for test.
68
89
stopCh <- chan struct {}
69
90
70
- agentIdentifiers string // The identifiers of the agent, which will be used
91
+ // agentIdentifiers is the identifiers of the agent, which will be used
71
92
// by the server when choosing agent
93
+ agentIdentifiers string
72
94
73
95
warnOnChannelLimit bool
74
96
xfrChannelSize int
75
97
76
- syncForever bool // Continue syncing (support dynamic server count).
98
+ // serverCountSource controls how we compute the server count.
99
+ // The proxy server sends the serverCount header to each connecting agent,
100
+ // and the agent figures out from these observations how many
101
+ // agent-to-proxy-server connections it should maintain.
77
102
serverCountSource string
78
103
}
79
104
0 commit comments