Reconciliation resources flag improvement
atlas-reconciliation-policy=skip flag provide ability do not sync k8s object status with atlas. But in case when we need to make reference on objects in Atlas (Aka project) and do not create or modify this resource - this flag not very useful nothing. In this case i would be good if
- or operator sync object from API to k8s resources ( grub id by name so k8s resource will be valid )
- or at least provide opportunity to set id ( for new resources with atlas-reconciliation-policy=skip set by default )
Aka:
- Follow the pattern of reading data from the objects even if not doing reconciliation for them. This is the norm for controllers
- Support referencing api paths rather than just object references for the AtlasDeployments
-
Mikhail commented
Yes, I confirm that issue in the Atlas k8s operator v2.3.1. More context:
If `AtlasProject` has an annotation `mongodb.com/atlas-reconciliation-policy: "skip"`, then this `AtlasProject` has an empty status field, which doesn't allow to create `AtlasDatabaseUser` referring this project. The error is:
{"level":"INFO","time":"2024-07-12T09:57:18.639Z","msg":"Status update","atlasdatabaseuser":"my-namespace/my-dbuser","lastCondition":{"type":"DatabaseUserReady","status":"False","lastTransitionTime":null,"reason":"DatabaseUserNotCreatedInAtlas","message":"groupID is invalid because must be set"}}