23 Commits

Author SHA1 Message Date
Joakim Karlsson
3469cc182c fixed healthport var 2018-02-03 15:39:50 +01:00
Joakim Karlsson
e6b01d5483 added health controller 2018-02-03 15:01:15 +01:00
Joakim Karlsson
f3e7aced1a Metrics + Logging update (#294)
* - added protocol & port label to metrics
- removed some redundant code

* added example dashboard

* added dashboard screenshot

* updated dashboard json & screenshot

* ammend bad dashboard export

* first new metric

* .

* more metrics: controller_publish_metrics_time & controller_iptables_sync_time

* namespace redeclared

* fix typo in name

* smal fixes

* new metric controller_bgp_peers & controller_bgp_internal_peers_sync_time

* typo fix

* new metric controller_ipvs_service_sync_time

* fix

* register metric

* fix

* fix

* added more metrics

* service controller log levels

* fix

* fix

* added metrics controller

* fixes

* fix

* fix

* fixed more log levels

* server and graceful shutdown

* fix

* fix

* fix

* code cleanup

* docs

* move metrics exporting to controller

* fix

* fix

* fixes

* fix

* fix missing

* fix

* fix

* test

* test

* fix

* fix

* fix

* updated dashboard

* updates to metric controller

* fixed order in newmetricscontroller

* err declared and not used

* updated dashboard

* updated dashboard screenshot

* removed --metrics & changed --metrics-port to enable / disable metrics

* https://github.com/cloudnativelabs/kube-router/issues/271

* cannot use config.MetricsPort (type uint16) as type int in assignment

* cannot use mc.MetricsPort (type uint16) as type int in argument to strconv.Itoa

* updated docs

* changed default metric port to 0, disabled

* added missing newline to .dockerignore

* add lag parse to pickup on -v directives

* test

* test

* test

* fix regression

* syntax error: non-declaration statement outside function body

* fix

* changed nsc to mc

* updated docs

* markdown fix

* moved metrics registration out to respective controller so only metrics for running parts will be exposed

* removed junk that came from visual studio code

* fixed some typos

* Moved the metrics back into each controller and added expose behaviour so only the running components metrics would be published

* removed to much, added back instanciation of metricscontroller

* fixed some invalid  variable names

* fixed last typos on config name

* fixed order in newnetworkservicecontroller

* updated metrics docs & removed the metrics sync period as it will obey the controllers sync period

* forgott to save options.go

* cleanup

* Updated metric name & docs

* updated metrics.md

* fixed a high cpu usage bug in the metrics_controller's wait loop
2018-01-25 22:56:51 +05:30
Joakim Karlsson
c8c19e4a31 Added cli config for changing prometheus port & path (#288)
* added prometheus metrics port option

* fix propper config

* added option to change path

* added path config to prometheus

* updated readme

* fixed string that should be int
2018-01-17 18:17:43 +05:30
Murali Reddy
c4830aa4e0
enable Pprof with option --enable-pprof (#245)
* rename to connectExternalBGPPeers

* enable pprof for debug purpose
2017-12-12 12:06:38 +05:30
Colin J. Brigato
fcd1a1aab6 Enable support for eBGP Multihop for external peers (#244) 2017-12-12 08:52:55 +05:30
Andrew Sy Kim
2685367ab6 add --enable-ibgp flag (#227) 2017-11-27 21:53:44 +05:30
Andrew Sy Kim
0dabd7cf11 Support BGP Graceful Restart (#220) 2017-11-23 01:12:36 +05:30
Murali Reddy
4ca0afa82c Support for advertising service external IP to be configured BGP peers (#203)
introduces new flag `--advertise-external-ip`

Fixes #161
2017-10-17 00:54:19 +05:30
Bryan Zubrod
e19f2a69c2 BGP peer password auth, consistent configurations (#164)
* Add --peer-router-password option
Also:
- Consolodated NRC peer fields into a []config.NeighborConfig
  to store address, asn, and password for each peer.
- BREAKING: --peer-router and --peer-asn flags now take slices
  rather than strings.

* Add password auth node annotation for external peer

* Update documentation

New CLI flags and annotations
Renamed ones as well

* Consistent CLI flags, annotations, and peer config

BGP configs now all accept multiple values and are treated consistently.
Other refactoring was done as well.

* Stop bgpserver on peering errors to avoid listener leak

* Clarify BGP doc sections

Fix some typos
2017-09-24 23:21:12 -05:00
Murali Reddy
ca97d0d6eb Adding ability to disable IP-in-IP tunnelining for cross node pod-to-pod connectivity
where nodes are in different subnet. With tunneling disabled its expected that default
gateway has learned the pod CIDR's allocated for all the nodes and can route the
pod-to-pod traffic across nodes in different subnets

Fixes #119
2017-09-08 22:03:09 +05:30
Murali Reddy
62900c7659 NodePort service listens on all ip/interfaces in case of kube-proxy. Currently kube-router listens only on node IP.
This fix introduces flag nodeport-bindon-all-ip with which you can have kube-proxy like behaviour. If not specified
only nodeIP will be open for connections.

Fixes #139
2017-09-07 14:31:34 +05:30
Bryan Zubrod
c81bfbb616 Enable pod egress masquerading by default (#111)
* Enable pod egress masquerading by default
- Adds flag "--enable-pod-egress" (default: true)
- Removes previously created iptables rule if option is changed to false
* Use an ipset to match Pod egress traffic to be masqueraded
* Set --cluster-cidr as depreciated flag
If set to anything, normal dynamic Pod egress masquerading is turned on.
* Use Replace else Add logic for updating export policy
Fixes errors logged due to existing statement in poliy.
2017-08-10 11:50:06 -05:00
Bryan Zubrod
a3bddf6ecd services-controller: Add LoadBalancer Service support (#53)
* Allow LoadBalancer Service type
* Update docs
2017-07-11 18:12:11 -05:00
Bryan Zubrod
e5b47ed139 NetworkServiceController: Add hairpin-mode support (#44)
* network_services_controller: Cosmetic updates
* Docs: Add hairpin-mode
* NSC: Add hairpin-mode support
* Reorder logic to ensure no hairpin rules without hairpin settings
* Fine-tune rules to include vport
* Fix delete rules logic/bugs
2017-07-07 00:23:17 -05:00
bzub
7dedc3fa00 options, app: - Handle more config errors
- Add --help/-h for usage information
2017-07-05 21:58:09 -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
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
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
9cda2746ca set --run-router flag to true by default 2017-05-08 22:39:49 +05:30
Murali Reddy
231e5cee71 enable kube-router to be run as daemonset 2017-04-27 03:08:37 +05:30
Murali Reddy
04a5cc033a base line version tested with kube 1.5.6, 1.6 2017-04-17 10:33:09 +05:30