Skip to content

Commit

Permalink
Merge pull request #2112 from jluhrsen/OCPBUGS-22293-4.14
Browse files Browse the repository at this point in the history
[release-4.14] OCPBUGS-24037: remove all managed fields used by old manager
  • Loading branch information
openshift-merge-bot[bot] committed Jan 10, 2024
2 parents 2d7ced4 + 7256803 commit 8cf22aa
Showing 1 changed file with 25 additions and 17 deletions.
42 changes: 25 additions & 17 deletions pkg/apply/apply.go
Expand Up @@ -125,29 +125,37 @@ func ApplyObject(ctx context.Context, client cnoclient.Client, obj Object, subco
log.Printf("could not encode %s for apply", objDesc)
return fmt.Errorf("could not encode for patching: %w", err)
}
us, err := clusterClient.Dynamic().Resource(rm.Resource).Namespace(namespace).Patch(ctx, name, types.ApplyPatchType, data, patchOptions, subresources...)
if err != nil {
return fmt.Errorf("failed to apply / update %s: %w", objDesc, err)
}

// consider removing in OCP 4.18 when we know field manager 'cluster-network-operator' no longer possibly
// exists in any object from all upgrade paths
// Retrieve the current state of the resource
if isDepFieldManagerCleanupNeeded(subcontroller) {
us.SetGroupVersionKind(gvk)

if doesManagerOpExist(us.GetManagedFields(), depreciatedFieldManager, metav1.ManagedFieldsOperationUpdate,
metav1.ManagedFieldsOperationApply) {

us.SetGroupVersionKind(obj.GetObjectKind().GroupVersionKind())
if err = mergeManager(ctx, clusterClient, us, depreciatedFieldManager, fieldManager, rm.Resource); err != nil {
klog.Errorf("Failed to merge field managers %q for object %q %s %s: %v", depreciatedFieldManager,
gvk.String(), obj.GetNamespace(), obj.GetName(), err)
} else {
klog.Infof("Depreciated field manager %s for object %q %s %s", depreciatedFieldManager,
gvk.String(), obj.GetNamespace(), obj.GetName())
us, err := clusterClient.Dynamic().Resource(rm.Resource).Namespace(namespace).Get(ctx, name, metav1.GetOptions{})
if err != nil && !apierrors.IsNotFound(err) {
return fmt.Errorf("failed to get current state of %s: %w", objDesc, err)
}
if us != nil {
us.SetGroupVersionKind(gvk)

if doesManagerOpExist(us.GetManagedFields(), depreciatedFieldManager, metav1.ManagedFieldsOperationUpdate,
metav1.ManagedFieldsOperationApply) {

us.SetGroupVersionKind(obj.GetObjectKind().GroupVersionKind())
if err = mergeManager(ctx, clusterClient, us, depreciatedFieldManager, fieldManager, rm.Resource); err != nil {
klog.Errorf("Failed to merge field managers %q for object %q %s %s: %v", depreciatedFieldManager,
gvk.String(), obj.GetNamespace(), obj.GetName(), err)
} else {
klog.Infof("Depreciated field manager %s for object %q %s %s", depreciatedFieldManager,
gvk.String(), obj.GetNamespace(), obj.GetName())
}
}
}
}

_, err = clusterClient.Dynamic().Resource(rm.Resource).Namespace(namespace).Patch(ctx, name, types.ApplyPatchType, data, patchOptions, subresources...)
if err != nil {
return fmt.Errorf("failed to apply / update %s: %w", objDesc, err)
}

log.Printf("Apply / Create of %s was successful", objDesc)
return nil
}
Expand Down

0 comments on commit 8cf22aa

Please sign in to comment.