mrparkers / terraform-provider-keycloak

Terraform provider for Keycloak
https://registry.terraform.io/providers/mrparkers/keycloak/latest/docs
MIT License
629 stars 310 forks source link

Simple terraform import keycloak_realm ==> Error: rpc error: code = Unavailable desc = transport is closing #399

Closed semangard closed 3 years ago

semangard commented 3 years ago

Hello,

I am testing your KeyCloak provider into the following conditions ::

Once terraform launched (and inside the terraform container thanks to the last command) I launched :: _terraform import keycloakrealm.realm test-realm1

then I got the error ::
Error: rpc error: code = Unavailable desc = transport is closing

please find bellow the crash log ::

2020/10/20 19:54:50 [INFO] Terraform version: 0.13.4
2020/10/20 19:54:50 [INFO] Go runtime version: go1.14.7 2020/10/20 19:54:50 [INFO] CLI args: []string{"/bin/terraform", "import", "keycloak_realm.realm", "test-realm1"} 2020/10/20 19:54:50 [DEBUG] Attempting to open CLI config file: /root/.terraformrc 2020/10/20 19:54:50 [DEBUG] File doesn't exist, but doesn't need to. Ignoring. 2020/10/20 19:54:50 [DEBUG] ignoring non-existing provider search directory terraform.d/plugins 2020/10/20 19:54:50 [DEBUG] ignoring non-existing provider search directory /root/.terraform.d/plugins 2020/10/20 19:54:50 [DEBUG] ignoring non-existing provider search directory /root/.local/share/terraform/plugins 2020/10/20 19:54:50 [DEBUG] ignoring non-existing provider search directory /usr/local/share/terraform/plugins 2020/10/20 19:54:50 [DEBUG] ignoring non-existing provider search directory /usr/share/terraform/plugins 2020/10/20 19:54:50 [INFO] CLI command args: []string{"import", "keycloak_realm.realm", "test-realm1"} 2020/10/20 19:54:50 [TRACE] Meta.Backend: no config given or present on disk, so returning nil config 2020/10/20 19:54:50 [TRACE] Meta.Backend: backend has not previously been initialized in this working directory 2020/10/20 19:54:50 [DEBUG] New state was assigned lineage "7533bfdc-2b3e-1f47-d16d-b0a95318e243" 2020/10/20 19:54:50 [TRACE] Meta.Backend: using default local state only (no backend configuration, and no existing initialized backend) 2020/10/20 19:54:50 [TRACE] Meta.Backend: instantiated backend of type 2020/10/20 19:54:50 [TRACE] providercache.fillMetaCache: scanning directory .terraform/plugins 2020/10/20 19:54:50 [TRACE] getproviders.SearchLocalDirectory: .terraform/plugins is a symlink to .terraform/plugins 2020/10/20 19:54:50 [TRACE] getproviders.SearchLocalDirectory: found registry.terraform.io/hashicorp/local v1.4.0 for linux_amd64 at .terraform/plugins/registry.terraform.io/hashicorp/local/1.4.0/linux_amd64 2020/10/20 19:54:50 [TRACE] getproviders.SearchLocalDirectory: found registry.terraform.io/hashicorp/local v2.0.0 for linux_amd64 at .terraform/plugins/registry.terraform.io/hashicorp/local/2.0.0/linux_amd64 2020/10/20 19:54:50 [TRACE] getproviders.SearchLocalDirectory: found registry.terraform.io/mrparkers/keycloak v2.0.0 for linux_amd64 at .terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64 2020/10/20 19:54:50 [TRACE] providercache.fillMetaCache: including .terraform/plugins/registry.terraform.io/hashicorp/local/1.4.0/linux_amd64 as a candidate package for registry.terraform.io/hashicorp/local 1.4.0 2020/10/20 19:54:50 [TRACE] providercache.fillMetaCache: including .terraform/plugins/registry.terraform.io/hashicorp/local/2.0.0/linux_amd64 as a candidate package for registry.terraform.io/hashicorp/local 2.0.0 2020/10/20 19:54:50 [TRACE] providercache.fillMetaCache: including .terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64 as a candidate package for registry.terraform.io/mrparkers/keycloak 2.0.0 2020/10/20 19:54:50 [TRACE] providercache.fillMetaCache: using cached result from previous scan of .terraform/plugins 2020/10/20 19:54:51 [DEBUG] checking for provisioner in "." 2020/10/20 19:54:51 [DEBUG] checking for provisioner in "/bin" 2020/10/20 19:54:51 [INFO] Failed to read plugin lock file .terraform/plugins/linux_amd64/lock.json: open .terraform/plugins/linux_amd64/lock.json: no such file or directory 2020/10/20 19:54:51 [TRACE] Meta.Backend: backend does not support operations, so wrapping it in a local backend 2020/10/20 19:54:51 [TRACE] backend/local: requesting state manager for workspace "default" 2020/10/20 19:54:51 [TRACE] backend/local: state manager for workspace "default" will: read initial snapshot from terraform.tfstate write new snapshots to terraform.tfstate create any backup at terraform.tfstate.backup 2020/10/20 19:54:51 [TRACE] backend/local: requesting state lock for workspace "default" 2020/10/20 19:54:51 [TRACE] statemgr.Filesystem: preparing to manage state snapshots at terraform.tfstate 2020/10/20 19:54:51 [TRACE] statemgr.Filesystem: existing snapshot has lineage "d08dd982-7dd6-0648-5c03-763ee488729f" serial 8 2020/10/20 19:54:51 [TRACE] statemgr.Filesystem: locking terraform.tfstate using fcntl flock 2020/10/20 19:54:51 [TRACE] statemgr.Filesystem: writing lock metadata to .terraform.tfstate.lock.info 2020/10/20 19:54:51 [TRACE] backend/local: reading remote state for workspace "default" 2020/10/20 19:54:51 [TRACE] statemgr.Filesystem: reading latest snapshot from terraform.tfstate 2020/10/20 19:54:51 [TRACE] statemgr.Filesystem: read snapshot with lineage "d08dd982-7dd6-0648-5c03-763ee488729f" serial 8 2020/10/20 19:54:51 [TRACE] backend/local: retrieving local state snapshot for workspace "default" 2020/10/20 19:54:51 [TRACE] backend/local: building context for current working directory 2020/10/20 19:54:51 [TRACE] terraform.NewContext: starting 2020/10/20 19:54:51 [TRACE] terraform.NewContext: loading provider schemas 2020/10/20 19:54:51 [TRACE] LoadSchemas: retrieving schema for provider type "registry.terraform.io/hashicorp/local" 2020-10-20T19:54:51.094Z [INFO] plugin: configuring client automatic mTLS 2020-10-20T19:54:51.123Z [DEBUG] plugin: starting plugin: path=.terraform/plugins/registry.terraform.io/hashicorp/local/2.0.0/linux_amd64/terraform-provider-local_v2.0.0_x5 args=[.terraform/plugins/registry.terraform.io/hashicorp/local/2.0.0/linux_amd64/terraform-provider-local_v2.0.0_x5] 2020-10-20T19:54:51.132Z [DEBUG] plugin: plugin started: path=.terraform/plugins/registry.terraform.io/hashicorp/local/2.0.0/linux_amd64/terraform-provider-local_v2.0.0_x5 pid=796 2020-10-20T19:54:51.132Z [DEBUG] plugin: waiting for RPC address: path=.terraform/plugins/registry.terraform.io/hashicorp/local/2.0.0/linux_amd64/terraform-provider-local_v2.0.0_x5 2020-10-20T19:54:51.585Z [INFO] plugin.terraform-provider-local_v2.0.0_x5: configuring server automatic mTLS: timestamp=2020-10-20T19:54:51.585Z 2020-10-20T19:54:51.639Z [DEBUG] plugin.terraform-provider-local_v2.0.0_x5: plugin address: network=unix address=/tmp/plugin598233291 timestamp=2020-10-20T19:54:51.639Z 2020-10-20T19:54:51.639Z [DEBUG] plugin: using plugin: version=5 2020/10/20 19:54:51 [TRACE] GRPCProvider: GetSchema 2020-10-20T19:54:51.708Z [TRACE] plugin.stdio: waiting for stdio data 2020/10/20 19:54:51 [TRACE] GRPCProvider: Close 2020-10-20T19:54:51.722Z [WARN] plugin.stdio: received EOF, stopping recv loop: err="rpc error: code = Unavailable desc = transport is closing" 2020-10-20T19:54:51.725Z [DEBUG] plugin: plugin process exited: path=.terraform/plugins/registry.terraform.io/hashicorp/local/2.0.0/linux_amd64/terraform-provider-local_v2.0.0_x5 pid=796 2020-10-20T19:54:51.725Z [DEBUG] plugin: plugin exited 2020/10/20 19:54:51 [TRACE] LoadSchemas: retrieving schema for provider type "registry.terraform.io/mrparkers/keycloak" 2020-10-20T19:54:51.734Z [INFO] plugin: configuring client automatic mTLS 2020-10-20T19:54:51.763Z [DEBUG] plugin: starting plugin: path=.terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64/terraform-provider-keycloak_v2.0.0 args=[.terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64/terraform-provider-keycloak_v2.0.0] 2020-10-20T19:54:51.772Z [DEBUG] plugin: plugin started: path=.terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64/terraform-provider-keycloak_v2.0.0 pid=808 2020-10-20T19:54:51.772Z [DEBUG] plugin: waiting for RPC address: path=.terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64/terraform-provider-keycloak_v2.0.0 2020-10-20T19:54:52.528Z [INFO] plugin.terraform-provider-keycloak_v2.0.0: configuring server automatic mTLS: timestamp=2020-10-20T19:54:52.528Z 2020-10-20T19:54:52.583Z [DEBUG] plugin: using plugin: version=5 2020-10-20T19:54:52.584Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: plugin address: address=/tmp/plugin473381791 network=unix timestamp=2020-10-20T19:54:52.583Z 2020/10/20 19:54:52 [TRACE] GRPCProvider: GetSchema 2020-10-20T19:54:52.659Z [TRACE] plugin.stdio: waiting for stdio data 2020/10/20 19:54:52 [TRACE] GRPCProvider: Close 2020-10-20T19:54:52.694Z [WARN] plugin.stdio: received EOF, stopping recv loop: err="rpc error: code = Unavailable desc = transport is closing" 2020-10-20T19:54:52.697Z [DEBUG] plugin: plugin process exited: path=.terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64/terraform-provider-keycloak_v2.0.0 pid=808 2020-10-20T19:54:52.697Z [DEBUG] plugin: plugin exited 2020/10/20 19:54:52 [TRACE] terraform.NewContext: complete 2020/10/20 19:54:52 [TRACE] backend/local: finished building terraform.Context 2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.ConfigTransformer 2020/10/20 19:54:52 [TRACE] ConfigTransformer: Starting for path: 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.ConfigTransformer with new graph: keycloak_realm.realm - *terraform.NodeAbstractResource

