Skip to content

Commit

Permalink
Version container based on provider, stop using containerbeta client (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
rileykarson authored Oct 28, 2021
1 parent 7a7deb5 commit 9a3ffe8
Show file tree
Hide file tree
Showing 10 changed files with 322 additions and 328 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ func dataSourceGoogleContainerEngineVersionsRead(d *schema.ResourceData, meta in
}

location = fmt.Sprintf("projects/%s/locations/%s", project, location)
resp, err := config.NewContainerBetaClient(userAgent).Projects.Locations.GetServerConfig(location).Do()
resp, err := config.NewContainerClient(userAgent).Projects.Locations.GetServerConfig(location).Do()
if err != nil {
return fmt.Errorf("Error retrieving available container cluster versions: %s", err.Error())
}
Expand Down
445 changes: 225 additions & 220 deletions mmv1/third_party/terraform/resources/resource_container_cluster.go.erb

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -970,7 +970,7 @@ func testAccCheckContainerNodePoolDestroyProducer(t *testing.T) func(s *terrafor
attributes["cluster"],
attributes["name"],
)
_, err = config.NewContainerBetaClient(config.userAgent).Projects.Locations.Clusters.NodePools.Get(name).Do()
_, err = config.NewContainerClient(config.userAgent).Projects.Locations.Clusters.NodePools.Get(name).Do()
}

if err == nil {
Expand Down
27 changes: 8 additions & 19 deletions mmv1/third_party/terraform/utils/config.go.erb
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,11 @@ import (
<% else -%>
"google.golang.org/api/compute/v0.beta"
<% end -%>
<% if version == 'ga' -%>
"google.golang.org/api/container/v1"
containerBeta "google.golang.org/api/container/v1beta1"
<% else -%>
"google.golang.org/api/container/v1beta1"
<% end -%>
dataflow "google.golang.org/api/dataflow/v1b3"
<% unless version == 'ga' -%>
dataproc "google.golang.org/api/dataproc/v1beta2"
Expand Down Expand Up @@ -115,7 +118,6 @@ type Config struct {
CloudBillingBasePath string
ComposerBasePath string
ContainerBasePath string
ContainerBetaBasePath string
DataprocBetaBasePath string
DataflowBasePath string
IamCredentialsBasePath string
Expand Down Expand Up @@ -152,7 +154,6 @@ const CloudBillingBasePathKey = "CloudBilling"
const ComposerBasePathKey = "Composer"
const ContainerBasePathKey = "Container"
const DataprocBetaBasePathKey = "DataprocBeta"
const ContainerBetaBasePathKey = "ContainerBeta"
const DataflowBasePathKey = "Dataflow"
const IAMBasePathKey = "IAM"
const IamCredentialsBasePathKey = "IamCredentials"
Expand All @@ -173,8 +174,11 @@ var DefaultBasePaths = map[string]string{
<% else -%>
ComposerBasePathKey : "https://composer.googleapis.com/v1beta1/",
<% end -%>
<% if version == "ga" -%>
ContainerBasePathKey : "https://container.googleapis.com/v1/",
ContainerBetaBasePathKey : "https://container.googleapis.com/v1beta1/",
<% else -%>
ContainerBasePathKey : "https://container.googleapis.com/v1beta1/",
<% end -%>
DataprocBetaBasePathKey : "https://dataproc.googleapis.com/v1beta2/",
DataflowBasePathKey : "https://dataflow.googleapis.com/v1b3/",
IAMBasePathKey : "https://iam.googleapis.com/v1/",
Expand Down Expand Up @@ -384,20 +388,6 @@ func (c *Config) NewContainerClient(userAgent string) *container.Service {
return clientContainer
}

func (c *Config) NewContainerBetaClient(userAgent string) *containerBeta.Service {
containerBetaClientBasePath := removeBasePathVersion(c.ContainerBetaBasePath)
log.Printf("[INFO] Instantiating GKE Beta client for path %s", containerBetaClientBasePath)
clientContainerBeta, err := containerBeta.NewService(c.context, option.WithHTTPClient(c.client))
if err != nil {
log.Printf("[WARN] Error creating client container beta: %s", err)
return nil
}
clientContainerBeta.UserAgent = userAgent
clientContainerBeta.BasePath = containerBetaClientBasePath

return clientContainerBeta
}

func (c *Config) NewDnsClient(userAgent string) *dns.Service {
dnsClientBasePath := removeBasePathVersion(c.DNSBasePath)
dnsClientBasePath = strings.ReplaceAll(dnsClientBasePath, "/dns/", "")
Expand Down Expand Up @@ -967,7 +957,6 @@ func ConfigureBasePaths(c *Config) {
c.CloudBillingBasePath = DefaultBasePaths[CloudBillingBasePathKey]
c.ComposerBasePath = DefaultBasePaths[ComposerBasePathKey]
c.ContainerBasePath = DefaultBasePaths[ContainerBasePathKey]
c.ContainerBetaBasePath = DefaultBasePaths[ContainerBetaBasePathKey]
c.DataprocBasePath = DefaultBasePaths[DataprocBasePathKey]
c.DataflowBasePath = DefaultBasePaths[DataflowBasePathKey]
c.IamCredentialsBasePath = DefaultBasePaths[IamCredentialsBasePathKey]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<% autogen_exception -%>
package google

import (
Expand All @@ -7,7 +8,11 @@ import (
"log"
"time"

container "google.golang.org/api/container/v1beta1"
<% if version == "ga" -%>
"google.golang.org/api/container/v1"
<% else -%>
"google.golang.org/api/container/v1beta1"
<% end -%>
)

type ContainerOperationWaiter struct {
Expand Down Expand Up @@ -104,7 +109,7 @@ func (w *ContainerOperationWaiter) TargetStates() []string {

func containerOperationWait(config *Config, op *container.Operation, project, location, activity, userAgent string, timeout time.Duration) error {
w := &ContainerOperationWaiter{
Service: config.NewContainerBetaClient(userAgent),
Service: config.NewContainerClient(userAgent),
Context: config.context,
Op: op,
Project: project,
Expand Down
54 changes: 29 additions & 25 deletions mmv1/third_party/terraform/utils/node_config.go.erb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@ import (

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
containerBeta "google.golang.org/api/container/v1beta1"
<% if version == "ga" -%>
"google.golang.org/api/container/v1"
<% else -%>
"google.golang.org/api/container/v1beta1"
<% end -%>
)

// Matches gke-default scope from https://cloud.google.com/sdk/gcloud/reference/container/clusters/create
Expand Down Expand Up @@ -357,9 +361,9 @@ func schemaNodeConfig() *schema.Schema {
}
}

func expandNodeConfig(v interface{}) *containerBeta.NodeConfig {
func expandNodeConfig(v interface{}) *container.NodeConfig {
nodeConfigs := v.([]interface{})
nc := &containerBeta.NodeConfig{
nc := &container.NodeConfig{
// Defaults can't be set on a list/set in the schema, so set the default on create here.
OauthScopes: defaultOauthScopes,
}
Expand All @@ -375,13 +379,13 @@ func expandNodeConfig(v interface{}) *containerBeta.NodeConfig {

if v, ok := nodeConfig["guest_accelerator"]; ok {
accels := v.([]interface{})
guestAccelerators := make([]*containerBeta.AcceleratorConfig, 0, len(accels))
guestAccelerators := make([]*container.AcceleratorConfig, 0, len(accels))
for _, raw := range accels {
data := raw.(map[string]interface{})
if data["count"].(int) == 0 {
continue
}
guestAccelerators = append(guestAccelerators, &containerBeta.AcceleratorConfig{
guestAccelerators = append(guestAccelerators, &container.AcceleratorConfig{
AcceleratorCount: int64(data["count"].(int)),
AcceleratorType: data["type"].(string),
GpuPartitionSize: data["gpu_partition_size"].(string),
Expand All @@ -405,7 +409,7 @@ func expandNodeConfig(v interface{}) *containerBeta.NodeConfig {
<% unless version == 'ga' -%>
if v, ok := nodeConfig["ephemeral_storage_config"]; ok && len(v.([]interface{})) > 0 {
conf := v.([]interface{})[0].(map[string]interface{})
nc.EphemeralStorageConfig = &containerBeta.EphemeralStorageConfig{
nc.EphemeralStorageConfig = &container.EphemeralStorageConfig{
LocalSsdCount: int64(conf["local_ssd_count"].(int)),
}
}
Expand Down Expand Up @@ -458,7 +462,7 @@ func expandNodeConfig(v interface{}) *containerBeta.NodeConfig {

if v, ok := nodeConfig["shielded_instance_config"]; ok && len(v.([]interface{})) > 0 {
conf := v.([]interface{})[0].(map[string]interface{})
nc.ShieldedInstanceConfig = &containerBeta.ShieldedInstanceConfig{
nc.ShieldedInstanceConfig = &container.ShieldedInstanceConfig{
EnableSecureBoot: conf["enable_secure_boot"].(bool),
EnableIntegrityMonitoring: conf["enable_integrity_monitoring"].(bool),
}
Expand All @@ -473,10 +477,10 @@ func expandNodeConfig(v interface{}) *containerBeta.NodeConfig {

if v, ok := nodeConfig["taint"]; ok && len(v.([]interface{})) > 0 {
taints := v.([]interface{})
nodeTaints := make([]*containerBeta.NodeTaint, 0, len(taints))
nodeTaints := make([]*container.NodeTaint, 0, len(taints))
for _, raw := range taints {
data := raw.(map[string]interface{})
taint := &containerBeta.NodeTaint{
taint := &container.NodeTaint{
Key: data["key"].(string),
Value: data["value"].(string),
Effect: data["effect"].(string),
Expand All @@ -494,7 +498,7 @@ func expandNodeConfig(v interface{}) *containerBeta.NodeConfig {
<% unless version == 'ga' -%>
if v, ok := nodeConfig["sandbox_config"]; ok && len(v.([]interface{})) > 0 {
conf := v.([]interface{})[0].(map[string]interface{})
nc.SandboxConfig = &containerBeta.SandboxConfig{
nc.SandboxConfig = &container.SandboxConfig{
SandboxType: conf["sandbox_type"].(string),
}
}
Expand All @@ -517,15 +521,15 @@ func expandNodeConfig(v interface{}) *containerBeta.NodeConfig {
return nc
}

func expandWorkloadMetadataConfig(v interface{}) *containerBeta.WorkloadMetadataConfig {
func expandWorkloadMetadataConfig(v interface{}) *container.WorkloadMetadataConfig {
if v == nil {
return nil
}
ls := v.([]interface{})
if len(ls) == 0 {
return nil
}
wmc := &containerBeta.WorkloadMetadataConfig{}
wmc := &container.WorkloadMetadataConfig{}

cfg := ls[0].(map[string]interface{})

Expand All @@ -537,7 +541,7 @@ func expandWorkloadMetadataConfig(v interface{}) *containerBeta.WorkloadMetadata
}

<% unless version == 'ga' -%>
func expandKubeletConfig(v interface{}) *containerBeta.NodeKubeletConfig {
func expandKubeletConfig(v interface{}) *container.NodeKubeletConfig {
if v == nil {
return nil
}
Expand All @@ -546,7 +550,7 @@ func expandKubeletConfig(v interface{}) *containerBeta.NodeKubeletConfig {
return nil
}
cfg := ls[0].(map[string]interface{})
kConfig := &containerBeta.NodeKubeletConfig{}
kConfig := &container.NodeKubeletConfig{}
if cpuManagerPolicy, ok := cfg["cpu_manager_policy"]; ok {
kConfig.CpuManagerPolicy = cpuManagerPolicy.(string)
}
Expand All @@ -560,7 +564,7 @@ func expandKubeletConfig(v interface{}) *containerBeta.NodeKubeletConfig {
return kConfig
}

func expandLinuxNodeConfig(v interface{}) *containerBeta.LinuxNodeConfig {
func expandLinuxNodeConfig(v interface{}) *container.LinuxNodeConfig {
if v == nil {
return nil
}
Expand All @@ -577,14 +581,14 @@ func expandLinuxNodeConfig(v interface{}) *containerBeta.LinuxNodeConfig {
for k, v := range sysCfgRaw.(map[string]interface{}) {
m[k] = v.(string)
}
return &containerBeta.LinuxNodeConfig{
return &container.LinuxNodeConfig{
Sysctls: m,
}
}

<% end -%>

func flattenNodeConfig(c *containerBeta.NodeConfig) []map[string]interface{} {
func flattenNodeConfig(c *container.NodeConfig) []map[string]interface{} {
config := make([]map[string]interface{}, 0, 1)

if c == nil {
Expand Down Expand Up @@ -627,7 +631,7 @@ func flattenNodeConfig(c *containerBeta.NodeConfig) []map[string]interface{} {
return config
}

func flattenContainerGuestAccelerators(c []*containerBeta.AcceleratorConfig) []map[string]interface{} {
func flattenContainerGuestAccelerators(c []*container.AcceleratorConfig) []map[string]interface{} {
result := []map[string]interface{}{}
for _, accel := range c {
result = append(result, map[string]interface{}{
Expand All @@ -639,7 +643,7 @@ func flattenContainerGuestAccelerators(c []*containerBeta.AcceleratorConfig) []m
return result
}

func flattenShieldedInstanceConfig(c *containerBeta.ShieldedInstanceConfig) []map[string]interface{} {
func flattenShieldedInstanceConfig(c *container.ShieldedInstanceConfig) []map[string]interface{} {
result := []map[string]interface{}{}
if c != nil {
result = append(result, map[string]interface{}{
Expand All @@ -651,7 +655,7 @@ func flattenShieldedInstanceConfig(c *containerBeta.ShieldedInstanceConfig) []ma
}

<% unless version == 'ga' -%>
func flattenEphemeralStorageConfig(c *containerBeta.EphemeralStorageConfig) []map[string]interface{} {
func flattenEphemeralStorageConfig(c *container.EphemeralStorageConfig) []map[string]interface{} {
result := []map[string]interface{}{}
if c != nil {
result = append(result, map[string]interface{}{
Expand All @@ -662,7 +666,7 @@ func flattenEphemeralStorageConfig(c *containerBeta.EphemeralStorageConfig) []ma
}
<% end -%>

func flattenTaints(c []*containerBeta.NodeTaint) []map[string]interface{} {
func flattenTaints(c []*container.NodeTaint) []map[string]interface{} {
result := []map[string]interface{}{}
for _, taint := range c {
result = append(result, map[string]interface{}{
Expand All @@ -675,7 +679,7 @@ func flattenTaints(c []*containerBeta.NodeTaint) []map[string]interface{} {
}


func flattenWorkloadMetadataConfig(c *containerBeta.WorkloadMetadataConfig) []map[string]interface{} {
func flattenWorkloadMetadataConfig(c *container.WorkloadMetadataConfig) []map[string]interface{} {
result := []map[string]interface{}{}
if c != nil {
result = append(result, map[string]interface{}{
Expand All @@ -685,7 +689,7 @@ func flattenWorkloadMetadataConfig(c *containerBeta.WorkloadMetadataConfig) []ma
return result
}
<% unless version.nil? || version == 'ga' -%>
func flattenSandboxConfig(c *containerBeta.SandboxConfig) []map[string]interface{} {
func flattenSandboxConfig(c *container.SandboxConfig) []map[string]interface{} {
result := []map[string]interface{}{}
if c != nil {
result = append(result, map[string]interface{}{
Expand Down Expand Up @@ -812,7 +816,7 @@ func containerNodePoolTaintSuppress(k, old, new string, d *schema.ResourceData)
<% end -%>

<% unless version == 'ga' -%>
func flattenKubeletConfig(c *containerBeta.NodeKubeletConfig) []map[string]interface{} {
func flattenKubeletConfig(c *container.NodeKubeletConfig) []map[string]interface{} {
result := []map[string]interface{}{}
if c != nil {
result = append(result, map[string]interface{}{
Expand All @@ -824,7 +828,7 @@ func flattenKubeletConfig(c *containerBeta.NodeKubeletConfig) []map[string]inter
return result
}

func flattenLinuxNodeConfig(c *containerBeta.LinuxNodeConfig) []map[string]interface{} {
func flattenLinuxNodeConfig(c *container.LinuxNodeConfig) []map[string]interface{} {
result := []map[string]interface{}{}
if c != nil {
result = append(result, map[string]interface{}{
Expand Down
2 changes: 0 additions & 2 deletions mmv1/third_party/terraform/utils/provider.go.erb
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,6 @@ func Provider() *schema.Provider {
CloudBillingCustomEndpointEntryKey: CloudBillingCustomEndpointEntry,
ComposerCustomEndpointEntryKey: ComposerCustomEndpointEntry,
ContainerCustomEndpointEntryKey: ContainerCustomEndpointEntry,
ContainerBetaCustomEndpointEntryKey: ContainerBetaCustomEndpointEntry,
DataprocBetaCustomEndpointEntryKey: DataprocBetaCustomEndpointEntry,
DataflowCustomEndpointEntryKey: DataflowCustomEndpointEntry,
IamCredentialsCustomEndpointEntryKey: IamCredentialsCustomEndpointEntry,
Expand Down Expand Up @@ -638,7 +637,6 @@ func providerConfigure(ctx context.Context, d *schema.ResourceData, p *schema.Pr
config.CloudBillingBasePath = d.Get(CloudBillingCustomEndpointEntryKey).(string)
config.ComposerBasePath = d.Get(ComposerCustomEndpointEntryKey).(string)
config.ContainerBasePath = d.Get(ContainerCustomEndpointEntryKey).(string)
config.ContainerBetaBasePath = d.Get(ContainerBetaCustomEndpointEntryKey).(string)
config.DataprocBetaBasePath = d.Get(DataprocBetaCustomEndpointEntryKey).(string)
config.DataflowBasePath = d.Get(DataflowCustomEndpointEntryKey).(string)
config.IamCredentialsBasePath = d.Get(IamCredentialsCustomEndpointEntryKey).(string)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,6 @@ var ContainerCustomEndpointEntry = &schema.Schema{
}, DefaultBasePaths[ContainerBasePathKey]),
}

var ContainerBetaCustomEndpointEntryKey = "container_beta_custom_endpoint"
var ContainerBetaCustomEndpointEntry = &schema.Schema{
Type: schema.TypeString,
Optional: true,
ValidateFunc: validateCustomEndpoint,
DefaultFunc: schema.MultiEnvDefaultFunc([]string{
"GOOGLE_CONTAINER_BETA_CUSTOM_ENDPOINT",
}, DefaultBasePaths[ContainerBetaBasePathKey]),
}

var DataprocBetaCustomEndpointEntryKey = "dataproc_beta_custom_endpoint"
var DataprocBetaCustomEndpointEntry = &schema.Schema{
Type: schema.TypeString,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,6 @@ be used for configuration are below:
* `composer_custom_endpoint` (`GOOGLE_COMPOSER_CUSTOM_ENDPOINT`) - `https://composer.googleapis.com/v1beta1/`
* `compute_custom_endpoint` (`GOOGLE_COMPUTE_CUSTOM_ENDPOINT`) - `https://www.googleapis.com/compute/v1/` | `https://www.googleapis.com/compute/beta/`
* `container_custom_endpoint` (`GOOGLE_CONTAINER_CUSTOM_ENDPOINT`) - `https://container.googleapis.com/v1/`
* `container_beta_custom_endpoint` (`GOOGLE_CONTAINER_BETA_CUSTOM_ENDPOINT`) - `https://container.googleapis.com/v1beta1/`
* `dataproc_custom_endpoint` (`GOOGLE_DATAPROC_CUSTOM_ENDPOINT`) - `https://dataproc.googleapis.com/v1/`
* `dataproc_beta_custom_endpoint` (`GOOGLE_DATAPROC_BETA_CUSTOM_ENDPOINT`) - `https://dataproc.googleapis.com/v1beta2/`
* `dataflow_custom_endpoint` (`GOOGLE_DATAFLOW_CUSTOM_ENDPOINT`) - `https://dataflow.googleapis.com/v1b3/`
Expand Down

0 comments on commit 9a3ffe8

Please sign in to comment.