diff --git a/src/app/utilities/delete/DeleteComponent.html b/src/app/utilities/delete/DeleteComponent.html
index c7a6c62..7c90b6e 100644
--- a/src/app/utilities/delete/DeleteComponent.html
+++ b/src/app/utilities/delete/DeleteComponent.html
@@ -28,9 +28,14 @@
     <i class="fas fa-times-circle text-danger"></i>
   </button>
 </div>
-<div class="modal-body">
-  <span>{{'DELETECONFIRMPOPUPMESSAGE' | translate}} <b>{{ this.title }}</b> ?</span>
+<div class="modal-body" *ngIf="createdbyosm === 'false'; else Deletemessage">
+  <span>{{'DEREGISTERCONFIRMPOPUPMESSAGE' | translate}} <b>{{ this.title }}</b> ?</span>
 </div>
+<ng-template #Deletemessage>
+  <div class="modal-body">
+    <span>{{'DELETECONFIRMPOPUPMESSAGE' | translate}} <b>{{ this.title }}</b> ?</span>
+  </div>
+</ng-template>
 <div class="modal-footer">
   <button (click)="activeModal.close()" class="btn btn-danger">{{'CANCEL' | translate}}</button>
   <button *ngIf="!isPage; else multiDelete" (click)="deleteData();" class="btn btn-primary">{{'OK' | translate}}</button>
diff --git a/src/app/utilities/delete/DeleteComponent.ts b/src/app/utilities/delete/DeleteComponent.ts
index f65712d..a54b67e 100644
--- a/src/app/utilities/delete/DeleteComponent.ts
+++ b/src/app/utilities/delete/DeleteComponent.ts
@@ -132,7 +132,11 @@
       if (sessionStorage.getItem('clusterType') === 'Registered') {
         this.isRegisterPage = true;
       }
-      this.createdbyosm = data.createdbyosm;
+      if (data.createdbyosm === 'NO' || data.createdbyosm === 'false') {
+        this.createdbyosm = 'false';
+      } else {
+        this.createdbyosm = 'true';
+      }
       this.bootstrap = data.bootstrap;
       this.key = data.key;
       if (!isNullOrUndefined(this.params)) {
@@ -170,6 +174,11 @@
     } else if (data.productName !== undefined) {
       this.title = data.productName;
     }
+    if (data.createdbyosm === 'NO' || data.createdbyosm === 'false') {
+      this.createdbyosm = 'false';
+    } else {
+      this.createdbyosm = 'true';
+    }
   }
   /** Generate Delete url from data @public */
   // eslint-disable-next-line complexity
@@ -184,6 +193,10 @@
       } else if (this.params.page === 'instantiateNS') {
         this.deleteURL = environment.NSINSTANCESTERMINATE_URL;
         this.notifyMessage = 'DELETEDSUCCESSFULLY';
+      } else if (this.params.page === 'card-node') {
+        this.title = this.params.name;
+      } else if (this.params.page === 'card-ksu') {
+        this.title = this.params.name;
       }
     }
     if (data.page === 'ns-package') {
@@ -249,6 +262,8 @@
     } else if (data.page === 'k8-cluster') {
       this.forceDelete = this.params.forceDeleteType;
       this.page = data.page;
+    } else if (data.page === 'k8s-node') {
+      this.deleteURL = environment.K8SCREATECLUSTER_URL + '/' + data.cluster_id + '/node';
     }
   }
   /** Generate Data function @public */
@@ -265,23 +280,26 @@
         }
       }
       deletingURl = this.deleteURL + '/' + this.id + '?FORCE=true';
-      this.notifyMessage = 'DELETEDSUCCESSFULLY';
+      this.notifyMessage =  'DELETELOADMESSAGE';
     } else if (this.page === 'k8-cluster') {
       if (this.createdbyosm === 'true') {
         this.deleteURL = environment.K8SCREATECLUSTER_URL;
         deletingURl = this.deleteURL + '/' + this.id;
       } else {
-        if (this.bootstrap === false && this.key === true) {
+        if (this.key === false) {
+          this.deleteURL = environment.K8SCREATECLUSTER_URL;
+          deletingURl = this.deleteURL + '/' + this.id + '/deregister';
+        } else if (this.key === true) {
           this.deleteURL = environment.K8SCLUSTER_URL;
           deletingURl = this.deleteURL + '/' + this.id;
-        } else if (this.bootstrap === false && this.key === false) {
-          this.deleteURL = environment.K8SCREATECLUSTER_URL;
-          deletingURl = this.deleteURL + '/' + this.id + '/deregister';
         }
-        else if (this.bootstrap === true) {
-          this.deleteURL = environment.K8SCREATECLUSTER_URL;
-          deletingURl = this.deleteURL + '/' + this.id + '/deregister';
-        }
+      }
+    } else if (!isNullOrUndefined(this.params)) {
+      if (this.params.page === 'card-node') {
+        this.createdbyosm = 'true';
+        deletingURl = environment.K8SCREATECLUSTER_URL + '/' + this.params.cluster_id + '/nodegroup' + '/' + this.params.id;
+      } else if (this.params.page === 'card-ksu') {
+        deletingURl = environment.KSU_URL + '/' + this.params.id;
       }
     } else {
       deletingURl = this.deleteURL + '/' + this.id;
