Skip to content

Commit c677ea6

Browse files
authored
Merge pull request #110 from mgalesloot/flux-namespace-filter
flux: global namespace filter for HelmReleases and Kustomizations
2 parents 3861271 + b4a05d6 commit c677ea6

File tree

6 files changed

+45
-11
lines changed

6 files changed

+45
-11
lines changed

flux/src/helm-releases/HelmReleaseList.tsx

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { K8s } from '@kinvolk/headlamp-plugin/lib';
2-
import { Loader, SectionBox } from '@kinvolk/headlamp-plugin/lib/components/common';
2+
import {
3+
Loader,
4+
SectionBox,
5+
SectionFilterHeader,
6+
} from '@kinvolk/headlamp-plugin/lib/components/common';
7+
import { useFilterFunc } from '@kinvolk/headlamp-plugin/lib/Utils';
38
import { Link as MuiLink } from '@mui/material';
49
import React from 'react';
510
import CheckIfFluxInstalled, { useFluxControllerAvailableCheck } from '../checkflux';
@@ -52,10 +57,11 @@ function HelmReleasesList({ resourceClass }) {
5257
const [resource] = resourceClass.useList();
5358

5459
return (
55-
<SectionBox title={'Helm Releases'}>
60+
<SectionBox title={<SectionFilterHeader title="Helm Releases" />}>
5661
<Table
5762
data={resource}
5863
defaultSortingColumn={2}
64+
filterFunction={useFilterFunc()}
5965
columns={['name', 'namespace', 'status', 'source', 'revision', 'message', 'lastUpdated']}
6066
/>
6167
</SectionBox>

flux/src/image-automation/ImageAutomationList.tsx

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ import {
44
Link,
55
Loader,
66
SectionBox,
7+
SectionFilterHeader,
78
ShowHideLabel,
89
} from '@kinvolk/headlamp-plugin/lib/components/common';
910
import { KubeObject } from '@kinvolk/headlamp-plugin/lib/lib/k8s/cluster';
11+
import { useFilterFunc } from '@kinvolk/headlamp-plugin/lib/Utils';
1012
import { Link as MuiLink } from '@mui/material';
1113
import React from 'react';
1214
import CheckIfFluxInstalled, { useFluxControllerAvailableCheck } from '../checkflux';
@@ -135,6 +137,7 @@ function ImageUpdateAutomationList(props: { resourceClass: KubeObject }) {
135137
},
136138
'age',
137139
]}
140+
filterFunction={useFilterFunc()}
138141
/>
139142
</SectionBox>
140143
</>
@@ -173,6 +176,7 @@ function ImagePolicyList(props: { resourceClass: KubeObject }) {
173176
},
174177
'age',
175178
]}
179+
filterFunction={useFilterFunc()}
176180
/>
177181
</SectionBox>
178182
);
@@ -183,7 +187,7 @@ function ImageRepositoryList(props: { resourceClass: KubeObject }) {
183187
const [imageRepositories] = resourceClass?.useList();
184188

185189
return (
186-
<SectionBox title="Image Repositories">
190+
<SectionBox title={<SectionFilterHeader title="Image Repositories" />}>
187191
<Table
188192
data={imageRepositories}
189193
columns={[
@@ -234,6 +238,7 @@ function ImageRepositoryList(props: { resourceClass: KubeObject }) {
234238
},
235239
'age',
236240
]}
241+
filterFunction={useFilterFunc()}
237242
/>
238243
</SectionBox>
239244
);

flux/src/kustomizations/KustomizationList.tsx

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { K8s } from '@kinvolk/headlamp-plugin/lib';
2-
import { Loader, SectionBox } from '@kinvolk/headlamp-plugin/lib/components/common';
2+
import {
3+
Loader,
4+
SectionBox,
5+
SectionFilterHeader,
6+
} from '@kinvolk/headlamp-plugin/lib/components/common';
7+
import { useFilterFunc } from '@kinvolk/headlamp-plugin/lib/Utils';
38
import MuiLink from '@mui/material/Link';
49
import React from 'react';
510
import CheckIfFluxInstalled, { useFluxControllerAvailableCheck } from '../checkflux';
@@ -55,10 +60,11 @@ function KustomizationList({ resourceClass }) {
5560
const [resource] = resourceClass.useList();
5661

5762
return (
58-
<SectionBox title={'Kustomizations'}>
63+
<SectionBox title={<SectionFilterHeader title="Kustomizations" />}>
5964
<Table
6065
data={resource}
6166
defaultSortingColumn={2}
67+
filterFunction={useFilterFunc()}
6268
columns={['name', 'namespace', 'status', 'source', 'revision', 'message', 'lastUpdated']}
6369
/>
6470
</SectionBox>

flux/src/notifications/NotificationList.tsx

+11-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import { K8s } from '@kinvolk/headlamp-plugin/lib';
2-
import { Link, Loader, SectionBox } from '@kinvolk/headlamp-plugin/lib/components/common';
2+
import {
3+
Link,
4+
Loader,
5+
SectionBox,
6+
SectionFilterHeader,
7+
} from '@kinvolk/headlamp-plugin/lib/components/common';
8+
import { useFilterFunc } from '@kinvolk/headlamp-plugin/lib/Utils';
39
import { Box, Link as MuiLink } from '@mui/material';
410
import React from 'react';
511
import CheckIfFluxInstalled, { useFluxControllerAvailableCheck } from '../checkflux';
@@ -70,7 +76,7 @@ function Alerts(props) {
7076
const { resourceClass } = props;
7177
const [alerts] = resourceClass?.useList();
7278
return (
73-
<SectionBox title="Alerts">
79+
<SectionBox title={<SectionFilterHeader title="Alerts" />}>
7480
<Table
7581
data={alerts}
7682
columns={[
@@ -123,6 +129,7 @@ function Alerts(props) {
123129
accessorFn: item => item?.jsonData?.spec.summary,
124130
},
125131
]}
132+
filterFunction={useFilterFunc()}
126133
/>
127134
</SectionBox>
128135
);
@@ -201,6 +208,7 @@ function Providers(props) {
201208
accessorFn: item => item.jsonData.spec.proxy || '-',
202209
},
203210
]}
211+
filterFunction={useFilterFunc()}
204212
/>
205213
</SectionBox>
206214
);
@@ -278,6 +286,7 @@ function Receivers(props) {
278286
),
279287
},
280288
]}
289+
filterFunction={useFilterFunc()}
281290
/>
282291
</SectionBox>
283292
);

