Skip to content

Instantly share code, notes, and snippets.

@webwurst
Last active August 29, 2015 14:26
Show Gist options
  • Save webwurst/f72e522a2f9425f15134 to your computer and use it in GitHub Desktop.
Save webwurst/f72e522a2f9425f15134 to your computer and use it in GitHub Desktop.
Project Calico
curl -SOL https://github.com/Metaswitch/calico-docker/releases/download/v0.5.4/calicoctl
chmod +x calicoctl
sudo mv calicoctl /usr/local/bin/

curl -SOL https://experimental.docker.com/builds/Linux/x86_64/docker-latest
chmod +x docker-latest
sudo mv docker-latest /usr/local/bin/
sudo docker-latest daemon
docker-latest run -d -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul -server -bootstrap

docker-latest rm etcd
docker-latest run -d -v /usr/share/ca-certificates/:/etc/ssl/certs -p 4001:4001 -p 2380:2380 -p 2379:2379 \
  --name etcd quay.io/coreos/etcd:v2.0.8 \
  -name etcd0 \
  -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001 \
  -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \
  -initial-advertise-peer-urls http://${HostIP}:2380 \
  -listen-peer-urls http://0.0.0.0:2380 \
  -initial-cluster-token etcd-cluster-1 \
  -initial-cluster etcd0=http://${HostIP}:2380 \
  -initial-cluster-state new

sudo calicoctl node
docker-latest rm -f workload-A
docker-latest run --publish-service srvA.net1.calico --name workload-A -tid alpine sh

docker-latest rm -f workload-B
docker-latest run --publish-service srvB.net2.calico --name workload-B -tid alpine sh

docker-latest rm -f workload-C
docker-latest run --publish-service srvC.net1.calico --name workload-C -tid alpine sh

docker-latest rm -f workload-D
docker-latest run --publish-service srvD.net2.calico --name workload-D -tid alpine sh

docker-latest network ls

docker-latest exec -ti workload-D sh
    ip addr
    ip route
    cat /etc/hosts
docker-latest rm -f workload-B
docker-latest service unpublish srvB.net2
docker-latest run --publish-service srvB.net2.calico --name workload-B -tid alpine sh
docker-latest exec -ti workload-D cat /etc/hosts
# > 192.168.0.2 srvB

docker-latest rm -f workload-B
docker-latest service unpublish srvB.net2
docker-latest run --publish-service srvE.net2.calico --name workload-E -tid alpine sh
docker-latest run --publish-service srvB.net2.calico --name workload-B -tid alpine sh

docker-latest exec -ti workload-D cat /etc/hosts
# > 192.168.0.5 srvB
@webwurst
Copy link
Author

Also see this: tomdee/calico-demo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment