-
Notifications
You must be signed in to change notification settings - Fork 233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] OpenSearchISMPolicy
doesn't work
#732
Comments
Hi, I'm trying to do the same, but I have some doubts. |
ISMPolicy references cluster via spec:
opensearchCluster:
name: opensearch |
[Triage] |
Hmm I am unsure if my fix is related and it sounds like a kubernetes reconcile error. Can we create a beta release of the reconciler and I can help with testing and investigation. |
### Description The ISM Policy reconciler was constantly trying to update the ISM Policy and it was not handling reconciliation requeue in some cases. There were possibly other issues as well. Below I have described what caused the different issues I encountered - The ISM Policy request was different from the response, but they were both made with the same struct. This caused the reconciler to always see the existing ISM Policy and the ISM Policy from the CR as different and try to update it. I have created a separate struct model for each to separate the logic and in the code I now compare the existing policy with the policy from the CR by comparing both the Policy IDs and the policy spec - There were some very complex cases in the code that were very difficult to understand so I have attempted to make the code more concise and easy to read and understand - I have added reconciliation requeuing to all cases so the operator doesn't just stop reconciling the ISM Policy in some cases One thing I am wondering is that I am not sure why we would want to create a CR without specifying the cluster ID and then the operator automatically links it to that cluster ID so it breaks if the OpenSearch CR is deleted. Is this intended and why? I'm talking about the section with the comment "Check cluster ref has not changed" Tested cases: - A new ISM Policy is created through a CR and the operator creates it in the OpenSearch Cluster - The CR for an ISM Policy that is created by the operator is removed and the operator removes it in the OpenSearch Cluster - An ISM Policy that already exists in the OpenSearch Cluster is created through a CR and the operator ignores it and marks it as existing - The CR for an ISM Policy that was pre-existing and therefore was not created by the operator is removed and the operator does not remove the ISM Policy from the OpenSearch Cluster - An ISM Policy that already exists in the OpenSearch Cluster is created through a CR and the operator ignores it and marks it as existing. The ISM Policy is then manually removed from the OpenSearch Cluster and the operator now applies the ISM Policy from the CR The test for ISM Policies is currently failing miserably, but I decided to create the PR to get feedback before I dive into fixing it. ### Issues Resolved #833 #732 Possibly other issues ### Check List - [x] Commits are signed per the DCO using --signoff - [x] Unittest added for the new/changed functionality and all unit tests are successful - [x] Customer-visible features documented - [x] No linter warnings (`make lint`) If CRDs are changed: - [ ] CRD YAMLs updated (`make manifests`) and also copied into the helm chart - [ ] Changes to CRDs documented Please refer to the [PR guidelines](https://github.com/opensearch-project/opensearch-k8s-operator/blob/main/docs/developing.md#submitting-a-pr) before submitting this pull request. By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. For more information on following Developer Certificate of Origin and signing off your commits, please check [here](https://github.com/opensearch-project/OpenSearch/blob/main/CONTRIBUTING.md#developer-certificate-of-origin). Signed-off-by: rkthtrifork <[email protected]>
I created a
OpenSearchISMPolicy
according to the current spec, but it isn't created in opensearch (error in logs isthe object has been modified; please apply your changes to the latest version and try again
).Looks like this kind doesn't work at all (check also #696 this)
logs:
docker image:
opensearchproject/opensearch-operator:2.5.1
The text was updated successfully, but these errors were encountered: