From 496d0bd58545d13d6ededac999e53799620bdb47 Mon Sep 17 00:00:00 2001 From: SamoKopecky Date: Wed, 8 Feb 2023 11:03:28 +0100 Subject: [PATCH 1/2] feat(ocm): Install and configure the ocm plugin Signed-off-by: SamoKopecky --- app-config.yaml | 6 + packages/app/package.json | 1 + packages/app/src/App.tsx | 3 + packages/app/src/components/Root/Root.tsx | 2 + .../app/src/components/catalog/EntityPage.tsx | 52 +++++++ packages/app/src/components/catalog/utils.tsx | 10 ++ packages/backend/package.json | 1 + packages/backend/src/index.ts | 3 + packages/backend/src/plugins/catalog.ts | 13 ++ packages/backend/src/plugins/ocm.ts | 12 ++ yarn.lock | 128 +++++++++++++++++- 11 files changed, 228 insertions(+), 3 deletions(-) create mode 100644 packages/app/src/components/catalog/utils.tsx create mode 100644 packages/backend/src/plugins/ocm.ts diff --git a/app-config.yaml b/app-config.yaml index 1911dfde8d..0845666f1d 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -115,3 +115,9 @@ kubernetes: authProvider: 'serviceAccount' skipTLSVerify: true serviceAccountToken: ${K8S_CLUSTER_TOKEN} + +ocm: + hub: + name: ${OCM_HUB_NAME} + url: ${OCM_HUB_URL} + serviceAccountToken: ${moc_infra_token} diff --git a/packages/app/package.json b/packages/app/package.json index b12b7e2316..b8ec7ec61a 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -42,6 +42,7 @@ "@backstage/plugin-techdocs-react": "^1.1.2", "@backstage/plugin-user-settings": "^0.6.2", "@backstage/theme": "^0.2.16", + "@janus-idp/backstage-plugin-ocm": "^1.1.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@roadiehq/backstage-plugin-argo-cd": "^2.2.6", diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index c8b1c77f21..23630bae69 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -37,6 +37,8 @@ import { CssBaseline, ThemeProvider } from '@material-ui/core'; import { janusTheme } from './themes/janus'; import { HomePage } from './components/home/HomePage'; import { HomepageCompositionRoot } from '@backstage/plugin-home'; +import { OcmPage } from '@janus-idp/backstage-plugin-ocm'; +import Logo from './components/Root/LogoIcon'; const app = createApp({ apis, @@ -110,6 +112,7 @@ const routes = ( } /> } /> + } />} /> ); diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx index 1cd4ba32f1..6dd396e9e7 100644 --- a/packages/app/src/components/Root/Root.tsx +++ b/packages/app/src/components/Root/Root.tsx @@ -3,6 +3,7 @@ import { makeStyles } from '@material-ui/core'; import AppsIcon from '@material-ui/icons/Apps'; import HomeIcon from '@material-ui/icons/Home'; import ExtensionIcon from '@material-ui/icons/Extension'; +import StorageIcon from '@material-ui/icons/Storage'; import MapIcon from '@material-ui/icons/MyLocation'; import LibraryBooks from '@material-ui/icons/LibraryBooks'; import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; @@ -70,6 +71,7 @@ export const Root = ({ children }: PropsWithChildren<{}>) => ( + {/* End global nav */} diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index 2fabe82741..a61123e8a5 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -70,6 +70,14 @@ import { EntityArgoCDOverviewCard, EntityArgoCDHistoryCard, } from '@roadiehq/backstage-plugin-argo-cd'; +import { + ClusterAllocatableResourceCard, + ClusterAvailableResourceCard, + ClusterContextProvider, + ClusterInfoCard, + ClusterStatusCard, +} from '@janus-idp/backstage-plugin-ocm'; +import { isType } from './utils'; const techdocsContent = ( @@ -420,6 +428,49 @@ const domainPage = ( ); +const resourcePage = ( + + + + {entityWarningContent} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); + export const entityPage = ( @@ -428,6 +479,7 @@ export const entityPage = ( + {defaultEntityPage} diff --git a/packages/app/src/components/catalog/utils.tsx b/packages/app/src/components/catalog/utils.tsx new file mode 100644 index 0000000000..4b03fa3955 --- /dev/null +++ b/packages/app/src/components/catalog/utils.tsx @@ -0,0 +1,10 @@ +import { Entity } from '@backstage/catalog-model'; + +export const isType = (types: string | string[]) => (entity: Entity) => { + if (!entity?.spec?.type) { + return false; + } + return typeof types === 'string' + ? entity?.spec?.type === types + : types.includes(entity.spec.type as string); +}; diff --git a/packages/backend/package.json b/packages/backend/package.json index 2c5a525c53..15b0510449 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -34,6 +34,7 @@ "@backstage/plugin-search-backend-module-pg": "^0.5.2", "@backstage/plugin-search-backend-node": "^1.1.2", "@backstage/plugin-techdocs-backend": "^1.5.2", + "@janus-idp/backstage-plugin-ocm-backend": "^1.3.0", "app": "link:../app", "better-sqlite3": "^8.0.0", "dockerode": "^3.3.1", diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 55934641bb..290d9d33dd 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -32,6 +32,7 @@ import kubernetes from './plugins/kubernetes'; import { PluginEnvironment } from './types'; import { ServerPermissionClient } from '@backstage/plugin-permission-node'; import { DefaultIdentityClient } from '@backstage/plugin-auth-node'; +import ocm from './plugins/ocm'; function makeCreateEnv(config: Config) { const root = getRootLogger(); @@ -87,6 +88,7 @@ async function main() { const searchEnv = useHotMemoize(module, () => createEnv('search')); const appEnv = useHotMemoize(module, () => createEnv('app')); const kubernetesEnv = useHotMemoize(module, () => createEnv('kubernetes')); + const ocmEnv = useHotMemoize(module, () => createEnv('ocm')); const apiRouter = Router(); apiRouter.use('/catalog', await catalog(catalogEnv)); @@ -96,6 +98,7 @@ async function main() { apiRouter.use('/proxy', await proxy(proxyEnv)); apiRouter.use('/search', await search(searchEnv)); apiRouter.use('/kubernetes', await kubernetes(kubernetesEnv)); + apiRouter.use('/ocm', await ocm(ocmEnv)); // Add backends ABOVE this line; this 404 handler is the catch-all fallback apiRouter.use(notFoundHandler()); diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts index 876cb6bccc..f074d79ce1 100644 --- a/packages/backend/src/plugins/catalog.ts +++ b/packages/backend/src/plugins/catalog.ts @@ -1,5 +1,6 @@ import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; import { ScaffolderEntitiesProcessor } from '@backstage/plugin-scaffolder-backend'; +import { ManagedClusterProvider } from '@janus-idp/backstage-plugin-ocm-backend'; import { Router } from 'express'; import { PluginEnvironment } from '../types'; @@ -7,8 +8,20 @@ export default async function createPlugin( env: PluginEnvironment, ): Promise { const builder = await CatalogBuilder.create(env); + const ocm = ManagedClusterProvider.fromConfig(env.config, { + logger: env.logger, + }); + builder.addEntityProvider(ocm); builder.addProcessor(new ScaffolderEntitiesProcessor()); const { processingEngine, router } = await builder.build(); await processingEngine.start(); + await env.scheduler.scheduleTask({ + id: 'run_ocm_refresh', + fn: async () => { + await ocm.run(); + }, + frequency: { minutes: 30 }, + timeout: { minutes: 10 }, + }); return router; } diff --git a/packages/backend/src/plugins/ocm.ts b/packages/backend/src/plugins/ocm.ts new file mode 100644 index 0000000000..43bb9920aa --- /dev/null +++ b/packages/backend/src/plugins/ocm.ts @@ -0,0 +1,12 @@ +import { createRouter } from '@janus-idp/backstage-plugin-ocm-backend'; +import { Router } from 'express'; +import { PluginEnvironment } from '../types'; + +export default async function createPlugin( + env: PluginEnvironment, +): Promise { + return await createRouter({ + logger: env.logger, + config: env.config, + }); +} diff --git a/yarn.lock b/yarn.lock index e421f6e220..39ef4ce464 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4182,6 +4182,49 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== +"@janus-idp/backstage-plugin-ocm-backend@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@janus-idp/backstage-plugin-ocm-backend/-/backstage-plugin-ocm-backend-1.3.0.tgz#1a22a1deb9a0e9e1521471e76ad06081535872e9" + integrity sha512-Q1RWZQIw+/47mEemcBm+cln/aykQ/in/RIkobjFk54/oalAQQVCdPdIoz1fvaZ1w0pB1h5jOH0D3doK7ZCeEZA== + dependencies: + "@backstage/backend-common" "^0.18.1" + "@backstage/catalog-client" "^1.3.0" + "@backstage/catalog-model" "^1.1.5" + "@backstage/config" "^1.0.6" + "@backstage/plugin-catalog-node" "^1.3.2" + "@janus-idp/backstage-plugin-ocm-common" "1.1.1" + "@kubernetes/client-node" "^0.18.0" + express "^4.17.1" + express-promise-router "^4.1.0" + node-fetch "^3.0.0" + semver "^7.3.8" + winston "^3.2.1" + yn "^5.0.0" + +"@janus-idp/backstage-plugin-ocm-common@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@janus-idp/backstage-plugin-ocm-common/-/backstage-plugin-ocm-common-1.1.1.tgz#84ac3da62bcff79169c3c0546a46ea3081d3e75d" + integrity sha512-Rr3bmBQ+opyum58lZf0FdEIUDKlM3mpE4NMTIIcV+S5Jlmpnl1U7T6Etuf3XOHX9/5unnDzP0ILp2fLHwMqQ3g== + +"@janus-idp/backstage-plugin-ocm@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@janus-idp/backstage-plugin-ocm/-/backstage-plugin-ocm-1.1.1.tgz#9629d25dcd9094b5ad00711a11055f42ded2df34" + integrity sha512-HzFB07e+pvbJdIYu+jwIKaW1Iov3gxcMgTzVZflHgW7sdp+qXgaSByZso6glhkTRvk2FPVoLH1IIEKw6TTdDUg== + dependencies: + "@backstage/catalog-model" "^1.1.5" + "@backstage/core-components" "^0.12.3" + "@backstage/core-plugin-api" "^1.3.0" + "@backstage/errors" "^1.1.4" + "@backstage/plugin-catalog-react" "^1.2.4" + "@backstage/plugin-home" "^0.4.30" + "@backstage/plugin-search-react" "^1.4.0" + "@backstage/theme" "^0.2.16" + "@janus-idp/backstage-plugin-ocm-common" "1.1.1" + "@material-ui/core" "^4.9.13" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "^4.0.0-alpha.45" + react-use "^17.2.4" + "@jest-mock/express@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@jest-mock/express/-/express-2.0.1.tgz#5985ad42e00394a375592596bcf15f00064bac20" @@ -4513,6 +4556,30 @@ optionalDependencies: openid-client "^5.3.0" +"@kubernetes/client-node@^0.18.0": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@kubernetes/client-node/-/client-node-0.18.1.tgz#58d864c8f584efd0f8670f6c46bb8e9d5abd58f6" + integrity sha512-F3JiK9iZnbh81O/da1tD0h8fQMi/MDttWc/JydyUVnjPEom55wVfnpl4zQ/sWD4uKB8FlxYRPiLwV2ZXB+xPKw== + dependencies: + "@types/js-yaml" "^4.0.1" + "@types/node" "^18.11.17" + "@types/request" "^2.47.1" + "@types/ws" "^8.5.3" + byline "^5.0.0" + isomorphic-ws "^5.0.0" + js-yaml "^4.1.0" + jsonpath-plus "^7.2.0" + request "^2.88.0" + rfc4648 "^1.3.0" + stream-buffers "^3.0.2" + tar "^6.1.11" + tmp-promise "^3.0.2" + tslib "^2.4.1" + underscore "^1.13.6" + ws "^8.11.0" + optionalDependencies: + openid-client "^5.3.0" + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" @@ -6201,6 +6268,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.12.tgz#e3bfea80e31523fde4292a6118f19ffa24fd6f65" integrity sha512-vzLe5NaNMjIE3mcddFVGlAXN1LEWueUsMsOJWaT6wWMJGyljHAWHznqfnKUQWGzu7TLPrGvWdNAsvQYW+C0xtw== +"@types/node@^18.11.17": + version "18.14.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.0.tgz#94c47b9217bbac49d4a67a967fdcdeed89ebb7d0" + integrity sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A== + "@types/oauth@*": version "0.9.1" resolved "https://registry.yarnpkg.com/@types/oauth/-/oauth-0.9.1.tgz#e17221e7f7936b0459ae7d006255dff61adca305" @@ -6249,7 +6321,7 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@*", "@types/react-dom@<18.0.0": +"@types/react-dom@*", "@types/react-dom@<18.0.0", "@types/react-dom@^17": version "17.0.19" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.19.tgz#36feef3aa35d045cacd5ed60fe0eef5272f19492" integrity sha512-PiYG40pnQRdPHnlf7tZnp0aQ6q9tspYr72vD61saO6zFCybLfMqwUCN0va1/P+86DXn18ZWeW30Bk7xlC5eEAQ== @@ -6462,7 +6534,7 @@ dependencies: "@types/node" "*" -"@types/ws@^8.5.1": +"@types/ws@^8.5.1", "@types/ws@^8.5.3": version "8.5.4" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== @@ -7014,6 +7086,7 @@ anymatch@^3.0.3, anymatch@~3.1.2: "@backstage/plugin-techdocs-react" "^1.1.2" "@backstage/plugin-user-settings" "^0.6.2" "@backstage/theme" "^0.2.16" + "@janus-idp/backstage-plugin-ocm" "^1.1.1" "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" "@roadiehq/backstage-plugin-argo-cd" "^2.2.6" @@ -9018,6 +9091,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -10431,6 +10509,14 @@ fecha@^4.2.0: resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -10655,6 +10741,13 @@ formdata-node@^4.0.0: node-domexception "1.0.0" web-streams-polyfill "4.0.0-beta.3" +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -12233,6 +12326,11 @@ isomorphic-ws@^4.0.1: resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -13001,6 +13099,11 @@ jsonpath-plus@^0.19.0: resolved "https://registry.yarnpkg.com/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz#b901e57607055933dc9a8bef0cc25160ee9dd64c" integrity sha512-GSVwsrzW9LsA5lzsqe4CkuZ9wp+kxBb2GwNniaWzI2YFn5Ig42rSW8ZxVpWXaAfakXNrx5pgY5AbQq7kzX29kg== +jsonpath-plus@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/jsonpath-plus/-/jsonpath-plus-7.2.0.tgz#7ad94e147b3ed42f7939c315d2b9ce490c5a3899" + integrity sha512-zBfiUPM5nD0YZSBT/o/fbCUlCcepMIdP0CJZxM1+KgA4f2T206f6VAg9e7mX35+KlMaIc5qXW34f3BnwJ3w+RA== + jsonpointer@^5.0.0, jsonpointer@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" @@ -14549,7 +14652,7 @@ node-cache@^5.1.2: dependencies: clone "2.x" -node-domexception@1.0.0: +node-domexception@1.0.0, node-domexception@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== @@ -14568,6 +14671,15 @@ node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" +node-fetch@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.0.tgz#37e71db4ecc257057af828d523a7243d651d91e4" + integrity sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-forge@^1, node-forge@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" @@ -19106,6 +19218,11 @@ web-streams-polyfill@4.0.0-beta.3: resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== +web-streams-polyfill@^3.0.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -19601,6 +19718,11 @@ yn@^4.0.0: resolved "https://registry.yarnpkg.com/yn/-/yn-4.0.0.tgz#611480051ea43b510da1dfdbe177ed159f00a979" integrity sha512-huWiiCS4TxKc4SfgmTwW1K7JmXPPAmuXWYy4j9qjQo4+27Kni8mGhAAi1cloRWmBe2EqcLgt3IGqQoRL/MtPgg== +yn@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-5.0.0.tgz#63fc2e2e0056cf294397eed6ad4a3fbdf707f26f" + integrity sha512-+l37+9TyGEsyxGLaTg6QgYy5KnOp74ZZl4dPFLQpBWSkO99uBC5jnS0pOGwXFViPbiaEtWbParH2KrgWWF2duQ== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From 98efcb22560741555eca95ef8a9a01c1c83554c2 Mon Sep 17 00:00:00 2001 From: SamoKopecky Date: Tue, 21 Feb 2023 12:46:40 +0100 Subject: [PATCH 2/2] feat(ocm): Add external secret for cluster tokens Signed-off-by: SamoKopecky --- manifests/base/externalsecret.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/manifests/base/externalsecret.yaml b/manifests/base/externalsecret.yaml index 5ea24f8e57..3c9a5c35df 100644 --- a/manifests/base/externalsecret.yaml +++ b/manifests/base/externalsecret.yaml @@ -7,6 +7,8 @@ spec: - extract: conversionStrategy: Default key: moc/smaug/janus-idp/values-app-config + - extract: + key: moc/smaug/service-catalog/k8s-plugin-tokens refreshInterval: 60s secretStoreRef: kind: SecretStore