@@ -488,6 +488,42 @@ func TestAccComposerEnvironment_ComposerV2(t *testing.T) {
488
488
})
489
489
}
490
490
491
+ func TestAccComposerEnvironment_UpdateComposerV2ResilienceMode (t * testing.T ) {
492
+ t .Parallel ()
493
+
494
+ envName := fmt .Sprintf ("%s-%d" , testComposerEnvironmentPrefix , RandInt (t ))
495
+ network := fmt .Sprintf ("%s-%d" , testComposerNetworkPrefix , RandInt (t ))
496
+ subnetwork := network + "-1"
497
+
498
+ VcrTest (t , resource.TestCase {
499
+ PreCheck : func () { acctest .AccTestPreCheck (t ) },
500
+ ProtoV5ProviderFactories : ProtoV5ProviderFactories (t ),
501
+ CheckDestroy : testAccComposerEnvironmentDestroyProducer (t ),
502
+ Steps : []resource.TestStep {
503
+ {
504
+ Config : testAccComposerEnvironment_composerV2HighResilience (envName , network , subnetwork ),
505
+ },
506
+ {
507
+ Config : testAccComposerEnvironment_updateComposerV2StandardResilience (envName , network , subnetwork ),
508
+ },
509
+ {
510
+ ResourceName : "google_composer_environment.test" ,
511
+ ImportState : true ,
512
+ ImportStateVerify : true ,
513
+ },
514
+ // This is a terrible clean-up step in order to get destroy to succeed,
515
+ // due to dangling firewall rules left by the Composer Environment blocking network deletion.
516
+ // TODO(dzarmola): Remove this check if firewall rules bug gets fixed by Composer.
517
+ {
518
+ PlanOnly : true ,
519
+ ExpectNonEmptyPlan : false ,
520
+ Config : testAccComposerEnvironment_updateComposerV2StandardResilience (envName , network , subnetwork ),
521
+ Check : testAccCheckClearComposerEnvironmentFirewalls (t , network ),
522
+ },
523
+ },
524
+ })
525
+ }
526
+
491
527
func TestAccComposerEnvironment_ComposerV2HighResilience (t * testing.T ) {
492
528
t .Parallel ()
493
529
@@ -1763,6 +1799,69 @@ resource "google_compute_subnetwork" "test" {
1763
1799
` , envName , compVersion , airflowVersion , network , subnetwork )
1764
1800
}
1765
1801
1802
+ func testAccComposerEnvironment_updateComposerV2StandardResilience (envName , network , subnetwork string ) string {
1803
+ return fmt .Sprintf (`
1804
+ resource "google_composer_environment" "test" {
1805
+ name = "%s"
1806
+ region = "us-east1"
1807
+
1808
+ config {
1809
+ node_config {
1810
+ network = google_compute_network.test.self_link
1811
+ subnetwork = google_compute_subnetwork.test.self_link
1812
+ }
1813
+
1814
+ software_config {
1815
+ image_version = "composer-2-airflow-2"
1816
+ }
1817
+
1818
+ workloads_config {
1819
+ scheduler {
1820
+ cpu = 1.25
1821
+ memory_gb = 2.5
1822
+ storage_gb = 5.4
1823
+ count = 2
1824
+ }
1825
+ web_server {
1826
+ cpu = 1.75
1827
+ memory_gb = 3.0
1828
+ storage_gb = 4.4
1829
+ }
1830
+ worker {
1831
+ cpu = 0.5
1832
+ memory_gb = 2.0
1833
+ storage_gb = 3.4
1834
+ min_count = 2
1835
+ max_count = 5
1836
+ }
1837
+ }
1838
+ environment_size = "ENVIRONMENT_SIZE_MEDIUM"
1839
+ resilience_mode = "STANDARD_RESILIENCE"
1840
+ private_environment_config {
1841
+ enable_private_endpoint = true
1842
+ cloud_composer_network_ipv4_cidr_block = "10.3.192.0/24"
1843
+ master_ipv4_cidr_block = "172.16.194.0/23"
1844
+ cloud_sql_ipv4_cidr_block = "10.3.224.0/20"
1845
+ }
1846
+ }
1847
+ }
1848
+
1849
+ resource "google_compute_network" "test" {
1850
+ name = "%s"
1851
+ auto_create_subnetworks = false
1852
+ }
1853
+
1854
+ resource "google_compute_subnetwork" "test" {
1855
+ name = "%s"
1856
+ ip_cidr_range = "10.2.0.0/16"
1857
+ region = "us-east1"
1858
+ network = google_compute_network.test.self_link
1859
+ private_ip_google_access = true
1860
+ }
1861
+
1862
+ ` , envName , network , subnetwork )
1863
+ }
1864
+
1766
1865
func testAccComposerEnvironment_MasterAuthNetworksUpdate (compVersion , airflowVersion , envName , network , subnetwork string ) string {
1767
1866
return fmt .Sprintf (`
1768
1867
resource "google_composer_environment" "test" {
0 commit comments