flux/src/sources/SourceCustomResourceSingle.tsx

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { Link, SectionBox } from '@kinvolk/headlamp-plugin/lib/components/common';
22
import { KubeObject } from '@kinvolk/headlamp-plugin/lib/lib/k8s/cluster';
33
import { KubeCRD } from '@kinvolk/headlamp-plugin/lib/lib/k8s/crd';
4+
import { useFilterFunc } from '@kinvolk/headlamp-plugin/lib/Utils';
45
import React from 'react';
56
import SourceLink from '../common/Link';
67
import Table, { TableProps } from '../common/Table';
78

89
interface FluxSourceCustomResourceProps {
910
crd: KubeCRD;
10-
title?: string;
11+
title?: string | JSX.Element;
1112
}
1213

1314
export default function FluxSourceCustomResource(props: FluxSourceCustomResourceProps) {
@@ -31,7 +32,7 @@ export default function FluxSourceCustomResource(props: FluxSourceCustomResource
3132

3233
interface FluxSourceCustomResourceRendererProps {
3334
resourceClass: KubeObject;
34-
title: string;
35+
title: string | JSX.Element;
3536
type: string;
3637
}
3738

@@ -130,9 +131,15 @@ function FluxSourceCustomResourceRenderer(props: FluxSourceCustomResourceRendere
130131
});
131132
}
132133

134+
console.log(title);
133135
return (
134136
<SectionBox title={title}>
135-
<Table data={resource} columns={columns} defaultSortingColumn={3} />
137+
<Table
138+
data={resource}
139+
columns={columns}
140+
defaultSortingColumn={3}
141+
filterFunction={useFilterFunc()}
142+
/>
136143
</SectionBox>
137144
);
138145
}

flux/src/sources/SourceList.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { K8s } from '@kinvolk/headlamp-plugin/lib';
2+
import { SectionFilterHeader } from '@kinvolk/headlamp-plugin/lib/components/common';
23
import CheckIfFluxInstalled from '../checkflux';
34
import FluxSourceCustomResource from './SourceCustomResourceSingle';
45

@@ -21,7 +22,7 @@ export default function FluxSources() {
2122

2223
const sourceTables = [
2324
{
24-
title: 'Git Repositories',
25+
title: <SectionFilterHeader title={'Git Repositories'} />,
2526
crd: gitRepoCRD,
2627
},
2728
{

0 commit comments

Comments
 (0)