Anup has a good point: policies also have priorities and only one applies at a time.
I tried following the Blue/Green deployment guide with 2 blank nodes on one of which ("blue")
I declared two durable queues. I then made a mistake in the process: the policy was set on the
blue node. Nonetheless it is possible to observe that the policy matches my queues:
there are no other policies, so priority is not an issue. We will update the docs to make it clear that the priority
must have a high priority.
I then corrected my mistake:
* Deleted the policy
* Deleted the upstream
* Redeclared the upstream on the green node
* Redeclared the policy on the green node
At that point I could see the links in the management UI (I have rabbitmq_federation_management enabled) and
that both ends have 2 queues with a policy applied to them.
I then published 3 messages to durable.q1 on the blue node and added a consumer to a queue with the same name on the green node.
The consumer consumed them almost immediately as queue federation moved them to the blue node which had consumers.
Of course during a live system there would be consumers in the green cluster. Consumer migration will be done gradually,
one by one, and then the same with publishers.
So besides the missing note about policy priority — which does exist in the policy guide — I could not find any obvious issues in the
Blue/Green deployment guide.
HTH.