diff --git a/src/app/k8s/k8s-profile/k8s-app-profile-details/K8sAppProfileComponent.html b/src/app/k8s/k8s-profile/k8s-app-profile-details/K8sAppProfileComponent.html
index 34fb3fc..fa2ab9f 100644
--- a/src/app/k8s/k8s-profile/k8s-app-profile-details/K8sAppProfileComponent.html
+++ b/src/app/k8s/k8s-profile/k8s-app-profile-details/K8sAppProfileComponent.html
@@ -28,10 +28,9 @@
   <div class="col-auto me-auto">
     <nav class="custom-items-config">
       <span><i class="fas fa-clock text-success"></i>{{operationalStateFirstStep}}</span>
-      <span><i class="fas fa-spinner text-warning"></i>{{operationalStateSecondStep}}</span>
-      <span><i class="fas fa-spinner text-danger"></i>{{operationalStateThirdStep}}</span>
-      <span><i class="fas fa-times-circle text-danger"></i>{{operationalStateFourthStep}}</span>
-      <span><i class="fas fa-times-circle text-warning"></i>{{operationalStateFifthStep}}</span>
+      <span><i class="fas fa-times-circle text-danger"></i>{{operationalStateSecondStep}}</span>
+      <span><i class="fas fa-spinner text-warning"></i>{{operationalStateThirdStep}}</span>
+      <span><i class="fas fa-ban text-danger"></i>{{operationalStateFourthStep}}</span>
     </nav>
   </div>
   <page-per-row class="me-2" (pagePerRow)="onChange($event)"></page-per-row>
diff --git a/src/app/k8s/k8s-profile/k8s-app-profile-details/K8sAppProfileComponent.ts b/src/app/k8s/k8s-profile/k8s-app-profile-details/K8sAppProfileComponent.ts
index 06cd6eb..fc48918 100644
--- a/src/app/k8s/k8s-profile/k8s-app-profile-details/K8sAppProfileComponent.ts
+++ b/src/app/k8s/k8s-profile/k8s-app-profile-details/K8sAppProfileComponent.ts
@@ -69,9 +69,6 @@
     /** operational State failed deletion data @public */
     public operationalStateFourthStep: string = CONFIGCONSTANT.k8OperationalStateFourthStep;
 
-    /** operational State failed creation data @public */
-    public operationalStateFifthStep: string = CONFIGCONSTANT.k8OperationalStateFifthStep;
-
     /** Check the loading results @public */
     public isLoadingResults: boolean = true;
 
@@ -121,7 +118,7 @@
             name: { title: this.translateService.instant('NAME'), width: '20%', sortDirection: 'asc' },
             identifier: { title: this.translateService.instant('IDENTIFIER'), width: '15%' },
             state: {
-                title: this.translateService.instant('GITSTATE'), width: '15%', type: 'html',
+                title: this.translateService.instant('STATE'), width: '15%', type: 'html',
                 filter: {
                     type: 'list',
                     config: {
@@ -130,34 +127,27 @@
                             { value: this.operationalStateFirstStep, title: this.operationalStateFirstStep },
                             { value: this.operationalStateSecondStep, title: this.operationalStateSecondStep },
                             { value: this.operationalStateThirdStep, title: this.operationalStateThirdStep },
-                            { value: this.operationalStateThirdStep, title: this.operationalStateFourthStep },
-                            { value: this.operationalStateThirdStep, title: this.operationalStateFifthStep }
+                            { value: this.operationalStateThirdStep, title: this.operationalStateFourthStep }
                         ]
                     }
                 },
                 valuePrepareFunction: (cell: INFRACONFIGPAYLOAD, row: INFRACONFIGPAYLOAD): string => {
                     if (row.state === this.operationalStateFirstStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-clock text-success"></i>
-                                 </span>`;
+                                   <i class="fas fa-clock text-success"></i>
+                                   </span>`;
                     } else if (row.state === this.operationalStateSecondStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-spinner text-warning"></i>
-                                 </span>`;
-                    } else if (row.state === this.operationalStateThirdStep) {
-                        return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-spinner text-danger"></i>
-                                 </span>`;
+                                   <i class="fas fa-times-circle text-danger"></i>
+                                   </span>`;
                     } else if (row.state === this.operationalStateFourthStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-times-circle text-danger"></i>
-                                 </span>`;
-                    } else if (row.state === this.operationalStateFifthStep) {
-                        return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-times-circle text-warning"></i>
-                                 </span>`;
+                                   <i class="fas fa-ban text-danger"></i>
+                                   </span>`;
                     } else {
-                        return `<span>${row.state}</span>`;
+                        return `<span class="icon-label" title="${row.state}">
+                                   <i class="fas fa-spinner text-warning"></i>
+                                   </span>`;
                     }
                 }
             },
@@ -223,7 +213,7 @@
             modified: this.sharedService.convertEpochTime(Number(profileData._admin.modified)),
             description: profileData.description,
             pageType: 'app-profile',
-            state: profileData.state
+            state: profileData.resourceState
         };
     }
 
diff --git a/src/app/k8s/k8s-profile/k8s-infra-config-details/K8sInfraConfigProfileComponent.html b/src/app/k8s/k8s-profile/k8s-infra-config-details/K8sInfraConfigProfileComponent.html
index 81761d5..d96790d 100644
--- a/src/app/k8s/k8s-profile/k8s-infra-config-details/K8sInfraConfigProfileComponent.html
+++ b/src/app/k8s/k8s-profile/k8s-infra-config-details/K8sInfraConfigProfileComponent.html
@@ -28,10 +28,9 @@
   <div class="col-auto me-auto">
     <nav class="custom-items-config">
       <span><i class="fas fa-clock text-success"></i>{{operationalStateFirstStep}}</span>
-      <span><i class="fas fa-spinner text-warning"></i>{{operationalStateSecondStep}}</span>
-      <span><i class="fas fa-spinner text-danger"></i>{{operationalStateThirdStep}}</span>
-      <span><i class="fas fa-times-circle text-danger"></i>{{operationalStateFourthStep}}</span>
-      <span><i class="fas fa-times-circle text-warning"></i>{{operationalStateFifthStep}}</span>
+      <span><i class="fas fa-times-circle text-danger"></i>{{operationalStateSecondStep}}</span>
+      <span><i class="fas fa-spinner text-warning"></i>{{operationalStateThirdStep}}</span>
+      <span><i class="fas fa-ban text-danger"></i>{{operationalStateFourthStep}}</span>
     </nav>
   </div>
   <page-per-row class="me-2" (pagePerRow)="onChange($event)"></page-per-row>
diff --git a/src/app/k8s/k8s-profile/k8s-infra-config-details/K8sInfraConfigProfileComponent.ts b/src/app/k8s/k8s-profile/k8s-infra-config-details/K8sInfraConfigProfileComponent.ts
index 2c76dbf..80ae4f6 100644
--- a/src/app/k8s/k8s-profile/k8s-infra-config-details/K8sInfraConfigProfileComponent.ts
+++ b/src/app/k8s/k8s-profile/k8s-infra-config-details/K8sInfraConfigProfileComponent.ts
@@ -69,9 +69,6 @@
     /** operational State failed deletion data @public */
     public operationalStateFourthStep: string = CONFIGCONSTANT.k8OperationalStateFourthStep;
 
-    /** operational State failed creation data @public */
-    public operationalStateFifthStep: string = CONFIGCONSTANT.k8OperationalStateFifthStep;
-
     /** Check the loading results @public */
     public isLoadingResults: boolean = true;
 
@@ -121,7 +118,7 @@
             name: { title: this.translateService.instant('NAME'), width: '20%', sortDirection: 'asc' },
             identifier: { title: this.translateService.instant('IDENTIFIER'), width: '15%' },
             state: {
-                title: this.translateService.instant('GITSTATE'), width: '15%', type: 'html',
+                title: this.translateService.instant('STATE'), width: '15%', type: 'html',
                 filter: {
                     type: 'list',
                     config: {
@@ -130,34 +127,27 @@
                             { value: this.operationalStateFirstStep, title: this.operationalStateFirstStep },
                             { value: this.operationalStateSecondStep, title: this.operationalStateSecondStep },
                             { value: this.operationalStateThirdStep, title: this.operationalStateThirdStep },
-                            { value: this.operationalStateThirdStep, title: this.operationalStateFourthStep },
-                            { value: this.operationalStateThirdStep, title: this.operationalStateFifthStep }
+                            { value: this.operationalStateThirdStep, title: this.operationalStateFourthStep }
                         ]
                     }
                 },
                 valuePrepareFunction: (cell: INFRACONFIGPAYLOAD, row: INFRACONFIGPAYLOAD): string => {
                     if (row.state === this.operationalStateFirstStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-clock text-success"></i>
-                                 </span>`;
+                                   <i class="fas fa-clock text-success"></i>
+                                   </span>`;
                     } else if (row.state === this.operationalStateSecondStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-spinner text-warning"></i>
-                                 </span>`;
-                    } else if (row.state === this.operationalStateThirdStep) {
-                        return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-spinner text-danger"></i>
-                                 </span>`;
+                                   <i class="fas fa-times-circle text-danger"></i>
+                                   </span>`;
                     } else if (row.state === this.operationalStateFourthStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-times-circle text-danger"></i>
-                                 </span>`;
-                    } else if (row.state === this.operationalStateFifthStep) {
-                        return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-times-circle text-warning"></i>
-                                 </span>`;
+                                   <i class="fas fa-ban text-danger"></i>
+                                   </span>`;
                     } else {
-                        return `<span>${row.state}</span>`;
+                        return `<span class="icon-label" title="${row.state}">
+                                   <i class="fas fa-spinner text-warning"></i>
+                                   </span>`;
                     }
                 }
             },
@@ -223,7 +213,7 @@
             modified: this.sharedService.convertEpochTime(Number(profileData._admin.modified)),
             description: profileData.description,
             pageType: 'infra-config',
-            state: profileData.state
+            state: profileData.resourceState
         };
     }
 
diff --git a/src/app/k8s/k8s-profile/k8s-infra-controller-details/K8sInfraControllerProfileComponent.html b/src/app/k8s/k8s-profile/k8s-infra-controller-details/K8sInfraControllerProfileComponent.html
index 592a0cb..008c44f 100644
--- a/src/app/k8s/k8s-profile/k8s-infra-controller-details/K8sInfraControllerProfileComponent.html
+++ b/src/app/k8s/k8s-profile/k8s-infra-controller-details/K8sInfraControllerProfileComponent.html
@@ -28,10 +28,9 @@
   <div class="col-auto me-auto">
     <nav class="custom-items-config">
       <span><i class="fas fa-clock text-success"></i>{{operationalStateFirstStep}}</span>
-      <span><i class="fas fa-spinner text-warning"></i>{{operationalStateSecondStep}}</span>
-      <span><i class="fas fa-spinner text-danger"></i>{{operationalStateThirdStep}}</span>
-      <span><i class="fas fa-times-circle text-danger"></i>{{operationalStateFourthStep}}</span>
-      <span><i class="fas fa-times-circle text-warning"></i>{{operationalStateFifthStep}}</span>
+      <span><i class="fas fa-times-circle text-danger"></i>{{operationalStateSecondStep}}</span>
+      <span><i class="fas fa-spinner text-warning"></i>{{operationalStateThirdStep}}</span>
+      <span><i class="fas fa-ban text-danger"></i>{{operationalStateFourthStep}}</span>
     </nav>
   </div>
   <page-per-row class="me-2" (pagePerRow)="onChange($event)"></page-per-row>
diff --git a/src/app/k8s/k8s-profile/k8s-infra-controller-details/K8sInfraControllerProfileComponent.ts b/src/app/k8s/k8s-profile/k8s-infra-controller-details/K8sInfraControllerProfileComponent.ts
index f5c93ae..ecb8165 100644
--- a/src/app/k8s/k8s-profile/k8s-infra-controller-details/K8sInfraControllerProfileComponent.ts
+++ b/src/app/k8s/k8s-profile/k8s-infra-controller-details/K8sInfraControllerProfileComponent.ts
@@ -69,9 +69,6 @@
     /** operational State failed deletion data @public */
     public operationalStateFourthStep: string = CONFIGCONSTANT.k8OperationalStateFourthStep;
 
