Client Status Discovery Service (CSDS)
service.status.v3.ClientStatusRequest
[service.status.v3.ClientStatusRequest proto]
Request for client status of clients identified by a list of NodeMatchers.
{
"node_matchers": [],
"node": "{...}"
}
node_matchers
(type.matcher.v3.NodeMatcher) Management server can use these match criteria to identify clients. The match follows OR semantics.
node
(config.core.v3.Node) The node making the csds request.
service.status.v3.PerXdsConfig
[service.status.v3.PerXdsConfig proto]
Detailed config (per xDS) with status.
{
"status": "...",
"client_status": "...",
"listener_config": "{...}",
"cluster_config": "{...}",
"route_config": "{...}",
"scoped_route_config": "{...}",
"endpoint_config": "{...}"
}
status
(service.status.v3.ConfigStatus) Config status generated by management servers. Will not be present if the CSDS server is an xDS client.
client_status
(service.status.v3.ClientConfigStatus) Client config status is populated by xDS clients. Will not be present if the CSDS server is an xDS server. No matter what the client config status is, xDS clients should always dump the most recent accepted xDS config.
listener_config
(admin.v3.ListenersConfigDump)
Only one of listener_config, cluster_config, route_config, scoped_route_config, endpoint_config may be set.
cluster_config
Only one of listener_config, cluster_config, route_config, scoped_route_config, endpoint_config may be set.
route_config
Only one of listener_config, cluster_config, route_config, scoped_route_config, endpoint_config may be set.
scoped_route_config
(admin.v3.ScopedRoutesConfigDump)
Only one of listener_config, cluster_config, route_config, scoped_route_config, endpoint_config may be set.
endpoint_config
(admin.v3.EndpointsConfigDump)
Only one of listener_config, cluster_config, route_config, scoped_route_config, endpoint_config may be set.
service.status.v3.ClientConfig
[service.status.v3.ClientConfig proto]
All xds configs for a particular client.
{
"node": "{...}",
"xds_config": []
}
node
(config.core.v3.Node) Node for a particular client.
xds_config
(service.status.v3.PerXdsConfig)
service.status.v3.ClientStatusResponse
[service.status.v3.ClientStatusResponse proto]
{
"config": []
}
config
(service.status.v3.ClientConfig) Client configs for the clients specified in the ClientStatusRequest.
Enum service.status.v3.ConfigStatus
[service.status.v3.ConfigStatus proto]
Status of a config from a management server view.
UNKNOWN
(DEFAULT) Status info is not available/unknown.
SYNCED
Management server has sent the config to client and received ACK.
NOT_SENT
Config is not sent.
STALE
Management server has sent the config to client but hasn’t received ACK/NACK.
ERROR
Management server has sent the config to client but received NACK. The attached config dump will be the latest config (the rejected one), since it is the persisted version in the management server.
Enum service.status.v3.ClientConfigStatus
[service.status.v3.ClientConfigStatus proto]
Config status from a client-side view.
CLIENT_UNKNOWN
(DEFAULT) Config status is not available/unknown.
CLIENT_REQUESTED
Client requested the config but hasn’t received any config from management server yet.
CLIENT_ACKED
Client received the config and replied with ACK.
CLIENT_NACKED
Client received the config and replied with NACK. Notably, the attached config dump is not the NACKed version, but the most recent accepted one. If no config is accepted yet, the attached config dump will be empty.