Skip to content
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

[sync]: Cleanup NIM integration tech preview resources #1372

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions pkg/upgrade/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
routev1 "github.com/openshift/api/route/v1"
monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
appsv1 "k8s.io/api/apps/v1"
batchv1 "k8s.io/api/batch/v1"
corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
Expand Down Expand Up @@ -287,6 +288,9 @@ func CleanupExistingResource(ctx context.Context,
toDelete := getDashboardWatsonResources(dscApplicationsNamespace)
multiErr = multierror.Append(multiErr, deleteResources(ctx, cli, &toDelete))

// cleanup nvidia nim integration remove tech preview
multiErr = multierror.Append(multiErr, cleanupNimIntegrationTechPreview(ctx, cli, oldReleaseVersion, dscApplicationsNamespace))

return multiErr.ErrorOrNil()
}

Expand Down Expand Up @@ -596,3 +600,51 @@ func GetDeployedRelease(ctx context.Context, cli client.Client) (cluster.Release
// could be a clean installation or both CRs are deleted already
return cluster.Release{}, nil
}

func cleanupNimIntegrationTechPreview(ctx context.Context, cli client.Client, oldRelease cluster.Release, applicationNS string) error {
var errs *multierror.Error

if oldRelease.Version.Minor >= 14 && oldRelease.Version.Minor <= 15 {
nimCronjob := "nvidia-nim-periodic-validator"
nimConfigMap := "nvidia-nim-validation-result"
nimAPISec := "nvidia-nim-access"

deleteObjs := []struct {
obj client.Object
name, desc string
}{
{
obj: &batchv1.CronJob{},
name: nimCronjob,
desc: "validator CronJob",
},
{
obj: &corev1.ConfigMap{},
name: nimConfigMap,
desc: "data ConfigMap",
},
{
obj: &corev1.Secret{},
name: nimAPISec,
desc: "API key Secret",
},
}
for _, delObj := range deleteObjs {
if gErr := cli.Get(ctx, types.NamespacedName{Name: delObj.name, Namespace: applicationNS}, delObj.obj); gErr != nil {
if !k8serr.IsNotFound(gErr) {
ctrl.Log.V(1).Error(gErr, fmt.Sprintf("failed to get NIM %s %s", delObj.desc, delObj.name))
errs = multierror.Append(errs, gErr)
}
} else {
if dErr := cli.Delete(ctx, delObj.obj); dErr != nil {
ctrl.Log.Error(dErr, fmt.Sprintf("failed to remove NIM %s %s", delObj.desc, delObj.name))
errs = multierror.Append(errs, dErr)
} else {
ctrl.Log.Info(fmt.Sprintf("removed NIM %s successfully", delObj.desc))
}
}
}
}

return errs.ErrorOrNil()
}
Loading