GRPC Server#
Management → GSGRPC Servers
The GRPCServer resource enables a node to function as a gRPC server for remote management.
Info
gRPC is a high-performance Remote Procedure Call (RPC) framework. It enables various management and telemetry interfaces, such as:
gNMI: gRPC Network Management InterfacegNOI: gRPC Network Operations InterfacegNSI: gRPC Network Security InterfacegRIBI: gRPC Routing Information Base Interface
Node users that may access the GRPCServer must have the appropriate permissions.
OS-specific limitations#
Some operating systems have specific implementation details that are worth considering.
SR Linux#
In SR Linux, each gRPC server is an independently configured instance that runs in a particular network instance. Multiple gRPC servers can run in the same network instance, provided each server uses a different port.
The following names are restricted for internal use, and cannot be used as the name of a GRPCServer:
discoverymgmt
SR OS#
On SR OS, a single gRPC server supports concurrent sessions and can be reached through one or more network instances. Because EDA uses gNMI to communicate with an SR OS node, the management application prevents disabling the gNMI service that EDA relies on.
Only create a GRPCServer on SR OS to enable or disable certain additional gRPC-based services, or to allow access to the gRPC interfaces through a virtual Router.
Dependencies#
Each GRPCServer resource targets either a ManagementRouter, a DefaultRouter, or a Router. While only one of the three is required, all three are listed as dependencies.
ManagementRouter#
If the GRPCServer is reachable through a ManagementRouter, the resource referenced by the router property must exist.
Management routers cannot be selected through label selectors.
DefaultRouter#
If the GRPCServer is reachable through a DefaultRouter, the resource referenced by the router property must exist.
Label selectors may be used to select multiple DefaultRouters.
Router#
If the GRPCServer is reachable through a Router, the resource referenced by the router property must exist.
Routers cannot be selected through label selectors.
Referenced resources#
The GRPCServer does not reference any other EDA resources.
Examples#
Custom Resource Definition#
To browse the Custom Resource Definition go to crd.eda.dev.
GRPCServer
SPEC
GRPCServerSpec defines the desired state of GRPCServer
-
Enable the gRPC server.
-
Allow insecure (non-TLS) connections to the gRPC server.
-
Maximum number of concurrent streams for the gRPC server.
format: int32range: 0 to 2147483647 -
Enable metadata authentication for the gRPC server.
-
Port for the gRPC server to listen on.
format: int32range: 1 to 65535 -
Rate limit for the gRPC server, in calls per minute.
format: int32range: 0 to 65535 -
Router to associate the server with.
-
The Kind of the router for the server.
enum: "ManagementRouter", "Router", "DefaultRouter" -
Selects router resources based on the defined Kind. Applies to DefaultRouter only. Not supported for Router and ManagementRouter.
-
Enabled gRPC services.
-
Maximum number of gRPC sessions.
format: int32range: 0 to 65535 -
TLS profile name.
-
YANG models to be used by the gRPC server.
STATUS
GRPCServerStatus defines the observed state of GRPCServer
-
Health score of the gRPC server.
format: int32range: <= 100 -
Reason for the health score.
-
Indicates when the gRPC server last changed state.
-
Operational state of the gRPC server.
enum: "Up", "Down", "Degraded", "Unknown" -
Enabled services on the gRPC server.