Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sync-catalog: Support ClusterIP endpoints #4

Closed
mitchellh opened this issue Sep 26, 2018 · 5 comments
Closed

sync-catalog: Support ClusterIP endpoints #4

mitchellh opened this issue Sep 26, 2018 · 5 comments
Labels
type/enhancement New feature or request

Comments

@mitchellh
Copy link
Contributor

mitchellh commented Sep 26, 2018

Context: hashicorp/consul#4710 (comment)

We should support ClusterIP by using endpoints since we already assume that pods are routable given how we treat NodePort.

This is a good first issue because we already have the machinery to sync endpoints (for NodePort) and we already have test examples showing how this would work, so this is a great way to dive in and enhance the functionality.

/cc @roboll

@jackpizarro
Copy link

jackpizarro commented Oct 2, 2018

This would be great to have. In a setup where the HAProxy farm runs itself on pods and can reach any endpoint ClusterIP would be ideal to expose services.

Kudos for the work done so far, very useful!

@civik
Copy link

civik commented Oct 3, 2018

Just curious why you assume the pods are routable? Typically pods are only routable when using a cloud providers CNI plugins. Almost anything on-prem, most commonly Flannel, will have non-routable pod IPs.

I'm assuming this is why when I try to deploy the client only, the pod goes into CLBO with the log message [WARN ] to-consul/sink: error querying services, will retry: err="Get http://<host ip>:8500/v1/catalog/services?index=1&stale=&wait=60000ms: dial tcp <host ip>:8500: connect: connection refused"

@mitchellh
Copy link
Contributor Author

Just curious why you assume the pods are routable? Typically pods are only routable when using a cloud providers CNI plugins. Almost anything on-prem, most commonly Flannel, will have non-routable pod IPs.

There are two reasons!

First, with any new release ("0.1"-type software), we focus on getting started experience as a primary use case. Most getting started experiences with K8S are either minikube or a hosted solution. All hosted solutions have easily routable pod IPs as you stated.

Second, we also of course survey our customers (which are generally enterprises, global 2000 size) and get their use case so that we're designing with that in mind even if we don't solve their problem day 1. A surprisingly large number have routable pod IPs!

Given both of these reasons, it felt like a good starting point. The architecture we built does not limit us to this, however.

I'm assuming this is why when I try to deploy the client only, the pod goes into CLBO with the log message [WARN ] to-consul/sink: error querying services, will retry: err="Get http://<host ip>:8500/v1/catalog/services?index=1&stale=&wait=60000ms: dial tcp <host ip>:8500: connect: connection refused"

That's not trying to route to pods at all, its trying to route to the host. Our default consul helm chart will deploy clients using hostPort to expose on the host IP. You can easily override this though, its just a default we use since thats what our helm chart does.

If there are any configuration options you'd want opened up to your use case, please let us know and we'll take a look!

@kuroneko25
Copy link

This is going to be a big improvement for us as well. We have flat routable pod IPs and would like to avoid using NodePort Services. When can we expect this feature go live?

@adilyse
Copy link
Contributor

adilyse commented Dec 7, 2018

Support for optionally syncing ClusterIP services has been merged and will be released shortly!

@adilyse adilyse closed this as completed Dec 7, 2018
kschoche added a commit that referenced this issue Apr 6, 2021
# This is the 1st commit message:

fix

# This is the commit message #2:

test

# This is the commit message #3:

fix ci

# This is the commit message #4:

fix ci

# This is the commit message #5:

remove namespaces because oss agent response doesnt provide it
kschoche added a commit that referenced this issue Apr 6, 2021
# This is the 1st commit message:

fix

# This is the commit message #2:

test

# This is the commit message #3:

fix ci

# This is the commit message #4:

fix ci

# This is the commit message #5:

remove namespaces because oss agent response doesnt provide it
kschoche added a commit that referenced this issue Nov 29, 2021
# This is the 1st commit message:

merge fixes

# This is the commit message #2:

remove tls-init when using vault

# This is the commit message #3:

add bats tests for client-daemonset

# This is the commit message #4:

moar tests
ishustava pushed a commit that referenced this issue Dec 2, 2021
# This is the 1st commit message:

merge fixes

# This is the commit message #2:

remove tls-init when using vault

# This is the commit message #3:

add bats tests for client-daemonset

# This is the commit message #4:

moar tests
t-eckert pushed a commit that referenced this issue Sep 8, 2022
# This is the 1st commit message:

Add service for terminating-gateways

# This is the commit message #2:

Add gateway-kind:terminating to deployment

# This is the commit message #3:

Add registration path for terminating gateways

# This is the commit message #4:

Add BATS tests

# This is the commit message #5:

Remove registration from terminating gateways deployment

# This is the commit message #6:

Set ports AFAIK in service

# This is the commit message #7:

Begin setting values for endpoints controller

# This is the commit message #8:

Copy values from deployment to endpoints controller (as comment)

# This is the commit message #9:

Use connect-init instead of acl-init

# This is the commit message #10:

Remove guards from term gw service (they will get hit by the deployment)

# This is the commit message #11:

Range over gateways to produce a service for each deployment

# This is the commit message #12:

Add test for multiple gateways

# This is the commit message #13:

Remove the format script

# This is the commit message #14:

Note which parts of the config have been set
wilkermichael added a commit that referenced this issue Oct 12, 2022
wilkermichael added a commit that referenced this issue Oct 14, 2022
wilkermichael added a commit that referenced this issue Oct 17, 2022
wilkermichael added a commit that referenced this issue Oct 17, 2022
wilkermichael added a commit that referenced this issue Oct 18, 2022
wilkermichael added a commit that referenced this issue Oct 18, 2022
wilkermichael added a commit that referenced this issue Oct 18, 2022
wilkermichael added a commit that referenced this issue Oct 18, 2022
wilkermichael added a commit that referenced this issue Oct 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants