GoogleCloudPlatform / terraformer

CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code
Apache License 2.0
12.6k stars 1.65k forks source link

Getting error while running terraformer on google provider #1695

Open Dajma opened 1 year ago

Dajma commented 1 year ago

Getting below error:

2023-04-26T05:11:12.776Z [ERROR] plugin.terraform-provider-google_v4.63.0_x5: Response contains error diagnostic: @caller=github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/internal/diag/diagnostics.go:55 diagnostic_attribute="" diagnostic_severity=ERROR diagnostic_summary="Value Conversion Error" tf_req_id=8f4a4a53-80a0-9b9a-5d77-c095be339355 @module=sdk.proto diagnostic_detail= An unexpected error was encountered trying to build a value. This is always an error in the provider. Please report the following to the provider developer:
Received null value, however the target type cannot handle null values. Use the corresponding types package type, a pointer type or a custom type that handles null values.
Path:
Target Type: google.ProviderModel
Suggested types Type: basetypes.ObjectValue
Suggested Pointer Type: *google.ProviderModel

tf_proto_version=5.3 tf_provider_addr=registry.terraform.io/hashicorp/google tf_rpc=Configure timestamp=2023-04-26T05:11:12.776Z

Yurati commented 1 year ago

I'm having the same issue

daichi-sato-xa commented 1 year ago

I have the same issue.

musyaf11 commented 1 year ago

I have the same issue and even tried to change the versions for Terraformer (v0.8.19, v08.17)

nicklinnell commented 1 year ago

Same for me, it was working fine but all of sudden has broken with the above error.

I tried downgrading the GCP provider but get the same issue. I've tried using a different Service account and running a docker container too

musyaf11 commented 1 year ago

@nicklinnell , I fixed my case by downgrading the GCP provider to v4.60.0. It works well for me.

nicklinnell commented 1 year ago

@musyaf11 Unfortunately that didn't fix it for me I I still get the same error:

2023-05-05T10:04:52.501Z [ERROR] plugin.terraform-provider-google_v4.60.0_x5: Response contains error diagnostic: @caller=github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/internal/diag/diagnostics.go:55 @module=sdk.proto diagnostic_summary="Value Conversion Error" tf_provider_addr=registry.terraform.io/hashicorp/google diagnostic_attribute=""
  diagnostic_detail=
  | An unexpected error was encountered trying to build a value. This is always an error in the provider. Please report the following to the provider developer:
  |
  | Received null value, however the target type cannot handle null values. Use the corresponding `types` package type, a pointer type or a custom type that handles null values.
  |
  | Path:
  | Target Type: google.ProviderModel
  | Suggested `types` Type: basetypes.ObjectValue
  | Suggested Pointer Type: *google.ProviderModel
   diagnostic_severity=ERROR tf_proto_version=5.3 tf_req_id=443f128a-5d0a-02cf-e1f4-cb4d82478ddd tf_rpc=Configure timestamp=2023-05-05T10:04:52.500Z
musyaf11 commented 1 year ago

@nicklinnell , want to ensure that you have done the following steps as follows:

stephen-dunne commented 1 year ago

Following along as well, just started looking at terraformer for use with our google cloud DNS setup. Looks like I picked a good time to start ! :D

Followed the steps above to wipe env. Have successfully pinned the provider to 4.60.0 as shown below but error still occurring

C:\Users\steved\Documents\dns\******>terraform init

Initializing the backend...

Initializing provider plugins...
- Finding hashicorp/google versions matching "4.60.0"...
- Installing hashicorp/google v4.60.0...
- Installed hashicorp/google v4.60.0 (signed by HashiCorp)

Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