2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.AttachResourceConfigTransformer 2020/10/20 19:54:52 [TRACE] AttachResourceConfigTransformer: attaching to "keycloak_realm.realm" (terraform.NodeAbstractResource) config from /workdir/realms.tf:58,1-34 2020/10/20 19:54:52 [TRACE] AttachResourceConfigTransformer: attaching provider meta configs to keycloak_realm.realm 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.AttachResourceConfigTransformer (no changes) 2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.ImportStateTransformer 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.ImportStateTransformer with new graph: keycloak_realm.realm - terraform.NodeAbstractResource keycloak_realm.realm (import id "test-realm1") - *terraform.graphNodeImportState

2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.RootVariableTransformer 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.RootVariableTransformer with new graph: keycloak_realm.realm - terraform.NodeAbstractResource keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - *terraform.NodeRootVariable

2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.graphTransformerMulti 2020/10/20 19:54:52 [TRACE] (graphTransformerMulti) Executing graph transform terraform.ProviderConfigTransformer 2020/10/20 19:54:52 [TRACE] ProviderConfigTransformer: attaching to "provider[\"registry.terraform.io/mrparkers/keycloak\"]" provider configuration from /workdir/providers.tf:14,1-20 2020/10/20 19:54:52 [TRACE] (graphTransformerMulti) Completed graph transform terraform.ProviderConfigTransformer with new graph: keycloak_realm.realm - terraform.NodeAbstractResource keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - *terraform.NodeRootVariable

