]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: update onboarding screen as per design
authorAashish Sharma <aashish@li-e9bf2ecc-2ad7-11b2-a85c-baf05c5182ab.ibm.com>
Wed, 4 Mar 2026 09:58:17 +0000 (15:28 +0530)
committerAfreen Misbah <afreen@ibm.com>
Wed, 18 Mar 2026 09:38:08 +0000 (15:08 +0530)
Fixes: https://tracker.ceph.com/issues/75317
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
(cherry picked from commit cc8e8f02ce2b2198e5b26f86810d3a70adfd29f1)

 Conflicts:
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/cluster.module.ts
src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation.module.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/enum/icons.enum.ts

src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/cluster.module.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/create-cluster/create-cluster.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/create-cluster/create-cluster.component.scss
src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation.module.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/enum/icons.enum.ts

index 5befc0fc2bcc3298280c8335ca7ec9ed5b2cc011..89387835c0064ba943f81314cd1c2bc3b35fa1a5 100644 (file)
@@ -20,7 +20,11 @@ import {
   SelectModule,
   LayoutModule,
   NumberModule,
-  FileUploaderModule
+  FileUploaderModule,
+  TabsModule,
+  RadioModule,
+  TilesModule,
+  LayerModule
 } from 'carbon-components-angular';
 
 import {
@@ -124,7 +128,10 @@ import { TextLabelListComponent } from '~/app/shared/components/text-label-list/
     SelectModule,
     LayoutModule,
     NumberModule,
-    FileUploaderModule
+    FileUploaderModule,
+    RadioModule,
+    TilesModule,
+    LayerModule
   ],
   declarations: [
     MonitorComponent,
index 2d63b8ae1dca18dfbd41bc4e251c1e53b831aa10..f9ae6adb4a57335d0610c8b881c8ffa29d665e10 100644 (file)
@@ -3,7 +3,7 @@
   <div cdsRow
        class="cds-ml-5 cds-mt-5">
     <div cdsCol
-         [columnNumbers]="{'lg': 8, 'md': 8, 'sm': 4}">
+         [columnNumbers]="{'lg': 13, 'md': 8, 'sm': 8}">
       <div class="mb-5">
         <!-- htmllint img-req-src="false" -->
         <img [src]="projectConstants.cephLogo"
@@ -17,9 +17,9 @@
         </span>
       </div>
 
-      <div class="mb-5">
+      <div class="mb-2">
         <span class="cds--type-fluid-heading-04"
-              i18n>Finish cluster setup!
+              i18n>Your Ceph cluster is initialized and running.
         </span>
       </div>
 
           <cd-icon type="success"
                    [size]="icons.size20">
           </cd-icon>
-          You've successfully initialised your ceph cluster
+          The cluster control plane is ready.
+        </span>
+      </div>
+
+      <div class="mb-2">
+        <span class="cds--type-fluid-heading-03"
+              i18n>
+          <cd-icon type="ibmCloudBareMetalServer"
+                   [size]="icons.size20">
+          </cd-icon>
+          Add storage to begin using your cluster.
         </span>
       </div>
 
-      <div class="mb-4 cds--type-body-compact-01"
-           i18n>A few setup steps are still pending before the cluster can store data and serve workloads. You can complete these now or skip and configure services later</div>
+      <div class="mb-2">
+        <span class="cds--type-body-01"
+              i18n>Set up storage for your cluster to run workloads and store data. You can configure storage and data services now, or skip and configure them later.</span>
+      </div>
 
-      <div class="mb-5">
-        <div class="mb-3">
-          <cd-icon type="checkmarkOutline"
-                   class="cds-info-color"
+      <cds-tile class="storage-requirements-header"
+                [cdsLayer]="1">
+        <div cdsStack="horizontal"
+             gap="3">
+          <span class="cds--type-heading-compact-02"
+                i18n>
+            Storage requirements
+          </span>
+          <cd-icon type="infoCircle"
                    [size]="icons.size20">
           </cd-icon>
-          <span class="cds--type-body-compact-01 cds-ml-3"
-                i18n>Add hosts</span>
         </div>
-        <div class="mb-3">
-          <cd-icon type="circleDash"
-                   class="cds-info-color"
+      </cds-tile>
+
+      <cds-tile class="storage-requirements-body mb-3"
+                [cdsLayer]="2">
+        <div cdsStack="horizontal"
+             gap="4">
+          <cd-icon type="ibmCloudDedicatedHost"
                    [size]="icons.size20">
           </cd-icon>
-          <span class="cds--type-body-compact-01 cds-ml-3"
-                i18n>Add storage</span>
+          <div cdsStack="vertical"
+               gap="1">
+            <span class="cds--type-heading-compact-01"
+                  i18n>
+              Hosts
+            </span>
+            <span class="cds--type-body-compact-01 text-secondary"
+                  i18n>
+              Minimum 3 hosts required
+            </span>
+          </div>
         </div>
-        <div>
-          <cd-icon type="circleDash"
-                   class="cds-info-color"
+
+        <hr/>
+
+        <div cdsStack="horizontal" gap="4">
+          <cd-icon type="vmdkDisk"
                    [size]="icons.size20">
           </cd-icon>
-          <span class="cds--type-body-compact-01 cds-ml-3"
-                i18n>Create data services (optional)</span>
+
+          <div cdsStack="vertical" gap="1">
+            <span class="cds--type-heading-compact-01"
+                  i18n>
+              Disks
+            </span>
+
+            <span class="cds--type-body-compact-01 text-secondary"
+                  i18n>
+              At least 1 disk per host
+            </span>
+          </div>
+        </div>
+
+        <hr/>
+
+        <div cdsStack="horizontal"
+             gap="4">
+          <cd-icon type="clusterIcon"
+                  [size]="icons.size20">
+          </cd-icon>
+
+          <div cdsStack="vertical" gap="1">
+            <span class="cds--type-heading-compact-01"
+                  i18n>
+              Data services (optional)
+            </span>
+
+            <span class="cds--type-body-compact-01 text-secondary"
+                  i18n>
+              Configure Object, Block, or File services
+            </span>
+          </div>
         </div>
+      </cds-tile>
+
+      <div class="mb-3">
+        <cd-alert-panel type="info"
+                        [showTitle]="false">
+          <span class="cds--type-body-compact-01">
+              The cluster cannot store data until storage is added. If storage is already configured, continue to the cluster overview.
+          </span>
+        </cd-alert-panel>
       </div>
 
       <div class="mb-4">
         <button cdsButton="tertiary"
                 (click)="skipClusterCreation()"
                 i18n>
-          Skip to cluster overview
+          View cluster overview
           <svg [cdsIcon]="icons.right"
                [size]="icons.size20"
                class="cds--btn__icon">
           </svg>
         </button>
       </div>
-
-      <div class="cds--type-label-01"
-           i18n>
-        <cd-icon type="infoCircle"
-                 [size]="icons.size20">
-        </cd-icon>
-        Skipping setup does not affect the cluster. The cluster will remain available, but it cannot store data until storage is added
-      </div>
     </div>
   </div>
  }
