Closed bhardesty closed 4 years ago
A suggestion from @ssorj on this was to default to hub, and have --edge by an advanced option that you would only use when you had 'lots' of skupper instances to connect (where 'lots' is certainly 100s but possibly even lower numbers). That also nicely avoids the naming issues around hub. Does it work for you?
Yes, that does make a lot of sense.
I think the skupper CLI should more explicitly distinguish between "hub" and "edge" installations. One possibility would be to add a
--type
option. For example:skupper init --type hub ...
orskupper init --type edge ...
Rationale:
The current CLI implies a particular topology in which you have a single hub with every other skupper installation connecting to it as an edge (which is implied, but not explicit in the CLI). It's also not clear if you can (or even should) have multiple hubs connected to each other (obviously, there are scenarios in which you'd want to do that). By explicitly distinguishing between "hub" and "edge", it makes it clear that these are two distinct types of installations, and that each type has a specific purpose. (Note: if the distinction between hub and edge is not important or can be determined by the usage, then we should just get rid of
--hub
altogether and just haveskupper init
automatically determine the type and set it up automatically. I don't think that's the case, though.)Related to the above point, I think we need to make it much more clear when to use a "hub" or an "edge". Should you use one hub per cluster? Per namespace? When/why would you connect edges to them? Is it all dependent on the scenario you're trying to accomplish or are there some standard patterns/best practices that we should make clear? (Note: I realize this bullet point is more at the overall skupper architecture level and is somewhat/entirely out of scope for the CLI. But it is related to the previous one, so I didn't want to lose sight of it.)