Skip to content

Commit e10fd1c

Browse files
committed
add support for specifying iops and thoroughput when using hyperdisks
1 parent e0629cc commit e10fd1c

File tree

14 files changed

+391
-274
lines changed

14 files changed

+391
-274
lines changed

pkg/model/gcemodel/autoscalinggroup.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,13 @@ func (b *AutoscalingGroupModelBuilder) buildInstanceTemplate(c *fi.CloudupModelB
6565
{
6666
var volumeSize int32
6767
var volumeType string
68+
var volumeIops int32
69+
var volumeThroughput int32
6870
if ig.Spec.RootVolume != nil {
6971
volumeSize = fi.ValueOf(ig.Spec.RootVolume.Size)
7072
volumeType = fi.ValueOf(ig.Spec.RootVolume.Type)
73+
volumeIops = fi.ValueOf(ig.Spec.RootVolume.IOPS)
74+
volumeThroughput = fi.ValueOf(ig.Spec.RootVolume.Throughput)
7175
}
7276
if volumeSize == 0 {
7377
volumeSize, err = defaults.DefaultInstanceGroupVolumeSize(ig.Spec.Role)
@@ -120,6 +124,13 @@ func (b *AutoscalingGroupModelBuilder) buildInstanceTemplate(c *fi.CloudupModelB
120124
},
121125
}
122126

127+
if volumeIops > 0 {
128+
t.BootDiskIOPS = i64(int64(volumeIops))
129+
}
130+
if volumeThroughput > 0 {
131+
t.BootDiskThroughput = i64(int64(volumeThroughput))
132+
}
133+
123134
if startupScript != nil {
124135
if !fi.ValueOf(b.Cluster.Spec.CloudProvider.GCE.UseStartupScript) {
125136
// Use "user-data" instead of "startup-script", for compatibility with cloud-init

pkg/model/master_volumes.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,9 @@ func (b *MasterVolumeBuilder) addGCEVolume(c *fi.CloudupModelBuilderContext, pre
293293
}
294294
name := gce.ClusterSuffixedName(prefix, b.Cluster.ObjectMeta.Name, 63)
295295

296+
volumeIops := fi.ValueOf(m.VolumeIOPS)
297+
volumeThroughput := fi.ValueOf(m.VolumeThroughput)
298+
296299
t := &gcetasks.Disk{
297300
Name: fi.PtrTo(name),
298301
Lifecycle: b.Lifecycle,
@@ -303,6 +306,13 @@ func (b *MasterVolumeBuilder) addGCEVolume(c *fi.CloudupModelBuilderContext, pre
303306
Labels: tags,
304307
}
305308

309+
if volumeIops > 0 {
310+
t.VolumeIops = fi.PtrTo(int64(volumeIops))
311+
}
312+
if volumeThroughput > 0 {
313+
t.VolumeThroughput = fi.PtrTo(int64(volumeThroughput))
314+
}
315+
306316
c.AddTask(t)
307317
}
308318

tests/integration/update_cluster/ha_gce/kubernetes.tf

Lines changed: 52 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -603,17 +603,19 @@ resource "google_compute_instance_group_manager" "c-nodes-ha-gce-example-com" {
603603
resource "google_compute_instance_template" "master-us-test1-a-ha-gce-example-com" {
604604
can_ip_forward = true
605605
disk {
606-
auto_delete = true
607-
boot = true
608-
device_name = "persistent-disks-0"
609-
disk_name = ""
610-
disk_size_gb = 64
611-
disk_type = "pd-standard"
612-
interface = ""
613-
mode = "READ_WRITE"
614-
source = ""
615-
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
616-
type = "PERSISTENT"
606+
auto_delete = true
607+
boot = true
608+
device_name = "persistent-disks-0"
609+
disk_name = ""
610+
disk_size_gb = 64
611+
disk_type = "pd-standard"
612+
interface = ""
613+
mode = "READ_WRITE"
614+
provisioned_iops = 0
615+
provisioned_throughput = 0
616+
source = ""
617+
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
618+
type = "PERSISTENT"
617619
}
618620
labels = {
619621
"k8s-io-cluster-name" = "ha-gce-example-com"
@@ -655,17 +657,19 @@ resource "google_compute_instance_template" "master-us-test1-a-ha-gce-example-co
655657
resource "google_compute_instance_template" "master-us-test1-b-ha-gce-example-com" {
656658
can_ip_forward = true
657659
disk {
658-
auto_delete = true
659-
boot = true
660-
device_name = "persistent-disks-0"
661-
disk_name = ""
662-
disk_size_gb = 64
663-
disk_type = "pd-standard"
664-
interface = ""
665-
mode = "READ_WRITE"
666-
source = ""
667-
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
668-
type = "PERSISTENT"
660+
auto_delete = true
661+
boot = true
662+
device_name = "persistent-disks-0"
663+
disk_name = ""
664+
disk_size_gb = 64
665+
disk_type = "pd-standard"
666+
interface = ""
667+
mode = "READ_WRITE"
668+
provisioned_iops = 0
669+
provisioned_throughput = 0
670+
source = ""
671+
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
672+
type = "PERSISTENT"
669673
}
670674
labels = {
671675
"k8s-io-cluster-name" = "ha-gce-example-com"
@@ -707,17 +711,19 @@ resource "google_compute_instance_template" "master-us-test1-b-ha-gce-example-co
707711
resource "google_compute_instance_template" "master-us-test1-c-ha-gce-example-com" {
708712
can_ip_forward = true
709713
disk {
710-
auto_delete = true
711-
boot = true
712-
device_name = "persistent-disks-0"
713-
disk_name = ""
714-
disk_size_gb = 64
715-
disk_type = "pd-standard"
716-
interface = ""
717-
mode = "READ_WRITE"
718-
source = ""
719-
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
720-
type = "PERSISTENT"
714+
auto_delete = true
715+
boot = true
716+
device_name = "persistent-disks-0"
717+
disk_name = ""
718+
disk_size_gb = 64
719+
disk_type = "pd-standard"
720+
interface = ""
721+
mode = "READ_WRITE"
722+
provisioned_iops = 0
723+
provisioned_throughput = 0
724+
source = ""
725+
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
726+
type = "PERSISTENT"
721727
}
722728
labels = {
723729
"k8s-io-cluster-name" = "ha-gce-example-com"
@@ -759,17 +765,19 @@ resource "google_compute_instance_template" "master-us-test1-c-ha-gce-example-co
759765
resource "google_compute_instance_template" "nodes-ha-gce-example-com" {
760766
can_ip_forward = true
761767
disk {
762-
auto_delete = true
763-
boot = true
764-
device_name = "persistent-disks-0"
765-
disk_name = ""
766-
disk_size_gb = 128
767-
disk_type = "pd-standard"
768-
interface = ""
769-
mode = "READ_WRITE"
770-
source = ""
771-
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
772-
type = "PERSISTENT"
768+
auto_delete = true
769+
boot = true
770+
device_name = "persistent-disks-0"
771+
disk_name = ""
772+
disk_size_gb = 128
773+
disk_type = "pd-standard"
774+
interface = ""
775+
mode = "READ_WRITE"
776+
provisioned_iops = 0
777+
provisioned_throughput = 0
778+
source = ""
779+
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
780+
type = "PERSISTENT"
773781
}
774782
labels = {
775783
"k8s-io-cluster-name" = "ha-gce-example-com"

tests/integration/update_cluster/many-addons-gce/kubernetes.tf

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -459,17 +459,19 @@ resource "google_compute_instance_group_manager" "a-nodes-minimal-example-com" {
459459
resource "google_compute_instance_template" "master-us-test1-a-minimal-example-com" {
460460
can_ip_forward = true
461461
disk {
462-
auto_delete = true
463-
boot = true
464-
device_name = "persistent-disks-0"
465-
disk_name = ""
466-
disk_size_gb = 64
467-
disk_type = "pd-standard"
468-
interface = ""
469-
mode = "READ_WRITE"
470-
source = ""
471-
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
472-
type = "PERSISTENT"
462+
auto_delete = true
463+
boot = true
464+
device_name = "persistent-disks-0"
465+
disk_name = ""
466+
disk_size_gb = 64
467+
disk_type = "pd-standard"
468+
interface = ""
469+
mode = "READ_WRITE"
470+
provisioned_iops = 0
471+
provisioned_throughput = 0
472+
source = ""
473+
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
474+
type = "PERSISTENT"
473475
}
474476
labels = {
475477
"k8s-io-cluster-name" = "minimal-example-com"
@@ -511,17 +513,19 @@ resource "google_compute_instance_template" "master-us-test1-a-minimal-example-c
511513
resource "google_compute_instance_template" "nodes-minimal-example-com" {
512514
can_ip_forward = true
513515
disk {
514-
auto_delete = true
515-
boot = true
516-
device_name = "persistent-disks-0"
517-
disk_name = ""
518-
disk_size_gb = 128
519-
disk_type = "pd-standard"
520-
interface = ""
521-
mode = "READ_WRITE"
522-
source = ""
523-
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
524-
type = "PERSISTENT"
516+
auto_delete = true
517+
boot = true
518+
device_name = "persistent-disks-0"
519+
disk_name = ""
520+
disk_size_gb = 128
521+
disk_type = "pd-standard"
522+
interface = ""
523+
mode = "READ_WRITE"
524+
provisioned_iops = 0
525+
provisioned_throughput = 0
526+
source = ""
527+
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
528+
type = "PERSISTENT"
525529
}
526530
labels = {
527531
"k8s-io-cluster-name" = "minimal-example-com"

tests/integration/update_cluster/minimal_gce/kubernetes.tf

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -435,17 +435,19 @@ resource "google_compute_instance_group_manager" "a-nodes-minimal-gce-example-co
435435
resource "google_compute_instance_template" "master-us-test1-a-minimal-gce-example-com" {
436436
can_ip_forward = true
437437
disk {
438-
auto_delete = true
439-
boot = true
440-
device_name = "persistent-disks-0"
441-
disk_name = ""
442-
disk_size_gb = 64
443-
disk_type = "pd-standard"
444-
interface = ""
445-
mode = "READ_WRITE"
446-
source = ""
447-
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
448-
type = "PERSISTENT"
438+
auto_delete = true
439+
boot = true
440+
device_name = "persistent-disks-0"
441+
disk_name = ""
442+
disk_size_gb = 64
443+
disk_type = "pd-standard"
444+
interface = ""
445+
mode = "READ_WRITE"
446+
provisioned_iops = 0
447+
provisioned_throughput = 0
448+
source = ""
449+
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
450+
type = "PERSISTENT"
449451
}
450452
labels = {
451453
"k8s-io-cluster-name" = "minimal-gce-example-com"
@@ -487,17 +489,19 @@ resource "google_compute_instance_template" "master-us-test1-a-minimal-gce-examp
487489
resource "google_compute_instance_template" "nodes-minimal-gce-example-com" {
488490
can_ip_forward = true
489491
disk {
490-
auto_delete = true
491-
boot = true
492-
device_name = "persistent-disks-0"
493-
disk_name = ""
494-
disk_size_gb = 128
495-
disk_type = "pd-standard"
496-
interface = ""
497-
mode = "READ_WRITE"
498-
source = ""
499-
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
500-
type = "PERSISTENT"
492+
auto_delete = true
493+
boot = true
494+
device_name = "persistent-disks-0"
495+
disk_name = ""
496+
disk_size_gb = 128
497+
disk_type = "pd-standard"
498+
interface = ""
499+
mode = "READ_WRITE"
500+
provisioned_iops = 0
501+
provisioned_throughput = 0
502+
source = ""
503+
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
504+
type = "PERSISTENT"
501505
}
502506
labels = {
503507
"k8s-io-cluster-name" = "minimal-gce-example-com"

tests/integration/update_cluster/minimal_gce_dns-none/kubernetes.tf

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -499,17 +499,19 @@ resource "google_compute_instance_group_manager" "a-nodes-minimal-gce-example-co
499499
resource "google_compute_instance_template" "master-us-test1-a-minimal-gce-example-com" {
500500
can_ip_forward = true
501501
disk {
502-
auto_delete = true
503-
boot = true
504-
device_name = "persistent-disks-0"
505-
disk_name = ""
506-
disk_size_gb = 64
507-
disk_type = "pd-standard"
508-
interface = ""
509-
mode = "READ_WRITE"
510-
source = ""
511-
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
512-
type = "PERSISTENT"
502+
auto_delete = true
503+
boot = true
504+
device_name = "persistent-disks-0"
505+
disk_name = ""
506+
disk_size_gb = 64
507+
disk_type = "pd-standard"
508+
interface = ""
509+
mode = "READ_WRITE"
510+
provisioned_iops = 0
511+
provisioned_throughput = 0
512+
source = ""
513+
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
514+
type = "PERSISTENT"
513515
}
514516
labels = {
515517
"k8s-io-cluster-name" = "minimal-gce-example-com"
@@ -549,17 +551,19 @@ resource "google_compute_instance_template" "master-us-test1-a-minimal-gce-examp
549551
resource "google_compute_instance_template" "nodes-minimal-gce-example-com" {
550552
can_ip_forward = true
551553
disk {
552-
auto_delete = true
553-
boot = true
554-
device_name = "persistent-disks-0"
555-
disk_name = ""
556-
disk_size_gb = 128
557-
disk_type = "pd-standard"
558-
interface = ""
559-
mode = "READ_WRITE"
560-
source = ""
561-
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
562-
type = "PERSISTENT"
554+
auto_delete = true
555+
boot = true
556+
device_name = "persistent-disks-0"
557+
disk_name = ""
558+
disk_size_gb = 128
559+
disk_type = "pd-standard"
560+
interface = ""
561+
mode = "READ_WRITE"
562+
provisioned_iops = 0
563+
provisioned_throughput = 0
564+
source = ""
565+
source_image = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20221018"
566+
type = "PERSISTENT"
563567
}
564568
labels = {
565569
"k8s-io-cluster-name" = "minimal-gce-example-com"

0 commit comments

Comments
 (0)