index 313f3193bfbabe24f1b02b38c75fbf866f70dc45..45e0c3bda734c6ab0f504dbcaef4ad34a02ca37f 100644 (file)
@@ -20,3 +20,12 @@ cd-osd-form {
     margin-left: -1.5rem;
   }
 }
+
+.storage-requirements-body {
+  border: 1px solid var(--cds-border-subtle);
+}
+
+.storage-requirements-header {
+  border: 1px solid var(--cds-border-subtle);
+  border-bottom: 0;
+}
index a2ec6cf0fa290bfcf58ce6a093a577c43794825e..bdaae208f3f7517e02d088677575fbd151596683 100644 (file)
@@ -53,6 +53,10 @@ import NotificationFilledIcon from '@carbon/icons/es/notification--filled/16';
 import CircleDashIcon20 from '@carbon/icons/es/circle-dash/20';
 import CheckmarkOutlineIcon20 from '@carbon/icons/es/checkmark--outline/20';
 import ArrowRightIcon from '@carbon/icons/es/arrow--right/20';
+import IbmCloudBareMetalServerIcon from '@carbon/icons/es/ibm-cloud--bare-metal-server/20';
+import IbmCloudDedicatedHostIcon from '@carbon/icons/es/ibm-cloud--dedicated-host/20';
+import VmdkDiskIcon from '@carbon/icons/es/vmdk-disk/20';
+
 import CloseIcon from '@carbon/icons/es/close/16';
 
 
@@ -104,6 +108,8 @@ export class NavigationModule {
       FileIcon,
       ObservabilityIcon,
       AdminIcon,
+      IbmCloudBareMetalServerIcon,
+      IbmCloudDedicatedHostIcon,
       LockedIcon,
       LogoutIcon,
       CheckmarkFilledIcon,
@@ -114,7 +120,8 @@ export class NavigationModule {
       CloseIcon,
       CircleDashIcon20,
       CheckmarkOutlineIcon20,
-      ArrowRightIcon
+      ArrowRightIcon,
+      VmdkDiskIcon
     ]);
   }
 }
index c9fc47b5525c24a74c15462a97240e5ea6c4803d..4a11f330d6af919b78ac138caaa0395416ffb186 100644 (file)
@@ -90,6 +90,10 @@ export enum Icons {
   connect = 'connect',
   checkmarkOutline = 'checkmark--outline',
   circleDash = 'circle-dash',
+  datastore = 'datastore',
+  ibmCloudBareMetalServer = 'ibm-cloud--bare-metal-server',
+  ibmCloudDedicatedHost = 'ibm-cloud--dedicated-host',
+  clusterIcon = 'web-services--cluster',
   /* Icons for special effect */
   large = 'fa fa-lg', // icon becomes 33% larger
   large2x = 'fa fa-2x', // icon becomes 50% larger