diff --git a/ui/apps/platform/src/ConsolePlugin/WorkloadSecurityTab/Index.tsx b/ui/apps/platform/src/ConsolePlugin/WorkloadSecurityTab/Index.tsx new file mode 100644 index 0000000000000..86aa217670359 --- /dev/null +++ b/ui/apps/platform/src/ConsolePlugin/WorkloadSecurityTab/Index.tsx @@ -0,0 +1,6 @@ +import React from 'react'; +import { PageSection } from '@patternfly/react-core'; + +export function Index() { + return Security; +} diff --git a/ui/apps/platform/webpack.ocp-plugin.config.js b/ui/apps/platform/webpack.ocp-plugin.config.js index 745d592444256..627d9cb7aec4e 100644 --- a/ui/apps/platform/webpack.ocp-plugin.config.js +++ b/ui/apps/platform/webpack.ocp-plugin.config.js @@ -3,6 +3,8 @@ const { DefinePlugin } = require('webpack'); const { ConsoleRemotePlugin } = require('@openshift-console/dynamic-plugin-sdk-webpack'); const CopyWebpackPlugin = require('copy-webpack-plugin'); +const acsRootBaseUrl = '/acs'; + const isProd = process.env.NODE_ENV === 'production'; const config = { @@ -98,30 +100,59 @@ const config = { exposedModules: { SecurityVulnerabilitiesPage: './ConsolePlugin/SecurityVulnerabilitiesPage/Index', + WorkloadSecurityTab: './ConsolePlugin/WorkloadSecurityTab/Index', }, dependencies: { '@console/pluginAPI': '>=4.19.0', }, }, extensions: [ + // Security Vulnerabilities Page { type: 'console.page/route', properties: { exact: true, - path: '/security-TODO', + path: `${acsRootBaseUrl}/security/vulnerabilities`, component: { $codeRef: 'SecurityVulnerabilitiesPage.Index' }, }, }, + { + type: 'console.navigation/section', + properties: { + id: 'acs-security', + name: 'Security', + startsWith: `${acsRootBaseUrl}/security`, + insertBefore: ['compute', 'usermanagement', 'administration'], + }, + }, { type: 'console.navigation/href', properties: { id: 'security-vulnerabilities', - name: '%plugin__console-plugin-template~Plugin Security Vulnerabilities%', - href: '/security-TODO', + name: 'Vulnerabilities', + section: 'acs-security', + href: `${acsRootBaseUrl}/security/vulnerabilities`, perspective: 'admin', - section: 'home', }, }, + // Workload Detail Page Security Tab + ...['Deployment', 'ReplicaSet', 'StatefulSet', 'DaemonSet', 'Job', 'CronJob'].map( + (kind) => ({ + type: 'console.tab/horizontalNav', + properties: { + model: { + group: 'apps', + kind, + version: 'v1', + }, + page: { + name: 'Security', + href: 'security', + }, + component: { $codeRef: 'WorkloadSecurityTab.Index' }, + }, + }) + ), ], }), new CopyWebpackPlugin({