Skip to content

Commit 8864b74

Browse files
Add private_registry_config to VMware user and admin cluster resources. (#14165) (#10150)
[upstream:620b6d4de644cde24a2389dd317d620082a7d640] Signed-off-by: Modular Magician <[email protected]>
1 parent ca12f1e commit 8864b74

File tree

5 files changed

+140
-0
lines changed

5 files changed

+140
-0
lines changed

.changelog/14165.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
gkeonprem: added `private_registry_config` field to `google_gkeonprem_vmware_admin_cluster` resource (beta)
3+
```

google-beta/services/gkeonprem/resource_gkeonprem_vmware_admin_cluster.go

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -676,6 +676,26 @@ indicate real problems requiring user intervention.`,
676676
},
677677
},
678678
},
679+
"private_registry_config": {
680+
Type: schema.TypeList,
681+
Optional: true,
682+
Description: `Configuration for private registry.`,
683+
MaxItems: 1,
684+
Elem: &schema.Resource{
685+
Schema: map[string]*schema.Schema{
686+
"address": {
687+
Type: schema.TypeString,
688+
Optional: true,
689+
Description: `The registry address.`,
690+
},
691+
"ca_cert": {
692+
Type: schema.TypeString,
693+
Optional: true,
694+
Description: `The CA certificate public key for private registry.`,
695+
},
696+
},
697+
},
698+
},
679699
"vcenter": {
680700
Type: schema.TypeList,
681701
Optional: true,
@@ -961,6 +981,12 @@ func resourceGkeonpremVmwareAdminClusterCreate(d *schema.ResourceData, meta inte
961981
} else if v, ok := d.GetOkExists("platform_config"); !tpgresource.IsEmptyValue(reflect.ValueOf(platformConfigProp)) && (ok || !reflect.DeepEqual(v, platformConfigProp)) {
962982
obj["platformConfig"] = platformConfigProp
963983
}
984+
privateRegistryConfigProp, err := expandGkeonpremVmwareAdminClusterPrivateRegistryConfig(d.Get("private_registry_config"), d, config)
985+
if err != nil {
986+
return err
987+
} else if v, ok := d.GetOkExists("private_registry_config"); !tpgresource.IsEmptyValue(reflect.ValueOf(privateRegistryConfigProp)) && (ok || !reflect.DeepEqual(v, privateRegistryConfigProp)) {
988+
obj["privateRegistryConfig"] = privateRegistryConfigProp
989+
}
964990
annotationsProp, err := expandGkeonpremVmwareAdminClusterEffectiveAnnotations(d.Get("effective_annotations"), d, config)
965991
if err != nil {
966992
return err
@@ -1140,6 +1166,9 @@ func resourceGkeonpremVmwareAdminClusterRead(d *schema.ResourceData, meta interf
11401166
if err := d.Set("enable_advanced_cluster", flattenGkeonpremVmwareAdminClusterEnableAdvancedCluster(res["enableAdvancedCluster"], d, config)); err != nil {
11411167
return fmt.Errorf("Error reading VmwareAdminCluster: %s", err)
11421168
}
1169+
if err := d.Set("private_registry_config", flattenGkeonpremVmwareAdminClusterPrivateRegistryConfig(res["privateRegistryConfig"], d, config)); err != nil {
1170+
return fmt.Errorf("Error reading VmwareAdminCluster: %s", err)
1171+
}
11431172
if err := d.Set("effective_annotations", flattenGkeonpremVmwareAdminClusterEffectiveAnnotations(res["annotations"], d, config)); err != nil {
11441173
return fmt.Errorf("Error reading VmwareAdminCluster: %s", err)
11451174
}
@@ -1241,6 +1270,12 @@ func resourceGkeonpremVmwareAdminClusterUpdate(d *schema.ResourceData, meta inte
12411270
} else if v, ok := d.GetOkExists("platform_config"); !tpgresource.IsEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, platformConfigProp)) {
12421271
obj["platformConfig"] = platformConfigProp
12431272
}
1273+
privateRegistryConfigProp, err := expandGkeonpremVmwareAdminClusterPrivateRegistryConfig(d.Get("private_registry_config"), d, config)
1274+
if err != nil {
1275+
return err
1276+
} else if v, ok := d.GetOkExists("private_registry_config"); !tpgresource.IsEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, privateRegistryConfigProp)) {
1277+
obj["privateRegistryConfig"] = privateRegistryConfigProp
1278+
}
12441279
annotationsProp, err := expandGkeonpremVmwareAdminClusterEffectiveAnnotations(d.Get("effective_annotations"), d, config)
12451280
if err != nil {
12461281
return err
@@ -1309,6 +1344,10 @@ func resourceGkeonpremVmwareAdminClusterUpdate(d *schema.ResourceData, meta inte
13091344
updateMask = append(updateMask, "platformConfig")
13101345
}
13111346

1347+
if d.HasChange("private_registry_config") {
1348+
updateMask = append(updateMask, "privateRegistryConfig")
1349+
}
1350+
13121351
if d.HasChange("effective_annotations") {
13131352
updateMask = append(updateMask, "annotations")
13141353
}
@@ -2343,6 +2382,29 @@ func flattenGkeonpremVmwareAdminClusterEnableAdvancedCluster(v interface{}, d *s
23432382
return v
23442383
}
23452384

2385+
func flattenGkeonpremVmwareAdminClusterPrivateRegistryConfig(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
2386+
if v == nil {
2387+
return nil
2388+
}
2389+
original := v.(map[string]interface{})
2390+
if len(original) == 0 {
2391+
return nil
2392+
}
2393+
transformed := make(map[string]interface{})
2394+
transformed["address"] =
2395+
flattenGkeonpremVmwareAdminClusterPrivateRegistryConfigAddress(original["address"], d, config)
2396+
transformed["ca_cert"] =
2397+
flattenGkeonpremVmwareAdminClusterPrivateRegistryConfigCaCert(original["caCert"], d, config)
2398+
return []interface{}{transformed}
2399+
}
2400+
func flattenGkeonpremVmwareAdminClusterPrivateRegistryConfigAddress(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
2401+
return v
2402+
}
2403+
2404+
func flattenGkeonpremVmwareAdminClusterPrivateRegistryConfigCaCert(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
2405+
return v
2406+
}
2407+
23462408
func flattenGkeonpremVmwareAdminClusterEffectiveAnnotations(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
23472409
return v
23482410
}
@@ -3480,6 +3542,40 @@ func expandGkeonpremVmwareAdminClusterPlatformConfigStatusConditionsState(v inte
34803542
return v, nil
34813543
}
34823544

3545+
func expandGkeonpremVmwareAdminClusterPrivateRegistryConfig(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
3546+
l := v.([]interface{})
3547+
if len(l) == 0 || l[0] == nil {
3548+
return nil, nil
3549+
}
3550+
raw := l[0]
3551+
original := raw.(map[string]interface{})
3552+
transformed := make(map[string]interface{})
3553+
3554+
transformedAddress, err := expandGkeonpremVmwareAdminClusterPrivateRegistryConfigAddress(original["address"], d, config)
3555+
if err != nil {
3556+
return nil, err
3557+
} else if val := reflect.ValueOf(transformedAddress); val.IsValid() && !tpgresource.IsEmptyValue(val) {
3558+
transformed["address"] = transformedAddress
3559+
}
3560+
3561+
transformedCaCert, err := expandGkeonpremVmwareAdminClusterPrivateRegistryConfigCaCert(original["ca_cert"], d, config)
3562+
if err != nil {
3563+
return nil, err
3564+
} else if val := reflect.ValueOf(transformedCaCert); val.IsValid() && !tpgresource.IsEmptyValue(val) {
3565+
transformed["caCert"] = transformedCaCert
3566+
}
3567+
3568+
return transformed, nil
3569+
}
3570+
3571+
func expandGkeonpremVmwareAdminClusterPrivateRegistryConfigAddress(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
3572+
return v, nil
3573+
}
3574+
3575+
func expandGkeonpremVmwareAdminClusterPrivateRegistryConfigCaCert(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
3576+
return v, nil
3577+
}
3578+
34833579
func expandGkeonpremVmwareAdminClusterEffectiveAnnotations(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
34843580
if v == nil {
34853581
return map[string]string{}, nil

google-beta/services/gkeonprem/resource_gkeonprem_vmware_admin_cluster_generated_meta.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ fields:
7070
- field: 'platform_config.status.conditions.state'
7171
- field: 'platform_config.status.conditions.type'
7272
- field: 'platform_config.status.error_message'
73+
- field: 'private_registry_config.address'
74+
- field: 'private_registry_config.ca_cert'
7375
- field: 'reconciling'
7476
- field: 'state'
7577
- field: 'status.conditions.last_transition_time'

google-beta/services/gkeonprem/resource_gkeonprem_vmware_admin_cluster_generated_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-basic" {
9191
snat_pool = "test-snat-pool"
9292
}
9393
}
94+
private_registry_config {
95+
address = "test-address"
96+
ca_cert = "test-ca-cert"
97+
}
9498
}
9599
`, context)
96100
}
@@ -208,6 +212,10 @@ resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-full" {
208212
platform_config {
209213
required_platform_version = "1.31.0"
210214
}
215+
private_registry_config {
216+
address = "test-address"
217+
ca_cert = "test-ca-cert"
218+
}
211219
}
212220
`, context)
213221
}
@@ -276,6 +284,10 @@ resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" {
276284
enabled = true
277285
}
278286
}
287+
private_registry_config {
288+
address = "test-address"
289+
ca_cert = "test-ca-cert"
290+
}
279291
}
280292
`, context)
281293
}

website/docs/r/gkeonprem_vmware_admin_cluster.html.markdown

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-basic" {
7171
snat_pool = "test-snat-pool"
7272
}
7373
}
74+
private_registry_config {
75+
address = "test-address"
76+
ca_cert = "test-ca-cert"
77+
}
7478
}
7579
```
7680
## Example Usage - Gkeonprem Vmware Admin Cluster Full
@@ -164,6 +168,10 @@ resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-full" {
164168
platform_config {
165169
required_platform_version = "1.31.0"
166170
}
171+
private_registry_config {
172+
address = "test-address"
173+
ca_cert = "test-ca-cert"
174+
}
167175
}
168176
```
169177
## Example Usage - Gkeonprem Vmware Admin Cluster Metallb
@@ -208,6 +216,10 @@ resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" {
208216
enabled = true
209217
}
210218
}
219+
private_registry_config {
220+
address = "test-address"
221+
ca_cert = "test-ca-cert"
222+
}
211223
}
212224
```
213225

@@ -431,6 +443,11 @@ The following arguments are supported:
431443
The VMware platform configuration.
432444
Structure is [documented below](#nested_platform_config).
433445

446+
* `private_registry_config` -
447+
(Optional)
448+
Configuration for private registry.
449+
Structure is [documented below](#nested_private_registry_config).
450+
434451
* `project` - (Optional) The ID of the project in which the resource belongs.
435452
If it is not provided, the provider project is used.
436453

@@ -727,6 +744,16 @@ The following arguments are supported:
727744
(Output)
728745
The lifecycle state of the condition.
729746

747+
<a name="nested_private_registry_config"></a>The `private_registry_config` block supports:
748+
749+
* `address` -
750+
(Optional)
751+
The registry address.
752+
753+
* `ca_cert` -
754+
(Optional)
755+
The CA certificate public key for private registry.
756+
730757
## Attributes Reference
731758

732759
In addition to the arguments listed above, the following computed attributes are exported:

0 commit comments

Comments
 (0)