使用Openshift serviceAccount在容器化的詹金斯上创建作业

问题描述

我在openshift集群上有一个jenkins容器,我想使用Jenkins API和Openshift serviceAccounts以编程方式创建作业。当我调用Jenkins API创建商品时,提供面包屑时,我会收到“ 403没有有效的面包屑”。

首先,我使用openshift客户端收集serviceAccount api令牌:

TOKEN=$(oc get secret <serviceaccount secret name> -o=jsonpath={.data.token} | base64 -d)

然后,我使用此令牌通过Bearer授权对Jenkins进行API调用。对于这样的呼叫,它效果很好:

curl -XGET http://jenkins-route/job/myJob/config.xml -H "Authorization: Bearer ${TOKEN}" -o myJob.xml

但是当我调用CreateItem API调用时,由于碎屑而失败。

CRUMB=$(curl -s http://jenkins-route/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb) -H "Authorization: Bearer ${TOKEN}")
// Jenkins-Crumb:XXXXX

curl -XPOST http://jenkins-route/createItem?name=myJobName \
  --data-binary @config.xml \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type:application/xml" \
  -H "${CRUMB}"

并且我不断收到“ 403请求中未包含有效面包屑”

我尝试对普通的jenkins用户执行相同的操作(因此,使用基本身份验证进行API调用)并且可以正常工作。我正在寻找一种使其与Bearer Token一起使用的方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)