-
Spike
-
Resolution: Done
-
Major
-
None
-
None
-
None
-
2
-
False
-
None
-
False
-
-
Add documentation to the cloud-credential-repo for how to rotate the cluster bound-service-account-signing-key to include adding the new key to the Microsoft Azure Workload Identity issuer file. The process should meet the following requirements:
- The next-bound-service-account-signing-key is (re)generated by the cluster.
- The (next-)bound-service-account-signing-key private key never leavers the cluster.
- There is minimal downtime (preferably zero) for pods using Microsoft Azure WI credentials while authenticating to the Azure API.
It is not clear at this time if it is possible to do both: a) ensure the private key never leaves the cluster, and b) ensure zero downtime for authentication to the API while transitioning to this new key. Deleting the next-bound-service-account-signing-key will trigger it to regenerate a new one. It then appears to start automatically rolling out to the cluster. It is therefore possible for pods to start using tokens signed by the new key before it is added to the issuer file, which would cause authentication failures. For example, a reboot of all nodes would cause all pods to get new tokens using the new keys.
The documentation in my current PR ensures the private key never leaves the cluster while assuming a risk of the authentication failing. Ideally, we want the cluster to generate a new keypair in a way that would allow us to add the public key to the issuer file before the cluster starts using it. However, adding such functionality is beyond the scope of the cloud-credential-operator.