有没有一种简单的方法可以重命名已发布的 TF 提供程序?

Is there an easy way to rename a released TF Provider?

上下文:我们发布了一个 TF 提供程序并希望在注册表上重命名:

https://github.com/fooorg/terraform-provider-foobar -> https://github.com/fooorg/terraform-provider-foo

并希望有一些迁移指南可以帮助我们的用户将他们由 foobar 提供商创建的现有状态迁移到 foo 提供商接受的新 TF 状态(假设唯一的迁移区别是将单个资源从 foobar_user 重命名为 foo_user -- 看起来像本指南 covers 那个场景)。

有多个关于资源重命名的指南(1, 2),但我没有找到用于重命名整个提供者的指南。

有一种手动方法 运行 手动对 TF 状态执行替换命令,但风险很大,因此不希望这样做:

terraform state replace-provider [options] FROM_PROVIDER_FQN TO_PROVIDER_FQN

Terraform 将每个不同的提供者源地址视为完全不相关的提供者,因此不会有任何从旧名称到新名称的自动迁移路径。

我认为你能做的最好的就是你已经尝试过的:在注册表中以新名称发布相同的提供者,然后记录一个手动迁移过程,该过程涉及使用 the terraform state replace-provider command 替换对旧地址引用状态文件中的新地址。

如果这不可接受,那么我认为您只需要接受提供者的当前名称作为提供者的最终名称,根本不要重命名。