Skip to content

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 Interface
  • gNOI: gRPC Network Operations Interface
  • gNSI: gRPC Network Security Interface
  • gRIBI: 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:

  • discovery
  • mgmt

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#

apiVersion: management.eda.nokia.com/v1
kind: GRPCServer
metadata:
  name: grpc-server
  namespace: eda
spec:
  enabled: true
  metadataAuthentication: true
  router: my-router
  routerKind: Router
  services:
    - GNMI
    - GNOI
    - GNSI
cat << 'EOF' | kubectl apply -f -
apiVersion: management.eda.nokia.com/v1
kind: GRPCServer
metadata:
  name: grpc-server
  namespace: eda
spec:
  enabled: true
  metadataAuthentication: true
  router: my-router
  routerKind: Router
  services:
    - GNMI
    - GNOI
    - GNSI
EOF

Custom Resource Definition#

To browse the Custom Resource Definition go to crd.eda.dev.

GRPCServer

management.eda.nokia.com / v1

SPEC

GRPCServerSpec defines the desired state of GRPCServer

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

STATUS

GRPCServerStatus defines the observed state of GRPCServer

  • #
  • #
  • #
  • #
  • #
  • #