Commit graph

1684 commits

Author SHA1 Message Date
Cody Maloney
de34de4495 WIP/DEMO https://github.com/lyft/envoy ingress controller for kubernetes
A kubernetes ingress controller which uses an instance of lyft/envoy as the load
balancer. The goal here is to get good http2 support, which includes grpc
forwarding. Envoy can also do basic tcp load balancing, although that isn't
implemented in this controller currently.

Quite a bit isn't supported currently, but it does function for basic
application usage.

There are a couple pieces. The root is the controller (controller.go) which
recieves kubernetes ingress controller updates and turns them into the structure
needed for envoy. That is then passed to the DiscovyerService (discovery.go)
which presents the information in the lyft/envoy discovery endpoints
(LDS, RDS, SDS, CDS). The third and final pieces is a process manager for envoy
itself which manages configuring and running the lyft/envoy instance.

Every piece is setup so that it'll only start serving / listening once basic
routes are setup and in place (so in theory if you add another instance to a
cluster you don't hit an "empty" envoy and get a bunch of 404 errors)

The need for `DiscoveryService` http service should be going away, as the envoy
v2 api gets implemented (https://github.com/lyft/envoy-api#apis). In specific,
the ingress controller would implement an "Aggregated Discovery Service (ADS)".
That would mean the ingress controller could push updates directly to lyft/envoy
using gRPC, minimizing update time.

My general question is if there's interest in moving this towards a proper
kubernetes/ingress controller, and if so, what is the process to do so?

This works for my basic cases. There are definitely many more of the cases
that could be implemented (And many more config options which should be
controllable via the ingresses themselves). Things like TCP services can also
be implemented, just not a feature I'd needed.
2017-08-31 22:14:11 -07:00
Nick Sardo
cda42f93c7 Merge pull request #1282 from aledbf/fix-stats
Fix nginx stats
2017-08-31 11:33:06 -07:00
Manuel de Brito Fontes
a5432bf3a0 Fix listen error in aws 2017-08-31 14:28:20 -03:00
Manuel de Brito Fontes
57a18d11bd Fix nginx stats 2017-08-31 14:19:32 -03:00
Manuel Alejandro de Brito Fontes
abc53ccfc5 Merge pull request #1277 from danielqsj/add-indent
Add indent for nginx.conf
2017-08-31 07:39:51 -04:00
Manuel Alejandro de Brito Fontes
528b378bea Merge pull request #1276 from jcmoraisjr/jm-link-rbac
Link rbac sample from deployment docs
2017-08-31 07:39:04 -04:00
danielqsj
e9a14cbe97 Add indent for nginx.conf 2017-08-31 17:10:12 +08:00
Joao Morais
1a285dd9e8 Link rbac sample from deployment docs 2017-08-30 22:06:38 -03:00
Manuel Alejandro de Brito Fontes
ae44d8ec05 Merge pull request #1275 from jcmoraisjr/jm-haproxy-rbac
HAProxy Ingress RBAC sample
2017-08-30 20:51:27 -04:00
Joao Morais
b1980c8fbd HAProxy Ingress RBAC sample 2017-08-30 21:24:04 -03:00
Manuel Alejandro de Brito Fontes
58c94d40e4 Merge pull request #1272 from danielqsj/delete-useless-statement
Delete useless statement
2017-08-30 18:04:35 -04:00
Nick Sardo
eca88e4f24 Merge pull request #1266 from aledbf/b12-a3
Release nginx ingress controller 0.9.0-beta.12
2017-08-30 12:56:11 -07:00
Manuel Alejandro de Brito Fontes
2d7f6c5da0 Merge pull request #1270 from harryge00/add-yaml-to-nginx-controller
add missing yamls in controllers/nginx
2017-08-30 07:11:33 -04:00
danielqsj
493aede7fe Delete useless statement 2017-08-30 17:03:50 +08:00
harryge00
6dd1b0b129 add missing yamls in controllers/nginx 2017-08-30 16:21:20 +08:00
Manuel de Brito Fontes
9807b691b7 Release nginx ingress controller 0.9.0-beta.12 2017-08-29 17:28:50 -03:00
Manuel Alejandro de Brito Fontes
2d6f811151 Merge pull request #1265 from aledbf/improve-logs
Improve logs
2017-08-29 16:14:31 -04:00
Manuel de Brito Fontes
e65d3c7571 Improve logs 2017-08-29 16:40:03 -03:00
Manuel Alejandro de Brito Fontes
35f6255755 Merge pull request #1264 from aledbf/fix-deps
Fix dependencies issues
2017-08-29 15:35:57 -04:00
Manuel de Brito Fontes
1a37256fbc Fix dependencies issues 2017-08-29 16:34:54 -03:00
Manuel Alejandro de Brito Fontes
d4e86fe379 Merge pull request #1257 from maxlaverse/graceful_shutdown
Graceful shutdown for Nginx
2017-08-29 15:29:50 -04:00
Max Laverse
73d8ddd3d1 Graceful shutdown for Nginx 2017-08-29 20:47:55 +02:00
Manuel Alejandro de Brito Fontes
3fd8abe32d Merge pull request #1261 from maxlaverse/worker_shutdown_timeout
Add support for 'worker-shutdown-timeout'
2017-08-29 08:20:08 -04:00
Max Laverse
d9e7d1eabc Add support for 'worker-shutdown-timeout' 2017-08-29 11:55:59 +02:00
Manuel Alejandro de Brito Fontes
7844415cff Merge pull request #1259 from jcmoraisjr/jm-ns-var-haproxy
Add namespace var to HAProxy deployments
2017-08-28 21:14:20 -04:00
Nick Sardo
3e8bc53443 Merge pull request #1181 from freehan/shared-informer
switch to use shared informer
2017-08-28 16:50:05 -07:00
Joao Morais
46865d010b Add namespace var to HAProxy deployments 2017-08-28 20:06:03 -03:00
Manuel Alejandro de Brito Fontes
a8bfdc2427 Merge pull request #1250 from aledbf/server-version
Add server information to controller startup
2017-08-28 13:59:37 -04:00
Manuel de Brito Fontes
6c5ee050d1 Add server information to controller startup 2017-08-28 14:32:36 -03:00
Manuel Alejandro de Brito Fontes
d6efc293c4 Merge pull request #1254 from hzxuzhonghu/master
fix Type transform panic
2017-08-28 07:28:39 -04:00
hzxuzhonghu
af6a7f6d17 fix Type transform panic 2017-08-28 14:49:13 +08:00
Manuel Alejandro de Brito Fontes
69c89ccfdd Merge pull request #1251 from jcmoraisjr/jm-haproxy-ingress-class
Add ingress.class support to HAProxy Ingress
2017-08-27 20:57:14 -04:00
Joao Morais
4b73cc6d0c Add ingress.class support to HAProxy Ingress 2017-08-27 21:48:02 -03:00
Manuel Alejandro de Brito Fontes
9e7c542519 Merge pull request #1248 from aledbf/pprof
Improve nginx controller performance
2017-08-26 08:56:06 -04:00
Manuel Alejandro de Brito Fontes
80ff5e6ce8 Merge pull request #1247 from aledbf/add-metadata
Make Ingress annotations available in template
2017-08-26 08:55:37 -04:00
Manuel de Brito Fontes
fabe37bfe5 Improve nginx controller performance 2017-08-26 00:49:57 -03:00
Manuel de Brito Fontes
edcc3dfc81 Make Ingress annotations available in template 2017-08-25 22:39:30 -03:00
Manuel Alejandro de Brito Fontes
6d0243a040 Merge pull request #1246 from aledbf/additional-headers
Add additional headers when custom default backend is used
2017-08-25 20:45:09 -04:00
Manuel de Brito Fontes
a85cfd10b5 Add additional headers when custom default backend is used 2017-08-25 20:56:08 -03:00
Manuel Alejandro de Brito Fontes
b791460206 Merge pull request #1244 from aledbf/add-custom-backend-annotation
Add custom default backend annotation
2017-08-25 15:15:17 -04:00
Manuel de Brito Fontes
bf12e793f6 Add custom backend annotation 2017-08-25 15:49:52 -03:00
Manuel Alejandro de Brito Fontes
0a6f39650f Merge pull request #697 from lead4good/master
Adding support for externalIP Services
2017-08-25 12:09:46 -04:00
Manuel Alejandro de Brito Fontes
d2546d0291 Merge pull request #1212 from danielqsj/bind-address
Add option to specify addresses on which the server will accept
2017-08-25 12:05:52 -04:00
Manuel Alejandro de Brito Fontes
3499524282 Merge pull request #1243 from maxlaverse/custom_access_log_path
Add support for access-log-path and error-log-path
2017-08-25 08:29:06 -04:00
Max Laverse
dd00b6d7b3 Add support for access-log-path and error-log-path 2017-08-25 14:03:09 +02:00
danielqsj
06f237c66d Add options to bind address 2017-08-25 10:24:32 +08:00
Minhan Xia
aa333708f2 move gce cloud provider initialization to main 2017-08-24 17:10:58 -07:00
Minhan Xia
3839faf536 switch to use shared informer 2017-08-24 17:10:51 -07:00
Manuel Alejandro de Brito Fontes
e7d2ff6fac Merge pull request #1239 from aledbf/pc
Add flags to customize listen ports and detect port collisions
2017-08-24 10:23:59 -04:00
Manuel de Brito Fontes
0459674931 Add flags to customize listen ports and detect port collisions 2017-08-24 10:56:08 -03:00