-
Notifications
You must be signed in to change notification settings - Fork 602
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
Initial support for multi-networking #451
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really quite fantastic!!!
WHat are your thoughts on defaulting the name to "default"
We could display empty stings in logs as explicitly defaulted? But I don't really care either way. |
This looks really great, the only thing I miss is the backward compatibility for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was trying to test it with the helm chart, but had no luck.
The RPC server configuration now supports associating a name with a listener (via struct server_endpoint). This name is made available via the connection context when a connection is accepted for a listener. Signed-off-by: Noah Watkins <noah@vectorized.io>
This feature is available now in c++20 and works when all the members are also comparable. Signed-off-by: Noah Watkins <noah@vectorized.io>
offline chatting looks like this is an issue in the helm chart with constructing the proper config file |
done |
631febd
to
38ccc39
Compare
This patch introduces a wire protocol and storage format breaking change. Extends types to support associating multiple named listeners per broker. The main type introduced is struct broker_endpoint which is a (name, address) pair. model::broker is extended to store a set of broker endpoints. existing tests have been built assuming a single listener, and these tests are updated to take the first listener in the set which should provide compatability until the tests need to be generalized. Signed-off-by: Noah Watkins <noah@vectorized.io>
- Backwards compatibility tests - Multiple endpoints test Signed-off-by: Noah Watkins <noah@vectorized.io>
When advertised listeners are announced by a broker they are filtered such that the endpoint name matches the connection name. Signed-off-by: Noah Watkins <noah@vectorized.io>
Useful for backwards compat or simplifying schema common cases. Signed-off-by: Noah Watkins <noah@vectorized.io>
Both kafka api and advertised api endpoint configuration options now support multiple endpoints. This maintains backwards compatability. That is: kafka_api: address: xxx port: 333 kafka_api: - address: xxx port: 333 will both parse into equivalent configurations. Signed-off-by: Noah Watkins <noah@vectorized.io>
Signed-off-by: Noah Watkins <noah@vectorized.io>
38ccc39
to
1a7e1d5
Compare
https://github.com/vectorizedio/redpanda/compare/631febd7ac7c4ebed82091bbdd32912e70cb34fc..1a7e1d5 @mmaslankaprv if you have time it'd be great to look at (1) the backward compat i added and(2) the test i added for that feature. |
* Old version for use in backwards compatibility serialization / | ||
* deserialization helpers. | ||
*/ | ||
struct broker_v0 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for doing this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm.
The kafka api and advertised kafka api configuration can now be set to list of listeners. Remove old configuration from configmap resource. Reorganize the init container to set only seed server list. Due to rpk start deprecation the pod now uses rpk redpanda start subcommand. Reference PRs: #413 #525 #451
The kafka api and advertised kafka api configuration can now be set to list of listeners. Remove old configuration from configmap resource. Reorganize the init container to set only seed server list. Due to rpk start deprecation the pod now uses rpk redpanda start subcommand. Reference PRs: redpanda-data#413 redpanda-data#525 redpanda-data#451
The kafka api and advertised kafka api configuration can now be set to list of listeners. Remove old configuration from configmap resource. Reorganize the init container to set only seed server list. Due to rpk start deprecation the pod now uses rpk redpanda start subcommand. Reference PRs: redpanda-data#413 redpanda-data#525 redpanda-data#451
The kafka api and advertised kafka api configuration can now be set to list of listeners. Remove old configuration from configmap resource. Reorganize the init container to set only seed server list. Due to rpk start deprecation the pod now uses rpk redpanda start subcommand. Reference PRs: redpanda-data#413 redpanda-data#525 redpanda-data#451
The kafka api and advertised kafka api configuration can now be set to list of listeners. Remove old configuration from configmap resource. Reorganize the init container to set only seed server list. Due to rpk start deprecation the pod now uses rpk redpanda start subcommand. Reference PRs: redpanda-data#413 redpanda-data#525 redpanda-data#451
The kafka api and advertised kafka api configuration can now be set to list of listeners. Remove old configuration from configmap resource. Reorganize the init container to set only seed server list. Due to rpk start deprecation the pod now uses rpk redpanda start subcommand. Reference PRs: redpanda-data#413 redpanda-data#525 redpanda-data#451
This PR adds the plumbing for supporting multi-network configuration. The basic idea is that listeners and advertised apis are associated using common naming. Given the following configuration:
kafka will report public.asdf.com as an advertised listener if the client is connected on the public listener connection, and similar behavior for the private network.