Skip to content

Commit

Permalink
added architecture field in machine class node template
Browse files Browse the repository at this point in the history
  • Loading branch information
sssash18 committed Jul 26, 2024
1 parent ce202bd commit 2cdaa8c
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 9 deletions.
1 change: 1 addition & 0 deletions charts/internal/machineclass/templates/machineclass.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ metadata:
{{- end }}
{{- if $machineClass.nodeTemplate }}
nodeTemplate:
architecture: {{ $machineClass.nodeTemplate.architecture }}
capacity:
{{ toYaml $machineClass.nodeTemplate.capacity | indent 4 }}
instanceType: {{ $machineClass.nodeTemplate.instanceType }}
Expand Down
1 change: 1 addition & 0 deletions charts/internal/machineclass/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
# imageID: coreos_1745_7_0_64_30G_alibase_20180705.vhd
# instanceType: ecs.n1.medium
# nodeTemplate:
# architecture: amd64
# capacity:
# cpu: 2
# gpu: 0
Expand Down
3 changes: 3 additions & 0 deletions pkg/controller/worker/machines.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ package worker
import (
"context"
"fmt"
"k8s.io/utils/ptr"
"path/filepath"
"strconv"

Expand Down Expand Up @@ -161,11 +162,13 @@ func (w *workerDelegate) generateMachineConfig(ctx context.Context) error {
})

if pool.NodeTemplate != nil {
arch := ptr.Deref(pool.Architecture, v1beta1constants.ArchitectureAMD64)
machineClassSpec["nodeTemplate"] = machinev1alpha1.NodeTemplate{
Capacity: pool.NodeTemplate.Capacity,
InstanceType: pool.MachineType,
Region: w.worker.Spec.Region,
Zone: zone,
Architecture: ptr.To(arch),
}
}

Expand Down
43 changes: 34 additions & 9 deletions pkg/controller/worker/machines_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,9 @@ var _ = Describe("Machines", func() {
internetMaxBandwidthOut int
spotStrategy string

archAMD string
archARM string

machineType string
userData []byte
userDataSecretName string
Expand Down Expand Up @@ -118,9 +121,11 @@ var _ = Describe("Machines", func() {
zone1 string
zone2 string

nodeCapacity corev1.ResourceList
nodeTemplateZone1 machinev1alpha1.NodeTemplate
nodeTemplateZone2 machinev1alpha1.NodeTemplate
nodeCapacity corev1.ResourceList
nodeTemplatePool1Zone1 machinev1alpha1.NodeTemplate
nodeTemplatePool1Zone2 machinev1alpha1.NodeTemplate
nodeTemplatePool2Zone1 machinev1alpha1.NodeTemplate
nodeTemplatePool2Zone2 machinev1alpha1.NodeTemplate

machineConfiguration *machinev1alpha1.MachineConfiguration

Expand Down Expand Up @@ -152,6 +157,8 @@ var _ = Describe("Machines", func() {
internetMaxBandwidthOut = 5
spotStrategy = "NoSpot"

archAMD = "amd64"
archARM = "arm64"
machineType = "large"
userData = []byte("some-user-data")
userDataSecretName = "userdata-secret-name"
Expand Down Expand Up @@ -192,20 +199,36 @@ var _ = Describe("Machines", func() {
"gpu": resource.MustParse("1"),
"memory": resource.MustParse("128Gi"),
}
nodeTemplateZone1 = machinev1alpha1.NodeTemplate{
nodeTemplatePool1Zone1 = machinev1alpha1.NodeTemplate{
Capacity: nodeCapacity,
InstanceType: machineType,
Region: region,
Zone: zone1,
Architecture: ptr.To(archAMD),
}

nodeTemplateZone2 = machinev1alpha1.NodeTemplate{
nodeTemplatePool1Zone2 = machinev1alpha1.NodeTemplate{
Capacity: nodeCapacity,
InstanceType: machineType,
Region: region,
Zone: zone2,
Architecture: ptr.To(archAMD),
}
nodeTemplatePool2Zone1 = machinev1alpha1.NodeTemplate{
Capacity: nodeCapacity,
InstanceType: machineType,
Region: region,
Zone: zone1,
Architecture: ptr.To(archARM),
}

nodeTemplatePool2Zone2 = machinev1alpha1.NodeTemplate{
Capacity: nodeCapacity,
InstanceType: machineType,
Region: region,
Zone: zone2,
Architecture: ptr.To(archARM),
}
machineConfiguration = &machinev1alpha1.MachineConfiguration{}

shootVersionMajorMinor = "1.2"
Expand Down Expand Up @@ -306,6 +329,7 @@ var _ = Describe("Machines", func() {
Minimum: minPool1,
Maximum: maxPool1,
MaxSurge: maxSurgePool1,
Architecture: ptr.To(archAMD),
MaxUnavailable: maxUnavailablePool1,
MachineType: machineType,
NodeTemplate: &extensionsv1alpha1.NodeTemplate{
Expand Down Expand Up @@ -348,6 +372,7 @@ var _ = Describe("Machines", func() {
Maximum: maxPool2,
MaxSurge: maxSurgePool2,
MaxUnavailable: maxUnavailablePool2,
Architecture: ptr.To(archARM),
MachineType: machineType,
NodeTemplate: &extensionsv1alpha1.NodeTemplate{
Capacity: nodeCapacity,
Expand Down Expand Up @@ -489,10 +514,10 @@ var _ = Describe("Machines", func() {
addNameAndSecretToMachineClass(machineClassPool2Zone1, machineClassWithHashPool2Zone1, w.Spec.SecretRef)
addNameAndSecretToMachineClass(machineClassPool2Zone2, machineClassWithHashPool2Zone2, w.Spec.SecretRef)

addNodeTemplateToMachineClass(machineClassPool1Zone1, nodeTemplateZone1)
addNodeTemplateToMachineClass(machineClassPool1Zone2, nodeTemplateZone2)
addNodeTemplateToMachineClass(machineClassPool2Zone1, nodeTemplateZone1)
addNodeTemplateToMachineClass(machineClassPool2Zone2, nodeTemplateZone2)
addNodeTemplateToMachineClass(machineClassPool1Zone1, nodeTemplatePool1Zone1)
addNodeTemplateToMachineClass(machineClassPool1Zone2, nodeTemplatePool1Zone2)
addNodeTemplateToMachineClass(machineClassPool2Zone1, nodeTemplatePool2Zone1)
addNodeTemplateToMachineClass(machineClassPool2Zone2, nodeTemplatePool2Zone2)

machineClasses = map[string]interface{}{"machineClasses": []map[string]interface{}{
machineClassPool1Zone1,
Expand Down

0 comments on commit 2cdaa8c

Please sign in to comment.