-    /** operational State failed creation data @public */
-    public operationalStateFifthStep: string = CONFIGCONSTANT.k8OperationalStateFifthStep;
-
     /** Check the loading results @public */
     public isLoadingResults: boolean = true;
 
@@ -121,7 +118,7 @@
             name: { title: this.translateService.instant('NAME'), width: '20%', sortDirection: 'asc' },
             identifier: { title: this.translateService.instant('IDENTIFIER'), width: '15%' },
             state: {
-                title: this.translateService.instant('GITSTATE'), width: '15%', type: 'html',
+                title: this.translateService.instant('STATE'), width: '15%', type: 'html',
                 filter: {
                     type: 'list',
                     config: {
@@ -130,34 +127,27 @@
                             { value: this.operationalStateFirstStep, title: this.operationalStateFirstStep },
                             { value: this.operationalStateSecondStep, title: this.operationalStateSecondStep },
                             { value: this.operationalStateThirdStep, title: this.operationalStateThirdStep },
-                            { value: this.operationalStateThirdStep, title: this.operationalStateFourthStep },
-                            { value: this.operationalStateThirdStep, title: this.operationalStateFifthStep }
+                            { value: this.operationalStateThirdStep, title: this.operationalStateFourthStep }
                         ]
                     }
                 },
                 valuePrepareFunction: (cell: INFRACONFIGPAYLOAD, row: INFRACONFIGPAYLOAD): string => {
                     if (row.state === this.operationalStateFirstStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-clock text-success"></i>
-                                 </span>`;
+                                   <i class="fas fa-clock text-success"></i>
+                                   </span>`;
                     } else if (row.state === this.operationalStateSecondStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-spinner text-warning"></i>
-                                 </span>`;
-                    } else if (row.state === this.operationalStateThirdStep) {
-                        return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-spinner text-danger"></i>
-                                 </span>`;
+                                   <i class="fas fa-times-circle text-danger"></i>
+                                   </span>`;
                     } else if (row.state === this.operationalStateFourthStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-times-circle text-danger"></i>
-                                 </span>`;
-                    } else if (row.state === this.operationalStateFifthStep) {
-                        return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-times-circle text-warning"></i>
-                                 </span>`;
+                                   <i class="fas fa-ban text-danger"></i>
+                                   </span>`;
                     } else {
-                        return `<span>${row.state}</span>`;
+                        return `<span class="icon-label" title="${row.state}">
+                                   <i class="fas fa-spinner text-warning"></i>
+                                   </span>`;
                     }
                 }
             },
@@ -222,7 +212,7 @@
             modified: this.sharedService.convertEpochTime(Number(profileData._admin.modified)),
             description: profileData.description,
             pageType: 'infra-controller',
-            state: profileData.state
+            state: profileData.resourceState
         };
     }
 
diff --git a/src/app/k8s/k8s-profile/k8s-resource-profile/K8sResourceProfileComponent.html b/src/app/k8s/k8s-profile/k8s-resource-profile/K8sResourceProfileComponent.html
index 2e76c13..1290c56 100644
--- a/src/app/k8s/k8s-profile/k8s-resource-profile/K8sResourceProfileComponent.html
+++ b/src/app/k8s/k8s-profile/k8s-resource-profile/K8sResourceProfileComponent.html
@@ -28,10 +28,9 @@
   <div class="col-auto me-auto">
     <nav class="custom-items-config">
       <span><i class="fas fa-clock text-success"></i>{{operationalStateFirstStep}}</span>
