Build xds-agent from scratch


Install Go, npm, nodejs and some other tools.

Refer to Prerequisites chapter for more details.


Clone sources under $ROOTDIR/src/ in order respect directory hierarchy that match Go package import logic (see How to Write Go Code for more details).

Then use delivered Makefile :

# Declare ROOTDIR, can be any location (for example xds-build)

# Create directory hierarchy that match Go package import logic
mkdir -p $ROOTDIR/src/
cd $ROOTDIR/src/

# Clone sources
git clone
# or git clone ssh://

# Build xds-agent
# (note that GOPATH will correctly be set by Makefile)
cd xds-agent
make all

Generate xds-agent packages / tarballs for Linux, MacOS, Windows

make package-all

And to install xds-agent (by default in /opt/AGL/xds/agent):

make install


Makefile install rule and default values in configuration file are set to fit the docker setup.

So you may need to adapt some settings when you want to install xds-agent natively.


Used DESTDIR to specify another install directory

make install DESTDIR=$HOME/opt/xds-agent

Cross build

For example on a Linux machine to cross-build for Windows, just follow these steps.

The first time you need to install all the windows-amd64 standard packages on your system with

# List all supported OS / ARCH
go tool dist list

# Install all standard packages for another OS/ARCH (eg. windows amd64)
GOOS=windows GOARCH=amd64 go install -v -a std

Then compile and package xds-agent using provided makefile

export GOOS=windows
export GOARCH=amd64
make all
make package