Skip to content

Commit 6efdc3d

Browse files
committed
have single map of resources instead of multiple types
1 parent 6cb920c commit 6efdc3d

9 files changed

Lines changed: 52 additions & 94 deletions

File tree

broker/machinebroker/server/status.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -80,25 +80,18 @@ func (s *Server) filterIronCoreMachineClasses(
8080
}
8181

8282
func (s *Server) convertIronCoreMachineClassStatus(machineClass *computev1alpha1.MachineClass, quantity *resource.Quantity) *iri.MachineClassStatus {
83-
cpu := machineClass.Capabilities.CPU()
84-
memory := machineClass.Capabilities.Memory()
85-
86-
additionalResources := map[string]int64{}
83+
resources := map[string]int64{}
8784
resourceList := machineClass.Capabilities
8885

8986
for resource, quantity := range resourceList {
90-
if string(resource) != string(corev1alpha1.ResourceCPU) && string(resource) != string(corev1alpha1.ResourceMemory) {
91-
additionalResources[string(resource)] = quantity.Value()
92-
}
87+
resources[string(resource)] = quantity.Value()
9388
}
9489

9590
return &iri.MachineClassStatus{
9691
MachineClass: &iri.MachineClass{
9792
Name: machineClass.Name,
9893
Capabilities: &iri.MachineClassCapabilities{
99-
CpuMillis: cpu.MilliValue(),
100-
MemoryBytes: memory.Value(),
101-
AdditionalResources: additionalResources,
94+
Resources: resources,
10295
},
10396
},
10497
Quantity: quantity.Value(),

iri/apis/machine/v1alpha1/api.pb.go

Lines changed: 12 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

iri/apis/machine/v1alpha1/api.proto

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ message EventFilter {
4646
}
4747

4848
message MachineClassCapabilities {
49-
int64 cpu_millis = 1;
50-
int64 memory_bytes = 2;
51-
map<string, int64> additional_resources = 3;
49+
map<string, int64> resources = 1;
5250
}
5351

5452
message Machine {

irictl-machine/tableconverters/status.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package tableconverters
55

66
import (
7+
corev1alpha1 "github.com/ironcore-dev/ironcore/api/core/v1alpha1"
78
iri "github.com/ironcore-dev/ironcore/iri/apis/machine/v1alpha1"
89
"github.com/ironcore-dev/ironcore/irictl/api"
910
"github.com/ironcore-dev/ironcore/irictl/tableconverter"
@@ -23,8 +24,8 @@ var (
2324
Rows: tableconverter.SingleRowFrom(func(status *iri.MachineClassStatus) (api.Row, error) {
2425
return api.Row{
2526
status.MachineClass.Name,
26-
resource.NewMilliQuantity(status.MachineClass.Capabilities.CpuMillis, resource.DecimalSI).String(),
27-
resource.NewQuantity(status.MachineClass.Capabilities.MemoryBytes, resource.DecimalSI).String(),
27+
resource.NewMilliQuantity(status.MachineClass.Capabilities.Resources[string(corev1alpha1.ResourceCPU)], resource.DecimalSI).String(),
28+
resource.NewQuantity(status.MachineClass.Capabilities.Resources[string(corev1alpha1.ResourceMemory)], resource.DecimalSI).String(),
2829
resource.NewQuantity(status.Quantity, resource.DecimalSI).String(),
2930
}, nil
3031
}),

poollet/machinepoollet/controllers/controllers_suite_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,10 @@ func SetupTest() (*corev1.Namespace, *computev1alpha1.MachinePool, *computev1alp
189189
MachineClass: &iri.MachineClass{
190190
Name: mc.Name,
191191
Capabilities: &iri.MachineClassCapabilities{
192-
CpuMillis: mc.Capabilities.CPU().MilliValue(),
193-
MemoryBytes: mc.Capabilities.Memory().Value(),
192+
Resources: map[string]int64{
193+
"cpu": mc.Capabilities.CPU().Value(),
194+
"memory": mc.Capabilities.Memory().Value(),
195+
},
194196
},
195197
},
196198
},

poollet/machinepoollet/controllers/machine_controller.go

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import (
1616

1717
commonv1alpha1 "github.com/ironcore-dev/ironcore/api/common/v1alpha1"
1818
computev1alpha1 "github.com/ironcore-dev/ironcore/api/compute/v1alpha1"
19-
corev1alpha1 "github.com/ironcore-dev/ironcore/api/core/v1alpha1"
2019
networkingv1alpha1 "github.com/ironcore-dev/ironcore/api/networking/v1alpha1"
2120
storagev1alpha1 "github.com/ironcore-dev/ironcore/api/storage/v1alpha1"
2221
irimachine "github.com/ironcore-dev/ironcore/iri/apis/machine"
@@ -718,22 +717,15 @@ func (r *MachineReconciler) prepareIRIMachineClass(ctx context.Context, machine
718717
}
719718

720719
func getIRIMachineClassCapabilities(machineClass *computev1alpha1.MachineClass) *iri.MachineClassCapabilities {
721-
cpu := machineClass.Capabilities.CPU()
722-
memory := machineClass.Capabilities.Memory()
723-
724-
additionalResources := map[string]int64{}
720+
resources := map[string]int64{}
725721
resourceList := machineClass.Capabilities
726722

727723
for resource, quantity := range resourceList {
728-
if string(resource) != string(corev1alpha1.ResourceCPU) && string(resource) != string(corev1alpha1.ResourceMemory) {
729-
additionalResources[string(resource)] = quantity.Value()
730-
}
724+
resources[string(resource)] = quantity.Value()
731725
}
732726

733727
return &iri.MachineClassCapabilities{
734-
CpuMillis: cpu.MilliValue(),
735-
MemoryBytes: memory.Value(),
736-
AdditionalResources: additionalResources,
728+
Resources: resources,
737729
}
738730
}
739731

poollet/machinepoollet/controllers/machinepool_controller_test.go

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ var _ = Describe("MachinePoolController", func() {
4343
MachineClass: &iri.MachineClass{
4444
Name: machineClass.Name,
4545
Capabilities: &iri.MachineClassCapabilities{
46-
CpuMillis: machineClass.Capabilities.CPU().MilliValue(),
47-
MemoryBytes: machineClass.Capabilities.Memory().Value(),
46+
Resources: map[string]int64{
47+
"cpu": machineClass.Capabilities.CPU().Value(),
48+
"memory": machineClass.Capabilities.Memory().Value(),
49+
},
4850
},
4951
},
5052
Quantity: machineClassCapacity,
@@ -55,8 +57,10 @@ var _ = Describe("MachinePoolController", func() {
5557
MachineClass: &iri.MachineClass{
5658
Name: machineClass2.Name,
5759
Capabilities: &iri.MachineClassCapabilities{
58-
CpuMillis: machineClass2.Capabilities.CPU().MilliValue(),
59-
MemoryBytes: machineClass2.Capabilities.Memory().Value(),
60+
Resources: map[string]int64{
61+
"cpu": machineClass2.Capabilities.CPU().Value(),
62+
"memory": machineClass2.Capabilities.Memory().Value(),
63+
},
6064
},
6165
},
6266
Quantity: machineClass2Capacity,
@@ -151,9 +155,9 @@ var _ = Describe("MachinePoolController", func() {
151155
MachineClass: &iri.MachineClass{
152156
Name: machineClass.Name,
153157
Capabilities: &iri.MachineClassCapabilities{
154-
CpuMillis: machineClass.Capabilities.CPU().MilliValue(),
155-
MemoryBytes: machineClass.Capabilities.Memory().Value(),
156-
AdditionalResources: map[string]int64{
158+
Resources: map[string]int64{
159+
"cpu": machineClass.Capabilities.CPU().Value(),
160+
"memory": machineClass.Capabilities.Memory().Value(),
157161
"type-a.vendor.com/gpu": 1,
158162
},
159163
},
@@ -193,9 +197,9 @@ var _ = Describe("MachinePoolController", func() {
193197
MachineClass: &iri.MachineClass{
194198
Name: machineClass.Name,
195199
Capabilities: &iri.MachineClassCapabilities{
196-
CpuMillis: machineClass.Capabilities.CPU().MilliValue(),
197-
MemoryBytes: machineClass.Capabilities.Memory().Value(),
198-
AdditionalResources: map[string]int64{
200+
Resources: map[string]int64{
201+
"cpu": machineClass.Capabilities.CPU().Value(),
202+
"memory": machineClass.Capabilities.Memory().Value(),
199203
"type-a.vendor.com/gpu": 1,
200204
},
201205
},
@@ -207,8 +211,10 @@ var _ = Describe("MachinePoolController", func() {
207211
MachineClass: &iri.MachineClass{
208212
Name: machineClass2.Name,
209213
Capabilities: &iri.MachineClassCapabilities{
210-
CpuMillis: machineClass2.Capabilities.CPU().MilliValue(),
211-
MemoryBytes: machineClass2.Capabilities.Memory().Value(),
214+
Resources: map[string]int64{
215+
"cpu": machineClass2.Capabilities.CPU().Value(),
216+
"memory": machineClass2.Capabilities.Memory().Value(),
217+
},
212218
},
213219
},
214220
},

poollet/machinepoollet/mcm/generic.go

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,25 +21,8 @@ import (
2121
ctrl "sigs.k8s.io/controller-runtime"
2222
)
2323

24-
const (
25-
CpuMillis = "cpuMillis"
26-
MemoryBytes = "memoryBytes"
27-
)
28-
2924
type capabilities map[string]int64
3025

31-
func getAllCapabilities(iriCaps *iri.MachineClassCapabilities) capabilities {
32-
33-
capabilities := capabilities{
34-
CpuMillis: iriCaps.CpuMillis,
35-
MemoryBytes: iriCaps.MemoryBytes,
36-
}
37-
38-
maps.Copy(capabilities, iriCaps.AdditionalResources)
39-
40-
return capabilities
41-
}
42-
4326
func getMachineClassByCapabilities(machineClassByCapabilities map[*iri.MachineClassStatus]capabilities, capabilities capabilities) []*iri.MachineClassStatus {
4427
matchingMachineClasses := []*iri.MachineClassStatus{}
4528
for machineClass, machineClassCapabilities := range machineClassByCapabilities {
@@ -123,7 +106,7 @@ func (g *Generic) relist(ctx context.Context, log logr.Logger) error {
123106
notify = notify || shouldNotify(oldMachineClassByName, machineClassStatus)
124107

125108
g.machineClassByName[machineClass.Name] = machineClassStatus
126-
g.machineClassByCapabilities[machineClassStatus] = getAllCapabilities(machineClass.Capabilities)
109+
g.machineClassByCapabilities[machineClassStatus] = machineClass.Capabilities.Resources
127110
}
128111

129112
if notify {
@@ -136,7 +119,7 @@ func (g *Generic) relist(ctx context.Context, log logr.Logger) error {
136119
for _, machineClassStatus := range res.MachineClassStatus {
137120
machineClass := machineClassStatus.GetMachineClass()
138121
g.machineClassByName[machineClass.Name] = machineClassStatus
139-
g.machineClassByCapabilities[machineClassStatus] = getAllCapabilities(machineClass.Capabilities)
122+
g.machineClassByCapabilities[machineClassStatus] = machineClass.Capabilities.Resources
140123
}
141124

142125
if !g.sync {
@@ -161,8 +144,8 @@ func (g *Generic) GetMachineClassFor(ctx context.Context, name string, caps *iri
161144
g.mu.RLock()
162145
defer g.mu.RUnlock()
163146

164-
expected := getAllCapabilities(caps)
165-
if byName, ok := g.machineClassByName[name]; ok && reflect.DeepEqual(getAllCapabilities(byName.MachineClass.Capabilities), expected) {
147+
expected := caps.Resources
148+
if byName, ok := g.machineClassByName[name]; ok && reflect.DeepEqual(byName.MachineClass.Capabilities.Resources, expected) {
166149
return byName.MachineClass, byName.Quantity, nil
167150
}
168151

poollet/machinepoollet/mem/mem_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@ var _ = Describe("MachineEventMapper", func() {
4242
MachineClass: &iri.MachineClass{
4343
Name: mc.Name,
4444
Capabilities: &iri.MachineClassCapabilities{
45-
CpuMillis: mc.Capabilities.CPU().MilliValue(),
46-
MemoryBytes: mc.Capabilities.Memory().Value(),
45+
Resources: map[string]int64{
46+
"cpu": mc.Capabilities.CPU().Value(),
47+
"memory": mc.Capabilities.Memory().Value(),
48+
},
4749
},
4850
},
4951
},

0 commit comments

Comments
 (0)