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

feat(*) statefulset support #901

Merged
merged 16 commits into from
Jul 22, 2020
Merged

feat(*) statefulset support #901

merged 16 commits into from
Jul 22, 2020

Conversation

lobkovilya
Copy link
Contributor

Summary

Current PR adds support of Statefulset in Kuma, which is important for example for running RabbitMQ

Full changelog

  • Add new tag Identifier for Dataplanes which implements headless services
  • Update proxy-init container
  • Add new transparent-proxy cluster and listener

Issues resolved

Fix #844

Documentation

@lobkovilya lobkovilya requested a review from a team as a code owner July 13, 2020 14:42
Copy link
Contributor

@nickolaev nickolaev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of small remarks.

pkg/xds/generator/transparent_proxy_generator.go Outdated Show resolved Hide resolved
pkg/xds/generator/transparent_proxy_generator.go Outdated Show resolved Hide resolved
Name: inboundPassThroughClusterName,
Version: proxy.Dataplane.Meta.GetVersion(),
Resource: inboundPassThroughCluster,
},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you help me understand why we only generate this for inbound? and why do we need old ones? Are old ones used only for outbound now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iptables rules redirect inbound traffic to 15006 and outbound traffic to 15001. That's why we need listeners for both ports. Both listeners send traffic to pass_through clusters, but in case 15006 it also binds connection to 127.0.0.6.

api/mesh/v1alpha1/dataplane_helpers.go Outdated Show resolved Hide resolved
# Conflicts:
#	api/mesh/v1alpha1/dataplane.pb.go
#	pkg/xds/generator/direct_access_proxy_generator.go
#	pkg/xds/generator/testdata/profile-source/2-envoy-config.golden.yaml
#	pkg/xds/generator/testdata/profile-source/4-envoy-config.golden.yaml
#	pkg/xds/generator/testdata/template-proxy/1-envoy-config.golden.yaml
#	pkg/xds/generator/transparent_proxy_generator.go
#	pkg/xds/generator/transparent_proxy_generator_test.go
Name: "catch_all",
Version: proxy.Dataplane.Meta.GetVersion(),
Resource: listener,
},
&model.Resource{
{
Name: "pass_through",
Version: proxy.Dataplane.Meta.GetVersion(),
Resource: cluster,
},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get here consistent naming for passthrough clusters? I was thing of something about:
inbound:passthrough (for listener and cluster)
outbound:passthrough (for listener and cluster)
WDYT?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I agree. For listeners it also could be standard format: inbound:0.0.0.0:15006 and outbound:0.0.0.0:15001 to be more descriptive

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually will the same names for listener and cluster work? We store it in a ResourceSet, right?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should work because they are unique per type. I think I like this one:

listener - inbound:passthrough
cluster - inbound:passthrough

listener - outbound:passthrough
cluster - outbound:passthrough

because when browsing stats in Grafana inbound:passthrough tells me more than inbound:0.0.0.0:15006

Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
Signed-off-by: Ilya Lobkov <ilya.lobkov@konghq.com>
@lobkovilya lobkovilya merged commit 87f57a7 into master Jul 22, 2020
@pauliusuza
Copy link

Thanks for the fix, when will this land in a build we can use?

@nickolaev
Copy link
Contributor

@pauliusuza we are releasing a version this week.

@lobkovilya lobkovilya deleted the feat/statefulset-support branch July 29, 2020 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Direct Access takes precedence over Headless support (suuport for stateful sets)
4 participants