16 Commits

Author SHA1 Message Date
bzub
2b019ceec7 Handle invalid NetworkPolicy definition 2017-06-21 22:33:02 -05:00
Murali Reddy
2703522040 Support more than a single AS per cluster and configurable node specific
external BGP routers

Fixes #22
2017-06-13 10:22:22 +05:30
Murali Reddy
29396f9662 add option '--hostname-override' to deal with cases where kubelet is launched
with --hostname-override flag

Fixes #23
2017-06-10 07:10:38 +05:30
Murali Reddy
4b3d1a31b0 re-use ipvs handle for add/delete ipvs service, servers and listing services and server
using ipvslib New() is causing system thread leak resulting in hitting GOLANG 10000 thread limit

Fixes #19, #24
2017-06-07 23:49:29 +05:30
Murali Reddy
d4f32978fb use NODE_NAME env variable to get the node object when running as daemon set
If NODE_NAME env is not set, fall back to hostname.

Partial fix towards #23 we still have issue where kube-router is run as agent
and kubelet is started with --hostname-overide flag
2017-06-07 02:28:21 +05:30
Murali Reddy
1478527cc8 setup masquerade rule for traffic destined for outside of cluster and pod network
change added iptable rule in NAT table POSTROUTING chain to masqurade outbound traffic
from the pods.

Fixes #8
2017-06-01 07:20:04 +05:30
Murali Reddy
c9bc18e92d Skip head less services, when advertising cluster IP to external routers
Fixes #20
2017-06-01 00:52:47 +05:30
Murali Reddy
d042dbb21e Add new Node api watcher which watches for add/remove nodes events.
On add/remove node events, perform refresh of peers to the peers as per the
current set of active nodes. If a node is removed, delete the BGP nieghbor relation.

Fixes #14
2017-05-30 20:35:23 +05:30
Murali Reddy
4531a915bb Handle both cases where node can be registered with master either
by host name or FQDN. kubelet can be started with --hostname-override with configurable value.
In AWS envirinment typcally its set FQDN obtained from the metda data. This fix ensures
we can deploy kube-router in case nodes are registered with FQDN

Fixes #17
2017-05-30 03:11:51 +05:30
Murali Reddy
0f86e78c59 Adds support for advertising cluster IP correponding to a service to the BGP peers
Once external BGP is peered with cluster nodes, pods can be routable externally

fixes #4 and #7
2017-05-21 06:44:36 +05:30
Murali Reddy
89cdc2a318 Incorrect generation of unique service key when building service and endpoint maps
use spec.ports.name in the service manifest to uniqely generate service key used
internally to lookup services info and endpoints info maps

closes #3
2017-05-13 01:15:13 +05:30
Murali Reddy
7004632cb3 BUG 1: If service manifest has "SessionAffinity" set, then configure IPVS to provide session persistence
configure ipvs service configuration to provide persistence
2017-05-09 00:44:04 +05:30
Murali Reddy
231e5cee71 enable kube-router to be run as daemonset 2017-04-27 03:08:37 +05:30
Murali Reddy
d4edfc02fe cleanup rules in filter table, OUTPUT chain used for ingress filtering
on  "kube-router --cleanup-config"
2017-04-22 20:14:04 +05:30
Murali Reddy
a4e773bd91 edit README and handle external (outside from cluster) access to nodeport services
by masqurading the traffic so the return traffic from the pod hits the node before
going to the client
2017-04-18 03:37:46 +05:30
Murali Reddy
04a5cc033a base line version tested with kube 1.5.6, 1.6 2017-04-17 10:33:09 +05:30