-      <span><i class="fas fa-spinner text-warning"></i>{{operationalStateSecondStep}}</span>
-      <span><i class="fas fa-spinner text-danger"></i>{{operationalStateThirdStep}}</span>
-      <span><i class="fas fa-times-circle text-danger"></i>{{operationalStateFourthStep}}</span>
-      <span><i class="fas fa-times-circle text-warning"></i>{{operationalStateFifthStep}}</span>
+      <span><i class="fas fa-times-circle text-danger"></i>{{operationalStateSecondStep}}</span>
+      <span><i class="fas fa-spinner text-warning"></i>{{operationalStateThirdStep}}</span>
+      <span><i class="fas fa-ban text-danger"></i>{{operationalStateFourthStep}}</span>
     </nav>
   </div>
   <page-per-row class="me-2" (pagePerRow)="onChange($event)"></page-per-row>
diff --git a/src/app/k8s/k8s-profile/k8s-resource-profile/K8sResourceProfileComponent.ts b/src/app/k8s/k8s-profile/k8s-resource-profile/K8sResourceProfileComponent.ts
index b1dbf95..aa3d6e4 100644
--- a/src/app/k8s/k8s-profile/k8s-resource-profile/K8sResourceProfileComponent.ts
+++ b/src/app/k8s/k8s-profile/k8s-resource-profile/K8sResourceProfileComponent.ts
@@ -69,9 +69,6 @@
     /** operational State failed deletion data @public */
     public operationalStateFourthStep: string = CONFIGCONSTANT.k8OperationalStateFourthStep;
 
-    /** operational State failed creation data @public */
-    public operationalStateFifthStep: string = CONFIGCONSTANT.k8OperationalStateFifthStep;
-
     /** Check the loading results @public */
     public isLoadingResults: boolean = true;
 
@@ -121,7 +118,7 @@
             name: { title: this.translateService.instant('NAME'), width: '20%', sortDirection: 'asc' },
             identifier: { title: this.translateService.instant('IDENTIFIER'), width: '15%' },
             state: {
-                title: this.translateService.instant('GITSTATE'), width: '15%', type: 'html',
+                title: this.translateService.instant('STATE'), width: '15%', type: 'html',
                 filter: {
                     type: 'list',
                     config: {
@@ -130,34 +127,27 @@
                             { value: this.operationalStateFirstStep, title: this.operationalStateFirstStep },
                             { value: this.operationalStateSecondStep, title: this.operationalStateSecondStep },
                             { value: this.operationalStateThirdStep, title: this.operationalStateThirdStep },
-                            { value: this.operationalStateThirdStep, title: this.operationalStateFourthStep },
-                            { value: this.operationalStateThirdStep, title: this.operationalStateFifthStep }
+                            { value: this.operationalStateThirdStep, title: this.operationalStateFourthStep }
                         ]
                     }
                 },
                 valuePrepareFunction: (cell: INFRACONFIGPAYLOAD, row: INFRACONFIGPAYLOAD): string => {
                     if (row.state === this.operationalStateFirstStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-clock text-success"></i>
-                                 </span>`;
+                                   <i class="fas fa-clock text-success"></i>
+                                   </span>`;
                     } else if (row.state === this.operationalStateSecondStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-spinner text-warning"></i>
-                                 </span>`;
-                    } else if (row.state === this.operationalStateThirdStep) {
-                        return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-spinner text-danger"></i>
-                                 </span>`;
+                                   <i class="fas fa-times-circle text-danger"></i>
+                                   </span>`;
                     } else if (row.state === this.operationalStateFourthStep) {
                         return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-times-circle text-danger"></i>
-                                 </span>`;
-                    } else if (row.state === this.operationalStateFifthStep) {
-                        return `<span class="icon-label" title="${row.state}">
-                                 <i class="fas fa-times-circle text-warning"></i>
-                                 </span>`;
+                                   <i class="fas fa-ban text-danger"></i>
+                                   </span>`;
                     } else {
-                        return `<span>${row.state}</span>`;
+                        return `<span class="icon-label" title="${row.state}">
+                                   <i class="fas fa-spinner text-warning"></i>
+                                   </span>`;
                     }
                 }
             },
@@ -223,7 +213,7 @@
             modified: this.sharedService.convertEpochTime(Number(profileData._admin.modified)),
             description: profileData.description,
             pageType: 'resource-profile',
-            state: profileData.state
+            state: profileData.resourceState
         };
     }
 
