我需要将数据从一个保管库实例迁移到另一个保管库实例。数据存储在 kv 引擎中,这些引擎存储在非根命名空间下的子命名空间中。我想保留命名空间路径和 kv 秘密,但不确定是否可能
我尝试像下面这样列出秘密,但它似乎不起作用
vault kv list secret/ -namespace=productname/envname/application-namespace/service-name
productname 是父命名空间,其余的是我的应用程序动态创建的子命名空间。 在子命名空间service-name下有一个名为“secret”的kv引擎,它有很多秘密。
最坏的情况是我可以手动重新创建每个产品的所有子命名空间,但我至少需要导出和导入“秘密”kv 引擎的内容。
但是,当我运行该命令时,我得到了
Too many arguments (expected 1, got 2)
我不知道这是否对您有帮助,因为我见过这样做的工具,但几年前我找到了解决方案。
再说一次,我不知道这对你在这种情况下是否有帮助。
但是我的方法对于将一个保管库迁移到另一个保管库非常有效。
工具安装
在具有旧保管库的机器上(可以是与新保管库相同的机器):
wget https://github.com/starkandwayne/safe/releases/download/v1.6.1/safe-linux-amd64
safe target http://vault.old.lan vaultold
safe auth token
safe export -T http://adress.oldvault.lan > export.json
将你的秘密导入到新的金库中:
safe target http://address.of.the.new.vault vaultnew
safe auth token
Safe import < export.json