mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 03:03:59 +00:00
Merge pull request #108349 from LastNight1997/optimize-dedup
optimize dedupCurHistories func in DaemonSetsController
This commit is contained in:
commit
de7d9a9897
@ -411,35 +411,35 @@ func (dsc *DaemonSetsController) dedupCurHistories(ctx context.Context, ds *apps
|
||||
maxRevision = cur.Revision
|
||||
}
|
||||
}
|
||||
// Clean up duplicates and relabel pods
|
||||
// Relabel pods before dedup
|
||||
pods, err := dsc.getDaemonPods(ctx, ds)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, pod := range pods {
|
||||
if pod.Labels[apps.DefaultDaemonSetUniqueLabelKey] != keepCur.Labels[apps.DefaultDaemonSetUniqueLabelKey] {
|
||||
patchRaw := map[string]interface{}{
|
||||
"metadata": map[string]interface{}{
|
||||
"labels": map[string]interface{}{
|
||||
apps.DefaultDaemonSetUniqueLabelKey: keepCur.Labels[apps.DefaultDaemonSetUniqueLabelKey],
|
||||
},
|
||||
},
|
||||
}
|
||||
patchJSON, err := json.Marshal(patchRaw)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_, err = dsc.kubeClient.CoreV1().Pods(ds.Namespace).Patch(ctx, pod.Name, types.MergePatchType, patchJSON, metav1.PatchOptions{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
// Clean up duplicates
|
||||
for _, cur := range curHistories {
|
||||
if cur.Name == keepCur.Name {
|
||||
continue
|
||||
}
|
||||
// Relabel pods before dedup
|
||||
pods, err := dsc.getDaemonPods(ctx, ds)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, pod := range pods {
|
||||
if pod.Labels[apps.DefaultDaemonSetUniqueLabelKey] != keepCur.Labels[apps.DefaultDaemonSetUniqueLabelKey] {
|
||||
patchRaw := map[string]interface{}{
|
||||
"metadata": map[string]interface{}{
|
||||
"labels": map[string]interface{}{
|
||||
apps.DefaultDaemonSetUniqueLabelKey: keepCur.Labels[apps.DefaultDaemonSetUniqueLabelKey],
|
||||
},
|
||||
},
|
||||
}
|
||||
patchJson, err := json.Marshal(patchRaw)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_, err = dsc.kubeClient.CoreV1().Pods(ds.Namespace).Patch(ctx, pod.Name, types.MergePatchType, patchJson, metav1.PatchOptions{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
// Remove duplicates
|
||||
err = dsc.kubeClient.AppsV1().ControllerRevisions(ds.Namespace).Delete(ctx, cur.Name, metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user