|
6 | 6 | "context" |
7 | 7 | "fmt" |
8 | 8 | "log" |
| 9 | + "net" |
9 | 10 | "regexp" |
10 | 11 | "strings" |
11 | 12 | "time" |
@@ -362,11 +363,12 @@ func ResourceComposerEnvironment() *schema.Resource { |
362 | 363 | }, |
363 | 364 | }, |
364 | 365 | "composer_internal_ipv4_cidr_block": { |
365 | | - Type: schema.TypeString, |
366 | | - Computed: true, |
367 | | - Optional: true, |
368 | | - ForceNew: true, |
369 | | - Description: `IPv4 cidr range that will be used by Composer internal components.`, |
| 366 | + Type: schema.TypeString, |
| 367 | + Computed: true, |
| 368 | + Optional: true, |
| 369 | + ForceNew: true, |
| 370 | + ValidateFunc: validateComposerInternalIpv4CidrBlock, |
| 371 | + Description: `IPv4 cidr range that will be used by Composer internal components.`, |
370 | 372 | }, |
371 | 373 | }, |
372 | 374 | }, |
@@ -936,6 +938,14 @@ func ResourceComposerEnvironment() *schema.Resource { |
936 | 938 | ValidateFunc: validation.FloatAtLeast(0), |
937 | 939 | Description: `Storage (GB) request and limit for DAG processor.`, |
938 | 940 | }, |
| 941 | + "count": { |
| 942 | + Type: schema.TypeInt, |
| 943 | + Optional: true, |
| 944 | + ForceNew: false, |
| 945 | + Computed: true, |
| 946 | + ValidateFunc: validation.IntBetween(0, 3), |
| 947 | + Description: `Number of DAG processors.`, |
| 948 | + }, |
939 | 949 | }, |
940 | 950 | }, |
941 | 951 | }, |
@@ -1838,6 +1848,7 @@ func flattenComposerEnvironmentConfigWorkloadsConfig(workloadsConfig *composer.W |
1838 | 1848 | transformedDagProcessor["cpu"] = wlCfgDagProcessor.Cpu |
1839 | 1849 | transformedDagProcessor["memory_gb"] = wlCfgDagProcessor.MemoryGb |
1840 | 1850 | transformedDagProcessor["storage_gb"] = wlCfgDagProcessor.StorageGb |
| 1851 | + transformedDagProcessor["count"] = wlCfgDagProcessor.Count |
1841 | 1852 | } |
1842 | 1853 |
|
1843 | 1854 | transformed["scheduler"] = []interface{}{transformedScheduler} |
@@ -2330,6 +2341,7 @@ func expandComposerEnvironmentConfigWorkloadsConfig(v interface{}, d *schema.Res |
2330 | 2341 | transformedDagProcessor.Cpu = originalDagProcessorRaw["cpu"].(float64) |
2331 | 2342 | transformedDagProcessor.MemoryGb = originalDagProcessorRaw["memory_gb"].(float64) |
2332 | 2343 | transformedDagProcessor.StorageGb = originalDagProcessorRaw["storage_gb"].(float64) |
| 2344 | + transformedDagProcessor.Count = int64(originalDagProcessorRaw["count"].(int)) |
2333 | 2345 | transformed.DagProcessor = transformedDagProcessor |
2334 | 2346 | } |
2335 | 2347 | } |
@@ -3018,3 +3030,17 @@ func versionValidationCustomizeDiffFunc(ctx context.Context, d *schema.ResourceD |
3018 | 3030 | } |
3019 | 3031 | return nil |
3020 | 3032 | } |
| 3033 | + |
| 3034 | +func validateComposerInternalIpv4CidrBlock(v any, k string) (warns []string, errs []error) { |
| 3035 | + cidr_range := v.(string) |
| 3036 | + _, ip_net, err := net.ParseCIDR(cidr_range) |
| 3037 | + if err != nil { |
| 3038 | + errs = append(errs, fmt.Errorf("Invalid CIDR range: %s", err)) |
| 3039 | + return |
| 3040 | + } |
| 3041 | + ones, _ := ip_net.Mask.Size() |
| 3042 | + if ones != 20 { |
| 3043 | + errs = append(errs, fmt.Errorf("Composer Internal IPv4 CIDR range must have size /20")) |
| 3044 | + } |
| 3045 | + return |
| 3046 | +} |
0 commit comments