Uninstalling IBM Fusion

Steps to uninstall IBM Fusion from Red Hat® OpenShift® web console.

Before you begin

  • Uninstall all IBM Fusion services before you uninstall IBM Fusion.
  • Ensure that you delete all the connection CRDs. For the procedure to delete, see Disabling the connection.

Procedure

  1. Export IBM Fusion namespace as an environment variable.
    Note: If the IBM Fusion is installed in a different namespace, replace the existing namespace:
    export FUSION_NS="ibm-spectrum-fusion-ns"
  2. Run the following script:
    oc project "$FUSION_NS"
    echo "Fusion namespace: $FUSION_NS"
    echo "Labeling namespace $FUSION_NS with uninstalling=true"
    oc label namespace "$FUSION_NS" uninstalling=true --overwrite
    
    oc delete isfproxydeps isf-proxy
    oc delete isflcdeps logcollector
    oc delete isfchdeps callhomeclient
    oc delete oauthclient isf-oauth
    oc delete consolelink ibm-spectrum-fusion
    
    oc delete sppmanagers sppmanager
    oc delete updatemanager version
     
    ISF_CRDS=$(oc get crd -o json | jq -r '.items[] | select(.spec.group | endswith("isf.ibm.com")) | .metadata.name')
    
    for CRD in $ISF_CRDS
    do
        oc delete crd $CRD --wait=false
        RES_LIST=$( oc get $CRD --all-namespaces -o=jsonpath='{range .items[]}{.metadata.namespace}:{.metadata.name}{"\n"}{end}')
        sleep 1
        if [ -n "$RES_LIST" ]
        then    
            while IFS= read -r res; do
                namespace=$(echo "$res" | cut -d ':' -f 1)
                res_name=$(echo "$res" | cut -d ':' -f 2)
                echo "patching resource $res_name in namespace $namespace"
                oc patch $CRD $res_name -n $namespace --type merge -p '{"metadata":{"finalizers": []}}'
            done <<< "$RES_LIST"
        fi
    done
    
    oc delete crd callhomes.scale.spectrum.ibm.com
    oc delete crd clusters.scale.spectrum.ibm.com
    oc delete crd compressionjobs.scale.spectrum.ibm.com
    oc delete crd csiscaleoperators.csi.ibm.com
    oc delete crd daemons.scale.spectrum.ibm.com
    oc delete crd encryptionconfigs.scale.spectrum.ibm.com
    oc delete crd filesystems.scale.spectrum.ibm.com
    oc delete crd grafanabridges.scale.spectrum.ibm.com
    oc delete crd guis.scale.spectrum.ibm.com
    oc delete crd ibmsppcs.sppc.ibm.com
    oc delete crd ibmspps.ocp.spp.ibm.com
    oc delete crd localdisks.scale.spectrum.ibm.com
    oc delete crd pmcollectors.scale.spectrum.ibm.com
    oc delete crd recoverygroups.scale.spectrum.ibm.com
    oc delete crd remoteclusters.scale.spectrum.ibm.com
    oc delete crd cloudcsidisks.scale.spectrum.ibm.com
    oc delete crd diskjobs.scale.spectrum.ibm.com
    oc delete crd dnss.scale.spectrum.ibm.com
    oc delete crd dnsconfigs.scale.spectrum.ibm.com
    oc delete crd jobs.scale.spectrum.ibm.com
    oc delete crd restripefsjobs.scale.spectrum.ibm.com
    oc delete crd stretchclusters.scale.spectrum.ibm.com
    oc delete crd stretchclusterinitnodes.scale.spectrum.ibm.com
    oc delete crd stretchclustertiebreakers.scale.spectrum.ibm.com
    oc delete crd upgradeapprovals.scale.spectrum.ibm.com
    
    log "Scaling application operator back up"
    if oc get deployment isf-application-operator-controller-manager -n "$ISF_NS" > /dev/null 2>&1; then
        oc scale deployment isf-application-operator-controller-manager --replicas=1 -n "$ISF_NS"
    fi
    
    oc delete OperatorGroup isf-fusionbase -n $FUSION_NS
    oc get CatalogSource -n openshift-marketplace -l app=ibm-fusion-hcp -o name | xargs -n1 oc delete -n openshift-marketplace
    oc delete ns baas 
    oc delete ns ibm-spectrum-protect-plus-ns
    oc delete ns ibm-spectrum-scale-csi
    oc delete ns ibm-spectrum-scale-operator
    oc delete ns ibm-spectrum-scale-dns
    oc delete ns ibm-spectrum-scale
    
    oc delete subscription ibm-usage-metering-operator -n ums-fusion
    
    oc delete csv -n ums-fusion -l operators.coreos.com/ibm-usage-metering-operator.ums-fusion
    
    oc delete operatorgroup ums-fusion-og -n ums-fusion
    
    oc delete catalogsource ibm-usage-metering-catalog-source -n openshift-marketplace
    
    oc delete ibmusagemetering ibm-usage-metering-fusion -n $FUSION_NS
    
    oc delete ns ums-fusion
    
    oc delete clusterrolebinding isf-sds-serviceability-rolebinding
    oc delete clusterrolebinding isf-serviceability-operator-manager-rolebinding
    oc delete clusterrolebinding isf-sds-backuprestore-rolebinding
    oc delete clusterrolebinding isf-bkprstr-operator-manager-rolebinding
    oc delete clusterrolebinding fusionmanager-addon
    oc delete clusterrolebinding fusion-support-rolebinding
    
    oc delete role fusionmanager-addon
    
    oc delete ns $FUSION_NS
    
    exit 0