Ingress NGINX Controller for Kubernetes
Find a file
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
controllers WIP/DEMO https://github.com/lyft/envoy ingress controller for kubernetes 2017-08-31 22:14:11 -07:00
core/pkg WIP/DEMO https://github.com/lyft/envoy ingress controller for kubernetes 2017-08-31 22:14:11 -07:00
docs Release nginx ingress controller 0.9.0-beta.12 2017-08-29 17:28:50 -03:00
examples Link rbac sample from deployment docs 2017-08-30 22:06:38 -03:00
Godeps Fix dependencies issues 2017-08-29 16:34:54 -03:00
hack fix all go style mistakes about fmt.Errorf 2017-03-17 08:35:55 +08:00
images Update go dependencies 2017-08-16 09:12:47 -03:00
tests/manifests Fix Endpoint comparison 2017-08-11 15:08:11 -04:00
vendor WIP/DEMO https://github.com/lyft/envoy ingress controller for kubernetes 2017-08-31 22:14:11 -07:00
.gitignore adapt gce controller to godep updates 2017-07-25 17:09:27 -07:00
.travis.yml Optimize CI build time 2017-08-17 09:15:35 +08:00
CONTRIBUTING.md Update CONTRIBUTING.md 2017-08-17 10:38:58 +08:00
LICENSE Initial commit 2016-11-04 23:54:14 +01:00
Makefile WIP/DEMO https://github.com/lyft/envoy ingress controller for kubernetes 2017-08-31 22:14:11 -07:00
OWNERS Add more assignees and approvers 2017-02-17 10:47:56 -08:00
README.md Add GoDoc Widget 2017-08-10 11:19:08 +08:00

Ingress

Build Status Coverage Status Go Report Card GoDoc

Description

This repository contains controllers built around the Kubernetes Ingress resource. It is currently in a state of flux as project maintainers port code over from its previous home.

Navigation