-
Notifications
You must be signed in to change notification settings - Fork 218
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
409 conflict error #2251
Comments
@10000-ki could you tell more context? Are you using dependent resources, maybe would be great to have a small reproducer if it hard to describe when it exactly happens. Note that resource version changes even on status and metadata change not just spec. |
Sorry, now I see that you are using v4.4.0 where this was not present yet. (see https://javaoperatorsdk.io/docs/v4-5-migration ) |
yes i use dependent resources @ControllerConfiguration(
labelSelector = "app.kubernetes.io/managed-by=$OPERATOR_LABEL_V1",
dependents = [
Dependent(type = OpenSearchCertificatesSecret::class, name = "OpenSearchCertificatesSecret", useEventSourceWithName = SECRET_EVENT_SOURCE),
Dependent(type = OpenSearchConfigMap::class, name = "OpenSearchConfigMap", useEventSourceWithName = CONFIGMAP_EVENT_SOURCE),
Dependent(type = OpenSearchSecurityConfigMap::class, name = "OpenSearchSecurityConfigMap", useEventSourceWithName = CONFIGMAP_EVENT_SOURCE),
Dependent(type = OpenSearchService::class, name = "OpenSearchService", useEventSourceWithName = SERVICE_EVENT_SOURCE),
Dependent(type = OpenSearchDiscoveryService::class, name = "OpenSearchDiscoveryService", useEventSourceWithName = SERVICE_EVENT_SOURCE),
Dependent(type = OpenSearchNodeStatefulSet::class, name = "OpenSearchNodeStatefulSet", useEventSourceWithName = STS_EVENT_SOURCE),
Dependent(type = OpenSearchNodeDeployment::class, name = "OpenSearchNodeDeployment", useEventSourceWithName = DEPLOYMENT_EVENT_SOURCE),
// @formatter:off
Dependent(type = OpenSearchDashboardsConfigMap::class, name = "OpenSearchDashboardsConfigMap", useEventSourceWithName = CONFIGMAP_EVENT_SOURCE), // ktlint-disable
Dependent(type = OpenSearchDashboardsService::class, name = "OpenSearchDashboardsService", useEventSourceWithName = SERVICE_EVENT_SOURCE), // ktlint-disable
Dependent(type = OpenSearchDashboardsDeployment::class, name = "OpenSearchDashboardsDeployment", useEventSourceWithName = DEPLOYMENT_EVENT_SOURCE), // ktlint-disable
Dependent(type = OpenSearchClusterManagerPodDisruptionBudget::class, name = "OpenSearchClusterManagerPodDisruptionBudget", useEventSourceWithName = PDB_EVENT_SOURCE), // ktlint-disable
// @formatter:on
],
) A change occurs only in |
is it related to this issue? |
Yes it seems to be that is an issue on that k8s version you are using from this issue. Pls try also to update to newer version of JOSDK that might also solve this (if you use dependent resources) |
okay i will upgrade lib version |
@csviri hi can i ask something?? i saw this pr If the resource version is different, it is impossible to update, so I think the SSA method is adjusting the resource version between actual and target May I know why you deleted it here? |
The reason is that there should not be a need for optimistic locking for SSA, since that already handles the ownership of the fields. It is assumed that the desired won't have a resource version set, so there is no optimistic locking happening in this case. |
I think it was also a consequence of the annotation based tracking of updates as well as it doesn't need to be locked for correctness. |
At the end it was not needed with event recorder either I think (just was much easier to reason about, also it was before a non-ssa based update, so that is more reasonable there too) |
if I can't upgrade k8s version to the next 1.23 version (internal problem), are there any other ways?? Should I use the CSA instead of the SSA? |
@10000-ki yes, please try that |
thank you for guide I'll close this issue |
ENV
ERROR Message
there was an issue that the resource version continued to be upgraded even though there was no spec modification in the deployment
Because of this, infinite reconcile loop execution occurred, which resulted in 409 errors..
The text was updated successfully, but these errors were encountered: