443 Commits

Author SHA1 Message Date
Aaron U'Ren
8fe9f70dd5 Add Import Policy for Service VIPs (#721)
* rename export policies to make it direction independent

* split creating neighborsets and prefixsets from applying export policy

* add bgp import policy to deny service VIPs

* add tests for addition of import policy
2019-05-26 23:29:10 +05:30
Wilmar den Ouden
4be51ba193 First stab at pushing multiarch releases (#735) 2019-05-26 22:50:04 +05:30
Murali Reddy
d6a93d44fe
handle null *route (#732) v0.3.1 2019-05-12 14:12:32 +05:30
Aaron U'Ren
8bb50d5a8c do not setup ipip tunneling when --enable-overlay is false (#722) 2019-05-12 12:43:02 +05:30
milan
7181d6fa96 Prefer node PodCIDR from an annotation (#720)
Current implementation never considers the "kube-router.io/pod-cidr"
annotation when creating an ipset for the node pod network CIDR.
The Node.Spec.PodCIDR is always used instead.

This patch prefers the annotation PodCIDR over the Node.Spec.PodCIDR
v0.3.0
2019-04-25 23:07:10 +05:30
Joakim Karlsson
54eedcd049 Issue 572 - Graceful termination + Update to go-1.10.8, alpine-3.9 (#706)
* update netlink

* update libnetwork to get ipvs stats

* update gopkg.lock for libnetwork update

* update libnetwork

* add cli options

* make endpoints delete gracefully

* move conntrack flusher

* get some order in the mainloop

* update to alpine 3.9 & go 1.11.1

* revert to 1.10.3 just update alpine

* and revert travis.yml

* lock version

* test 1.12

* test
2019-04-25 22:57:10 +05:30
Jimmy Zhang
736757d942 Support named port of network policy (#679)
* support named port of network policy

* gofmt
2019-04-20 23:57:25 +05:30
Lucas Servén Marín
e2301761a5 docs,pkgs: change 'can not' to 'cannot' (#701)
This commit fixes a grammar mistake in a doc and some log messages.
2019-04-04 10:27:28 +05:30
Mark Deckert
c2f893f64f default cni config to list format (#690)
* default cni config to list format

* change cni version field to 0.3.0
2019-04-02 10:22:59 +05:30
Jérôme Petazzoni
375ccc2737 Minor typo fix in logs (#700)
s/annotaion/annotation/
2019-04-02 09:36:21 +05:30
Lucas Mundim
8f9729a01d Introduces the option --overlay-type={subnet,full}, to be able to always generate IPIP tunnels regardless of node subnets (#666)
* Introduces the option --full-overlay, to always generate IPIP tunnels regardless of node subnets

* Use --overlay-type={subnet,full} instead of --full-overlay={true,false}
2019-03-23 23:31:42 +05:30
Murali Reddy
fac066359a
add Jimmy to maintainers (#687) 2019-03-13 17:58:47 +05:30
bazuchan
70969a3ad7 Add iptables rules for accessing tunneled services from node (#682) 2019-03-10 15:11:51 +05:30
Lucas Mundim
42997cb96c Delete iptables rule if --masquerade-all is false (#665) 2019-03-10 15:07:48 +05:30
Matus Kral
961d8ab84c fix #639 (#670)
* - refactor / clean up / extract code dupes into methods and reuse

* - fix 639
- get external IPs to withdraw as diff against previous generation
  of service
2019-03-10 15:00:16 +05:30
Federico Soave
7b20ae9f58 document workaround for cloudnativelabs/kube-router#676 (#677) 2019-03-10 10:58:58 +05:30
Harry Lee
a63d386a07 fix typo (#673) 2019-02-17 10:30:17 +05:30
Murali Reddy
ffc37f776f
remove gitter and add slack as community forum 2019-02-14 11:49:52 +05:30
Lucas Mundim
00824cd84b Fix typo (#661) 2019-02-09 10:17:09 +05:30
Lucas Mundim
52127e6ccd Fix ’make test’ when GOPATH contains multiple paths (#658) 2019-02-07 13:10:53 +05:30
Lucas Mundim
34666a156d Run ‘go generate’ from %_moq.go target in docker when BUILD_IN_DOCKER is true (#660) 2019-02-06 09:33:02 +05:30
Arvinderpal Wander
1876993862 Removes IPv6 address insertion into BGP IPv4-only nexthop field. (#606)
https://github.com/cloudnativelabs/kube-router/issues/605
v0.2.5
2019-01-30 18:29:55 +05:30
Murali Reddy
e99b694194
make gobgp grpc server listen only nodeip and 127.0.0.1 (#649)
Fixes #640
2019-01-30 09:09:57 +05:30
Murali Reddy
62d0e866ad
handle network policies with named ports gracefully (#648) 2019-01-28 16:22:09 +05:30
Moritz Johner
a93dec21d9 fix: broken links in contributing guide (#650)
Signed-off-by: Moritz Johner <beller.moritz@googlemail.com>
2019-01-27 09:41:37 +05:30
bazuchan
0599a27e9a Add iptables INPUT rules for tunneled services (#610) 2019-01-24 12:57:12 +05:30
Jimmy Zhang
f07ec53589 avoid duplicate peer pods in npc rules variables (#634) 2019-01-24 12:37:34 +05:30
Eugene Klimov
bdfdc127e2 when use multiple registries for pulling images in container runtime, we need specify which registry will use exacly (#645)
because https://quay.io/repository/cloudnativelabs/kube-router already exists and contains old kube-router image
2019-01-23 09:44:52 +05:30
Aaron U'Ren
a968b2b4d2 cleanup local routes if nexthop moves outside host subnet (#629) 2019-01-22 23:29:53 +05:30
Adam Finn Tulinius
11ae253f12 Validate the presence of port definitions before attempting to access (#643)
This fixes #642, which causes kube-router to crash on valid network
policies, and also implements support for ingress and egress rules
without a port specified.
2019-01-21 11:10:57 +05:30
Ivan Kurnosov
10ddc095ff Fixed typo in Global External BGP Peers example (#627)
`peer-router-asns` does not need quotes around
v0.2.4
2019-01-11 13:46:51 +05:30
Matus Kral
d7a7a6d797 Add missing ip6tables package to docker container (#631) 2019-01-11 09:33:54 +05:30
Steven Armstrong
4da8ee70f2 [RFC] prevent host services from being accessible through service IPs (#618)
* prevent host services from being accessible through service IPs

- on startup create ipsets and firewall rules
- on sync update ipsets
- on cleanup remove firewall rules and ipsets

Fixes #282.

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* ensure iptables rules are also available during cleanup

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* first check if chain exists

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* err not a new variable

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* more redeclared vars

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* maintain a ipset for local addresses and exclude those from our default deny rule

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* copy/paste errors

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>
2019-01-10 23:16:37 +05:30
Arvinderpal Wander
4efc6cceae Add documentation on dependency management using dep. (#621) 2018-12-27 08:09:38 +05:30
bazuchan
34270e426d Periodicaly sync iptables MASQUERADE rules (#619) 2018-12-26 14:51:41 +05:30
Arvinderpal Wander
c63e71a523 Enable net.bridge.bridge-nf-call-ip6tables for IPv6. (#608)
https://github.com/cloudnativelabs/kube-router/issues/607
2018-12-15 18:14:13 +05:30
bazuchan
48e2c7b784 Add iptables input rules for ipvs services (#604) 2018-12-13 16:19:34 +05:30
Eric Lindvall
c38e8f66ff Change append to insert for iptables rules (#596)
* Change append to insert for iptables rules

Updates how iptables FORWARD rules are applied to accommodate an existing final DROP rule for the chain.

* Fix the calls to Insert() to include a position

* iptables rules indexes are 1-based
2018-12-13 12:52:38 +05:30
bazuchan
853b75b156 Periodicaly sync default forward rules (#603) 2018-12-13 12:40:36 +05:30
Lars Ekman
6cdc237377 Make ipv6 routing to pods (CNI routing) work for ipv6 (#578) 2018-12-09 11:45:56 +05:30
Murali Reddy
7b9291aa2d fix docs 2018-12-09 10:58:06 +05:30
Steven Armstrong
1a30f9e2e1 implement per-service annotations to control IP advertisment (#575)
* add unit tests for implementing #75

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* integration tests for #75

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* update docs for #75

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* define new kube-router.io/service.advertise.* annotations

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* Implement per service annotations for advertising IPs.

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* more consistent annotation names

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>

* remove redundant tests

Signed-off-by: Steven Armstrong <steven.armstrong@id.ethz.ch>
2018-12-09 10:38:12 +05:30
Joakim Karlsson
e5d599b14c
Roffe/metrics polish (#595)
* update metrics docs & dashboard
* renamed `namespace` label to `svc_namespace` for service metrics as it would be overwritten by most Prometheus setups
* Made histograms for all the controller sync times for better visualization
* added `controller_routes_sync_time`, `controller_bgp_advertisements_sent` & `controller_policy_chains_sync_time` metrics
2018-12-07 16:22:41 +01:00
Aaron U'Ren
0cdaa4362f docs/bgp.md: change example to use printf (#594)
Using echo places a new-line character at the end of the base64
generated string which will cause peering to fail for most use-cases as
it is unlikely to be present in the configuration of the other peer.
2018-12-07 02:04:52 +01:00
Joakim Karlsson
46f8265e1b
docs: how to configure explicit proxy (#582)
from https://github.com/cloudnativelabs/kube-router/issues/494
2018-11-27 09:26:02 +01:00
Joakim Karlsson
5bfab47145
unified function to set sysctl values (#580)
* unified function to set sysctl values and Enable arp_ignore and arp_announce
v0.2.3
2018-11-22 21:11:57 +01:00
Joakim Karlsson
4dce4b7c1d
fix typo (#579) 2018-11-19 18:24:19 +01:00
Joakim Karlsson
87718c971d make NSC set net.ipv4.vs.conn_reuse_mode=0 (#577)
* make IPVS proxier set net/ipv4/vs/conn_reuse_mode to 0 by default, which will fix the IPVS low throughput issue

* better error message

* check and inform if to old kernel to use feature
2018-11-19 22:31:24 +05:30
rillion
c39c13b6cf No reason to restrict Peer ASN's to private only. (#576)
* No reason to restrict Peer ASN's to private only. This change is to restrict to public and private ranges.

* gofmt
2018-11-16 11:12:31 +05:30
Murali Reddy
4d6b7faaf9
Fixes regression in BGP route reflector functionality. (#573)
Use proper conversion so correct cluster ID is passed to GoBGP library
v0.2.2
2018-11-15 08:45:56 +05:30