I have a terraform 0.12 project that uses the Keycloak provider and stores its terraform state in an S3 bucket. Now I’ve tried to update this project to terraform 0.13. It worked fine locally with “terraform.tfstate” but when trying to update the real installation I wouldn’t let me:
If I first try to upgrade the Keycloak plugin name it tells me that it cannot access the S3 storage yet:
$ terraform state replace-provider registry.terraform.io/-/keycloak mrparkers/keycloak Backend reinitialization required. Please run "terraform init". Reason: Initial configuration of the requested backend "s3" indent preformatted text by 4 spaces ...
If I first try to run “init” it can access the S3 storage, finds a reference to an unknown Keycloak 1.2.0 module there and does not know how to download it. Please note that my configuration already declares a dependency to keycloak-provider 2.2.0:
$ terraform init Initializing modules... - dev_realm_srt in ../../modules/realms/SRT Initializing the backend... Successfully configured the backend "s3"! Terraform will automatically use this backend unless the backend configuration changes. Initializing provider plugins... - Finding hashicorp/keycloak versions matching "~> 1.20.0"... - Finding mrparkers/keycloak versions matching ">= 2.2.0"... - Finding latest version of -/keycloak... - Installing mrparkers/keycloak v2.2.0... - Installed mrparkers/keycloak v2.2.0 (self-signed, key ID C50867915E116CD2) Partner and community providers are signed by their developers. If you'd like to know more about provider signing, you can read about it here: https://www.terraform.io/docs/plugins/signing.html Error: Failed to install provider Error while installing hashicorp/keycloak: provider registry registry.terraform.io does not have a provider named registry.terraform.io/hashicorp/keycloak Error: Failed to install legacy providers required by state Found unresolvable legacy provider references in state. It looks like these refer to in-house providers. You can update the resources in state with the following command: terraform state replace-provider registry.terraform.io/-/keycloak registry.terraform.io/mrparkers/keycloak
Any ideas how to resolve this?