2020/10/20 19:54:52 [TRACE] (graphTransformerMulti) Executing graph transform terraform.MissingProviderTransformer 2020/10/20 19:54:52 [TRACE] (graphTransformerMulti) Completed graph transform terraform.MissingProviderTransformer (no changes) 2020/10/20 19:54:52 [TRACE] (graphTransformerMulti) Executing graph transform terraform.ProviderTransformer 2020/10/20 19:54:52 [TRACE] ProviderTransformer: exact match for provider["registry.terraform.io/mrparkers/keycloak"] serving keycloak_realm.realm (import id "test-realm1") 2020/10/20 19:54:52 [DEBUG] ProviderTransformer: "keycloak_realm.realm (import id \"test-realm1\")" (terraform.graphNodeImportState) needs provider["registry.terraform.io/mrparkers/keycloak"] 2020/10/20 19:54:52 [TRACE] ProviderTransformer: exact match for provider["registry.terraform.io/mrparkers/keycloak"] serving keycloak_realm.realm 2020/10/20 19:54:52 [DEBUG] ProviderTransformer: "keycloak_realm.realm" (terraform.NodeAbstractResource) needs provider["registry.terraform.io/mrparkers/keycloak"] 2020/10/20 19:54:52 [TRACE] (graphTransformerMulti) Completed graph transform terraform.ProviderTransformer with new graph: keycloak_realm.realm - terraform.NodeAbstractResource provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - terraform.NodeRootVariable

2020/10/20 19:54:52 [TRACE] (graphTransformerMulti) Executing graph transform terraform.PruneProviderTransformer 2020/10/20 19:54:52 [TRACE] (graphTransformerMulti) Completed graph transform terraform.PruneProviderTransformer (no changes) 2020/10/20 19:54:52 [TRACE] (graphTransformerMulti) Executing graph transform terraform.ParentProviderTransformer 2020/10/20 19:54:52 [TRACE] (graphTransformerMulti) Completed graph transform terraform.ParentProviderTransformer (no changes) 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.graphTransformerMulti with new graph: keycloak_realm.realm - terraform.NodeAbstractResource provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - *terraform.NodeRootVariable

2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.LocalTransformer 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.LocalTransformer (no changes) 2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.OutputTransformer 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.OutputTransformer (no changes) 2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.ModuleVariableTransformer 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.ModuleVariableTransformer (no changes) 2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.AttachSchemaTransformer 2020/10/20 19:54:52 [TRACE] AttachSchemaTransformer: attaching provider config schema to provider["registry.terraform.io/mrparkers/keycloak"] 2020/10/20 19:54:52 [TRACE] AttachSchemaTransformer: attaching resource schema to keycloak_realm.realm 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.AttachSchemaTransformer (no changes) 2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.ModuleExpansionTransformer 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.ModuleExpansionTransformer (no changes) 2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.ReferenceTransformer 2020/10/20 19:54:52 [DEBUG] ReferenceTransformer: "keycloak_realm.realm (import id \"test-realm1\")" references: [] 2020/10/20 19:54:52 [DEBUG] ReferenceTransformer: "var.keycloak_url" references: [] 2020/10/20 19:54:52 [DEBUG] ReferenceTransformer: "var.keycloak_tf_client_id" references: [] 2020/10/20 19:54:52 [DEBUG] ReferenceTransformer: "var.keycloak_tf_client_secret" references: [] 2020/10/20 19:54:52 [DEBUG] ReferenceTransformer: "provider[\"registry.terraform.io/mrparkers/keycloak\"]" references: [var.keycloak_tf_client_secret var.keycloak_url var.keycloak_tf_client_id] 2020/10/20 19:54:52 [DEBUG] ReferenceTransformer: "keycloak_realm.realm" references: [] 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.ReferenceTransformer with new graph: keycloak_realm.realm - terraform.NodeAbstractResource provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - terraform.NodeRootVariable var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - *terraform.NodeRootVariable

