Skip to content
This repository was archived by the owner on Oct 10, 2023. It is now read-only.

Commit 638cdc4

Browse files
author
Adolfo Duarte
committed
Merge branch 'topic/gguanpeng/delete-pkgi' into control_package_lifecycle
Refactored some of the code
2 parents bacd323 + a2f3962 commit 638cdc4

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

pkg/v1/tkg/managementcomponents/management_component_install.go

+34-1
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ func pausePackageInstallReconciliation(ctx context.Context, clusterClient cluste
104104
// PausedAdoonLifecycleManagement pauses/unpauses the lifecycle management of addon package with given name and namespace
105105
func PauseAddonLifecycleManagement(mcip *ManagementComponentsInstallOptions, addonName, namespace string) error {
106106
clusterClient, err := clusterclient.NewClient(mcip.ClusterOptions.Kubeconfig, mcip.ClusterOptions.Kubecontext, clusterclient.Options{})
107+
if err != nil {
108+
return err
109+
}
107110
clusterName, err := clusterClient.GetCurrentClusterName(mcip.ClusterOptions.Kubecontext)
108111
if err != nil {
109112
return err
@@ -142,7 +145,7 @@ func InstallManagementComponents(mcip *ManagementComponentsInstallOptions) error
142145
panic(err)
143146
}
144147

145-
// TODO (adduarte) add pkgi delete call
148+
err = NoopDeletePackageInstall(mcip, "addons-manager", constants.TkgNamespace)
146149

147150
// TODO (adduarte) add addonsecret delete call
148151

@@ -281,3 +284,33 @@ func WaitForManagementPackages(clusterClient clusterclient.Client, packageInstal
281284
}
282285
return nil
283286
}
287+
288+
// NoopDeletePackageInstall sets spec.noopdelete = true before deleting the package install
289+
func NoopDeletePackageInstall(mcip *ManagementComponentsInstallOptions, addonName, namespace string) error {
290+
clusterClient, err := clusterclient.NewClient(mcip.ClusterOptions.Kubeconfig, mcip.ClusterOptions.Kubecontext, clusterclient.Options{})
291+
if err != nil {
292+
return err
293+
}
294+
pkgiName := fmt.Sprintf("tanzu-%s", addonName)
295+
296+
jsonPatch := []map[string]interface{}{
297+
{
298+
"op": "add",
299+
"path": "/spec/noopDelete",
300+
"value": true,
301+
},
302+
}
303+
payloadBytes, err := json.Marshal(jsonPatch)
304+
if err != nil {
305+
return errors.Wrap(err, "unable to generate json patch")
306+
}
307+
pkgi := &kappipkg.PackageInstall{}
308+
err = clusterClient.PatchResource(pkgi, pkgiName, namespace, string(payloadBytes), types.JSONPatchType, nil)
309+
if apierrors.IsNotFound(err) {
310+
return nil
311+
}
312+
if err != nil {
313+
return errors.Wrapf(err, "failed to patch %s packageinstall", pkgiName)
314+
}
315+
return nil
316+
}

0 commit comments

Comments
 (0)