@@ -456,7 +456,29 @@ func TestAccComputeInstanceFromTemplate_overrideMetadataDotStartupScript(t *test
456
456
},
457
457
},
458
458
})
459
+ }
460
+
461
+ func TestAccComputeInstanceFromTemplate_useDiskSelfLink(t *testing.T) {
462
+ t.Parallel()
459
463
464
+ var instance compute.Instance
465
+ instanceName := fmt.Sprintf("tf-test-%s", acctest.RandString(t, 10))
466
+ templateName := fmt.Sprintf("tf-test-%s", acctest.RandString(t, 10))
467
+ resourceName := "google_compute_instance_from_template.foobar"
468
+
469
+ acctest.VcrTest(t, resource.TestCase{
470
+ PreCheck: func() { acctest.AccTestPreCheck(t) },
471
+ ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
472
+ CheckDestroy: testAccCheckComputeInstanceFromTemplateDestroyProducer(t),
473
+ Steps: []resource.TestStep{
474
+ {
475
+ Config: testAccComputeInstanceFromTemplate_regionalDisk(instanceName, templateName),
476
+ Check: resource.ComposeTestCheckFunc(
477
+ testAccCheckComputeInstanceExists(t, resourceName, &instance),
478
+ ),
479
+ },
480
+ },
481
+ })
460
482
}
461
483
462
484
func testAccCheckComputeInstanceFromTemplateDestroyProducer(t *testing.T) func(s *terraform.State) error {
@@ -1170,6 +1192,73 @@ resource "google_compute_instance_from_template" "foobar" {
1170
1192
1171
1193
{{ end }}
1172
1194
1195
+ func testAccComputeInstanceFromTemplate_regionalDisk(instance, template string) string {
1196
+ return fmt.Sprintf(`
1197
+ data "google_compute_image" "my_image" {
1198
+ family = "debian-11"
1199
+ project = "debian-cloud"
1200
+ }
1201
+
1202
+ resource "google_compute_region_disk" "foobar" {
1203
+ name = "%s"
1204
+ size = 10
1205
+ type = "pd-ssd"
1206
+ region = "us-central1"
1207
+ replica_zones = ["us-central1-a", "us-central1-f"]
1208
+ }
1209
+
1210
+ resource "google_compute_instance_template" "foobar" {
1211
+ name = "%s"
1212
+ machine_type = "n1-standard-1" // can't be e2 because of local-ssd
1213
+
1214
+ disk {
1215
+ source_image = data.google_compute_image.my_image.self_link
1216
+ auto_delete = true
1217
+ disk_size_gb = 100
1218
+ boot = true
1219
+ disk_type = "pd-ssd"
1220
+ type = "PERSISTENT"
1221
+ }
1222
+
1223
+ disk {
1224
+ source = google_compute_region_disk.foobar.self_link
1225
+ auto_delete = false
1226
+ boot = false
1227
+ }
1228
+
1229
+ network_interface {
1230
+ network = "default"
1231
+ }
1232
+
1233
+ metadata = {
1234
+ foo = "bar"
1235
+ }
1236
+
1237
+ scheduling {
1238
+ automatic_restart = true
1239
+ }
1240
+
1241
+ can_ip_forward = true
1242
+ }
1243
+
1244
+ resource "google_compute_instance_from_template" "foobar" {
1245
+ name = "%s"
1246
+ zone = "us-central1-a"
1247
+
1248
+ source_instance_template = google_compute_instance_template.foobar.id
1249
+
1250
+ // Overrides
1251
+ can_ip_forward = false
1252
+ labels = {
1253
+ my_key = "my_value"
1254
+ }
1255
+ scheduling {
1256
+ automatic_restart = false
1257
+ }
1258
+ }
1259
+ `, template, template, instance)
1260
+ }
1261
+
1173
1262
func testAccComputeInstanceFromTemplate_self_link_unique(instance, template string) string {
1174
1263
return fmt.Sprintf(`
1175
1264
data "google_compute_image" "my_image" {
0 commit comments