Fix orphaned golden actors by using deterministic actor IDs in ActorTemplateReconciler#526
Conversation
…TemplateReconciler`
d81b4cb to
0944556
Compare
| switch at.Status.Phase { | ||
| case atev1alpha1.PhaseInitial: | ||
| actorID := uuid.NewString() | ||
| actorName := string(at.UID) |
There was a problem hiding this comment.
Kubernetes UIDs (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids) should be compatible with resource names, which are enforced by standard RFC-1123 DNS label rules.
Eitan Yarmush (EItanya)
left a comment
There was a problem hiding this comment.
Great catch!
|
This changes the behaviour of Reconcile - if a previous attempt created a actor with Also, now updates to that same actor template doesn't create a new snapshot. I think this bug is part of the complexity mentioned in #536. |
Functionally I think that's correct, otherwise like mentioned above we may have a bunch of orphaned actors. Do you think a more correct way would be to leave them orphaned and have a secondary GC process pick them up?
I thought the |
This PR fixes an issue where reconciliation retries in
PhaseInitialleft orphaned actors inateapiwhenCreateActorsucceeded but status update failed.Fixes #525