什么是 Openshift REST API 相当于流程模板命令

What would be Openshift REST API equivalent of a process template command

我正在自动化一些使用 openshift 3.5 的持续交付流程。它们在命令行中运行良好,但我几乎找不到任何关于 oc 命令如何映射到 OCP REST API 的文档。我已经弄清楚如何与 API 交谈并使用它直接提供的内容。例如,我有一行:

oc process build-template -p APPLICATION_NAME=worldcontrol -n openshift | oc create -f - -n conspiracyspace

它从 "openshift" 命名空间获取名为 "build-template" 的模板并对其进行处理,将生成的定义通过管道传输到另一个命名空间中,以构建一些对象(如应用程序映像)。我希望能举一个例子来说明如何用 http 请求术语来表达。

编辑

按照@Graham 的提示,这就是我得到的。第一个请求是获取模板的内容:

curl -k -v -XGET  -H "User-Agent: oc/v3.5.5.15 (linux/amd64) openshift/4b5f317" -H "Authorization: Bearer ...." -H "Accept: application/json, */*" https://example.com/oapi/v1/namespaces/openshift/templates/build-template

然后显然是 oc 客户端在内部扩展参数,并将结果提供给 POST:

curl -k -v -XPOST  -H "Content-Type: application/json" -H "User-Agent: oc/v3.5.5.15 (linux/amd64) openshift/4b5f317" -H "Accept: application/json, */*" -H "Authorization: Bearer ...." https://example.com/oapi/v1/namespaces/openshift/processedtemplates

运行 oc 命令与选项 --loglevel=10。这将向您展示 REST API 调用它在下面进行的操作,因此您可以计算出您需要做什么才能仅使用 REST API 来完成同样的事情。请注意,某些事情可能会在 oc 客户端中部分完成,而不是委托给 REST API 端点调用。

我这样做了,在 CLI 输出的最后,我看到了这个:

service "trade4-65869977-9d56-49a5-afa2-4a547df82d5c" created
deploymentconfig "trade4-65869977-9d56-49a5-afa2-4a547df82d5c" created

当管道传输到 oc create -f - 时,CLI 必须检查生成的模板并在对象数组中创建每个对象。除了两个 "created" 语句之外,没有这些调用的证据输出到我的命令 window。

因此,要通过 REST API 完全自动化,我们仍然需要将 processtemplates 和 POST 返回的对象数组解析到适当的端点,对吗?