Mongey / terraform-provider-confluentcloud

A Terraform provider for managing resource in confluent.cloud
MIT License
110 stars 47 forks source link

Timeout when creating API keys tied to service accounts #60

Closed nbob31 closed 3 years ago

nbob31 commented 3 years ago

When creating API keys tied to a service-account terraform runs indefinitely and or times out. The API keys are created properly and I can see them in Confluent Cloud, but this is not reported back to Terraform. When I create this not supplying the user_id it works fine.

terraform: 0.13.5 terraform-provider-confluentcloud: 0.0.7 terraform-provider-kafka: 0.2.11

resource "confluentcloud_service_account" "devops_team" {
  name        = "devops-team"
}

resource "confluentcloud_api_key" "devops_kafka_api_key" {
  cluster_id     = confluentcloud_kafka_cluster.confluentcloud_kafka_cluster.id
  environment_id = confluentcloud_environment.confluentcloud_environment.id
  user_id        = confluentcloud_service_account.devops_team.id
  depends_on     = [confluentcloud_kafka_cluster.confluentcloud_kafka_cluster]
}

resource "confluentcloud_api_key" "devops_schema_registry_api_key" {
  environment_id   = confluentcloud_environment.confluentcloud_environment.id
  logical_clusters = [confluentcloud_schema_registry.schema_registry.id]
  user_id          = confluentcloud_service_account.devops_team.id
  depends_on = [
    confluentcloud_kafka_cluster.confluentcloud_kafka_cluster,
    confluentcloud_schema_registry.schema_registry
  ]
}

Logs

module.confluent_cloud.confluentcloud_api_key.devops_schema_registry_api_key: Creating...
2021/01/25 11:31:49 [DEBUG] EvalApply: ProviderMeta config value set
2021/01/25 11:31:49 [DEBUG] module.confluent_cloud.confluentcloud_api_key.devops_schema_registry_api_key: applying the planned Create change
2021-01-25T11:31:49.780-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7: 2021/01/25 11:31:49 [DEBUG] Creating API key
2021-01-25T11:31:50.147-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7: 2021/01/25 11:31:50 [INFO] Created API Key, waiting for it become usable
2021-01-25T11:31:50.147-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7: 2021/01/25 11:31:50 [DEBUG] Waiting for state to become: [Ready]
module.confluent_cloud.confluentcloud_api_key.devops_schema_registry_api_key: Still creating... [10s elapsed]
2021-01-25T11:32:00.211-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7: 2021/01/25 11:32:00 [INFO] API Key Created successfully: %!s(<nil>)
 runtime error: invalid memory address or nil pointer dereference
2021-01-25T11:32:00.214-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7: [signal SIGSEGV: segmentation violation code=0x1 addr=0x58 pc=0x1ac1845]
2021-01-25T11:32:00.214-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7: 
2021-01-25T11:32:00.214-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7: goroutine 147 [running]:
2021-01-25T11:32:00.214-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7: github.com/Mongey/terraform-provider-confluentcloud/ccloud.clusterReady.func1(0xc00037cf50, 0xc00037ce78, 0x2, 0x1, 0xc0000aa001, 0x1654126)
2021-01-25T11:32:00.214-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7:   /home/runner/work/terraform-provider-confluentcloud/terraform-provider-confluentcloud/ccloud/resource_kafka_cluster.go:204 +0xa5
2021-01-25T11:32:00.214-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7: github.com/hashicorp/terraform/helper/resource.(*StateChangeConf).WaitForState.func1(0xc0000bfe60, 0xc0001a3110, 0xc00004ba40, 0xc00009b320, 0xc0002895a8, 0xc0002895a0)
2021-01-25T11:32:00.214-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7:   /home/runner/go/pkg/mod/github.com/hashicorp/terraform@v0.12.1/helper/resource/state.go:103 +0x29d
2021-01-25T11:32:00.214-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7: created by github.com/hashicorp/terraform/helper/resource.(*StateChangeConf).WaitForState
2021-01-25T11:32:00.214-0600 [DEBUG] plugin.terraform-provider-confluentcloud_v0.0.7:   /home/runner/go/pkg/mod/github.com/hashicorp/terraform@v0.12.1/helper/resource/state.go:80 +0x1bf
2021/01/25 11:32:00 [DEBUG] module.confluent_cloud.confluentcloud_api_key.devops_schema_registry_api_key: apply errored, but we're indicating that via the Error pointer rather than returning it: rpc error: code = Unavailable desc = transport is closing
nbob31 commented 3 years ago

The workaround I used was to remove context and the cluster ready check after the keys are created. This created the keys successfully.

nbob31 commented 3 years ago

I just verified that using the fix in #89 resolved this.

nbob31 commented 3 years ago

Resolved with #89