Skip to content

Commit 38e10d3

Browse files
committed
Add RayService interpreter
Signed-off-by: seanlaii <qazwsx0939059006@gmail.com>
1 parent 2dac564 commit 38e10d3

File tree

9 files changed

+2224
-166
lines changed

9 files changed

+2224
-166
lines changed

pkg/resourceinterpreter/default/thirdparty/resourcecustomizations/ray.io/v1/RayCluster/customizations.yaml

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,9 @@ spec:
7676
return headPodReady and clusterProvisioned and not replicaFailure
7777
end
7878
statusAggregation:
79-
luaScript: >
79+
luaScript: |
80+
local kube = require("kube")
81+
8082
function AggregateStatus(desiredObj, statusItems)
8183
if statusItems == nil then
8284
return desiredObj
@@ -85,6 +87,8 @@ spec:
8587
desiredObj.status = {}
8688
end
8789
90+
desiredObj.spec = nil
91+
8892
-- If only one item, use it directly
8993
if #statusItems == 1 then
9094
desiredObj.status = statusItems[1].status
@@ -98,9 +102,9 @@ spec:
98102
local maxWorkerReplicas = 0
99103
local minWorkerReplicas = 0
100104
local desiredWorkerReplicas = 0
101-
local desiredCPU = 0
105+
local desiredCPU = "0"
102106
local desiredGPU = 0
103-
local desiredMemory = 0
107+
local desiredMemory = "0"
104108
local desiredTPU = 0
105109
local lastUpdateTime = nil
106110
local endpoints = nil
@@ -136,22 +140,19 @@ spec:
136140
desiredWorkerReplicas = desiredWorkerReplicas + currentStatus.desiredWorkerReplicas
137141
end
138142
139-
-- Sum resource quantities (stored as numeric strings like "2", "4", etc.)
143+
-- Sum resource quantities using kube library
140144
if currentStatus.desiredCPU ~= nil and currentStatus.desiredCPU ~= "" then
141-
desiredCPU = desiredCPU + tonumber(currentStatus.desiredCPU)
145+
desiredCPU = kube.resourceAdd(desiredCPU, currentStatus.desiredCPU)
142146
end
143147
if currentStatus.desiredGPU ~= nil and currentStatus.desiredGPU ~= "" then
144148
desiredGPU = desiredGPU + tonumber(currentStatus.desiredGPU)
145149
end
146150
if currentStatus.desiredTPU ~= nil and currentStatus.desiredTPU ~= "" then
147151
desiredTPU = desiredTPU + tonumber(currentStatus.desiredTPU)
148152
end
149-
-- For memory, parse numeric part (e.g., "3G" -> 3)
153+
-- Sum memory quantities using kube library
150154
if currentStatus.desiredMemory ~= nil and currentStatus.desiredMemory ~= "" then
151-
local memNum = tonumber(string.match(currentStatus.desiredMemory, "%d+"))
152-
if memNum ~= nil then
153-
desiredMemory = desiredMemory + memNum
154-
end
155+
desiredMemory = kube.resourceAdd(desiredMemory, currentStatus.desiredMemory)
155156
end
156157
157158
-- Take the most recent lastUpdateTime
@@ -184,13 +185,10 @@ spec:
184185
desiredObj.status.maxWorkerReplicas = maxWorkerReplicas
185186
desiredObj.status.minWorkerReplicas = minWorkerReplicas
186187
desiredObj.status.desiredWorkerReplicas = desiredWorkerReplicas
187-
desiredObj.status.desiredCPU = tostring(desiredCPU)
188+
desiredObj.status.desiredCPU = desiredCPU
188189
desiredObj.status.desiredGPU = tostring(desiredGPU)
189190
desiredObj.status.desiredTPU = tostring(desiredTPU)
190-
-- Reconstruct memory with unit suffix
191-
if desiredMemory > 0 then
192-
desiredObj.status.desiredMemory = tostring(desiredMemory) .. "G"
193-
end
191+
desiredObj.status.desiredMemory = desiredMemory
194192
desiredObj.status.lastUpdateTime = lastUpdateTime
195193
desiredObj.status.endpoints = endpoints
196194
desiredObj.status.head = head

0 commit comments

Comments
 (0)