diff --git a/frontend/src/app/AppRoutes.tsx b/frontend/src/app/AppRoutes.tsx index a085876382..412cb0cdcb 100644 --- a/frontend/src/app/AppRoutes.tsx +++ b/frontend/src/app/AppRoutes.tsx @@ -53,6 +53,9 @@ const ClusterSettingsPage = React.lazy(() => import('../pages/clusterSettings/Cl const CustomServingRuntimeRoutes = React.lazy( () => import('../pages/modelServing/customServingRuntimes/CustomServingRuntimeRoutes'), ); +const ModelRegistrySettingsPage = React.lazy( + () => import('../pages/modelRegistrySettings/ModelRegistrySettings'), +); const GroupSettingsPage = React.lazy(() => import('../pages/groupSettings/GroupSettings')); const LearningCenterPage = React.lazy(() => import('../pages/learningCenter/LearningCenter')); const BYONImagesPage = React.lazy(() => import('../pages/BYONImages/BYONImages')); @@ -127,6 +130,7 @@ const AppRoutes: React.FC = () => { } /> } /> } /> + } /> } /> )} diff --git a/frontend/src/concepts/areas/const.ts b/frontend/src/concepts/areas/const.ts index fad0f0fa6d..e386bf0829 100644 --- a/frontend/src/concepts/areas/const.ts +++ b/frontend/src/concepts/areas/const.ts @@ -80,5 +80,6 @@ export const SupportedAreasStateMap: SupportedAreasState = { [SupportedArea.MODEL_REGISTRY]: { featureFlags: ['disableModelRegistry'], requiredComponents: [StackComponent.MODEL_REGISTRY], + requiredCapabilities: [StackCapability.SERVICE_MESH, StackCapability.SERVICE_MESH_AUTHZ], }, }; diff --git a/frontend/src/pages/modelRegistrySettings/ModelRegistrySettings.tsx b/frontend/src/pages/modelRegistrySettings/ModelRegistrySettings.tsx new file mode 100644 index 0000000000..b9d0cdbc9c --- /dev/null +++ b/frontend/src/pages/modelRegistrySettings/ModelRegistrySettings.tsx @@ -0,0 +1,50 @@ +import React from 'react'; +import { useNavigate } from 'react-router-dom'; +import { + Button, + EmptyState, + EmptyStateActions, + EmptyStateBody, + EmptyStateFooter, + EmptyStateHeader, + EmptyStateIcon, + EmptyStateVariant, +} from '@patternfly/react-core'; +import { PlusCircleIcon } from '@patternfly/react-icons'; +import ApplicationsPage from '~/pages/ApplicationsPage'; + +const ModelRegistrySettings: React.FC = () => { + const navigate = useNavigate(); + + return ( + + + } + headingLevel="h5" + /> + + You can create model registries for specific users or projects. + + + + + + + + + ); +}; + +export default ModelRegistrySettings; diff --git a/frontend/src/utilities/NavData.tsx b/frontend/src/utilities/NavData.tsx index 82dbc9f26e..f8926a7072 100644 --- a/frontend/src/utilities/NavData.tsx +++ b/frontend/src/utilities/NavData.tsx @@ -150,6 +150,15 @@ const useCustomRuntimesNav = (): NavDataHref[] => }, ]); +const useModelRegisterySettingsNav = (): NavDataHref[] => + useAreaCheck(SupportedArea.MODEL_REGISTRY, [ + { + id: 'settings-model-registry', + label: 'Model registry settings', + href: '/modelRegistrySettings', + }, + ]); + const useUserManagementNav = (): NavDataHref[] => useAreaCheck(SupportedArea.USER_MANAGEMENT, [ { @@ -174,6 +183,7 @@ const useSettingsNav = (): NavDataGroup[] => { ...useClusterSettingsNav(), ...useAcceleratorProfilesNav(), ...useCustomRuntimesNav(), + ...useModelRegisterySettingsNav(), ...useUserManagementNav(), ];