【问题标题】:What would be Openshift REST API equivalent of a process template command什么是 Openshift REST API 等效于流程模板命令
【发布时间】:2017-06-30 11:30:59
【问题描述】:

我正在自动化一些使用 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

【问题讨论】:

    标签: rest api automation openshift continuous-delivery


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我这样做了,在 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 到适当的端点,对吗?

      【讨论】:

      • 您最好提出一个新问题,而不是在回答现有问题时提出一个问题。在该问题中,提供更完整的详细信息,说明您目前正在做什么以及您需要什么。
      猜你喜欢
      • 2013-07-20
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 2022-10-06
      • 2013-12-25
      • 1970-01-01
      相关资源
      最近更新 更多