Currently Blueprint only supports named namespaces. Ideally we want to be able to deploy services to namespaces using a modifier, as that is more easy to define in the wiring spec.
This PR makes the necessary changes to the pointer implementation to support this. It updates a bunch of wiring spec tests. It also generalizes and factors out namespaces for all plugins that use them.
The main changes are as follows:
It is much more streamlined for plugins to create custom namespaces, compared to before. A package in blueprint/coreplugins/namespaceutil takes care of this logic
Introduce namespace modifiers - e.g. a service can be wrapped in a process modifier so that when the server-side of the service is instantiated, the server is first deployed into a process
Implements namespace modifiers for all namespace plugins (goproc, linux container, docker etc.); this is now the default behavior when deploying a pointer into a namespace
Allows deploying multiple pointers to a shared namespace; modifiers will correctly instantiate the namespace that contains multiple nodes.
Update wiring spec tests and add some new ones
Refresh docs
A couple of lingering pieces not implemented:
pointers do not support having multiple addr nodes in them; just one. For a modifier such as a proxy node, the pointer logic would need to be expanded
there are edge-cases where a namespace modifier might not be instantiated, if more than one pointer share a namespace; this is not an important edge case currently.
Currently Blueprint only supports named namespaces. Ideally we want to be able to deploy services to namespaces using a modifier, as that is more easy to define in the wiring spec.
This PR makes the necessary changes to the pointer implementation to support this. It updates a bunch of wiring spec tests. It also generalizes and factors out namespaces for all plugins that use them.
The main changes are as follows:
blueprint/coreplugins/namespaceutil
takes care of this logicA couple of lingering pieces not implemented: