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

时间:2017-06-30 11:31:00

标签: rest api automation openshift continuous-delivery

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

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

这需要一个名为" build-template"的模板。来自" openshift"命名空间并对其进行处理,将生成的定义用于构建一些对象(如应用程序映像)到另一个命名空间。我将很感激如何在http请求条款中表达这一点。

修改

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

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

2 个答案:

答案 0 :(得分:6)

使用选项oc运行--loglevel=10命令。这将向您展示它在底层进行的REST API调用,因此您只需使用REST API就可以了解完成相同操作所需的操作。请注意,某些事情可能部分在oc客户端完成,而不是委托给REST API端点调用。

答案 1 :(得分:0)

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

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

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

因此,要通过REST API完全自动执行此操作,我们仍需要解析processtemplates返回的对象数组并将POST解析到相应的端点,对吗?