Route security management by end user
Route security management by end user

Add a new route annotation "haproxy.router.openshift.io/ip_whitelist"
that specifies a space separated list of white listed source IP
addresses and/or CIDRs. Requests from IP addresses that are not in
the whitelist are dropped.

When the annotation is present for a route a acl is set up in the
backend with the whitelist.

This PR addresses issue #13709

Some examples:

When editing a route add the following annotation to define the desired
source ip's.

1) allow only one ip

haproxy.router.openshift.io/whitelist:
192.168.1.10

2) several ip's

haproxy.router.openshift.io/whitelist:
192.168.1.10 192.168.1.11 192.168.1.12

3) ip ranges

haproxy.router.openshift.io/whitelist:
192.168.1.0/24

4) ip's and ranges

haproxy.router.openshift.io/whitelist:
180.5.61.153 192.168.1.0/24 10.0.0.0/8

Trello: TbZPhHKE Route security management by end user
https://trello.com/c/TbZPhHKE/

Bug: 1426562
https://bugzilla.redhat.com/show_bug.cgi?id=1426562

Committer: 33383f83f86213d1b5b1ab82934768577b825301@redhat.com
Author: d41c95ee1e1a36821117b9917e829e591d328bad@redhat.com

sallyom/origin,matthyx/origin,xiuwang/origin,dobbymoodge/origin,JacobTanenbaum/origin,ironcladlou/origin,ravisantoshgudimetla/origin,pweil-/origin,PI-Victor/origin,mdshuai/origin,hferentschik/origin,nak3/origin,ironcladlou/origin,soltysh/origin,adelton/origin,smarterclayton/origin,luciddreamz/origin,nhr/origin,raffaelespazzoli/origin,jpeeler/origin,rrati/origin,pweil-/origin,elyscape/origin,ramr/origin,liangxia/origin,mahak/origin,dobbymoodge/origin,sjug/origin,enj/origin,csrwng/origin,simo5/origin,liangxia/origin,jim-minter/origin,csrwng/origin,pmorie/origin,childsb/origin,hroyrh/origin,detiber/origin,pravisankar/origin,smarterclayton/origin,rhcarvalho/origin,aveshagarwal/origin,legionus/origin,openshift/origin,hferentschik/origin,ryanj/origin,PI-Victor/origin,sferich888/origin,deads2k/origin,juanvallejo/origin,pravisankar/origin,Miciah/origin,jupierce/origin,spadgett/origin,miminar/origin,sg00dwin/origin,luciddreamz/origin,jim-minter/origin,rrati/origin,kargakis/origin,rajatchopra/origin,adelton/origin,rajatchopra/origin,imcsk8/origin,maxamillion/origin,jeremyeder/origin,jwhonce/origin,markllama/origin,goern/origin,soltysh/origin,dcbw/origin,rrati/origin,openshift/origin,mrogers950/origin,mrogers950/origin,ingvagabund/origin,jpeeler/origin,dgoodwin/origin,jupierce/origin,soltysh/origin,pmorie/origin,rhamilto/origin,jwhonce/origin,maxamillion/origin,wanghaoran1988/origin,abutcher/origin,raffaelespazzoli/origin,php-coder/origin,rrati/origin,sferich888/origin,hroyrh/origin,pecameron/origin,matthyx/origin,rajatchopra/origin,mdshuai/origin,ironcladlou/origin,pecameron/origin,tnozicka/origin,wjiangjay/origin,miminar/origin,miminar/origin,akram/origin,tnozicka/origin,detiber/origin,raffaelespazzoli/origin,bparees/origin,dinhxuanvu/origin,mrogers950/origin,jpeeler/origin,nhr/origin,jsafrane/origin,jeremyeder/origin,markllama/origin,linzhaoming/origin,goern/origin,maxamillion/origin,imcsk8/origin,ravisantoshgudimetla/origin,Miciah/origin,simo5/origin,jsafrane/origin,ryanj/origin,PI-Victor/origin,rootfs/origin,simo5/origin,smarterclayton/origin,mahak/origin,rhcarvalho/origin,JacobTanenbaum/origin,PI-Victor/origin,spadgett/origin,hroyrh/origin,dobbymoodge/origin,anpingli/origin,rhamilto/origin,php-coder/origin,nak3/origin,imcsk8/origin,wjiangjay/origin,adelton/origin,sg00dwin/origin,tnozicka/origin,linzhaoming/origin,mdshuai/origin,PI-Victor/origin,jwhonce/origin,tnozicka/origin,luciddreamz/origin,jupierce/origin,wjiangjay/origin,smarterclayton/origin,dobbymoodge/origin,juanvallejo/origin,csrwng/origin,abutcher/origin,sallyom/origin,php-coder/origin,danmcp/origin,raffaelespazzoli/origin,childsb/origin,jupierce/origin,liangxia/origin,nhr/origin,sg00dwin/origin,ryanj/origin,mkumatag/origin,mkumatag/origin,dinhxuanvu/origin,mdshuai/origin,adelton/origin,miminar/origin,legionus/origin,pweil-/origin,dcbw/origin,detiber/origin,sjug/origin,rajatchopra/origin,markllama/origin,dgoodwin/origin,dcbw/origin,kargakis/origin,elyscape/origin,childsb/origin,goern/origin,rhcarvalho/origin,wanghaoran1988/origin,spadgett/origin,aveshagarwal/origin,pmorie/origin,jwhonce/origin,gabemontero/origin,jeremyeder/origin,jim-minter/origin,hferentschik/origin,jwhonce/origin,simo5/origin,dobbymoodge/origin,enj/origin,childsb/origin,deads2k/origin,dgoodwin/origin,luciddreamz/origin,wanghaoran1988/origin,coreydaley/origin,rootfs/origin,juanvallejo/origin,liggitt/origin,dcbw/origin,smarterclayton/origin,wjiangjay/origin,rhcarvalho/origin,sdminonne/origin,detiber/origin,ramr/origin,liggitt/origin,anpingli/origin,luciddreamz/origin,wanghaoran1988/origin,dinhxuanvu/origin,childsb/origin,pravisankar/origin,dgoodwin/origin,aveshagarwal/origin,adelton/origin,spadgett/origin,mdshuai/origin,sallyom/origin,tnozicka/origin,akram/origin,imcsk8/origin,hferentschik/origin,maxamillion/origin,ravisantoshgudimetla/origin,bparees/origin,liggitt/origin,legionus/origin,ramr/origin,elyscape/origin,rajatchopra/origin,xiuwang/origin,spadgett/origin,deads2k/origin,jupierce/origin,wjiangjay/origin,legionus/origin,jpeeler/origin,mrogers950/origin,wanghaoran1988/origin,elyscape/origin,nhr/origin,kargakis/origin,mrogers950/origin,childsb/origin,dobbymoodge/origin,danmcp/origin,hferentschik/origin,mfojtik/origin,aveshagarwal/origin,kargakis/origin,dgoodwin/origin,jeremyeder/origin,dcbw/origin,sjug/origin,akram/origin,abutcher/origin,ramr/origin,rootfs/origin,php-coder/origin,juanvallejo/origin,mfojtik/origin,mdshuai/origin,liangxia/origin,detiber/origin,gabemontero/origin,linzhaoming/origin,legionus/origin,coreydaley/origin,juanvallejo/origin,markllama/origin,ravisantoshgudimetla/origin,pravisankar/origin,wjiangjay/origin,JacobTanenbaum/origin,Miciah/origin,rajatchopra/origin,imcsk8/origin,imcsk8/origin,maxamillion/origin,rhcarvalho/origin,sdminonne/origin,nhr/origin,dinhxuanvu/origin,markllama/origin,matthyx/origin,mahak/origin,miminar/origin,jwhonce/origin,anpingli/origin,ryanj/origin,dinhxuanvu/origin,linzhaoming/origin,abutcher/origin,xiuwang/origin,rhamilto/origin,goern/origin,rhamilto/origin,matthyx/origin,ryanj/origin,liangxia/origin,miminar/origin,luciddreamz/origin,sg00dwin/origin,rootfs/origin,rrati/origin,linzhaoming/origin,danmcp/origin,tnozicka/origin,rootfs/origin,rhamilto/origin,pravisankar/origin,bparees/origin,pecameron/origin,elyscape/origin,pmorie/origin,ramr/origin,php-coder/origin,abutcher/origin,coreydaley/origin,liangxia/origin,kargakis/origin,mkumatag/origin,jeremyeder/origin,php-coder/origin,ravisantoshgudimetla/origin,pmorie/origin,liggitt/origin,markllama/origin,sferich888/origin,juanvallejo/origin,liggitt/origin,simo5/origin,kargakis/origin,danmcp/origin,gabemontero/origin,liggitt/origin,ingvagabund/origin,mfojtik/origin,sdminonne/origin,ingvagabund/origin,enj/origin,jsafrane/origin,openshift/origin,hferentschik/origin,nak3/origin,matthyx/origin,mrogers950/origin,ryanj/origin,aveshagarwal/origin,PI-Victor/origin,jpeeler/origin