diff --git a/frontend/packages/operator-lifecycle-manager/console-extensions.json b/frontend/packages/operator-lifecycle-manager/console-extensions.json index f39b7189db..a7090de648 100644 --- a/frontend/packages/operator-lifecycle-manager/console-extensions.json +++ b/frontend/packages/operator-lifecycle-manager/console-extensions.json @@ -1,4 +1,163 @@ [ + { + "type": "console.flag/model", + "properties": { + "model": { + "group": "operators.coreos.com", + "version": "v1alpha1", + "kind": "ClusterServiceVersion" + }, + "flag": "OPERATOR_LIFECYCLE_MANAGER" + } + }, + { + "type": "console.page/route", + "properties": { + "exact": true, + "path": [ + "/k8s/ns/:ns/operators.coreos.com~v1alpha1~ClusterServiceVersion/:csvName/:plural/~new", + "/k8s/ns/:ns/clusterserviceversions/:csvName/:plural/~new" + ], + "component": { "$codeRef": "createOperand.default" } + } + }, + { + "type": "console.page/route", + "properties": { + "exact": true, + "path": [ + "/k8s/ns/:ns/operators.coreos.com~v1alpha1~ClusterServiceVersion/:appName/:plural/:name", + "/k8s/ns/:ns/clusterserviceversions/:appName/:plural/:name" + ], + "component": { "$codeRef": "operand.OperandDetailsPage" } + } + }, + { + "type": "console.page/resource/list", + "properties": { + "model": { + "group": "operators.coreos.com", + "version": "v1alpha1", + "kind": "Subscription" + }, + "component": { "$codeRef": "subscriptions.SubscriptionsPage" } + } + }, + { + "type": "console.page/resource/details", + "properties": { + "model": { + "group": "operators.coreos.com", + "version": "v1alpha1", + "kind": "Subscription" + }, + "component": { "$codeRef": "subscriptions.SubscriptionDetailsPage" } + } + }, + { + "type": "console.page/resource/list", + "properties": { + "model": { + "group": "operators.coreos.com", + "version": "v1alpha1", + "kind": "ClusterServiceVersion" + }, + "component": { "$codeRef": "clusterServiceVersions.ClusterServiceVersionsPage" } + } + }, + { + "type": "console.page/resource/list", + "properties": { + "model": { + "group": "operators.coreos.com", + "version": "v1", + "kind": "PackageManifest" + }, + "component": { "$codeRef": "packageManifest.PackageManifestsPage" } + } + }, + { + "type": "console.page/resource/details", + "properties": { + "model": { + "group": "operators.coreos.com", + "version": "v1alpha1", + "kind": "ClusterServiceVersion" + }, + "component": { "$codeRef": "clusterServiceVersions.ClusterServiceVersionDetailsPage" } + } + }, + { + "type": "console.page/route", + "properties": { + "exact": true, + "path": "/k8s/ns/:ns/operators.coreos.com~v1alpha1~Subscription/~new", + "component": { "$codeRef": "catalogSource.CreateSubscriptionYAML" } + } + }, + { + "type": "console.page/route", + "properties": { + "exact": true, + "path": "/operatorhub/subscribe", + "component": { "$codeRef": "operatorHubSubscribe.OperatorHubSubscribePage" } + } + }, + { + "type": "console.page/resource/details", + "properties": { + "model": { + "group": "config.openshift.io", + "version": "v1", + "kind": "OperatorHub" + }, + "component": { "$codeRef": "operatorHubDetails.OperatorHubDetailsPage" } + } + }, + { + "type": "console.page/resource/details", + "properties": { + "model": { + "group": "operators.coreos.com", + "version": "v1alpha1", + "kind": "CatalogSource" + }, + "component": { "$codeRef": "catalogSource.CatalogSourceDetailsPage" } + } + }, + { + "type": "console.page/route", + "properties": { + "exact": true, + "path": [ + "/k8s/cluster/operators.coreos.com~v1alpha1~CatalogSource/~new", + "/k8s/ns/:ns/operators.coreos.com~v1alpha1~CatalogSource/~new" + ], + "component": { "$codeRef": "createCatalogSource.CreateCatalogSource" } + } + }, + { + "type": "console.page/resource/details", + "properties": { + "model": { + "group": "operators.coreos.com", + "version": "v1alpha1", + "kind": "InstallPlan" + }, + "component": { "$codeRef": "installPlan.InstallPlanDetailsPage" } + } + }, + { + "type": "console.page/resource/list", + "properties": { + "model": { + "group": "operators.coreos.com", + "version": "v1alpha1", + "kind": "InstallPlan" + }, + "component": { "$codeRef": "installPlan.InstallPlansPage" } + } + }, { "type": "console.catalog/item-type", "properties": { diff --git a/frontend/packages/operator-lifecycle-manager/package.json b/frontend/packages/operator-lifecycle-manager/package.json index e2afaa646f..fae59d5170 100644 --- a/frontend/packages/operator-lifecycle-manager/package.json +++ b/frontend/packages/operator-lifecycle-manager/package.json @@ -8,23 +8,33 @@ "@console/plugin-sdk": "0.0.0-fixed" }, "consolePlugin": { - "entry": "src/plugin.tsx", + "entry": "src/plugin.ts", "exposedModules": { - "useClusterServiceVersions": "src/utils/useClusterServiceVersions.tsx", + "CatalogRedirect": "src/components/catalog-redirect.tsx", + "catalogSource": "src/components/catalog-source.tsx", + "clusterServiceVersions": "src/components/clusterserviceversion.tsx", + "createCatalogSource": "src/components/create-catalog-source.tsx", + "createOperand": "src/components/operand/create-operand.tsx", + "csvStatus": "src/components/dashboard/csv-status.tsx", + "filters": "src/utils/filters.ts", + "install": "src/components/operator-install-page.tsx", + "installPlan": "src/components/install-plan.tsx", + "operand": "src/components/operand/index.tsx", + "operatorHubDetails": "src/components/operator-hub/operator-hub-details.tsx", + "operatorHubSubscribe": "src/components/operator-hub/operator-hub-subscribe.tsx", "operatorLinkTabSection": "src/components/topology/operator-link-tab-section.tsx", - "topologySidebarResourceLink": "src/components/topology/sidebar/resource-link.tsx", + "packageManifest": "src/components/package-manifest.tsx", + "subscriptionProvider": "src/actions/providers/subscription-provider.ts", + "subscriptions": "src/components/subscription.tsx", "topologySidebarDetailsSections": "src/components/topology/sidebar/details-sections.tsx", + "topologySidebarResourceLink": "src/components/topology/sidebar/resource-link.tsx", "topologySidebarResourceSections": "src/components/topology/sidebar/resource-sections.tsx", - "install": "src/components/operator-install-page.tsx", - "subscriptionProvider": "src/actions/providers/subscription-provider.ts", - "useOperatorActions": "src/actions/useOperatorActions.ts", + "useClusterServiceVersions": "src/utils/useClusterServiceVersions.tsx", "useDefaultOperandActions": "src/actions/useDefaultOperandActions.ts", - "useOperatorCatalogItems": "src/hooks/useOperatorCatalogItems.tsx", + "useOperatorActions": "src/actions/useOperatorActions.ts", "useOperatorCatalogCategories": "src/hooks/useOperatorCatalogCategories.ts", - "filters": "src/utils/filters.ts", - "CatalogRedirect": "src/components/catalog-redirect.tsx", - "utils": "src/components/dashboard/utils.ts", - "csvStatus": "src/components/dashboard/csv-status.tsx" + "useOperatorCatalogItems": "src/hooks/useOperatorCatalogItems.tsx", + "utils": "src/components/dashboard/utils.ts" } } } diff --git a/frontend/packages/operator-lifecycle-manager/src/plugin.ts b/frontend/packages/operator-lifecycle-manager/src/plugin.ts new file mode 100644 index 0000000000..5841c35411 --- /dev/null +++ b/frontend/packages/operator-lifecycle-manager/src/plugin.ts @@ -0,0 +1,5 @@ +// TODO: split this into smaller CSS files that can be imported directly by components +import './style.scss'; + +// See console-extensions.json instead +export default []; diff --git a/frontend/packages/operator-lifecycle-manager/src/plugin.tsx b/frontend/packages/operator-lifecycle-manager/src/plugin.tsx deleted file mode 100644 index 09a242cbfd..0000000000 --- a/frontend/packages/operator-lifecycle-manager/src/plugin.tsx +++ /dev/null @@ -1,226 +0,0 @@ -import * as _ from 'lodash'; -import { referenceForModel } from '@console/internal/module/k8s'; -import { - ModelDefinition, - ModelFeatureFlag, - Plugin, - ResourceDetailsPage, - ResourceListPage, - RoutePage, -} from '@console/plugin-sdk'; -import { Flags } from './const'; -import * as models from './models'; - -import './style.scss'; - -type ConsumedExtensions = - | ModelDefinition - | ModelFeatureFlag - | ResourceListPage - | ResourceDetailsPage - | RoutePage; - -const plugin: Plugin = [ - { - type: 'ModelDefinition', - properties: { - models: _.values(models), - }, - }, - { - type: 'FeatureFlag/Model', - properties: { - model: models.ClusterServiceVersionModel, - flag: Flags.OPERATOR_LIFECYCLE_MANAGER, - }, - }, - { - type: 'Page/Route', - properties: { - exact: true, - path: `/k8s/ns/:ns/${referenceForModel( - models.ClusterServiceVersionModel, - )}/:csvName/:plural/~new`, - loader: async () => - ( - await import( - './components/operand/create-operand' /* webpackChunkName: "create-operand" */ - ) - ).default, - }, - }, - { - type: 'Page/Route', - properties: { - exact: true, - path: `/k8s/ns/:ns/${models.ClusterServiceVersionModel.plural}/:csvName/:plural/~new`, - loader: async () => - ( - await import( - './components/operand/create-operand' /* webpackChunkName: "create-operand" */ - ) - ).default, - }, - }, - { - type: 'Page/Route', - properties: { - path: `/k8s/ns/:ns/${models.ClusterServiceVersionModel.plural}/:appName/:plural/:name`, - loader: async () => - (await import('./components/operand' /* webpackChunkName: "operand" */)).OperandDetailsPage, - }, - }, - { - type: 'Page/Route', - properties: { - path: `/k8s/ns/:ns/${referenceForModel( - models.ClusterServiceVersionModel, - )}/:appName/:plural/:name`, - loader: async () => - (await import('./components/operand' /* webpackChunkName: "operand" */)).OperandDetailsPage, - }, - }, - { - type: 'Page/Resource/List', - properties: { - model: models.SubscriptionModel, - loader: async () => - (await import('./components/subscription' /* webpackChunkName: "subscriptions" */)) - .SubscriptionsPage, - }, - }, - { - type: 'Page/Resource/Details', - properties: { - model: models.SubscriptionModel, - loader: async () => - (await import('./components/subscription' /* webpackChunkName: "subscriptions" */)) - .SubscriptionDetailsPage, - }, - }, - { - type: 'Page/Resource/List', - properties: { - model: models.ClusterServiceVersionModel, - loader: async () => - ( - await import( - './components/clusterserviceversion' /* webpackChunkName: "clusterserviceversion" */ - ) - ).ClusterServiceVersionsPage, - }, - }, - { - type: 'Page/Resource/List', - properties: { - model: models.PackageManifestModel, - loader: async () => - (await import('./components/package-manifest' /* webpackChunkName: "package-manifest" */)) - .PackageManifestsPage, - }, - }, - { - type: 'Page/Resource/Details', - properties: { - model: models.ClusterServiceVersionModel, - loader: async () => - ( - await import( - './components/clusterserviceversion' /* webpackChunkName: "clusterserviceversion" */ - ) - ).ClusterServiceVersionDetailsPage, - }, - }, - { - type: 'Page/Route', - properties: { - exact: true, - path: `/k8s/ns/:ns/${models.SubscriptionModel.plural}/~new`, - loader: async () => - ( - await import( - './components/catalog-source' /* webpackChunkName: "create-subscription-yaml" */ - ) - ).CreateSubscriptionYAML, - }, - }, - { - type: 'Page/Route', - properties: { - exact: true, - path: '/operatorhub/subscribe', - loader: async () => - ( - await import( - './components/operator-hub/operator-hub-subscribe' /* webpackChunkName: "operator-hub-subscribe" */ - ) - ).OperatorHubSubscribePage, - }, - }, - { - type: 'Page/Route', - properties: { - exact: true, - path: `/k8s/ns/:ns/${models.SubscriptionModel.plural}/~new`, - loader: async () => - ( - await import( - './components/catalog-source' /* webpackChunkName: "create-subscription-yaml" */ - ) - ).CreateSubscriptionYAML, - }, - }, - { - type: 'Page/Resource/Details', - properties: { - model: models.OperatorHubModel, - loader: async () => - (await import('./components/operator-hub/operator-hub-details')).OperatorHubDetailsPage, - }, - }, - { - type: 'Page/Resource/Details', - properties: { - model: models.CatalogSourceModel, - loader: async () => - (await import('./components/catalog-source' /* webpackChunkName: "catalog-source" */)) - .CatalogSourceDetailsPage, - }, - }, - { - type: 'Page/Route', - properties: { - exact: true, - path: `/k8s/cluster/${referenceForModel(models.CatalogSourceModel)}/~new`, - loader: async () => (await import('./components/create-catalog-source')).CreateCatalogSource, - }, - }, - { - type: 'Page/Route', - properties: { - exact: true, - path: `/k8s/ns/:ns/${referenceForModel(models.CatalogSourceModel)}/~new`, - loader: async () => (await import('./components/create-catalog-source')).CreateCatalogSource, - }, - }, - { - type: 'Page/Resource/Details', - properties: { - model: models.InstallPlanModel, - loader: async () => - (await import('./components/install-plan' /* webpackChunkName: "install-plan" */)) - .InstallPlanDetailsPage, - }, - }, - { - type: 'Page/Resource/List', - properties: { - model: models.InstallPlanModel, - loader: async () => - (await import('./components/install-plan' /* webpackChunkName: "install-plan" */)) - .InstallPlansPage, - }, - }, -]; - -export default plugin;