C:\Users\steved\Documents\dns\******>terraformer plan google --resources=dns --projects=******* --regions=europe-west2
2023/05/05 11:18:19 google importing project ******* region europe-west2
2023-05-05T11:18:21.009+0100 [ERROR] plugin.terraform-provider-google_v4.60.0_x5.exe: Response contains error diagnostic: @caller=github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/internal/diag/diagnostics.go:55 diagnostic_attribute=""
  diagnostic_detail=
  | An unexpected error was encountered trying to build a value. This is always an error in the provider. Please report the following to the provider developer:
  |
  | Received null value, however the target type cannot handle null values. Use the corresponding `types` package type, a pointer type or a custom type that handles null values.
  |
  | Path:
  | Target Type: google.ProviderModel
  | Suggested `types` Type: basetypes.ObjectValue
  | Suggested Pointer Type: *google.ProviderModel
   tf_proto_version=5.3 tf_req_id=8abde5cc-24c6-3298-769e-ea5181d05d53 @module=sdk.proto diagnostic_severity=ERROR diagnostic_summary="Value Conversion Error" tf_provider_addr=registry.terraform.io/hashicorp/google tf_rpc=Configure timestamp="2023-05-05T11:18:21.008+0100"```

Also spews out the following, not sure if related

2023/05/05 11:18:25 rpc error: code = Unavailable desc = error reading from server: read tcp 127.0.0.1:50264->127.0.0.1:10000: wsarecv: An existing connection was forcibly closed by the remote host.
2023/05/05 11:18:25 WARN: Fail read resource from provider, wait 300ms before retry

e2a:

C:\Users\steved\Documents\dns\******>terraform --version
Terraform v1.4.6
on windows_amd64
+ provider registry.terraform.io/hashicorp/google v4.60.0

C:\Users\steved\Documents\dns\******>terraformer version
Terraformer v0.8.22
nicklinnell commented 1 year ago

@musyaf11 yes, I'm actually running this in a "clean" docker container the reinitialises terraform new each time it runs so there are no files other than a main.tf containing:

terraform {
  required_providers {
    google = {
      source = "hashicorp/google"
      version = "4.60.0"
    }
  }
  required_version = ">= 0.13"
}
provider "google" {
  credentials = file("/mycreds.json")
}
musyaf11 commented 1 year ago

@nicklinnell, not sure what the cause of this error, is since I even tried to change the GCP provider to 4.0.0. and it works well for me. My colleague at work also tried this and it works as well for him as well.

btw, here are the versions on my end and colleagues:

stephen-dunne commented 1 year ago

FYI, stepping back again to GCP 4.0.0 after wiping the environment worked for me !

nicklinnell commented 1 year ago

Thanks @musyaf11 and @stephen-dunne I can confirm switching to GCP v4.0.0 fixes the issue for me

somaz94 commented 1 year ago

@nicklinnell

what is GCP v4.0.0?

The same error occurs to me.

How do you solve it?

my version

samveen commented 1 year ago

@somaz94 :

what is GCP v4.0.0?

That is provider version, as below in the tf configuration (modify after export from terraformer):

terraform {
  required_providers {
    google = {
      source = "hashicorp/google"
      version = "4.0.0"
    }
  }
  required_version = ">= 0.13"
}
somaz94 commented 1 year ago

WOW! thank you for @samveen

I solve the problem

lbpage commented 1 year ago

Just adding my 2 cents here. I had the same problem and then changed to 4.0.0 and it worked, but what exactly is breaking in the provider?

cliffom commented 1 year ago

Came here with the same question and wanted to config downgrading to 4.0.0 solved the issue. Will be good to see if it gets resolved but thanks for the solution!

yclian commented 1 year ago

I can confirm too that downgrading to 4.0.0 is a workaround for now.

ronjarrell commented 1 year ago

4.60 didn't wor for me, but 4.0 did. But that means the imports probably are missing new things that the current provider has that 4.00 didn't.

gmuench-cog commented 1 year ago

I found that 4.59.0 is the highest "hashicorp/google" provider version that works with Terraformer as of 7/11/23.

Terraformer v0.8.24 (darwin_arm64) Terraform v1.5.2 (darwin_arm64) terraform-provider-google_v4.59.0_x5 (darwin_arm64)

I also tried with a full amd_64 stack and got the same results.

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.

pataquets commented 1 year ago

@sergeylanzman issue stands and is being worked on. Can anyone please remove the stale label to avoid keep alives' noise?

srbharath commented 1 year ago

Thanks @musyaf11 and @stephen-dunne I can confirm switching to GCP v4.0.0 fixes the issue for me

azonlim commented 1 year ago

Hi, Community, I'm trying to export existing Google Cloud Function, but unfortunately:

MacBook-Pro terraform-repo % terraformer import google --resources=cloudFunctions --projects=dev-project --regions=us-central1
 2023/10/10 17:43:36 google importing project dev-project region us-central1
 2023/10/10 17:43:39 google importing... cloudFunctions
 2023/10/10 17:43:39 google done importing cloudFunctions
 2023/10/10 17:43:39 Number of resources for service cloudFunctions: 0
 2023/10/10 17:43:39 google Connecting....
 2023/10/10 17:43:39 google save cloudFunctions
 2023/10/10 17:43:39 google save tfstate for cloudFunctions

Google Cloud SDK 449.0.0 beta 2023.10.02 bq 2.0.98 config-connector 1.93.0 core 2023.10.02 gcloud-crc32c 1.0.0 gsutil 5.26 terraform-tools 0.11.1

Could someone help, please?

ronjarrell commented 11 months ago

Problem exists with the 5.x providers as well

chandanpasunoori commented 10 months ago

Any update on this? its failing in 5.10.0 too

magandrez commented 9 months ago

The issue originally described remains an issue.

In my case, I cannot downgrade provider versions as I am dealing with production environments (regardless, downgrading a major version of a software component is not a resolution to a bug).

I have reported the issue on the registry side (read, on hashicorp/terraform-provider-google but I was told "it is not their problem").

For reference, the bug I opened: https://github.com/hashicorp/terraform-provider-google/issues/16920 a similar one opened by someone else here: https://github.com/hashicorp/terraform-provider-google/issues/15059

Is this project being actively supported? @jpatokal @nckslvrmn @vgavro

nckslvrmn commented 9 months ago

Is this project being actively supported? @jpatokal @nckslvrmn @vgavro

I am not a regular maintainer of this project so I cannot speak to its active support, I just enjoy it and needed to fix something for my own use with the tool which got recently merged :)

ArinKim commented 9 months ago

Are there any updates? It's still failing on the recent version

samveen commented 8 months ago

Google has a preview feature for exporting a project as terraform as described at https://cloud.google.com/docs/terraform/resource-management/export. List of supported types is as below:

samveen@zero2w:~ $ gcloud beta resource-config list-resource-types
Listing exportable resource types for project [xxxx-yyyy]...done.
┌───────────────────────────────┬──────────────┬─────────┬──────┐
│            KRM KIND           │ BULK EXPORT? │ EXPORT? │ IAM? │
├───────────────────────────────┼──────────────┼─────────┼──────┤
│ ArtifactRegistryRepository    │ x            │ x       │ x    │
│ ComputeAddress                │ x            │ x       │      │
│ ComputeBackendBucket          │ x            │ x       │      │
│ ComputeBackendService         │ x            │ x       │      │
│ ComputeDisk                   │ x            │ x       │ x    │
│ ComputeHealthCheck            │ x            │ x       │      │
│ ComputeImage                  │ x            │ x       │ x    │
│ ComputeInstance               │ x            │ x       │ x    │
│ ComputeInstanceGroup          │ x            │ x       │      │
│ ComputeInstanceTemplate       │ x            │ x       │      │
│ ComputeNetwork                │ x            │ x       │      │
│ ComputeNetworkEndpointGroup   │ x            │ x       │      │
│ ComputeResourcePolicy         │ x            │ x       │      │
│ ComputeRoute                  │ x            │ x       │      │
│ ComputeSecurityPolicy         │ x            │ x       │      │
│ ComputeSnapshot               │ x            │ x       │      │
│ ComputeSubnetwork             │ x            │ x       │ x    │
│ ContainerCluster              │ x            │ x       │      │
│ ContainerNodePool             │ x            │         │      │
│ DNSManagedZone                │ x            │ x       │      │
│ IAMServiceAccount             │ x            │         │ x    │
│ IAMServiceAccountKey          │              │         │      │
│ LoggingLogSink                │ x            │         │      │
│ MonitoringAlertPolicy         │ x            │         │      │
│ MonitoringNotificationChannel │              │         │      │
│ Project                       │ x            │ x       │ x    │
│ SQLInstance                   │ x            │ x       │      │
│ Service                       │ x            │ x       │      │
│ StorageBucket                 │ x            │         │ x    │
└───────────────────────────────┴──────────────┴─────────┴──────┘
tanguynicolas commented 8 months ago

I found that 4.59.0 is the highest "hashicorp/google" provider version that works with Terraformer as of 7/11/23.

Where is the official documentation that mention this?
It should be written here.

github-actions[bot] commented 6 months ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.

samveen commented 6 months ago

This is still an issue as of now.

thalesgibbon commented 5 months ago

I had to downgrade to @musyaf11 recommendation version and I finally worked.

samveen commented 5 months ago

@thalesgibbon did you happen to try gcloud beta resource-config commands from https://cloud.google.com/docs/terraform/resource-management/export to export your resources as well? A comparative export would hopefully give great data about accuracy between these 2 options.

gitteroy commented 3 months ago

If you see this error, decrement your google provider version to 4.x.x. For me, I am using terraform 1.8.2 and the latest google provider version that works is 4.59.0. Any version above that fails with _[ERROR] plugin: plugin process exited: path=~.terraform.d/plugins/darwin_amd64/terraform-provider-google_vX.X.Xx5