3.5. 在 Bitbucket Data Center 中使用 Pipelines as Code
如果您的机构或项目使用 Bitbucket 数据中心作为首选平台,您可以在 Bitbucket Data Center 上使用带有 webhook 的仓库的 Pipelines as Code。
先决条件
- 确保在集群中安装了 Pipelines as Code。
在 Bitbucket Data Center 上生成个人访问令牌作为项目管理器,并将它的副本保存到另一个位置。
注意-
令牌必须具有
PROJECT_ADMIN
和REPOSITORY_ADMIN
权限。 - 令牌必须有权访问拉取请求中分叉的存储库。
-
令牌必须具有
流程
在 OpenShift 集群中,提取 Pipelines as Code 控制器的公共 URL。
echo https://$(oc get route -n openshift-pipelines pipelines-as-code-controller -o jsonpath='{.spec.host}')
$ echo https://$(oc get route -n openshift-pipelines pipelines-as-code-controller -o jsonpath='{.spec.host}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Bitbucket 数据中心上,执行以下步骤:
- 使用 Bitbucket Data Center 存储库的左侧导航窗格,进入 Repository settings -> Webhooks 并点 Add webhook。
- 设置 Title。例如,"Pipelines as Code"。
- 将 URL 设置为 Pipelines as Code 控制器公共 URL。
添加 webhook secret,并将它的副本保存到备用位置。如果您在本地机器上安装了
openssl
,使用以下命令生成随机 secret:openssl rand -hex 20
$ openssl rand -hex 20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 选择以下事件:
- Repository: Push
- Repository: Modified
- Pull Request: Opened
- Pull Request: Source branch updated
- Pull Request: Comment added
- 点击 Save。
在 OpenShift 集群中,使用目标命名空间中的 app 密码创建一个
Secret
对象。oc -n target-namespace create secret generic bitbucket-datacenter-webhook-config \ --from-literal provider.token="<PERSONAL_TOKEN>" \ --from-literal webhook.secret="<WEBHOOK_SECRET>"
$ oc -n target-namespace create secret generic bitbucket-datacenter-webhook-config \ --from-literal provider.token="<PERSONAL_TOKEN>" \ --from-literal webhook.secret="<WEBHOOK_SECRET>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
Repository
CR。示例:
Repository
CRCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意Bitbucket 数据中心不支持
tkn pac create
和tkn pac bootstrap
命令。
其他资源
- 在 Bitbucket 数据中心上创建个人令牌 (Atlassian 文档)
- 管理 Bitbucket 数据中心上的 Webhook (Atlassian 文档)