networking

module
v1.22.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 3, 2026 License: Apache-2.0

README

Networking Manager

Table of Contents

Overview

The Networking Manager constantly verifies the correctness of the networking configuration and IP uniqueness on of the Edge Nodes within a site.

The Networking Manager handles Network Resources representing the network infrastructure of a site and its relative addressing information. Most of the network resources are unique within a single site, but not globally unique (e.g., multiple sites may have the same IP Subnet definitions). This repository contains the Networking Manager implementation.

Features

  • Top-down Edge Node networking configuration and constant correctness monitoring, via reconciliation
  • Exemplar reconciliation implementation, can be taken for other elements.

To learn more about internals and software architecture, see Edge Infrastructure Manager developer documentation.

Get Started

Instructions on how to install and set up Networking Manger on your development machine.

Dependencies

Firstly, please verify that all dependencies have been installed.

# Return errors if any dependency is missing
make dependency-check

This code requires the following tools to be installed on your development machine:

You can install Go dependencies by running make go-dependency.

Build the Binary

Build the project as follows:

# Build go binary
make build

The binary is installed in the $OUT_DIR folder.

Usage

This guide shows how to deploy Networking Manger for local development or testing. For production deployments use the Edge Infrastructure Manager charts.

Note: To run the Networking Manager, Inventory must to be running as the manager needs to register as an Inventory client. Please refer to the Inventory instructions and Database in Inventory for more information about how to run Inventory.

Run Networking Manger
make run

See the documentation if you want to learn more about using Edge Orchestrator.

Functional Test

Run the make target test to mock agents to simulate the relative behaviors for host resources.

make test

For any issues see the Troubleshooting guide.

Contribute

To learn how to contribute to the project, see the contributor's guide. The project will accept contributions through Pull-Requests (PRs). PRs must be built successfully by the CI pipeline, pass linters verifications and the unit tests.

There are several convenience make targets to support developer activities, you can use help to see a list of makefile targets. The following is a list of makefile targets that support developer activities:

  • generate to generate the database schema, Go code, and the Python binding from the protobuf definition of the APIs
  • lint to run a list of linting targets
  • mdlint to run linting of this file.
  • test to run the unit test
  • go-tidy to update the Go dependencies and regenerate the go.sum file
  • build to build the project and generate executable files
  • docker-build to build the Inventory Docker container

Directories

Path Synopsis
Package main is the entry point for the networking manager service.
Package main is the entry point for the networking manager service.
internal
clients
Package clients provides gRPC client implementations for inventory services.
Package clients provides gRPC client implementations for inventory services.
errors
Package errors provides error handling utilities for the networking manager.
Package errors provides error handling utilities for the networking manager.
handlers
Package handlers implements the gRPC service handlers for the networking manager.
Package handlers implements the gRPC service handlers for the networking manager.
reconcilers
Package reconcilers provides reconciliation logic for networking resources.
Package reconcilers provides reconciliation logic for networking resources.
testutils
Package testutils provides testing utilities for the networking manager.
Package testutils provides testing utilities for the networking manager.
utils
Package utils provides utility functions for the networking manager.
Package utils provides utility functions for the networking manager.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL