Quick start

For a quick start with the VPP Agent, you can use pre-built Docker images with the Agent and VPP on Dockerhub.


The Agent in the pre-built Docker image will not start if it can’t connect to both ETCD and Kafka, if used.

  1. Run VPP + VPP Agent in the Docker image:
docker pull ligato/vpp-agent-arm64
docker run -it --name vpp --rm ligato/vpp-agent-arm64
  1. Configure the VPP agent using agentctl:
docker exec -it vpp agentctl -h
  1. Check the configuration (using agentctl or directly using VPP console):
docker exec -it vpp agentctl -e show
docker exec -it vpp vppctl -s localhost:5002

AMD64 Images

The VPP Agent can be successfully built also for the ARM64 platform.

Development images

For a quick start with the development image, you can download the official image for ARM64 platform from DockerHub.

// latest release (stable)
$ docker pull

// bleeding edge (unstable)
$ docker pull # 

List of all available docker image tags for development image can be found here for ARM64.

Production images

For a quick start with the VPP Agent, you can use pre-build Docker images with the Agent and VPP on Dockerhub: the official image for ARM64 platform.

docker pull ligato/vpp-agent-arm64

ARM64 and ETCD Server

You can run the ETCD server in a separate container on your local host as follows:

sudo docker run -p 2379:2379 --name etcd -e ETCDCTL_API=3 -e ETCD_UNSUPPORTED_ARCH=arm64 \ /usr/local/bin/etcd \
    -advertise-client-urls \

The ETCD server will be available on your host OS IP (by default) and port 2379. Call the agent via ETCD using the agentctl testing client:

agentctl kvdb put /vnf-agent/vpp1/config/vpp/v2/route/vrf/1/dst/ '{
    "dst_network": "",
    "next_hop_addr": ""

agentctl kvdb del /vnf-agent/vpp1/config/vpp/v2/route/vrf/1/dst/


For ARM64: Check for proper ETCD ARM64 docker image in the official repository. Currently you must use the parameter -e ETCD_UNSUPPORTED_ARCH=arm64.

ARM64 and Kafka

There is no official spotify/kafka image for ARM64 platform. You can build an image following steps at the repository. However you need to modify the Kafka/Dockerfile before building like this:

//FROM java:openjdk-8-jre
FROM openjdk:8-jre

For preparing kafka-arm64 image use:

git clone
cd docker-kafka
sed -i -e "s/FROM java:openjdk-8-jre/FROM openjdk:8-jre/g" kafka/Dockerfile
sed -i -e "s/ENV KAFKA_VERSION KAFKA_VERSION" kafka/Dockerfile
docker build -t kafka-arm64 kafka/

Then you can start Kafka in a separate container:

sudo docker run -p 2181:2181 -p 9092:9092 --name kafka --rm \
 --env ADVERTISED_HOST= --env ADVERTISED_PORT=9092 kafka-arm64