我正在使用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
答案 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解析到相应的端点,对吗?