Merge "devref: added more details on rolling upgrade for notifications"
This commit is contained in:
commit
c06130e6dd
@ -140,6 +140,23 @@ agents, only the former should handle both old and new RPC versions.
|
|||||||
The implication of that is that no code that handles UnsupportedVersion
|
The implication of that is that no code that handles UnsupportedVersion
|
||||||
oslo.messaging exceptions belongs to agent code.
|
oslo.messaging exceptions belongs to agent code.
|
||||||
|
|
||||||
|
Notifications
|
||||||
|
'''''''''''''
|
||||||
|
|
||||||
|
For notifications that are issued by neutron-server to listening agents,
|
||||||
|
special consideration is needed to support rolling upgrades. In this case, a
|
||||||
|
newer controller sends newer payload to older agents.
|
||||||
|
|
||||||
|
Until we have proper RPC version pinning feature to enforce older payload
|
||||||
|
format during upgrade (as it's implemented in other projects like nova), we
|
||||||
|
leave our agents resistant against unknown arguments sent as part of server
|
||||||
|
notifications. This is achieved by consistently capturing those unknown
|
||||||
|
arguments with keyword arguments and ignoring them on agent side; and by not
|
||||||
|
enforcing newer RPC entry point versions on server side.
|
||||||
|
|
||||||
|
This approach is not ideal, because it makes RPC API less strict. That's why
|
||||||
|
other approaches should be considered for notifications in the future.
|
||||||
|
|
||||||
:ref:`More information about RPC versioning <rpc_versioning>`.
|
:ref:`More information about RPC versioning <rpc_versioning>`.
|
||||||
|
|
||||||
Interface signature
|
Interface signature
|
||||||
@ -247,6 +264,8 @@ Now to specifics:
|
|||||||
that server should be able to handle old requests, without the new
|
that server should be able to handle old requests, without the new
|
||||||
argument specified. Also, if the argument is not passed, the old behaviour
|
argument specified. Also, if the argument is not passed, the old behaviour
|
||||||
before the addition of the argument should be retained.
|
before the addition of the argument should be retained.
|
||||||
|
* minimal client version must not be bumped for server initiated
|
||||||
|
notification changes for at least one cycle.
|
||||||
|
|
||||||
#. Database migrations:
|
#. Database migrations:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user