Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

r/hcx_service_mesh unable to create - plugin crashes #10

Open
cadolphus opened this issue Jan 14, 2022 · 0 comments
Open

r/hcx_service_mesh unable to create - plugin crashes #10

cadolphus opened this issue Jan 14, 2022 · 0 comments
Labels
bug Bug crash Crash
Milestone

Comments

@cadolphus
Copy link

cadolphus commented Jan 14, 2022

I am using v0.4.2 of the provider.

I am trying to connect two HCX sites together to enable VM migration with stretched L2 networks. Both Site A and Site B are Google Cloud VMware Engine (GCVE) private clouds in different regions, but they are both reachable via routed L3 networking. When you deploy a VMware Private Cloud in GCVE, HCX is deployed and activated for you, and default HCX Compute and Network Profiles are setup. All you need to configure in order to connect two GCVE sites together with HCX is to first create the Site Pairing on both sites (specifying the opposite site to the one you are configuring), and then create a Service Mesh. The Site Pairing is working great using this provider, but I'm getting an error with the Service Mesh resource.

Here is my provider configuration block:

provider "hcx" {
  alias                = "site-a"
  hcx                  = "https://${var.site_a_hcx_hostname}/"
  username             = var.site_a_username
  password             = var.site_a_password
}
provider "hcx" {
  alias                = "site-b"
  hcx                  = "https://${var.site_b_hcx_hostname}/"
  username             = var.site_b_username
  password             = var.site_b_password
}

Here is the Site Pairing resource block:

resource "hcx_site_pairing" "site_pairing_site_a" {
  provider         = hcx.site-a
  url              = "https://${var.site_b_hcx_hostname}/"
  username         = var.site_b_username
  password         = var.site_b_password
}
resource "hcx_site_pairing" "site_pairing_site_b" {
  provider         = hcx.site-b
  url              = "https://${var.site_a_hcx_hostname}/"
  username         = var.site_a_username
  password         = var.site_a_password
}

As I mentioned, the above Site Pairing is working great.

Now, here is the Service Mesh resource block just for Site A:

resource "hcx_service_mesh" "service_mesh_site_a" {
  provider               = hcx.site-a
  name                   = "Service Mesh Site A"
  site_pairing           = hcx_site_pairing.site_pairing_site_a
  local_compute_profile  = "GCVE Compute Profile"
  remote_compute_profile = "GCVE Compute Profile"

  app_path_resiliency_enabled   = false
  tcp_flow_conditioning_enabled = false
  uplink_max_bandwidth = 10000

  service {
    name = "INTERCONNECT"
  }

  service {
    name = "WANOPT"
  }

  service {
    name = "VMOTION"
  }

  service {
    name = "BULK_MIGRATION"
  }

  service {
    name = "NETWORK_EXTENSION"
  }
}

When I execute terraform apply I get the following error:

hcx_service_mesh.service_mesh_site_a: Creating...
╷
│ Error: Plugin did not respond
│
│   with hcx_service_mesh.service_mesh_site_a,
│   on main.tf line 201, in resource "hcx_service_mesh" "service_mesh_site_a":
│  201: resource "hcx_service_mesh" "service_mesh_site_a" {
│
│ The plugin encountered an error, and failed to respond to the
│ plugin.(*GRPCProvider).ApplyResourceChange call. The plugin logs may
│ contain more details.
╵

Stack trace from the terraform-provider-hcx_v0.4.2.exe plugin:

panic: interface conversion: interface {} is nil, not string

goroutine 43 [running]:
main.resourceServiceMeshCreate(0xdb9b40, 0xc000226f00, 0xc000338000, 0xbdd0e0, 0xc000098980, 0xc000330c00, 0x851c71, 0xc00030eb40)
        github.com/adeleporte/terraform-provider-hcx/resource_service_mesh.go:99 +0x170a
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).create(0xc0002e8630, 0xdb9ac0, 0xc00026a780, 0xc000338000, 0xbdd0e0, 0xc000098980, 0x0, 0x0, 0x0)
        github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/resource.go:275 +0x1f3
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).Apply(0xc0002e8630, 0xdb9ac0, 0xc00026a780, 0xc0001f3810, 0xc00030eb40, 0xbdd0e0, 0xc000098980, 0x0, 0x0, 0x0, ...)
        github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/resource.go:386 +0x688
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*GRPCProviderServer).ApplyResourceChange(0xc000232960, 0xdb9ac0, 0xc00026a780, 0xc0001d9e00, 0xc00026a780, 0xc000226800, 0xdc7340)
        github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/grpc_provider.go:951 +0x8b9
github.com/hashicorp/terraform-plugin-go/tfprotov5/server.(*server).ApplyResourceChange(0xc00008eb40, 0xdb9ac0, 0xc00026a780, 0xc0001f35e0, 0xc00008eb40, 0xc0002737a0, 0xc0002bfba0)
        github.com/hashicorp/[email protected]/tfprotov5/server/server.go:331 +0xb3
github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5._Provider_ApplyResourceChange_Handler(0xc571c0, 0xc00008eb40, 0xdb9b80, 0xc0002737a0, 0xc000226840, 0x0, 0xdb9b80, 0xc0002737a0, 0xc00031e000, 0x4d4)
        github.com/hashicorp/[email protected]/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go:380 +0x21e
google.golang.org/grpc.(*Server).processUnaryRPC(0xc00027ee00, 0xdc3de0, 0xc000084900, 0xc0000b6a00, 0xc00017d7d0, 0x12df9e0, 0x0, 0x0, 0x0)
        google.golang.org/[email protected]/server.go:1194 +0x511
google.golang.org/grpc.(*Server).handleStream(0xc00027ee00, 0xdc3de0, 0xc000084900, 0xc0000b6a00, 0x0)
        google.golang.org/[email protected]/server.go:1517 +0xd04
google.golang.org/grpc.(*Server).serveStreams.func1.2(0xc00002a280, 0xc00027ee00, 0xdc3de0, 0xc000084900, 0xc0000b6a00)
        google.golang.org/[email protected]/server.go:859 +0xa8
created by google.golang.org/grpc.(*Server).serveStreams.func1
        google.golang.org/[email protected]/server.go:857 +0x20b

Error: The terraform-provider-hcx_v0.4.2.exe plugin crashed!

This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue.

Please note that if I go ahead and configure the Service Mesh manually through the HCX web UI, it works perfectly. I am just not able to do it via this Terraform provider.

Any ideas what could be going wrong here? Perhaps I am not using the resource correctly? Or have I hit a bug?

Thanks,
Corey

@tenthirtyam tenthirtyam added the bug Bug label Dec 19, 2024
@tenthirtyam tenthirtyam added this to the Backlog milestone Jan 7, 2025
@tenthirtyam tenthirtyam added the crash Crash label Jan 7, 2025
@tenthirtyam tenthirtyam modified the milestones: Backlog, .next Jan 9, 2025
@tenthirtyam tenthirtyam changed the title Unable to create a Service Mesh - plugin crashes r/hcx_service_mesh unable to create - plugin crashes Jan 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Bug crash Crash
Projects
None yet
Development

No branches or pull requests

2 participants