希望你做得很好。
我正在使用Go编写一个API,其工作方式类似于地形提供程序协议
因此,我已经有两个端点通过HTTPS在我的本地计算机上工作:
https://myapi:9000/v1/provider/:namespace/:type/versions
https://myapi:9000/v1/provider/:namespace/:type/:version/download/:os/:arch
例如,假设这些完整的端点:
https://myapi:9000/v1/provider/myprovider/custom/versions
https://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.json
provider "mycustomprovider" {
username = "abc"
password = "def"
host = "yjk"
}
versions.tf.json
terraform {
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/linux
Initializing 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
九州编程
守着一只汪
随时随地看视频慕课网APP
相关分类