@@ -3,14 +3,37 @@ import { useTranslation } from 'react-i18next';
33import { getGroupVersionKindForResource } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref' ;
44import { useK8sWatchResource } from '@console/internal/components/utils/k8s-watch-hook' ;
55import { ResourceLink } from '@console/internal/components/utils/resource-link' ;
6- import { K8sResourceCommon } from '@console/internal/module/k8s' ;
7- import { getVerticalPodAutoscalerForResource } from '@console/shared/src' ;
6+ import { K8sResourceKind } from '@console/internal/module/k8s' ;
7+ import { getVerticalPodAutoscalersForResource } from '@console/shared/src' ;
8+
9+ const Recommendations : React . FC < VerticalPodAutoscalerRecommendationsProps > = ( { obj } ) => {
10+ const { t } = useTranslation ( ) ;
11+ const recommendations = obj ?. status ?. recommendation ?. containerRecommendations ?? [ ] ;
12+ return (
13+ < >
14+ { recommendations . length > 0 && < p > { t ( 'console-app~Recommended' ) } </ p > }
15+ { recommendations . map ( ( recommendation ) => (
16+ < React . Fragment key = { recommendation . containerName } >
17+ < div >
18+ { t ( 'console-app~Container name' ) } : { recommendation . containerName }
19+ </ div >
20+ < div >
21+ { t ( 'console-app~CPU' ) } : { recommendation . target . cpu }
22+ </ div >
23+ < div >
24+ { t ( 'console-app~Memory' ) } : { recommendation . target . memory }
25+ </ div >
26+ </ React . Fragment >
27+ ) ) }
28+ </ >
29+ ) ;
30+ } ;
831
932export const VerticalPodAutoscalerRecommendations : React . FC < VerticalPodAutoscalerRecommendationsProps > = ( {
1033 obj,
1134} ) => {
1235 const { t } = useTranslation ( ) ;
13- const [ vpas ] = useK8sWatchResource < K8sResourceCommon [ ] > ( {
36+ const [ vpas ] = useK8sWatchResource < K8sResourceKind [ ] > ( {
1437 groupVersionKind : {
1538 group : 'autoscaling.k8s.io' ,
1639 version : 'v1' ,
@@ -21,46 +44,31 @@ export const VerticalPodAutoscalerRecommendations: React.FC<VerticalPodAutoscale
2144 namespaced : true ,
2245 } ) ;
2346
24- const verticalPodAutoscaler = getVerticalPodAutoscalerForResource ( vpas , obj ) ;
25- const recommendations =
26- verticalPodAutoscaler ?. status ?. recommendation ?. containerRecommendations ?? [ ] ;
47+ const verticalPodAutoscalers = getVerticalPodAutoscalersForResource ( vpas , obj ) ;
2748
2849 return (
2950 < >
30- < dt > { t ( 'console-app~VerticalPodAutoscaler ' ) } </ dt >
51+ < dt > { t ( 'console-app~VerticalPodAutoscalers ' ) } </ dt >
3152 < dd >
32- { verticalPodAutoscaler ? (
33- < >
34- < p >
35- < ResourceLink
36- groupVersionKind = { getGroupVersionKindForResource ( verticalPodAutoscaler ) }
37- name = { verticalPodAutoscaler ?. metadata ?. name }
38- namespace = { verticalPodAutoscaler ?. metadata ?. namespace }
39- />
40- </ p >
41- { recommendations . length > 0 && < p > { t ( 'console-app~Recommended' ) } </ p > }
42- { recommendations . map ( ( recommendation ) => (
43- < React . Fragment key = { recommendation . containerName } >
44- < div >
45- { t ( 'console-app~Container name' ) } : { recommendation . containerName }
46- </ div >
47- < div >
48- { t ( 'console-app~CPU' ) } : { recommendation . target . cpu }
49- </ div >
50- < div >
51- { t ( 'console-app~Memory' ) } : { recommendation . target . memory }
52- </ div >
53- </ React . Fragment >
54- ) ) }
55- </ >
56- ) : (
57- t ( 'console-app~No VerticalPodAutoscaler' )
58- ) }
53+ { verticalPodAutoscalers . length > 0
54+ ? verticalPodAutoscalers . map ( ( vpa ) => (
55+ < >
56+ < p >
57+ < ResourceLink
58+ groupVersionKind = { getGroupVersionKindForResource ( vpa ) }
59+ name = { vpa ?. metadata ?. name }
60+ namespace = { vpa ?. metadata ?. namespace }
61+ />
62+ </ p >
63+ < Recommendations obj = { vpa } />
64+ </ >
65+ ) )
66+ : t ( 'console-app~No VerticalPodAutoscalers' ) }
5967 </ dd >
6068 </ >
6169 ) ;
6270} ;
6371
6472type VerticalPodAutoscalerRecommendationsProps = {
65- obj : K8sResourceCommon ;
73+ obj : K8sResourceKind ;
6674} ;
0 commit comments