@@ -4,67 +4,28 @@ import {
44 SectionFilterHeader ,
55 ShowHideLabel ,
66} from '@kinvolk/headlamp-plugin/lib/components/common' ;
7- import { KubeObjectClass } from '@kinvolk/headlamp-plugin/lib/lib/k8s/cluster' ;
8- import { makeCustomResourceClass } from '@kinvolk/headlamp-plugin/lib/lib/k8s/crd' ;
97import { useFilterFunc } from '@kinvolk/headlamp-plugin/lib/Utils' ;
108import React from 'react' ;
119import YAML from 'yaml' ;
1210import { NotSupported } from '../checkflux' ;
1311import SourceLink from '../common/Link' ;
12+ import { ImagePolicy , ImageRepository , ImageUpdateAutomation } from '../common/Resources' ;
1413import Table from '../common/Table' ;
1514import { NameLink } from '../helpers' ;
1615
17- const imageGroup = 'image.toolkit.fluxcd.io' ;
18- const imageVersion = 'v1beta2' ;
19- export const IMAGE_AUTOMATION_BETA_VERSION = 'v1beta2' ;
20-
21- export function imageRepositoriesClass ( ) {
22- return makeCustomResourceClass ( {
23- apiInfo : [ { group : imageGroup , version : imageVersion } ] ,
24- isNamespaced : true ,
25- singularName : 'ImageRepository' ,
26- pluralName : 'imagerepositories' ,
27- } ) ;
28- }
29-
30- export function imagePolicyClass ( ) {
31- return makeCustomResourceClass ( {
32- apiInfo : [ { group : imageGroup , version : imageVersion } ] ,
33- isNamespaced : true ,
34- singularName : 'ImagePolicy' ,
35- pluralName : 'imagepolicies' ,
36- } ) ;
37- }
38-
39- export function imageUpdateAutomationClass ( ) : KubeObjectClass {
40- return makeCustomResourceClass ( {
41- apiInfo : [
42- { group : imageGroup , version : imageVersion } ,
43- { group : imageGroup , version : 'v1beta1' } ,
44- ] ,
45- isNamespaced : true ,
46- singularName : 'ImageUpdateAutomation' ,
47- pluralName : 'imageupdateautomations' ,
48- } ) ;
49- }
50-
5116export function ImageAutomation ( ) {
5217 return (
5318 < >
54- < ImageRepositoryList resourceClass = { imageRepositoriesClass ( ) } />
55- < ImagePolicyList resourceClass = { imagePolicyClass ( ) } />
56- < ImageUpdateAutomationList resourceClass = { imageUpdateAutomationClass ( ) } />
19+ < ImageRepositoryList />
20+ < ImagePolicyList />
21+ < ImageUpdateAutomationList />
5722 </ >
5823 ) ;
5924}
6025
61- function ImageUpdateAutomationList ( props : { resourceClass : KubeObjectClass } ) {
62- const { resourceClass } = props ;
26+ function ImageUpdateAutomationList ( ) {
6327 const filterFunction = useFilterFunc ( ) ;
64- const [ resources , setResources ] = React . useState ( null ) ;
65- const [ error , setError ] = React . useState ( null ) ;
66-
67- resourceClass . useApiList ( setResources , setError ) ;
28+ const [ resources , error ] = ImageUpdateAutomation . useList ( ) ;
6829
6930 if ( error ?. status === 404 ) {
7031 return < NotSupported typeName = "Image Update Automations" /> ;
@@ -75,7 +36,7 @@ function ImageUpdateAutomationList(props: { resourceClass: KubeObjectClass }) {
7536 < Table
7637 data = { resources }
7738 columns = { [
78- NameLink ( resourceClass ) ,
39+ NameLink ( ImageUpdateAutomation ) ,
7940 'namespace' ,
8041 'status' ,
8142 {
@@ -111,13 +72,9 @@ function ImageUpdateAutomationList(props: { resourceClass: KubeObjectClass }) {
11172 ) ;
11273}
11374
114- function ImagePolicyList ( props : { resourceClass : KubeObjectClass } ) {
115- const { resourceClass } = props ;
75+ function ImagePolicyList ( ) {
11676 const filterFunction = useFilterFunc ( ) ;
117- const [ resources , setResources ] = React . useState ( null ) ;
118- const [ error , setError ] = React . useState ( null ) ;
119-
120- resourceClass . useApiList ( setResources , setError ) ;
77+ const [ resources , error ] = ImagePolicy . useList ( ) ;
12178
12279 if ( error ?. status === 404 ) {
12380 return < NotSupported typeName = "Image Update Policies" /> ;
@@ -128,7 +85,7 @@ function ImagePolicyList(props: { resourceClass: KubeObjectClass }) {
12885 < Table
12986 data = { resources }
13087 columns = { [
131- NameLink ( resourceClass ) ,
88+ NameLink ( ImagePolicy ) ,
13289 'namespace' ,
13390 'status' ,
13491 {
@@ -148,13 +105,9 @@ function ImagePolicyList(props: { resourceClass: KubeObjectClass }) {
148105 ) ;
149106}
150107
151- function ImageRepositoryList ( props : { resourceClass : KubeObjectClass } ) {
152- const { resourceClass } = props ;
108+ function ImageRepositoryList ( ) {
153109 const filterFunction = useFilterFunc ( ) ;
154- const [ resources , setResources ] = React . useState ( null ) ;
155- const [ error , setError ] = React . useState ( null ) ;
156-
157- resourceClass . useApiList ( setResources , setError ) ;
110+ const [ resources , error ] = ImageRepository . useList ( ) ;
158111
159112 if ( error ?. status === 404 ) {
160113 return < NotSupported typeName = "Image Repositories" /> ;
@@ -165,7 +118,7 @@ function ImageRepositoryList(props: { resourceClass: KubeObjectClass }) {
165118 < Table
166119 data = { resources }
167120 columns = { [
168- NameLink ( resourceClass ) ,
121+ NameLink ( ImageRepository ) ,
169122 'namespace' ,
170123 'status' ,
171124 {
0 commit comments