Closed ssachinbharadwaj closed 1 year ago
IMO, the new policy becomes active, period. Probe() is simply a way to test the policy without executing the RPC in the Probe; ie: /gnmi.gNMI/Subscribe would be tested against policy but not executed.
It sounds like the intention was: "Rotate applies a new policy immediately, the rotator should test with probe() messages to see that their intended result is live, and finalize() when that's done"
Because 'live immediately', I expect that new rpcs between the start of Rotate() and Finalize() would be evaluated under the newly placed policy. If the policy failes Probe() tests (for instance) or there are signals to the rotator that: "Hey, half my RPCs are failing? wut?" the rotator may choose to not Finalize() and disconnect forcing the previous policy to take up the active role.
make sense?
Got it @morrowc. This answers my questions
In summary: In the intermittent state, all of them(Probe(), real RPC and Get()) behave as per the new policy even though Finalize is not yet issued. This is in line with the spec which mentions "active immediately".
In the authz spec, it is mentioned that the pushed policy becomes active immediately as below:
This is fine for Probe() RPC because it has to be tested before finalize.
When the Rotate() is in progress (After upload and before finalize) what is the expectation for the below two use case: