From 6fb93bce54305e0c9af1bac9ddcefb9a4705c38f Mon Sep 17 00:00:00 2001 From: regexowl Date: Thu, 17 Jul 2025 10:37:43 +0200 Subject: [PATCH] FEO migration This migrates from fed-modules.json to Frontend Operator and bumps @redhat-cloud-services/frontend-components-config from 6.3.8 to 6.6.2 Migration guide: https://github.com/RedHatInsights/chrome-service-backend/blob/main/docs/feo-migration-guide.md --- deploy/frontend-clowder.yml | 85 ++++++++++++++++++++++++++++++++---- fec.config.js | 1 + package-lock.json | 87 +++++++++++++++++++++++++++++++++---- package.json | 2 +- 4 files changed, 156 insertions(+), 19 deletions(-) diff --git a/deploy/frontend-clowder.yml b/deploy/frontend-clowder.yml index 0dab21f6..a925906c 100644 --- a/deploy/frontend-clowder.yml +++ b/deploy/frontend-clowder.yml @@ -1,3 +1,5 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/RedHatInsights/frontend-components/refs/heads/master/packages/config-utils/src/feo/spec/frontend-crd.schema.json +--- apiVersion: v1 kind: Template metadata: @@ -8,6 +10,70 @@ objects: metadata: name: image-builder spec: + feoConfigEnabled: true + serviceTiles: + - id: imageBuilder + section: deploy + group: rhel + title: Images + href: /insights/image-builder + description: "Build and manage Red Hat Enterprise Linux images and environments." + icon: InsightsIcon + - id: imageBuilder + section: inventories + group: rhel + title: Images + href: /insights/image-builder + description: "Build and manage Red Hat Enterprise Linux images and environments." + icon: InsightsIcon + searchEntries: + - id: imageBuilder + title: "Images" + href: /insights/image-builder + description: "Build and manage Red Hat Enterprise Linux images and environments." + alt_title: + - Images + - image + - image builder + - my images + - gold image + - template image + - vm template + - image template + - blueprint + - image + - builder + - images + - build + - image-builder + - insights + - Build image + - image builder + - gold image + - blueprint + - template image + - vm template + - image template + - vmware template + - packer build + - packer template + - RHEL AMI + - RHEL machine image + - azure + - aws + - build + - assemble + - image-builder + bundleSegments: + - segmentId: imageBuilder + bundleId: insights + position: 300 + navItems: + - id: imageBuilder + title: Image builder + href: /insights/image-builder + icon: InsightsIcon + product: Red Hat Insights envName: ${ENV_NAME} title: Image-builder deploymentRepo: https://github.com/RedHatInsights/image-builder-frontend @@ -18,17 +84,18 @@ objects: paths: - /apps/image-builder image: ${IMAGE}:${IMAGE_TAG} - navItems: - - appId: "imageBuilder" - title: "Image builder" - href: "/insights/image-builder" - product: "Red Hat Insights" module: - manifestLocation: "/apps/image-builder/fed-mods.json" - moduleID: imageBuilder + manifestLocation: /apps/image-builder/fed-mods.json + analytics: + APIKey: BUodNImBEk7R2M3evAYs0v7i8d86Nhkm # prod + APIKeyDev: TwoYxKFzxr4fHN171gmcNoLnxXdzF8b6 # stage + config: + supportCaseData: + product: "Red Hat Insights" + version: "Image Builder" modules: - - id: "image-builder" - module: "./RootApp" + - id: image-builder + module: ./RootApp routes: - pathname: /insights/image-builder diff --git a/fec.config.js b/fec.config.js index dbc68963..3a43b0dd 100644 --- a/fec.config.js +++ b/fec.config.js @@ -147,4 +147,5 @@ module.exports = { shared: [{ 'react-router-dom': { singleton: true, version: '*' } }], exclude: ['react-router-dom'], }, + frontendCRDPath: path.resolve(__dirname, './deploy/frontend-clowder.yml') }; diff --git a/package-lock.json b/package-lock.json index 8f017617..500d2894 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,7 @@ "@patternfly/react-icons": "6.3.0", "@playwright/test": "1.51.1", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "3.0.0", - "@redhat-cloud-services/frontend-components-config": "6.3.8", + "@redhat-cloud-services/frontend-components-config": "6.6.4", "@redhat-cloud-services/tsc-transform-imports": "1.0.25", "@rtk-query/codegen-openapi": "2.0.0", "@testing-library/dom": "10.4.1", @@ -3649,6 +3649,8 @@ }, "node_modules/@openshift/dynamic-plugin-sdk-webpack": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@openshift/dynamic-plugin-sdk-webpack/-/dynamic-plugin-sdk-webpack-4.1.0.tgz", + "integrity": "sha512-Pkq6R+fkoE0llgv9WJBcotViAPywrzDkpWK0HSTmrVyfEuWS5cuZUs8ono6L5w9BqDBRXm3ceEuUAZA/Zrar1w==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3664,7 +3666,9 @@ } }, "node_modules/@openshift/dynamic-plugin-sdk-webpack/node_modules/semver": { - "version": "7.6.3", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -4003,12 +4007,14 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-config": { - "version": "6.3.8", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.6.4.tgz", + "integrity": "sha512-LAfDamiwotPXZaPMsLIlvNrAMFKPh3mDeDHRkS6jG3lXKzPbtFJFjhPPvOpEmrrwA3p2GrDiGk5eSdX4BxH3Hw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", - "@redhat-cloud-services/frontend-components-config-utilities": "^4.0.4", + "@redhat-cloud-services/frontend-components-config-utilities": "^4.3.5", "@redhat-cloud-services/tsc-transform-imports": "^1.0.21", "@swc/core": "^1.3.76", "assert": "^2.0.0", @@ -4055,18 +4061,53 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-config-utilities": { - "version": "4.0.6", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-4.5.0.tgz", + "integrity": "sha512-9gW6GfDr9C1U0BShZHrXJ/oyvdRgoIRfQgFMDrFoM9ZbgSjY4pEsyG4PwIZsJGUE/+0O4XiuyRXU3jaSUKvrHA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@openshift/dynamic-plugin-sdk-webpack": "^4.0.1", + "ajv": "^8.17.1", "chalk": "^4.1.2", + "chokidar": "^4.0.3", + "js-yaml": "^4.1.0", "node-fetch": "2.6.7" }, "peerDependencies": { "webpack": "^5.0.0" } }, + "node_modules/@redhat-cloud-services/frontend-components-config-utilities/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@redhat-cloud-services/frontend-components-config-utilities/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@redhat-cloud-services/frontend-components-config/node_modules/ajv": { "version": "6.12.6", "dev": true, @@ -22197,6 +22238,8 @@ }, "@openshift/dynamic-plugin-sdk-webpack": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@openshift/dynamic-plugin-sdk-webpack/-/dynamic-plugin-sdk-webpack-4.1.0.tgz", + "integrity": "sha512-Pkq6R+fkoE0llgv9WJBcotViAPywrzDkpWK0HSTmrVyfEuWS5cuZUs8ono6L5w9BqDBRXm3ceEuUAZA/Zrar1w==", "dev": true, "requires": { "lodash": "^4.17.21", @@ -22205,7 +22248,9 @@ }, "dependencies": { "semver": { - "version": "7.6.3", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true } } @@ -22384,11 +22429,13 @@ } }, "@redhat-cloud-services/frontend-components-config": { - "version": "6.3.8", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.6.4.tgz", + "integrity": "sha512-LAfDamiwotPXZaPMsLIlvNrAMFKPh3mDeDHRkS6jG3lXKzPbtFJFjhPPvOpEmrrwA3p2GrDiGk5eSdX4BxH3Hw==", "dev": true, "requires": { "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", - "@redhat-cloud-services/frontend-components-config-utilities": "^4.0.4", + "@redhat-cloud-services/frontend-components-config-utilities": "^4.3.5", "@redhat-cloud-services/tsc-transform-imports": "^1.0.21", "@swc/core": "^1.3.76", "assert": "^2.0.0", @@ -22482,12 +22529,34 @@ } }, "@redhat-cloud-services/frontend-components-config-utilities": { - "version": "4.0.6", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-4.5.0.tgz", + "integrity": "sha512-9gW6GfDr9C1U0BShZHrXJ/oyvdRgoIRfQgFMDrFoM9ZbgSjY4pEsyG4PwIZsJGUE/+0O4XiuyRXU3jaSUKvrHA==", "dev": true, "requires": { "@openshift/dynamic-plugin-sdk-webpack": "^4.0.1", + "ajv": "^8.17.1", "chalk": "^4.1.2", + "chokidar": "^4.0.3", + "js-yaml": "^4.1.0", "node-fetch": "2.6.7" + }, + "dependencies": { + "chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "requires": { + "readdirp": "^4.0.1" + } + }, + "readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true + } } }, "@redhat-cloud-services/frontend-components-notifications": { diff --git a/package.json b/package.json index 1395b45c..6b44981d 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@patternfly/react-icons": "6.3.0", "@playwright/test": "1.51.1", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "3.0.0", - "@redhat-cloud-services/frontend-components-config": "6.3.8", + "@redhat-cloud-services/frontend-components-config": "6.6.4", "@redhat-cloud-services/tsc-transform-imports": "1.0.25", "@rtk-query/codegen-openapi": "2.0.0", "@testing-library/dom": "10.4.1",