@@ -3,30 +3,34 @@ export default function toK8sResource(
33 type : 'cpu' | 'memory'
44) : string {
55 if ( val === undefined || val === null || val === '' ) return type === 'cpu' ? '0m' : '0Mi' ;
6+
7+ // Frontend/base units:
8+ // - CPU is provided in millicores (m)
9+ // - Memory is provided in megabytes (MB ~ MiB)
610 if ( typeof val === 'number' ) {
711 if ( type === 'cpu' ) {
8- // CPU is in cores (e.g., 0.25 = 250m, 1 = 1000m)
9- if ( val < 1 ) return `${ Math . round ( val * 1000 ) } m` ;
10- return `${ Math . round ( val * 1000 ) } m` ;
12+ // CPU already in millicores
13+ return `${ Math . round ( val ) } m` ;
1114 }
1215 if ( type === 'memory' ) {
13- // Memory is in bytes, convert to MiB for K8s
14- return `${ Math . round ( val / ( 1024 * 1024 ) ) } Mi` ;
16+ // Memory already in MB -> use Mi in K8s
17+ return `${ Math . round ( val ) } Mi` ;
1518 }
1619 }
20+
1721 if ( typeof val === 'string' ) {
18- // If already ends with m, Mi, Gi, etc., return as is
22+ // If already ends with appropriate unit, return as- is
1923 if ( type === 'cpu' && / m $ / . test ( val ) ) return val ;
2024 if ( type === 'memory' && / ( M i | G i ) $ / . test ( val ) ) return val ;
21- // If it's a plain number string, parse and convert
25+
26+ // If it's a plain number string, interpret using base units above
2227 const numVal = parseFloat ( val ) ;
2328 if ( ! isNaN ( numVal ) ) {
24- if ( type === 'cpu' ) {
25- return `${ Math . round ( numVal * 1000 ) } m` ;
26- }
27- return `${ Math . round ( numVal / ( 1024 * 1024 ) ) } Mi` ;
29+ if ( type === 'cpu' ) return `${ Math . round ( numVal ) } m` ;
30+ return `${ Math . round ( numVal ) } Mi` ;
2831 }
2932 return val ;
3033 }
34+
3135 return type === 'cpu' ? '0m' : '0Mi' ;
3236}
0 commit comments