Skip to content

Commit

Permalink
fix due code review
Browse files Browse the repository at this point in the history
  • Loading branch information
jonasasx committed Jun 22, 2022
1 parent e19625b commit 1c1a4c5
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 18 deletions.
14 changes: 6 additions & 8 deletions pkg/model/gcemodel/autoscalinggroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,12 @@ func (b *AutoscalingGroupModelBuilder) buildInstanceTemplate(c *fi.ModelBuilderC
//}
//t.Labels = labels

if ig.Spec.GuestAccelerators != nil && len(ig.Spec.GuestAccelerators) > 0 {
t.GuestAccelerators = []gcetasks.AcceleratorConfig{}
for _, accelerator := range ig.Spec.GuestAccelerators {
t.GuestAccelerators = append(t.GuestAccelerators, gcetasks.AcceleratorConfig{
AcceleratorCount: accelerator.AcceleratorCount,
AcceleratorType: accelerator.AcceleratorType,
})
}
t.GuestAccelerators = []gcetasks.AcceleratorConfig{}
for _, accelerator := range ig.Spec.GuestAccelerators {
t.GuestAccelerators = append(t.GuestAccelerators, gcetasks.AcceleratorConfig{
AcceleratorCount: accelerator.AcceleratorCount,
AcceleratorType: accelerator.AcceleratorType,
})
}

return t, nil
Expand Down
12 changes: 12 additions & 0 deletions upup/pkg/fi/cloudup/gcetasks/accelerator_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ limitations under the License.
package gcetasks

import (
"fmt"

"k8s.io/kops/upup/pkg/fi"
)

Expand All @@ -33,3 +35,13 @@ var (
func (a *AcceleratorConfig) GetDependencies(tasks map[string]fi.Task) []fi.Task {
return nil
}

func (_ *AcceleratorConfig) ShouldCreate(a, e, changes *AcceleratorConfig) (bool, error) {
if e.AcceleratorCount < 0 {
return false, fmt.Errorf("acceleratorCount must be positive or 0")
}
if e.AcceleratorCount < 0 {
return false, fmt.Errorf("acceleratorType must not be empty")
}
return true, nil
}
2 changes: 1 addition & 1 deletion upup/pkg/fi/cloudup/gcetasks/instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ func (e *Instance) mapToGCE(project string, ipAddressResolver func(*Address) (*s
zone := *e.Zone

var scheduling *compute.Scheduling
if fi.BoolValue(e.Preemptible) || len(e.GuestAccelerators) > 0 {
if fi.BoolValue(e.Preemptible) {
scheduling = &compute.Scheduling{
OnHostMaintenance: "TERMINATE",
Preemptible: true,
Expand Down
32 changes: 23 additions & 9 deletions upup/pkg/fi/cloudup/gcetasks/instancetemplate.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,14 +213,12 @@ func (e *InstanceTemplate) Find(c *fi.Context) (*InstanceTemplate, error) {
// System fields
actual.Lifecycle = e.Lifecycle

if p.GuestAccelerators != nil {
actual.GuestAccelerators = []AcceleratorConfig{}
for _, accelerator := range p.GuestAccelerators {
actual.GuestAccelerators = append(actual.GuestAccelerators, AcceleratorConfig{
AcceleratorCount: accelerator.AcceleratorCount,
AcceleratorType: accelerator.AcceleratorType,
})
}
actual.GuestAccelerators = []AcceleratorConfig{}
for _, accelerator := range p.GuestAccelerators {
actual.GuestAccelerators = append(actual.GuestAccelerators, AcceleratorConfig{
AcceleratorCount: accelerator.AcceleratorCount,
AcceleratorType: accelerator.AcceleratorType,
})
}

return actual, nil
Expand Down Expand Up @@ -348,7 +346,7 @@ func (e *InstanceTemplate) mapToGCE(project string, region string) (*compute.Ins
}

var accelerators []*compute.AcceleratorConfig
if e.GuestAccelerators != nil {
if len(e.GuestAccelerators) > 0 {
accelerators = []*compute.AcceleratorConfig{}
for _, accelerator := range e.GuestAccelerators {
accelerators = append(accelerators, &compute.AcceleratorConfig{
Expand Down Expand Up @@ -484,6 +482,7 @@ type terraformInstanceTemplate struct {
Metadata map[string]*terraformWriter.Literal `cty:"metadata"`
MetadataStartupScript *terraformWriter.Literal `cty:"metadata_startup_script"`
Tags []string `cty:"tags"`
GuestAccelerator []*terraformGuestAccelerator `cty:"guest_accelerator"`
}

type terraformTemplateServiceAccount struct {
Expand Down Expand Up @@ -523,6 +522,11 @@ type terraformAccessConfig struct {
NatIP *terraformWriter.Literal `cty:"nat_ip"`
}

type terraformGuestAccelerator struct {
Type string `cty:"type"`
Count int64 `cty:"count"`
}

func addNetworks(network *Network, subnet *Subnet, networkInterfaces []*compute.NetworkInterface) []*terraformNetworkInterface {
ni := make([]*terraformNetworkInterface, 0)
for _, g := range networkInterfaces {
Expand Down Expand Up @@ -641,6 +645,16 @@ func (_ *InstanceTemplate) RenderTerraform(t *terraform.TerraformTarget, a, e, c
}
}

if len(i.Properties.GuestAccelerators) > 0 {
tf.GuestAccelerator = []*terraformGuestAccelerator{}
for _, accelerator := range i.Properties.GuestAccelerators {
tf.GuestAccelerator = append(tf.GuestAccelerator, &terraformGuestAccelerator{
Count: accelerator.AcceleratorCount,
Type: accelerator.AcceleratorType,
})
}
}

return t.RenderResource("google_compute_instance_template", name, tf)
}

Expand Down

0 comments on commit 1c1a4c5

Please sign in to comment.