Move docker build stuff into a subdirectory. Update structure to retire manual-{pre,post}
This commit is contained in:
18
README.md
18
README.md
@ -2,24 +2,24 @@
|
|||||||
|
|
||||||
This docker container creates a VPP instance based on the latest VPP release. It starts up as per
|
This docker container creates a VPP instance based on the latest VPP release. It starts up as per
|
||||||
normal, using /etc/vpp/startup.conf (which Containerlab might replace when it starts its
|
normal, using /etc/vpp/startup.conf (which Containerlab might replace when it starts its
|
||||||
containers). Once started, it'll execute /etc/vpp/bootstrap.vpp within the dataplane. There are
|
containers). Once started, it'll execute `/etc/vpp/bootstrap.vpp` within the dataplane. There are
|
||||||
three relevant files:
|
two relevant files:
|
||||||
|
|
||||||
1. `manual-pre.vpp` -- can be supplied by the user, to run any configuration statements before
|
1. `clab.vpp` -- generated by `files/init-container.sh`. Its purpose is to bind the `veth`
|
||||||
containerlab takes control.
|
|
||||||
|
|
||||||
1. `clab.vpp` -- generated by `files/container-init.sh`. Its purpose is to bind the `veth`
|
|
||||||
interfaces that containerlab has added to the container into the VPP dataplane (see below).
|
interfaces that containerlab has added to the container into the VPP dataplane (see below).
|
||||||
|
1. `vppcfg.vpp` -- generated by `files/init-container.sh`. Its purpose is to read the user
|
||||||
|
specified `vppcfg.yaml` file and convert it into VPP CLI commands. If no YAML file is
|
||||||
|
specified, or if it is not syntactically valid, an empty file is generated instead.
|
||||||
|
|
||||||
1. `manual-post.vpp` -- can be supplied by the user, to run any configuration statements after
|
For Containerlab users who wish to have more control over their VPP bootstrap, it's possible to
|
||||||
containerlab is finished with its per-lab statements.
|
bind-mount `/etc/vpp/bootstrap.vpp`.
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
IMG=git.ipng.ch/ipng/vpp-containerlab
|
IMG=git.ipng.ch/ipng/vpp-containerlab
|
||||||
TAG=latest
|
TAG=latest
|
||||||
docker build --no-cache -f Dockerfile.bookworm -t $IMG .
|
docker build --no-cache -f docker/Dockerfile.bookworm -t $IMG docker/
|
||||||
docker image tag $IMG $IMG:$TAG
|
docker image tag $IMG $IMG:$TAG
|
||||||
docker push $IMG
|
docker push $IMG
|
||||||
docker push $IMG:$TAG
|
docker push $IMG:$TAG
|
||||||
|
2
docker/files/etc/vpp/bootstrap.vpp
Normal file
2
docker/files/etc/vpp/bootstrap.vpp
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
exec /etc/vpp/clab.vpp
|
||||||
|
exec /etc/vpp/vppcfg.vpp
|
@ -1,3 +1,6 @@
|
|||||||
|
# This is the vpp-containerlab default startup.conf, which is meant to be
|
||||||
|
# overridden by Containerlab's node/fdio_vpp/vpp_startup_config.go.tpl
|
||||||
|
|
||||||
unix {
|
unix {
|
||||||
interactive
|
interactive
|
||||||
log /var/log/vpp/vpp.log
|
log /var/log/vpp/vpp.log
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
STARTUP_CONFIG=${STARTUP_CONFIG:="/etc/vpp/startup.conf"}
|
STARTUP_CONFIG=${STARTUP_CONFIG:="/etc/vpp/startup.conf"}
|
||||||
CLAB_VPP_FILE=${CLAB_VPP_FILE:=/etc/vpp/clab.vpp}
|
CLAB_VPP_FILE=${CLAB_VPP_FILE:=/etc/vpp/clab.vpp}
|
||||||
|
VPPCFG_VPP_FILE=${VPPCFG_VPP_FILE:=/etc/vpp/vppcfg.vpp}
|
||||||
NETNS=${NETNS:="dataplane"}
|
NETNS=${NETNS:="dataplane"}
|
||||||
BIRD_ENABLED=${BIRD_ENABLED:="true"}
|
BIRD_ENABLED=${BIRD_ENABLED:="true"}
|
||||||
|
|
||||||
@ -40,5 +41,11 @@ set interface state $IFNAME up
|
|||||||
EOF
|
EOF
|
||||||
done
|
done
|
||||||
|
|
||||||
|
echo "Generating $VPPCFG_VPP_FILE"
|
||||||
|
: > $VPPCFG_VPP_FILE
|
||||||
|
if [ -r /etc/vpp/vppcfg.yaml ]; then
|
||||||
|
vppcfg plan --novpp -c /etc/vpp/vppcfg.yaml -o $VPPCFG_VPP_FILE
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Starting VPP"
|
echo "Starting VPP"
|
||||||
exec /usr/bin/vpp -c $STARTUP_CONFIG
|
exec /usr/bin/vpp -c $STARTUP_CONFIG
|
@ -1,3 +0,0 @@
|
|||||||
exec /etc/vpp/manual-pre.vpp
|
|
||||||
exec /etc/vpp/clab.vpp
|
|
||||||
exec /etc/vpp/manual-post.vpp
|
|
@ -1 +0,0 @@
|
|||||||
comment { These commands are executed after Containerlab stuff }
|
|
@ -1 +0,0 @@
|
|||||||
comment { These commands are executed before Containerlab stuff }
|
|
Reference in New Issue
Block a user