All Projects β†’ projectcalico β†’ Typha

projectcalico / Typha

Licence: apache-2.0
Calico's datastore fan-out daemon.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Typha

Multipath Sdn Controller
πŸŽ› Multipath Software Defined Networking Controller which sets up multipath forwarding tables and adjusts them based on network measurements
Stars: ✭ 35 (-27.08%)
Mutual labels:  networking
Volleyplus
🏐 Volley library : make everything faster . Its an improvements for Volley by Google for Android https://android.googlesource.com/platform/frameworks/volley
Stars: ✭ 986 (+1954.17%)
Mutual labels:  networking
Cilium
eBPF-based Networking, Security, and Observability
Stars: ✭ 10,256 (+21266.67%)
Mutual labels:  networking
Xmnetworking
A lightweight but powerful network library with simplified and expressive syntax based on AFNetworking.
Stars: ✭ 980 (+1941.67%)
Mutual labels:  networking
Openwisp Monitoring
Network monitoring system written in Python and Django, designed to be extensible, programmable, scalable and easy to use by end users: once the system is configured, monitoring checks, alerts and metric collection happens automatically.
Stars: ✭ 37 (-22.92%)
Mutual labels:  networking
Ineter
Fast Java library for working with IP addresses, ranges, and subnets
Stars: ✭ 39 (-18.75%)
Mutual labels:  networking
Miniupnp
UPnP IGD implementation
Stars: ✭ 974 (+1929.17%)
Mutual labels:  networking
Swifty
Swifty is a networking stack designed to serve modern iOS apps
Stars: ✭ 47 (-2.08%)
Mutual labels:  networking
Clusteredbigcache
golang bigcache with clustering as a library.
Stars: ✭ 37 (-22.92%)
Mutual labels:  networking
Uvloop
Ultra fast asyncio event loop.
Stars: ✭ 8,246 (+17079.17%)
Mutual labels:  networking
Xdp
Package xdp allows one to use XDP sockets from the Go programming language.
Stars: ✭ 36 (-25%)
Mutual labels:  networking
Sst Elements
SST Architectural Simulation Components and Libraries
Stars: ✭ 36 (-25%)
Mutual labels:  networking
Objecttransport
Send and Receive objects over TCP or UDP
Stars: ✭ 39 (-18.75%)
Mutual labels:  networking
Anette
Simple haxe network library
Stars: ✭ 35 (-27.08%)
Mutual labels:  networking
Kubernetes Nmstate
Declarative node network configuration driven through Kubernetes API.
Stars: ✭ 46 (-4.17%)
Mutual labels:  networking
Androidnetworktools
Set of useful android network tools
Stars: ✭ 978 (+1937.5%)
Mutual labels:  networking
Dratini
Dratini is a neat network abstraction layer.
Stars: ✭ 38 (-20.83%)
Mutual labels:  networking
Kube Netc
A Kubernetes eBPF network monitor
Stars: ✭ 48 (+0%)
Mutual labels:  networking
Nff Go
NFF-Go -Network Function Framework for GO (former YANFF)
Stars: ✭ 1,036 (+2058.33%)
Mutual labels:  networking
Dknetworking
基于 AFNetworking + YYCache ηš„δΊŒζ¬‘ε°θ£…οΌŒζ”―ζŒηΌ“ε­˜η­–η•₯ηš„η½‘η»œθ―·ζ±‚ζ‘†ζžΆ
Stars: ✭ 41 (-14.58%)
Mutual labels:  networking

Build Status Coverage Status Slack Status IRC Channel Go Report Card

Project Calico

This repository contains the source code for Project Calico's optional Typha daemon. An instance of Typha sits between the datastore (such as the Kubernetes API server) and many instances of Felix.

A small cluster of Typha nodes fan out updates to many Felix instances

This has many advantages:

  • Since one Typha instance can support hundreds of Felix instances, it reduces the load on the datastore by a large factor.

  • Since Typha can filter out updates that are not relevant to Felix, it also reduces Felix's CPU usage. In a high-scale (100+ node) Kubernetes cluster, this is essential because the number of updates generated by the API server scales with the number of nodes.

When should I use Typha?

We recommend always using Typha when you are using the Kubernetes API datastore. However, Typha is strictly necessary when you are using the Kubernetes API datastore with a cluster greater than 50 nodes.

Typha is generally not required for Calico deployments using an etcdv3 datastore directly.

How can I start using Typha?

Follow the "more than 50 nodes" section in the Calico for Kubernetes getting started guide.

How can I get support for contributing to Project Calico?

The best place to ask a question or get help from the community is the calico-users #slack. We also have an IRC channel.

Who is behind Project Calico?

Tigera, Inc. is the company behind Project Calico and is responsible for the ongoing management of the project. However, it is open to any members of the community – individuals or organizations – to get involved and contribute code.

Contributing

Thanks for thinking about contributing to Project Calico! The success of an open source project is entirely down to the efforts of its contributors, so we do genuinely want to thank you for even thinking of contributing.

Before you do so, you should check out our contributing guidelines in the CONTRIBUTING.md file, to make sure it's as easy as possible for us to accept your contribution.

How do I build Typha?

Typha mostly uses Docker for builds. We develop on Ubuntu 16.04 but other Linux distributions should work (there are known Makefile that prevent building on OS X). To build Typha, you will need:

  • A suitable linux box.
  • To check out the code into your GOPATH.
  • Docker >=1.12
  • GNU make.

Then, as a one-off, run

make update-tools

which will install a couple more go tools that we haven't yet containerised.

Then, to build the calico-typha binary:

make bin/calico-typha

or, the calico/typha docker image:

make image

How can I run Typha's unit tests?

To run all the UTs:

make ut

To start a ginkgo watch, which will re-run the relevant UTs as you update files:

make ut-watch

To get coverage stats:

make cover-report

or

make cover-browser

How can I run a subset of the Go unit tests?

If you want to be able to run unit tests for specific packages for more iterative development, you'll need to install

  • GNU make
  • go >=1.7

then run make update-tools to install ginkgo, which is the test tool used to run Typha's unit tests.

There are several ways to run ginkgo. One option is to change directory to the package you want to test, then run ginkgo. Another is to use ginkgo's watch feature to monitor files for changes:

cd go
ginkgo watch -r

Ginkgo will re-run tests as files are modified and saved.

How do I build packages/run Typha?

Docker

After building the docker image (see above), you can run Typha and log to screen with, for example: docker run --privileged --net=host -e TYPHA_LOGSEVERITYSCREEN=INFO calico/typha

License

Calico binaries are licensed under the Apache v2.0 license, with the exception of some GPL licensed eBPF programs.

Calico imports packages with a number of apache-compatible licenses. For more information, see filesystem/licenses. In addition, the base container image contains pre-packaged software with a variety of licenses.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].