2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.attachDataResourceDependenciesTransformer 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.attachDataResourceDependenciesTransformer (no changes) 2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.CloseProviderTransformer 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.CloseProviderTransformer with new graph: keycloak_realm.realm - terraform.NodeAbstractResource provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - terraform.NodeRootVariable provider["registry.terraform.io/mrparkers/keycloak"] (close) - terraform.graphNodeCloseProvider keycloak_realm.realm - terraform.NodeAbstractResource keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - *terraform.NodeRootVariable

2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.CloseRootModuleTransformer 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.CloseRootModuleTransformer with new graph: keycloak_realm.realm - terraform.NodeAbstractResource provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - terraform.NodeRootVariable provider["registry.terraform.io/mrparkers/keycloak"] (close) - terraform.graphNodeCloseProvider keycloak_realm.realm - terraform.NodeAbstractResource keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider root - terraform.nodeCloseModule provider["registry.terraform.io/mrparkers/keycloak"] (close) - terraform.graphNodeCloseProvider var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - *terraform.NodeRootVariable

2020/10/20 19:54:52 [TRACE] Executing graph transform terraform.TransitiveReductionTransformer 2020/10/20 19:54:52 [TRACE] Completed graph transform terraform.TransitiveReductionTransformer with new graph: keycloak_realm.realm - terraform.NodeAbstractResource provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider provider["registry.terraform.io/mrparkers/keycloak"] - terraform.NodeApplyableProvider var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - terraform.NodeRootVariable provider["registry.terraform.io/mrparkers/keycloak"] (close) - terraform.graphNodeCloseProvider keycloak_realm.realm - terraform.NodeAbstractResource keycloak_realm.realm (import id "test-realm1") - terraform.graphNodeImportState root - terraform.nodeCloseModule provider["registry.terraform.io/mrparkers/keycloak"] (close) - terraform.graphNodeCloseProvider var.keycloak_tf_client_id - terraform.NodeRootVariable var.keycloak_tf_client_secret - terraform.NodeRootVariable var.keycloak_url - terraform.NodeRootVariable

2020/10/20 19:54:52 [DEBUG] Starting graph walk: walkImport 2020/10/20 19:54:52 [TRACE] dag/walk: visiting "var.keycloak_url" 2020/10/20 19:54:52 [TRACE] vertex "var.keycloak_url": starting visit (terraform.NodeRootVariable) 2020/10/20 19:54:52 [TRACE] vertex "var.keycloak_url": evaluating 2020/10/20 19:54:52 [TRACE] [walkImport] Entering eval tree: var.keycloak_url 2020/10/20 19:54:52 [TRACE] eval: terraform.EvalSequence 2020/10/20 19:54:52 [TRACE] [walkImport] Exiting eval tree: var.keycloak_url 2020/10/20 19:54:52 [TRACE] vertex "var.keycloak_url": visit complete 2020/10/20 19:54:52 [TRACE] dag/walk: visiting "var.keycloak_tf_client_id" 2020/10/20 19:54:52 [TRACE] vertex "var.keycloak_tf_client_id": starting visit (terraform.NodeRootVariable) 2020/10/20 19:54:52 [TRACE] vertex "var.keycloak_tf_client_id": evaluating 2020/10/20 19:54:52 [TRACE] [walkImport] Entering eval tree: var.keycloak_tf_client_id 2020/10/20 19:54:52 [TRACE] eval: terraform.EvalSequence 2020/10/20 19:54:52 [TRACE] [walkImport] Exiting eval tree: var.keycloak_tf_client_id 2020/10/20 19:54:52 [TRACE] dag/walk: visiting "var.keycloak_tf_client_secret" 2020/10/20 19:54:52 [TRACE] vertex "var.keycloak_tf_client_id": visit complete 2020/10/20 19:54:52 [TRACE] vertex "var.keycloak_tf_client_secret": starting visit (terraform.NodeRootVariable) 2020/10/20 19:54:52 [TRACE] vertex "var.keycloak_tf_client_secret": evaluating 2020/10/20 19:54:52 [TRACE] [walkImport] Entering eval tree: var.keycloak_tf_client_secret 2020/10/20 19:54:52 [TRACE] eval: terraform.EvalSequence 2020/10/20 19:54:52 [TRACE] [walkImport] Exiting eval tree: var.keycloak_tf_client_secret 2020/10/20 19:54:52 [TRACE] vertex "var.keycloak_tf_client_secret": visit complete 2020/10/20 19:54:52 [TRACE] dag/walk: visiting "provider[\"registry.terraform.io/mrparkers/keycloak\"]" 2020/10/20 19:54:52 [TRACE] vertex "provider[\"registry.terraform.io/mrparkers/keycloak\"]": starting visit (terraform.NodeApplyableProvider) 2020/10/20 19:54:52 [TRACE] vertex "provider[\"registry.terraform.io/mrparkers/keycloak\"]": evaluating 2020/10/20 19:54:52 [TRACE] [walkImport] Entering eval tree: provider["registry.terraform.io/mrparkers/keycloak"] 2020/10/20 19:54:52 [TRACE] eval: terraform.EvalSequence 2020/10/20 19:54:52 [TRACE] eval: terraform.EvalInitProvider 2020-10-20T19:54:52.707Z [INFO] plugin: configuring client automatic mTLS 2020-10-20T19:54:52.735Z [DEBUG] plugin: starting plugin: path=.terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64/terraform-provider-keycloak_v2.0.0 args=[.terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64/terraform-provider-keycloak_v2.0.0] 2020-10-20T19:54:52.744Z [DEBUG] plugin: plugin started: path=.terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64/terraform-provider-keycloak_v2.0.0 pid=821 2020-10-20T19:54:52.745Z [DEBUG] plugin: waiting for RPC address: path=.terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64/terraform-provider-keycloak_v2.0.0 2020-10-20T19:54:53.479Z [INFO] plugin.terraform-provider-keycloak_v2.0.0: configuring server automatic mTLS: timestamp=2020-10-20T19:54:53.479Z 2020-10-20T19:54:53.536Z [DEBUG] plugin: using plugin: version=5 2020-10-20T19:54:53.536Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: plugin address: network=unix address=/tmp/plugin900689452 timestamp=2020-10-20T19:54:53.536Z 2020/10/20 19:54:53 [TRACE] BuiltinEvalContext: Initialized "provider[\"registry.terraform.io/mrparkers/keycloak\"]" provider for provider["registry.terraform.io/mrparkers/keycloak"] 2020/10/20 19:54:53 [TRACE] eval: terraform.EvalNoop 2020/10/20 19:54:53 [TRACE] eval: terraform.EvalOpFilter 2020/10/20 19:54:53 [TRACE] eval: terraform.EvalSequence 2020/10/20 19:54:53 [TRACE] eval: terraform.EvalGetProvider 2020/10/20 19:54:53 [TRACE] eval: terraform.EvalNoop 2020/10/20 19:54:53 [TRACE] eval: terraform.EvalOpFilter 2020/10/20 19:54:53 [TRACE] eval: terraform.EvalSequence 2020/10/20 19:54:53 [TRACE] eval: terraform.EvalConfigProvider 2020/10/20 19:54:53 [TRACE] buildProviderConfig for provider["registry.terraform.io/mrparkers/keycloak"]: using explicit config only 2020/10/20 19:54:53 [TRACE] GRPCProvider: GetSchema 2020-10-20T19:54:53.613Z [TRACE] plugin.stdio: waiting for stdio data 2020/10/20 19:54:53 [TRACE] GRPCProvider: Configure 2020-10-20T19:54:53.639Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: 2020/10/20 19:54:53 [DEBUG] Login request: client_id=%22terraform%22&client_secret=%22REDACTED%22&grant_type=client_credentials 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: panic: runtime error: invalid memory address or nil pointer dereference 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: [signal SIGSEGV: segmentation violation code=0x1 addr=0x38 pc=0xaaaf9f] 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: goroutine 51 [running]: 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/mrparkers/terraform-provider-keycloak/keycloak.(KeycloakClient).login(0xc00007a960, 0x0, 0x0) 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/mrparkers/terraform-provider-keycloak/keycloak/keycloak_client.go:120 +0x29f 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/mrparkers/terraform-provider-keycloak/keycloak.NewKeycloakClient(0xc000034380, 0x17, 0x10f088f, 0x5, 0xc000036290, 0xb, 0xc0000380f0, 0x26, 0x10f21f4, 0x6, ...) 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/mrparkers/terraform-provider-keycloak/keycloak/keycloak_client.go:104 +0x42a 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/mrparkers/terraform-provider-keycloak/provider.KeycloakProvider.func1(0x136bdc0, 0xc000633080, 0xc000634480, 0x0, 0xc000632ff0, 0x0, 0x0, 0x0) 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/mrparkers/terraform-provider-keycloak/provider/provider.go:175 +0x5e5 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(Provider).Configure(0xc000292960, 0x136bdc0, 0xc000633080, 0xc000632ff0, 0x100cba0, 0xc000040340, 0x136bdc0) 2020-10-20T19:54:53.644Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/hashicorp/terraform-plugin-sdk/v2@v2.0.2-0.20200817173939-b72757e734f6/helper/schema/provider.go:286 +0x254 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/hashicorp/terraform-plugin-sdk/v2/internal/helper/plugin.(GRPCProviderServer).Configure(0xc000289a20, 0x136bd00, 0xc0000402c0, 0xc000040240, 0xc000289a20, 0xc000289a30, 0x1144e18) 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/hashicorp/terraform-plugin-sdk/v2@v2.0.2-0.20200817173939-b72757e734f6/internal/helper/plugin/grpc_provider.go:520 +0x3ba 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfplugin5._Provider_Configure_Handler.func1(0x136bd00, 0xc0000402c0, 0x107be00, 0xc000040240, 0xc0000402c0, 0xfd7380, 0xc00007a801, 0xc00071e960) 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/hashicorp/terraform-plugin-sdk/v2@v2.0.2-0.20200817173939-b72757e734f6/internal/tfplugin5/tfplugin5.pb.go:3258 +0x86 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/hashicorp/terraform-plugin-sdk/v2/plugin.Serve.func3.1(0x136bdc0, 0xc000632840, 0x107be00, 0xc000040240, 0xc00071e940, 0xc00071e960, 0xc00026dba0, 0x5c1dd8, 0x105fe80, 0xc000632840) 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/hashicorp/terraform-plugin-sdk/v2@v2.0.2-0.20200817173939-b72757e734f6/plugin/serve.go:76 +0x87 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfplugin5._Provider_Configure_Handler(0x10b58a0, 0xc000289a20, 0x136bdc0, 0xc000632840, 0xc00007a8a0, 0xc00051b4e0, 0x136bdc0, 0xc000632840, 0xc0002981e0, 0xeb) 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: github.com/hashicorp/terraform-plugin-sdk/v2@v2.0.2-0.20200817173939-b72757e734f6/internal/tfplugin5/tfplugin5.pb.go:3260 +0x14b 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: google.golang.org/grpc.(Server).processUnaryRPC(0xc0002b9500, 0x1377740, 0xc000603380, 0xc000114600, 0xc00037adb0, 0x1af0538, 0x0, 0x0, 0x0) 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: google.golang.org/grpc@v1.30.0/server.go:1171 +0x50a 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: google.golang.org/grpc.(Server).handleStream(0xc0002b9500, 0x1377740, 0xc000603380, 0xc000114600, 0x0) 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: google.golang.org/grpc@v1.30.0/server.go:1494 +0xccd 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: google.golang.org/grpc.(Server).serveStreams.func1.2(0xc0000360c0, 0xc0002b9500, 0x1377740, 0xc000603380, 0xc000114600) 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: google.golang.org/grpc@v1.30.0/server.go:834 +0xa1 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: created by google.golang.org/grpc.(Server).serveStreams.func1 2020-10-20T19:54:53.645Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: google.golang.org/grpc@v1.30.0/server.go:832 +0x204 2020/10/20 19:54:53 [ERROR] eval: terraform.EvalConfigProvider, err: rpc error: code = Unavailable desc = transport is closing 2020-10-20T19:54:53.646Z [WARN] plugin.stdio: received EOF, stopping recv loop: err="rpc error: code = Unavailable desc = transport is closing" 2020/10/20 19:54:53 [ERROR] eval: terraform.EvalSequence, err: rpc error: code = Unavailable desc = transport is closing 2020/10/20 19:54:53 [ERROR] eval: terraform.EvalOpFilter, err: rpc error: code = Unavailable desc = transport is closing 2020/10/20 19:54:53 [ERROR] eval: terraform.EvalSequence, err: rpc error: code = Unavailable desc = transport is closing 2020/10/20 19:54:53 [TRACE] [walkImport] Exiting eval tree: provider["registry.terraform.io/mrparkers/keycloak"] 2020/10/20 19:54:53 [TRACE] vertex "provider[\"registry.terraform.io/mrparkers/keycloak\"]": visit complete 2020/10/20 19:54:53 [TRACE] dag/walk: upstream of "keycloak_realm.realm" errored, so skipping 2020/10/20 19:54:53 [TRACE] dag/walk: upstream of "keycloak_realm.realm (import id \"test-realm1\")" errored, so skipping 2020/10/20 19:54:53 [TRACE] dag/walk: upstream of "provider[\"registry.terraform.io/mrparkers/keycloak\"] (close)" errored, so skipping 2020/10/20 19:54:53 [TRACE] dag/walk: upstream of "root" errored, so skipping 2020/10/20 19:54:53 [TRACE] statemgr.Filesystem: removing lock metadata file .terraform.tfstate.lock.info 2020/10/20 19:54:53 [TRACE] statemgr.Filesystem: unlocking terraform.tfstate using fcntl flock 2020-10-20T19:54:53.649Z [DEBUG] plugin: plugin process exited: path=.terraform/plugins/registry.terraform.io/mrparkers/keycloak/2.0.0/linux_amd64/terraform-provider-keycloak_v2.0.0 pid=821 error="exit status 2" 2020-10-20T19:54:53.649Z [DEBUG] plugin: plugin exited

