有没有一种简单的方法可以重命名已发布的 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 替换对旧地址引用状态文件中的新地址。
如果这不可接受,那么我认为您只需要接受提供者的当前名称作为提供者的最终名称,根本不要重命名。
上下文:我们发布了一个 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 替换对旧地址引用状态文件中的新地址。
如果这不可接受,那么我认为您只需要接受提供者的当前名称作为提供者的最终名称,根本不要重命名。