prevent endpoints lying in different spaces from being related
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Triaged
|
Low
|
Unassigned |
Bug Description
I have the strong suspicion than in the vast majority of cases charms expect both ends of a relation to lie in the same space. It would therefore be very useful if juju could prevent operators from relating two applications unless the respective endpoints have been bound to the correct (i.e. same) space.
If in some corner cases this rule needed to be broken, juju could still offer a force flag:
juju add-relation app1:endpoint1 app2:endpoint2 --force
Specifying the above in a bundle would be more awkward, but could perhaps be expressed by restating the bound space as follows:
relations:
- - app1:endpoint1:
- app2:endpoint2:
Note that this feature would effectively be a more product-oriented solution to bug 1840814 and bug 1936838, which would become obsolete. It would also heavily reduce the importance of bug 1947030.
I don't think we would ever want to "prevent relations across spaces", because the design is very much that many spaces are routable to each other. However, we do want to model routes and it would make a lot of sense to engage and give warnings/possibly errors if we don't believe there is a route between spaces. (Note that without routing, there is no guarantee that even within a space everything is routable to each other.)
I'm going to put this in our networking modeling discussion to keep this in mind.
Also of note with network modeling, is that we might be moving away from relation endpoints being in a space, to 'service locators' being in a space. Which means that we would be decoupling config relationships from connections.