diff --git a/.gitignore b/.gitignore index e90c93e..922f4c1 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,9 @@ node_modules/ # Node version directives .nvmrc +# NPM config files +.npmrc + # dotenv environment variables file .env .env.test diff --git a/packages/app/package.json b/packages/app/package.json index 1f9751c..f588f4f 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -45,8 +45,9 @@ "@backstage/plugin-techdocs-react": "^1.1.6", "@backstage/plugin-user-settings": "^0.7.3", "@backstage/theme": "^0.3.0", - "@cnoe-io/plugin-apache-spark": "file:/var/folders/b7/h6wzrfwn6l30pn3fk5j2794dcy0vlz/T/tmp-26390-66rLxROMRq6K", - "@cnoe-io/plugin-argo-workflows": "file:/var/folders/b7/h6wzrfwn6l30pn3fk5j2794dcy0vlz/T/tmp-32426-R2tjIfGLJy55", + "@cnoe-io/plugin-apache-spark": "0.1.0", + "@cnoe-io/plugin-argo-workflows": "0.1.0", + "@cnoe-io/plugin-scaffolder-actions-frontend": "0.1.0", "@internal/plugin-workflows": "^0.1.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 92f625d..9ec04a8 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -38,7 +38,7 @@ import { AppRouter, FlatRoutes } from '@backstage/core-app-api'; import { CatalogGraphPage } from '@backstage/plugin-catalog-graph'; import { RequirePermission } from '@backstage/plugin-permission-react'; import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha'; -import { KubernetesClusterPickerExtension } from './scaffolder/kubernetesClusterPicker'; +import { KubernetesClusterPickerExtension } from '@cnoe-io/plugin-scaffolder-actions-frontend'; const app = createApp({ apis, diff --git a/packages/app/src/scaffolder/kubernetesClusterPicker/KubernetesClusterPicker.tsx b/packages/app/src/scaffolder/kubernetesClusterPicker/KubernetesClusterPicker.tsx deleted file mode 100644 index 94d7044..0000000 --- a/packages/app/src/scaffolder/kubernetesClusterPicker/KubernetesClusterPicker.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import React, { useCallback, useMemo } from 'react'; -import FormControl from '@material-ui/core/FormControl'; -import { useApi } from '@backstage/core-plugin-api'; -import { - kubernetesApiRef, - kubernetesAuthProvidersApiRef, -} from '@backstage/plugin-kubernetes'; -import { FormHelperText } from '@material-ui/core'; -import { Progress, Select } from '@backstage/core-components'; -import useAsync from 'react-use/lib/useAsync'; -import { useTemplateSecrets } from '@backstage/plugin-scaffolder-react'; -import { ClusterPickerProps } from './schema'; - -export const KubernetesClusterPicker = (props: ClusterPickerProps) => { - const k8sApi = useApi(kubernetesApiRef); - const k8sAuthApi = useApi(kubernetesAuthProvidersApiRef); - const { setSecrets } = useTemplateSecrets(); - const { uiSchema, required, onChange } = props; - const { rawErrors } = props ?? []; - const allowedClusters = useMemo( - () => uiSchema?.['ui:options']?.allowedClusters ?? [], - [uiSchema], - ); - - const getToken = useCallback( - async (clusterName: string) => { - const { requestUserCredentials } = uiSchema?.['ui:options'] ?? {}; - if (!requestUserCredentials) { - return; - } - const cs = await k8sApi.getClusters(); - const cluster = cs.find(c => { - return c.name === clusterName; - }); - const { token } = await k8sAuthApi.getCredentials(cluster?.authProvider!); - if (token === undefined) { - return; - } - setSecrets({ [requestUserCredentials.secretKey]: token }); - }, - [k8sApi, k8sAuthApi, setSecrets, uiSchema], - ); - - const { value: { clusters } = { clusters: [] }, loading } = useAsync( - async () => { - const c = await k8sApi.getClusters(); - const filteredClusters = c - .filter(i => { - if (allowedClusters.length === 0) { - return true; - } - return allowedClusters.includes(i.name); - }) - .map(i => ({ label: i.name, value: i.name })); - if (filteredClusters.length) { - await getToken(filteredClusters[0].value); - onChange(filteredClusters[0].value); - } - return { - clusters: filteredClusters, - }; - }, - ); - - if (loading) { - return ; - } - - return ( - 0} - > -