vpp

module
v0.0.0-...-2d08fe4 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2023 License: Apache-2.0

README

Contiv - VPP

Build Status Coverage Status Go Report Card GoDoc GitHub license

Contiv-VPP is a CNI plugin for Kubernetes that employs a programmable CNF vSwitch based on FD.io VPP offering feature-rich, high-performance cloud-native networking and services.

For more details see https://contivpp.io/

Features

Releases

Release Version Date
Latest stable release Latest release release date

Please see the CHANGELOG for a full list of changes on every release.

Documentation

The docs folder contains lots of documentation. For the beginning, you can start with:

  • ARCHITECTURE for high-level description of Contiv-VPP components and operation,
  • NETWORKING for detailed description on how the network is programmed with Contiv-VPP,
  • DEVELOPER GUIDE for details on how Contiv-VPP works internally.

Quickstart

You can get started with Contiv-VPP in one of the following ways:

  • Use the Contiv-VPP Vagrant Installation instructions to start a simulated Kubernetes cluster with a couple of hosts running in VirtualBox VMs. This is the easiest way to bring up a cluster for exploring the capabilities and features of Contiv-VPP.

  • Use the Contiv-specific kubeadm install instructions to manually install Kubernetes with Contiv-VPP networking on one or more bare-metal servers.

  • Use the Arm64-specific kubeadm install instructions to manually install Kubernetes with Contiv-VPP networking on one or more bare-metal servers of Arm64 platform.

  • Use the Calico-VPP Vagrant to explore deployment of VPP in Calico clusters, where some of the nodes can be running plain Calico (without VPP) and some of the nodes can be running Calico with VPP.

  • Try Contiv-VPP UI web browser user interface on top of Contiv-VPP, it runs in Vagrant deployments as well as on bare-metal.

Configuration & Troubleshooting

Please refer to the Contiv-VPP configuration and troubleshooting document.

Reporting Bugs

In order to report a bug, please file an issue in GitHub. Please provide the information described in Bug Reports README.

Communication Channels

Slack Channel: https://contivvpp.slack.com/ (invite).

Contributing

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

Directories

Path Synopsis
cmd
contiv-agent
Contiv-agent is an extended vpp agent.
Contiv-agent is an extended vpp agent.
contiv-crd
Contiv-crd is an agent that start a custom resource for Kubernetes responsible to get telemetry information for every node
Contiv-crd is an agent that start a custom resource for Kubernetes responsible to get telemetry information for every node
contiv-init
Contiv-init is the init process of the contiv vswitch POD.
Contiv-init is the init process of the contiv vswitch POD.
contiv-ksr
Contiv-ksr is an agent that watches k8s resources and propagates all changes into the ETCD data store.
Contiv-ksr is an agent that watches k8s resources and propagates all changes into the ETCD data store.
contiv-stn
Contiv-stn is a Daemon which acts as a GRPC server, serving "Steal the NIC" requests - requests to unbind an interface from the kernel driver.
Contiv-stn is a Daemon which acts as a GRPC server, serving "Steal the NIC" requests - requests to unbind an interface from the kernel driver.
mock
localclient
Package localclient contains mocks for transactions created by DSL structures in localclient packages.
Package localclient contains mocks for transactions created by DSL structures in localclient packages.
localclient/dsl
Package dsl is base package for mocks of DSL transaction creators.
Package dsl is base package for mocks of DSL transaction creators.
pkg
pci
Package pci provides API for binding & unbinding of PCI devices to a specific driver.
Package pci provides API for binding & unbinding of PCI devices to a specific driver.
plugins
bgpreflector
Package bgpreflector reflects BGP routes installed in the host system's network stack (default network namespace) into VPP.
Package bgpreflector reflects BGP routes installed in the host system's network stack (default network namespace) into VPP.
crd
crd/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
crd/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
crd/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
crd/pkg/client/clientset/versioned/typed/contivppio/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
crd/pkg/client/clientset/versioned/typed/contivppio/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
crd/pkg/client/clientset/versioned/typed/nodeconfig/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
crd/pkg/client/clientset/versioned/typed/nodeconfig/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
crd/pkg/client/clientset/versioned/typed/telemetry/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
crd/pkg/client/clientset/versioned/typed/telemetry/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
devicemanager
Package devicemanager is responsible for allocation & connection of special devices that may need to be connected to pods in case they are defined in resources section of a pod definition.
Package devicemanager is responsible for allocation & connection of special devices that may need to be connected to pods in case they are defined in resources section of a pod definition.
idalloc
Package idalloc is responsible for allocation of numeric identifiers in distributed manner, where each node in the cluster needs to be able to allocate an unique ID from the given pool for a given purpose identified by a string label, but once allocated, other nodes can not change / allocate a different ID for given purpose (label).
Package idalloc is responsible for allocation of numeric identifiers in distributed manner, where each node in the cluster needs to be able to allocate an unique ID from the given pool for a given purpose identified by a string label, but once allocated, other nodes can not change / allocate a different ID for given purpose (label).
ipam
Package ipam provides node-local IPAM calculations: POD IP addresses, VPP-host interconnect, node interconnect IP addresses and SRv6 SIDs.
Package ipam provides node-local IPAM calculations: POD IP addresses, VPP-host interconnect, node interconnect IP addresses and SRv6 SIDs.
ipnet
Package ipnet configures VPP-based IPv4 network connectivity between Kubernetes pods and nodes.
Package ipnet configures VPP-based IPv4 network connectivity between Kubernetes pods and nodes.
ksr
Package ksr implements plugin that watches K8s resources and causes all changes to be reflected in the ETCD data store.
Package ksr implements plugin that watches K8s resources and causes all changes to be reflected in the ETCD data store.
policy
Package policy implements Kubernetes Network policies [1] for Contiv/VPP.
Package policy implements Kubernetes Network policies [1] for Contiv/VPP.
service
Package service implements Kubernetes Services [1] for Contiv/VPP.
Package service implements Kubernetes Services [1] for Contiv/VPP.
sfc
Package sfc implements Service Function Chaining between k8s pods and external interfaces in Contiv-VPP.
Package sfc implements Service Function Chaining between k8s pods and external interfaces in Contiv-VPP.
statscollector
Package statscollector implements plugin that collects the statistics from vpp interfaces and publishes them to prometheus.
Package statscollector implements plugin that collects the statistics from vpp interfaces and publishes them to prometheus.

Jump to

Keyboard shortcuts

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