Code Monkey home page Code Monkey logo

calico-containers's Introduction

Build Status CircleCI branch Docker Pulls

Slack Status IRC Channel

Calico for Containers

Calico provides a highly scalable networking solution for connecting data center workloads (containers, VMs, or bare metal). It is based on the same scalable IP networking principles as the internet: providing connectivity using a pure Layer 3 approach. Calico can be deployed without encapsulation or overlays to provide high performance at massive scales.

Read more about it on the Project Calico website.

When using Calico networking in containerized environments, each container gets its own IP and fine grain security policy. A calico-node service runs on each node which handles all of the necessary IP routing, installation of policy rules, and distribution of routes across the cluster of nodes.

This repository contains:

  • The calico/node container Dockerfile and build environment. It contains the configuration and "glue" that pull together four separate processes to provide Calico networking:
  • Felix, the Calico worker process
  • BIRD, the route distribution process (there are separate processes for IPv4 and IPv6)
  • Confd, a templating process to auto-generate configuration for BIRD
  • A command line tool, calicoctl, which makes it easy to configure and start the Calico service listed above, and allows you to interact with the datastore (etcd) to define and apply rich security policy to the containers you create.

Please refer to our main documentation for details on deploying Calico and using calicoctl.

Common set-up

Assuming you have already installed go version 1.7.1+, perform the following simple steps to get building:

git clone [email protected]:projectcalico/calico-containers.git $GOPATH/src/github.com/projectcalico/calico-containers
  • Switch to your project directory:
cd $GOPATH/src/github.com/projectcalico/calico-containers
  • Populate the vendor/ directory in the project's root with this project's dependencies:
glide install

Building calicoctl

Non-release build

To do a quick, non-release build of calicoctl, suitable for local testing, run

make bin/calicoctl

The binary will be put in ./bin:

./bin/calicoctl --help

Release build

For releases, we use a Docker-based build to ensure a clean environment with an appropriate glibc. Specifically, we use a CentOS 6.6 container image to build against glibc v2.12. this ensures compatibility with any later glibc.

To do a release build, run:

make release/calicoctl

The binary will be emitted to ./release/calicoctl-<version>

calico-containers's People

Contributors

tomdee avatar alexaltair avatar trimbiggs avatar caseydavenport avatar djosborne avatar matthewdupre avatar gunjan5 avatar fasaxc avatar paultiplady avatar ozdanborne avatar robbrockbank avatar lwr20 avatar luke-mino-altherr avatar alexwlchan avatar symmetric avatar tonicmuroq avatar chengweiv5 avatar thomaslohner avatar artem-panchenko avatar grkvlt avatar cainelli avatar doublek avatar mikespreitzer avatar depay avatar mikev avatar wrouesnel avatar zefciu avatar heschlie avatar calpicow avatar makuk66 avatar

Watchers

James Cloos avatar Punal Patel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.