Skip to content

Commit fb5448c

Browse files
Add support for Cloud Run functions by adding support to the BuildConfig V2 API field (#12760) (#3334)
[upstream:b0626743b659bf02db252fc0801e2930da986f65] Signed-off-by: Modular Magician <[email protected]>
1 parent 00ffee7 commit fb5448c

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed

tfplan2cai/converters/google/resources/services/cloudrunv2/cloudrunv2_service.go

+124
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,12 @@ func GetCloudRunV2ServiceApiObject(d tpgresource.TerraformResourceData, config *
128128
} else if v, ok := d.GetOkExists("invoker_iam_disabled"); !tpgresource.IsEmptyValue(reflect.ValueOf(invokerIamDisabledProp)) && (ok || !reflect.DeepEqual(v, invokerIamDisabledProp)) {
129129
obj["invokerIamDisabled"] = invokerIamDisabledProp
130130
}
131+
buildConfigProp, err := expandCloudRunV2ServiceBuildConfig(d.Get("build_config"), d, config)
132+
if err != nil {
133+
return nil, err
134+
} else if v, ok := d.GetOkExists("build_config"); !tpgresource.IsEmptyValue(reflect.ValueOf(buildConfigProp)) && (ok || !reflect.DeepEqual(v, buildConfigProp)) {
135+
obj["buildConfig"] = buildConfigProp
136+
}
131137
labelsProp, err := expandCloudRunV2ServiceEffectiveLabels(d.Get("effective_labels"), d, config)
132138
if err != nil {
133139
return nil, err
@@ -1733,6 +1739,124 @@ func expandCloudRunV2ServiceInvokerIamDisabled(v interface{}, d tpgresource.Terr
17331739
return v, nil
17341740
}
17351741

1742+
func expandCloudRunV2ServiceBuildConfig(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1743+
l := v.([]interface{})
1744+
if len(l) == 0 || l[0] == nil {
1745+
return nil, nil
1746+
}
1747+
raw := l[0]
1748+
original := raw.(map[string]interface{})
1749+
transformed := make(map[string]interface{})
1750+
1751+
transformedName, err := expandCloudRunV2ServiceBuildConfigName(original["name"], d, config)
1752+
if err != nil {
1753+
return nil, err
1754+
} else if val := reflect.ValueOf(transformedName); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1755+
transformed["name"] = transformedName
1756+
}
1757+
1758+
transformedSourceLocation, err := expandCloudRunV2ServiceBuildConfigSourceLocation(original["source_location"], d, config)
1759+
if err != nil {
1760+
return nil, err
1761+
} else if val := reflect.ValueOf(transformedSourceLocation); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1762+
transformed["sourceLocation"] = transformedSourceLocation
1763+
}
1764+
1765+
transformedFunctionTarget, err := expandCloudRunV2ServiceBuildConfigFunctionTarget(original["function_target"], d, config)
1766+
if err != nil {
1767+
return nil, err
1768+
} else if val := reflect.ValueOf(transformedFunctionTarget); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1769+
transformed["functionTarget"] = transformedFunctionTarget
1770+
}
1771+
1772+
transformedImageUri, err := expandCloudRunV2ServiceBuildConfigImageUri(original["image_uri"], d, config)
1773+
if err != nil {
1774+
return nil, err
1775+
} else if val := reflect.ValueOf(transformedImageUri); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1776+
transformed["imageUri"] = transformedImageUri
1777+
}
1778+
1779+
transformedBaseImage, err := expandCloudRunV2ServiceBuildConfigBaseImage(original["base_image"], d, config)
1780+
if err != nil {
1781+
return nil, err
1782+
} else if val := reflect.ValueOf(transformedBaseImage); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1783+
transformed["baseImage"] = transformedBaseImage
1784+
}
1785+
1786+
transformedEnableAutomaticUpdates, err := expandCloudRunV2ServiceBuildConfigEnableAutomaticUpdates(original["enable_automatic_updates"], d, config)
1787+
if err != nil {
1788+
return nil, err
1789+
} else if val := reflect.ValueOf(transformedEnableAutomaticUpdates); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1790+
transformed["enableAutomaticUpdates"] = transformedEnableAutomaticUpdates
1791+
}
1792+
1793+
transformedWorkerPool, err := expandCloudRunV2ServiceBuildConfigWorkerPool(original["worker_pool"], d, config)
1794+
if err != nil {
1795+
return nil, err
1796+
} else if val := reflect.ValueOf(transformedWorkerPool); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1797+
transformed["workerPool"] = transformedWorkerPool
1798+
}
1799+
1800+
transformedEnvironmentVariables, err := expandCloudRunV2ServiceBuildConfigEnvironmentVariables(original["environment_variables"], d, config)
1801+
if err != nil {
1802+
return nil, err
1803+
} else if val := reflect.ValueOf(transformedEnvironmentVariables); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1804+
transformed["environmentVariables"] = transformedEnvironmentVariables
1805+
}
1806+
1807+
transformedServiceAccount, err := expandCloudRunV2ServiceBuildConfigServiceAccount(original["service_account"], d, config)
1808+
if err != nil {
1809+
return nil, err
1810+
} else if val := reflect.ValueOf(transformedServiceAccount); val.IsValid() && !tpgresource.IsEmptyValue(val) {
1811+
transformed["serviceAccount"] = transformedServiceAccount
1812+
}
1813+
1814+
return transformed, nil
1815+
}
1816+
1817+
func expandCloudRunV2ServiceBuildConfigName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1818+
return v, nil
1819+
}
1820+
1821+
func expandCloudRunV2ServiceBuildConfigSourceLocation(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1822+
return v, nil
1823+
}
1824+
1825+
func expandCloudRunV2ServiceBuildConfigFunctionTarget(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1826+
return v, nil
1827+
}
1828+
1829+
func expandCloudRunV2ServiceBuildConfigImageUri(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1830+
return v, nil
1831+
}
1832+
1833+
func expandCloudRunV2ServiceBuildConfigBaseImage(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1834+
return v, nil
1835+
}
1836+
1837+
func expandCloudRunV2ServiceBuildConfigEnableAutomaticUpdates(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1838+
return v, nil
1839+
}
1840+
1841+
func expandCloudRunV2ServiceBuildConfigWorkerPool(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1842+
return v, nil
1843+
}
1844+
1845+
func expandCloudRunV2ServiceBuildConfigEnvironmentVariables(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
1846+
if v == nil {
1847+
return map[string]string{}, nil
1848+
}
1849+
m := make(map[string]string)
1850+
for k, val := range v.(map[string]interface{}) {
1851+
m[k] = val.(string)
1852+
}
1853+
return m, nil
1854+
}
1855+
1856+
func expandCloudRunV2ServiceBuildConfigServiceAccount(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1857+
return v, nil
1858+
}
1859+
17361860
func expandCloudRunV2ServiceEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
17371861
if v == nil {
17381862
return map[string]string{}, nil

0 commit comments

Comments
 (0)