希望你做得很好。我正在使用Go编写一个API,其工作方式类似于地形提供程序协议因此,我已经有两个端点通过HTTPS在我的本地计算机上工作:https://myapi:9000/v1/provider/:namespace/:type/versionshttps://myapi:9000/v1/provider/:namespace/:type/:version/download/:os/:arch例如,假设这些完整的端点:https://myapi:9000/v1/provider/myprovider/custom/versionshttps://myapi:9000/v1/provider/myprovider/custom/0.1.0/download/linux/amd64所以我有下一个.tf.json文件:{ "module": { "linux": { "source": "myapi:9000/v1/module/mymodule/custom", "version": "0.1.2" } }}使用这两个文件provider.tf.jsonprovider "mycustomprovider" { username = "abc" password = "def" host = "yjk"}versions.tf.jsonterraform { required_providers { mycustomprovider = { source: "myapi:9000/v1/myprovider/custom", version: "0.1.0" } } required_version = ">=1.0.2"}然后我只需运行:获取我的资产。terraform init因此,当我获得自定义模块时,工作正常。输出(模块下载):Initializing modules...Downloading myapi:9000/mymodule/custom/gnu 0.1.2 for linux...- linux in .terraform/modules/linuxInitializing the backend...但是当我得到我的证明时,我有这个错误:Initializing provider plugins...- Finding myapi:9000:9000/myprovider/custom versions matching "0.1.0"...- Installing myapi:9000:9000/myprovider/custom v0.1.0...╷│ Error: Failed to install provider│ │ Error while installing myapi:9000/myprovider/custom v0.1.0: error checking signature:│ openpgp: invalid data: tag byte does not have MSB set因此,我的提供者终结点正在工作。这就是为什么terraform能够识别我的提供者的版本。versions问题应该出在我的终结点上。download在谈论这个终端节点之前,我想添加一些上下文,我正在使用本地堆栈运行S3客户端并通过ngrok公开它。这两件事有效,我能够毫无问题地上传或下载文件。泰拉form自定义提供程序应该有三个文件(据我所知):zip 格式的提供程序(如其示例中所示)一个包含每个提供者zip文件的阴影的文件(在这种情况下,我只有一个)provider_SHA256SUMS用于识别文件的完整性。provider_SHA256SUMS.sigprovider_SHA256SUMS
1 回答
守着一只汪
TA贡献1872条经验 获得超4个赞
x/crypto/openpgpterraform使用不支持读取装甲消息,请参阅问题,这是错误的来源。
shasums_signature_url提交的文档提及:
二进制、分离的 GPG 签名
另请参阅手动准备发布文档
这是有效的 GPG 二进制(非 ASCII 装甲)签名
因此,您应该尝试在没有标志的情况下签名。--armor
- 1 回答
- 0 关注
- 166 浏览
添加回答
举报
0/150
提交
取消
