Calico for Containers
This repository is the home of calico/node
and calicoctl
.
Note that the documentation in this repo is targeted at Calico contributors.
For information on calico/node
, see the documentation on calico/node architecture.
For information on calicoctl
usage, see the calicoctl reference information
Developing
Print useful actions with make help
.
Building calico/node
To build the calico/node
container, run the following build step from
the root of the repository:
make calico/node
Use the build variables listed in the Calico binaries
variable section
at the top of the Makefile to modify which components are included in the resulting image.
For example, the following command will produce a docker image called calico/node:custom
which uses custom Felix and Libnetwork binaries:
FELIX_CONTAINER_NAME=calico/felix:1.4.3 \
LIBNETWORK_PLUGIN_CONTAINER_NAME=calico/libnetwork-plugin:v1.0.0-beta \
BUILD_CONTAINER_NAME=calico/node:custom \
make calico/node
Building calicoctl
There are two ways to build calicoctl: natively, and dockerized
Dockerized Builds
For simplicity, calicoctl
can be built in a Docker container, eliminating
the need for any dependencies in your host developer environment, using the following command:
make dist/calicoctl
The binary will be put in ./dist
:
./dist/calicoctl --help
Native Builds
-
Assuming you have already installed go version 1.7.1+,
ensure you've cloned this repository into your Go project path.
git clone https://github.com/projectcalico/calico-containers.git $GOPATH/src/github.com/projectcalico/calico-containers
-
Install Glide.
-
Populate the vendor/
directory in the project's root with this project's dependencies:
glide install -strip-vendor
-
Build the binary:
make binary
Tests
Calico-containers system tests run in a container to ensure all build dependencies are met.
Specifically, the calico/test
image produced at https://github.com/projectcalico/libcalico
is used.
The following Makefile step will use that image to run all local tests:
make st