semangard commented 3 years ago

Please note that into the terraform container I am able to get connected to KeyCloak :: /workdir # wget http://localhost:8080 Connecting to localhost:8080 ([::1]:8080) saving to 'index.html' index.html 100% |**

semangard commented 3 years ago

If I do not run terraform inside a docker container it works.....

So why it does not work inside terraform container ?

semangard commented 3 years ago

One more strange thing ::

DOES NOT WORK docker run -d -it --network host --env-file tf-env -v $(pwd):/workdir -w /workdir --entrypoint "/usr/bin/tail" --name terraform hashicorp/terraform:light -f "/dev/null" docker exec -it terraform sh

WORKS..... docker run -d -it --network host -v $(pwd):/workdir -w /workdir --entrypoint "/usr/bin/tail" --name terraform hashicorp/terraform:light -f "/dev/null" docker exec -it terraform sh -c ". tf-env.sh && env | grep TF && sh"

once connected to the container, execute the following command to check what works or not :
terraform plan -var-file="main.tfvars"

mrparkers commented 3 years ago

A couple of things I noticed here:

1) The error is being caused by a nil pointer dereference here, which is most likely due to not handling the potential error that can be thrown on the previous line. I opened #408 to fix this. 2) The debug logs for your login request show that you have extra quotes around the form data that is being used to log in to keycloak. The relevant line is this one: 2020-10-20T19:54:53.639Z [DEBUG] plugin.terraform-provider-keycloak_v2.0.0: 2020/10/20 19:54:53 [DEBUG] Login request: client_id=%22terraform%22&client_secret=%22REDACTED%22&grant_type=client_credentials. This would imply to me that your provider configuration looks something like this:

provider "keycloak" {
  client_id     = "\"terraform\""
  client_secret = "\"884e0f95-0f42-4a63-9b1f-94274655669e\""
  url           = "https://keycloak.example.com"
}

While I don't think that was causing your original problem, I don't think this will help either.

In any case, once #408 is merged, you will at least get a more helpful error message about why your original configuration was not working.

semangard commented 3 years ago

Hummmm

In fact env variables were inject into the TF container thanks to --env-file tf-env

And you were right the values were quoted : KEYCLOAK_URL="http://localhost:8080" KEYCLOAK_CLIENT_ID="terraform" KEYCLOAK_CLIENT_SECRET="198a957e-b7ac-405a-b0c8-b9f8750be641"

It is better if I remove the quotes

mrparkers commented 3 years ago

So it's working now that those quotes were removed?

semangard commented 3 years ago

Yes, it is.

mrparkers commented 3 years ago

Perfect. I'll go ahead and close this then.