54 lines
1.8 KiB
Bash
54 lines
1.8 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Build the ExaBGP Docker image and export it for CML 2.9 import.
|
||
|
|
#
|
||
|
|
# Usage:
|
||
|
|
# ./cml/build-cml-image.sh
|
||
|
|
#
|
||
|
|
# Output:
|
||
|
|
# /tmp/obmp-exabgp.tar — upload this to CML via:
|
||
|
|
# Tools > Node and Image Definitions > Image Definitions > Manage Image Uploads
|
||
|
|
#
|
||
|
|
# After upload, also import the node + image definition YAMLs:
|
||
|
|
# Tools > Node and Image Definitions > Import > cml/exabgp-node-definition.yaml
|
||
|
|
# Tools > Node and Image Definitions > Import > cml/exabgp-image-definition.yaml
|
||
|
|
|
||
|
|
set -e
|
||
|
|
cd "$(dirname "$0")/.."
|
||
|
|
|
||
|
|
echo "=== Building ExaBGP Docker image ==="
|
||
|
|
docker build -t obmp-exabgp:latest ./exabgp/
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Exporting image to /tmp/obmp-exabgp.tar ==="
|
||
|
|
docker save -o /tmp/obmp-exabgp.tar obmp-exabgp:latest
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Image details ==="
|
||
|
|
SIZE=$(du -h /tmp/obmp-exabgp.tar | cut -f1)
|
||
|
|
echo " File: /tmp/obmp-exabgp.tar ($SIZE)"
|
||
|
|
|
||
|
|
SHA=$(sha256sum /tmp/obmp-exabgp.tar | awk '{print $1}')
|
||
|
|
echo " SHA256: $SHA"
|
||
|
|
|
||
|
|
IMAGE_ID=$(docker image inspect obmp-exabgp:latest --format='{{.Id}}')
|
||
|
|
echo " Image ID: $IMAGE_ID"
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Next steps ==="
|
||
|
|
echo "1. Update cml/exabgp-image-definition.yaml with:"
|
||
|
|
echo " sha256: $SHA"
|
||
|
|
echo ""
|
||
|
|
echo "2. Upload to CML:"
|
||
|
|
echo " a. Tools > Node and Image Definitions > Import"
|
||
|
|
echo " Upload: cml/exabgp-node-definition.yaml"
|
||
|
|
echo " b. Tools > Node and Image Definitions > Import"
|
||
|
|
echo " Upload: cml/exabgp-image-definition.yaml"
|
||
|
|
echo " c. Tools > Node and Image Definitions > Image Definitions > Manage Image Uploads"
|
||
|
|
echo " Upload: /tmp/obmp-exabgp.tar"
|
||
|
|
echo ""
|
||
|
|
echo "3. In your CML lab topology:"
|
||
|
|
echo " a. Drag 'ExaBGP Route Injector' from the node palette"
|
||
|
|
echo " b. Draw links to CORE-01 and CORE-02"
|
||
|
|
echo " c. Edit the boot.sh in the node config to set correct IPs"
|
||
|
|
echo " d. Start the node"
|