Skip to content
This repository has been archived by the owner on Apr 17, 2019. It is now read-only.

HAProxy Ingress Controller #1810

Closed

Conversation

odacremolbap
Copy link

@odacremolbap odacremolbap commented Sep 29, 2016

Related to #1809

Simple Ingress spec only HAProxy ingress controller


This change is Reviewable

@k8s-github-robot
Copy link

[CLA-PING] @odacremolbap

Thanks for your pull request. It looks like this may be your first contribution to a CNCF open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://identity.linuxfoundation.org/projects/cncf to sign.

Once you've signed, please reply here (e.g. "I signed it!") and we'll verify. Thanks.


@k8s-github-robot k8s-github-robot added the cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. label Sep 29, 2016
@bprashanth
Copy link

Can I ask that you integrate with the nginx controller?

@odacremolbap
Copy link
Author

Sounds like merging common functionality is the best path to allow anyone build a new Ingress.

  • Getting the kubernetes Ingress and other related objects informers to a common lib
  • Having an entry cmd to extend
  • Taking care of healthz, logs, ...

Caveats
Depending on the functionality exposed some informers might be necessary or not (for now we don't allow a lot of configuration customisation, and no ConfigMap informer is needed)

Command line arguments are also tied to functionality. I guess we can minimise the number of arguments (which should be common to all ingress controllers, be it nginx, haproxy, vulcand, traefik, ...) and use config maps managed by each implementation

So, I'd say yes, we will help integrating ingress controllers to reduce maintenance and allow anyone to easily write her own, but for now we will be maintaining this one, since it's being already used by our clients.

I'd propose to contribute this one, and in the meantime, we will open a thread or continue with this one to get both ingress controllers merged. As soon as the new ingress will be ready, we will be glad to drop the current HAProxy.

@k8s-github-robot
Copy link

[CLA-PING] @odacremolbap

Thanks for your pull request. It looks like this may be your first contribution to a CNCF open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://identity.linuxfoundation.org/projects/cncf to sign.

Once you've signed, please reply here (e.g. "I signed it!") and we'll verify. Thanks.


@bprashanth
Copy link

@aledbf has started work on modularizing the nginx controller, maybe you can take a look when you have time? It's the first step, not the only, IIUC the next step after we release nginx-controller:0.9 is to expose an interface: #1847.

I think we need to be consistent about what more we accept into contrib at this point, see: #1440, though it breaks my heart to turn down an haproxy ingress controller :(

I'm hoping we can find some middle ground

@baldwinSPC
Copy link

@bprashanth what would be the middle ground you'd propose? We're not in a position where we can take the nginx stuff and refactor that then refactor haproxy into it. Our team size is quite quite small.

Is this being actively discussed in SIG Network? If so, we'd like to join that conversation. Happy to come back in and add our code to whatever the go forward solution for load balancing is. Ideally, we'd get a sense of timing on that -- like what's the ETA for the changes so that others can contribute load balancers or are all load balancers blocked in the project at this point until someone re-factors NGINX? Could we drop NGINX out of the mix and simply build something from scratch and allow contribs from folks for nginx, haproxy, traefik, etc?

@bprashanth
Copy link

@bprashanth what would be the middle ground you'd propose? We're not in a position where we can take the nginx stuff and refactor that then refactor haproxy into it. Our team size is quite quite small.

Manuel is already doing that in the mentioned pr, maybe help with a review pass? might be a good way to get familiar with the code

Is this being actively discussed in SIG Network? If so, we'd like to join that conversation.

We could, if we need fleshing out, but I think we understand what's required at this point?

Ideally, we'd get a sense of timing on that -- like what's the ETA for the changes so that others can contribute load balancers or are all load balancers blocked in the project at this point until someone re-factors NGINX?

This is a little hard to pin down, because it depends on whenever contributors have time to refactor. As mentioned in #1440 (comment), it's not clear that there's too much value in maintaining a completely independent controller here in contrib vs linking to an implementation in your repo.

Could we drop NGINX out of the mix and simply build something from scratch and allow contribs from folks for nginx, haproxy, traefik, etc?

Sure. If you think that's the better approach please file a bug with some reasoning why, and we can take it from there. Personally I don't think it'll be too hard to just refactor.

@k8s-github-robot
Copy link

[CLA-PING] @odacremolbap

Thanks for your pull request. It looks like this may be your first contribution to a CNCF open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://identity.linuxfoundation.org/projects/cncf to sign.

Once you've signed, please reply here (e.g. "I signed it!") and we'll verify. Thanks.


@k8s-github-robot
Copy link

[CLA-PING] @odacremolbap

Thanks for your pull request. It looks like this may be your first contribution to a CNCF open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://identity.linuxfoundation.org/projects/cncf to sign.

Once you've signed, please reply here (e.g. "I signed it!") and we'll verify. Thanks.


1 similar comment
@k8s-github-robot
Copy link

[CLA-PING] @odacremolbap

Thanks for your pull request. It looks like this may be your first contribution to a CNCF open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://identity.linuxfoundation.org/projects/cncf to sign.

Once you've signed, please reply here (e.g. "I signed it!") and we'll verify. Thanks.


@k8s-github-robot k8s-github-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Nov 2, 2016
@k8s-github-robot
Copy link

[APPROVALNOTIFIER] The Following OWNERS Files Need Approval:

  • ingress

We suggest the following people:
cc @bprashanth
You can indicate your approval by writing /approve in a comment
You can cancel your approval by writing /approve cancelin a comment

@baldwinSPC
Copy link

@odacremolbap we should refactor into the new way ingress controllers are working.

@sandys
Copy link

sandys commented Jan 24, 2017

@odacremolbap we are very keen to use this with features like proxy protocol, etc. is this going to be merged with k8s?

@jefflaplante
Copy link

Any status update on the PR?

@ddysher
Copy link

ddysher commented May 22, 2017

@jefflaplante I think most of the development effort happens in https://github.com/kubernetes/ingress, but I didn't see haproxy backend yet.

@aledbf
Copy link
Contributor

aledbf commented May 22, 2017

@jefflaplante @ddysher here is the link to the haproxy ingress controller https://github.com/kubernetes/ingress/blob/master/docs/catalog.md

@ddysher
Copy link

ddysher commented Jun 2, 2017

@aledbf thanks for the pointer. Do we plan to add those into kubernetes/ingress?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants