mirror of
https://git.vectorsigma.ru/public/k3s.git
synced 2026-07-28 23:59:26 +00:00
Remove resources created by addon before deleting addon (#11975)
Remove the AddOn last, after any resources it created in the cluster
have been deleted and the AddOn file is removed.
Signed-off-by: Robert Rose <robert.rose@mailbox.org>
(cherry picked from commit 5e1845b7c1)
Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
This commit is contained in:
committed by
Brad Davidson
parent
2d1c4ec680
commit
1f352c8344
@@ -303,19 +303,23 @@ func (w *watcher) delete(path string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// ensure that the addon is completely removed before deleting the objectSet,
|
||||
// so return when err == nil, otherwise pods may get stuck terminating
|
||||
w.recorder.Eventf(&addon, corev1.EventTypeNormal, "DeletingManifest", "Deleting manifest at %q", path)
|
||||
if err := w.addons.Delete(addon.Namespace, addon.Name, &metav1.DeleteOptions{}); err == nil || !apierrors.IsNotFound(err) {
|
||||
return err
|
||||
}
|
||||
|
||||
// apply an empty set with owner & gvk data to delete
|
||||
// Apply an empty set with owner & gvk data to delete
|
||||
if err := w.apply.WithOwner(&addon).WithGVK(addonGVKs...).ApplyObjects(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return os.Remove(path)
|
||||
// Remove the addon file
|
||||
if err := os.Remove(path); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Delete the addon
|
||||
w.recorder.Eventf(&addon, corev1.EventTypeNormal, "DeletingManifest", "Deleting manifest at %q", path)
|
||||
if err := w.addons.Delete(addon.Namespace, addon.Name, &metav1.DeleteOptions{}); err != nil && !apierrors.IsNotFound(err) {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// getOrCreateAddon attempts to get an Addon by name from the addon namespace, and creates a new one
|
||||
|
||||
Reference in New Issue
Block a user