Closed flassagn closed 4 months ago
Hey. Unfortunately, that's how the operator is build initially. When it creates/updates an object it marks it as "processed". Then it ignores the object until new changes are made on the kube side. The refactoring the whole operator might be as almost challenging as building a new operator from scratch. As another option we are looking at developing a crossplane provider instead. Which is expected to reconcile objects infinitively.
Hi @byashimov,
Thank you for your answer, I'm not able to evaluate how the refactoring could huge and challenging, but I trust you.
I'm interesting about the crossplane provider. Do you already start to build something, or it's more in evaluation phase ?
Thank you for your answer, I'm not able to evaluate how the refactoring could huge and challenging, but I trust you.
The continuous reconciliation means infinite comparison of local and remote states and applying precise changes to the remote state. The current approach is quite straightforward: create and update everything when the user triggers a change. Considering the number of resources we have, this means we should revise the entire codebase of the operator.
Do you already start to build something, or it's more in evaluation phase ?
It is in the "evaluation phase," but we are gathering interest. Please vote here or in this thread. It will help us prioritize.
Alright, I voted. You could close the current issue
Hi,
I would like to understand why the
ServiceUser
custom resource's secret is not update when we update the user from Aiven console.First, I deploy the aiven-operator:v0.20.0 chart into our cluster and link with a test Kafka project. Then, I create a test user with the following custom resource
The corresponding secret is correctly generated and I saw the right values. If I reset the user's credential, the secret won't be updated even if the custom resource is correctly reconciled without error in operator log
But If I removed the generated secret, then the operator will create a new one with right values.
I took a look into serviceuser_controller.go#get function
which is call into basic_controller.go#updateInstanceStateAndSecretUntilRunning
And I don't understand what it's not the case ? Maybe, we need to update the
mutateFN
to update the secretstringData
also.The Golang documentation could confirm my assumption https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.18.4/pkg/controller/controllerutil#CreateOrUpdate