All Projects → ligato → Vpp Agent

ligato / Vpp Agent

Licence: apache-2.0
⚡️ Control plane management agent for FD.io's VPP

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Vpp Agent

Micro
Micro is a distributed cloud operating system
Stars: ✭ 10,778 (+7767.15%)
Mutual labels:  cloud-native
Okteto
Develop your applications directly in your Kubernetes Cluster
Stars: ✭ 1,937 (+1313.87%)
Mutual labels:  cloud-native
Phantoscope
Open Source, Cloud Native, RESTful Search Engine Powered by Neural Networks
Stars: ✭ 127 (-7.3%)
Mutual labels:  cloud-native
Sentinel Golang
Sentinel Go version (Reliability & Resilience)
Stars: ✭ 1,817 (+1226.28%)
Mutual labels:  cloud-native
Apisix Docker
the docker for Apache APISIX
Stars: ✭ 119 (-13.14%)
Mutual labels:  cloud-native
Rudr
A Kubernetes implementation of the Open Application Model specification
Stars: ✭ 1,553 (+1033.58%)
Mutual labels:  cloud-native
Zitadel
ZITADEL - Cloud Native Identity and Access Management
Stars: ✭ 105 (-23.36%)
Mutual labels:  cloud-native
Curiefense
Curiefense is a unified, open source platform protecting cloud native applications.
Stars: ✭ 136 (-0.73%)
Mutual labels:  cloud-native
Ignite
Ignite a Firecracker microVM
Stars: ✭ 1,954 (+1326.28%)
Mutual labels:  cloud-native
Dubbo Go Pixiu
Based on the proxy gateway service of dubbo-go, it solves the problem that the external protocol calls the internal Dubbo cluster. At present, it supports HTTP and gRPC[developing].
Stars: ✭ 124 (-9.49%)
Mutual labels:  cloud-native
Kccss
Kubernetes Common Configuration Scoring System
Stars: ✭ 111 (-18.98%)
Mutual labels:  cloud-native
Motan Openresty
A cross-language RPC framework for rapid development of high performance distributed services based on OpenResty.
Stars: ✭ 117 (-14.6%)
Mutual labels:  cloud-native
Mangle
Git Repository for the Mangle tool
Stars: ✭ 125 (-8.76%)
Mutual labels:  cloud-native
Spring Cloud Sleuth
Distributed tracing for spring cloud
Stars: ✭ 1,531 (+1017.52%)
Mutual labels:  cloud-native
Kubernetes Vagrant Centos Cluster
Setting up a distributed Kubernetes cluster along with Istio service mesh locally with Vagrant and VirtualBox, only PoC or Demo use.
Stars: ✭ 1,750 (+1177.37%)
Mutual labels:  cloud-native
Awesome Microservices
A curated list of Microservice Architecture related principles and technologies.
Stars: ✭ 10,642 (+7667.88%)
Mutual labels:  cloud-native
Book Cicd Docker Kubernetes
A book on CI/CD with Docker, Kubernetes and Semaphore
Stars: ✭ 122 (-10.95%)
Mutual labels:  cloud-native
Coolstore Microservices
A full-stack .NET microservices build on Dapr and Tye
Stars: ✭ 1,903 (+1289.05%)
Mutual labels:  cloud-native
Spring Cloud Config
External configuration (server and client) for Spring Cloud
Stars: ✭ 1,740 (+1170.07%)
Mutual labels:  cloud-native
Litmus
Litmus helps SREs and developers practice chaos engineering in a Cloud-native way. Chaos experiments are published at the ChaosHub (https://hub.litmuschaos.io). Community notes is at https://hackmd.io/a4Zu_sH4TZGeih-xCimi3Q
Stars: ✭ 2,377 (+1635.04%)
Mutual labels:  cloud-native

VPP Agent

The VPP Agent is a Go implementation of a control/management plane for VPP based cloud-native Virtual Network Functions (VNFs). The VPP Agent is built on top of CN Infra, a framework for developing cloud-native VNFs (CNFs).

The VPP Agent can be used as-is as a management/control agent for VNFs based on off-the-shelf VPP (e.g. a VPP-based vswitch), or as a framework for developing management agents for VPP-based CNFs. An example of a custom VPP-based CNF is the Contiv-VPP vswitch.

Please note that the content of this repository is currently WORK IN PROGRESS!

Status

CI Docker Build Status Coverage Status Go Report Card

Releases

Release Release Date Info
stable Release date latest release

Have a look at the release notes for a complete list of changes.

Branches

Branch Info Last Commit
master has switched to v3 ⚠️ GitHub last commit (branch)
dev has been DEPRECATED GitHub last commit (branch)
v2 provides legacy v2 GitHub last commit (branch)

All development is done against master branch.

Images

Image Image Size/Layers Info
ligato/vpp-agent MicroBadger Size MicroBadger Layers pulls with minimal footprint
ligato/dev-vpp-agent MicroBadger Size MicroBadger Layers pulls prepared for developers

Quickstart

For a quick start with the VPP Agent, you can use the pre-built Docker images on DockerHub that contain the VPP Agent and VPP: ligato/vpp-agent (or for ARM64: ligato/vpp-agent-arm64).

  1. Start ETCD on your host (e.g. in Docker as described here).

    Note: for ARM64 see the information for etcd.

  2. Run VPP + VPP Agent in a Docker container:

docker run -it --rm --name agent1 --privileged ligato/vpp-agent
  1. Manage VPP agent using agentctl:
docker exec -it agent1 agentctl --help
docker exec -it agent1 agentctl status
  1. Check the configuration (via agentctl or in VPP console):
docker exec -it agent1 agentctl dump all
docker exec -it agent1 vppctl -s localhost:5002 show interface

Next Steps

See README of development docker image for more details.

Documentation

PkgGoDev

Extensive documentation for the VPP Agent can be found at docs.ligato.io.

Architecture

The VPP Agent is basically a set of VPP-specific plugins that use the CN-Infra framework to interact with other services/microservices in the cloud (e.g. a KV data store, messaging, log warehouse, etc.). The VPP Agent exposes VPP functionality to client apps via a higher-level model-driven API. Clients that consume this API may be either external (connecting to the VPP Agent via REST, gRPC API, Etcd or message bus transport), or local Apps and/or Extension plugins running on the same CN-Infra framework in the same Linux process.

The VNF Agent architecture is shown in the following figure:

vpp agent

Each (northbound) VPP API - L2, L3, ACL, ... - is implemented by a specific VNF Agent plugin, which translates northbound API calls/operations into (southbound) low level VPP Binary API calls. Northbound APIs are defined using protobufs, which allow for the same functionality to be accessible over multiple transport protocols (HTTP, gRPC, Etcd, ...). Plugins use the GoVPP library to interact with the VPP.

The following figure shows the VPP Agent in context of a cloud-native VNF, where the VNF's data plane is implemented using VPP/DPDK and its management/control planes are implemented using the VNF agent:

context

Contributing

GitHub contributors

If you are interested in contributing, please see the contribution guidelines.

License

GitHub license

Modified 3rd party tools included

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].