Skip to content

Commit 487e860

Browse files
authored
feat: Replace kyma extensions with Modules (#3573)
* Replace kyma extensions with Modules * Adjust urls
1 parent 30d2816 commit 487e860

File tree

7 files changed

+57
-209
lines changed

7 files changed

+57
-209
lines changed

kyma/environments/dev/extensions.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
{
66
"source": "extensions/discovery-and-network"
77
},
8-
{
9-
"source": "extensions/kyma"
10-
},
118
{
129
"source": "extensions/service-management"
1310
},

kyma/environments/prod/extensions.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
{
99
"source": "extensions/configuration"
1010
},
11-
{
12-
"source": "extensions/kyma"
13-
},
1411
{
1512
"source": "extensions/service-management"
1613
},

kyma/environments/stage/extensions.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
{
99
"source": "extensions/configuration"
1010
},
11-
{
12-
"source": "extensions/kyma"
13-
},
1411
{
1512
"source": "extensions/service-management"
1613
},

kyma/extensions/kyma/kyma.yaml

Lines changed: 0 additions & 165 deletions
This file was deleted.

src/components/KymaModules/KymaModulesList.js

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export default function KymaModulesList({
5252
selectedModules,
5353
setOpenedModuleIndex,
5454
detailsOpen,
55+
namespaced,
5556
}) {
5657
const { t } = useTranslation();
5758
const [
@@ -60,7 +61,7 @@ export default function KymaModulesList({
6061
] = useState(false);
6162
const setLayoutColumn = useSetRecoilState(columnLayoutState);
6263
const setIsFormOpen = useSetRecoilState(isFormOpenState);
63-
const { clusterUrl } = useUrl();
64+
const { clusterUrl, namespaceUrl } = useUrl();
6465

6566
const { data: kymaExt } = useGetList(
6667
ext => ext.metadata.labels['app.kubernetes.io/part-of'] === 'Kyma',
@@ -325,27 +326,21 @@ export default function KymaModulesList({
325326
return;
326327
}
327328

328-
const path = moduleStatus?.resource?.metadata?.namespace
329-
? clusterUrl(
330-
`kymamodules/namespaces/${
331-
moduleStatus?.resource?.metadata?.namespace
332-
}/${
333-
isExtension
334-
? `${pluralize(
335-
moduleStatus?.resource?.kind || '',
336-
).toLowerCase()}/${moduleStatus?.resource?.metadata?.name}`
337-
: `${moduleCrd?.metadata?.name}/${moduleStatus?.resource?.metadata?.name}`
338-
}`,
339-
)
340-
: clusterUrl(
341-
`kymamodules/${
342-
isExtension
343-
? `${pluralize(
344-
moduleStatus?.resource?.kind || '',
345-
).toLowerCase()}/${moduleStatus?.resource?.metadata?.name}`
346-
: `${moduleCrd?.metadata?.name}/${moduleStatus?.resource?.metadata?.name}`
347-
}`,
348-
);
329+
const pathName = `${
330+
isExtension
331+
? `${pluralize(moduleStatus?.resource?.kind || '').toLowerCase()}/${
332+
moduleStatus?.resource?.metadata?.name
333+
}`
334+
: `${moduleCrd?.metadata?.name}/${moduleStatus?.resource?.metadata?.name}`
335+
}`;
336+
337+
const partialPath = moduleStatus?.resource?.metadata?.namespace
338+
? `kymamodules/namespaces/${moduleStatus?.resource?.metadata?.namespace}/${pathName}`
339+
: `kymamodules/${pathName}`;
340+
341+
const path = namespaced
342+
? namespaceUrl(partialPath)
343+
: clusterUrl(partialPath);
349344

350345
if (!isExtension) {
351346
setLayoutColumn({

src/resources/other/kymaModules.routes.js

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,18 @@ const KymaModulesAddModule = React.lazy(() =>
2424
import('../../components/KymaModules/KymaModulesAddModule'),
2525
);
2626

27-
const ColumnWraper = (defaultColumn = 'list') => {
27+
const ColumnWraper = ({ defaultColumn = 'list', namespaced = false }) => {
2828
const [layoutState, setLayoutColumn] = useRecoilState(columnLayoutState);
29-
const { clusterUrl } = useUrl();
29+
const { clusterUrl, namespaceUrl } = useUrl();
3030
const layout = 'OneColumn';
31+
const url = namespaced
32+
? namespaceUrl('kymamodules')
33+
: clusterUrl('kymamodules');
3134

3235
if (layoutState.layout === layout) {
33-
window.history.pushState(
34-
window.history.state,
35-
'',
36-
`${clusterUrl('kymamodules')}`,
37-
);
36+
window.history.pushState(window.history.state, '', url);
3837
}
38+
3939
const { resourceName, resourceType, namespace } = useParams();
4040

4141
const initialLayoutState = {
@@ -145,7 +145,7 @@ const ColumnWraper = (defaultColumn = 'list') => {
145145
if (!layout && defaultColumn === 'details') {
146146
startColumnComponent = (
147147
<ExtensibilityDetails
148-
layoutCloseCreateUrl={clusterUrl('kymamodules')}
148+
layoutCloseCreateUrl={url}
149149
resourceName={layoutState?.midColumn?.resourceName || resourceName}
150150
resourceType={layoutState?.midColumn?.resourceType || resourceType}
151151
namespaceId={
@@ -175,6 +175,7 @@ const ColumnWraper = (defaultColumn = 'list') => {
175175
selectedModules={selectedModules}
176176
setOpenedModuleIndex={setOpenedModuleIndex}
177177
detailsOpen={detailsOpen}
178+
namespaced={namespaced}
178179
/>
179180
);
180181
}
@@ -183,7 +184,7 @@ const ColumnWraper = (defaultColumn = 'list') => {
183184
if (!layoutState?.showCreate && layoutState?.midColumn) {
184185
detailsMidColumn = (
185186
<ExtensibilityDetails
186-
layoutCloseCreateUrl={clusterUrl('kymamodules')}
187+
layoutCloseCreateUrl={url}
187188
resourceName={layoutState?.midColumn?.resourceName || resourceName}
188189
resourceType={layoutState?.midColumn?.resourceType || resourceType}
189190
namespaceId={
@@ -202,7 +203,7 @@ const ColumnWraper = (defaultColumn = 'list') => {
202203
<ResourceCreate
203204
title={t('kyma-modules.add-module')}
204205
confirmText={t('common.buttons.add')}
205-
layoutCloseCreateUrl={clusterUrl('kymamodules')}
206+
layoutCloseCreateUrl={url}
206207
renderForm={renderProps => {
207208
return (
208209
<ErrorBoundary>
@@ -263,5 +264,21 @@ export default (
263264
path="kymamodules/:resourceType/:resourceName"
264265
element={<ColumnWraper defaultColumn="details" />}
265266
/>
267+
<Route
268+
path={'namespaces/:globalnamespace/kymamodules'}
269+
element={
270+
<Suspense fallback={<Spinner />}>
271+
<ColumnWraper namespaced={true} />
272+
</Suspense>
273+
}
274+
/>
275+
<Route
276+
path="namespaces/:globalnamespace/kymamodules/namespaces/:namespace/:resourceType/:resourceName"
277+
element={<ColumnWraper defaultColumn="details" namespaced={true} />}
278+
/>
279+
<Route
280+
path="namespaces/:globalnamespace/kymamodules/:resourceType/:resourceName"
281+
element={<ColumnWraper defaultColumn="details" namespaced={true} />}
282+
/>
266283
</>
267284
);

src/state/navigation/addAdditionalNodes.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { namespaceOverviewNode } from 'resources/Namespaces/namespaceOverviewNod
1111
import * as secretMetadata from 'resources/Secrets';
1212
import * as crdMetadata from 'resources/CustomResourceDefinitions';
1313
import * as cmMetadata from 'resources/ConfigMaps';
14+
1415
import { kymaModulesNavNode } from 'components/KymaModules/kymaModulesNode';
1516

1617
export const addAdditionalNodes = (
@@ -29,11 +30,20 @@ export const addAdditionalNodes = (
2930
extensionsNavNode,
3031
configFeatures,
3132
);
33+
3234
const cmIndex = findResourceIndex(cm, navNodes) + 1;
33-
if (isExtEnabled && cmIndex && scope === 'cluster') {
34-
addResource(extensionsNavNode, extNavList.length, extNavList);
35+
if (isExtEnabled && cmIndex) {
36+
if (scope === 'cluster') {
37+
addResource(extensionsNavNode, extNavList.length, extNavList);
38+
}
3539
if (kymaResources) {
36-
addResource(kymaModulesNavNode, extNavList.length, extNavList);
40+
addResource(
41+
scope === 'cluster'
42+
? kymaModulesNavNode
43+
: { ...kymaModulesNavNode, namespaced: true },
44+
extNavList.length,
45+
extNavList,
46+
);
3747
}
3848
}
3949

0 commit comments

Comments
 (0)