3.5. Bitbucket サーバーでの Pipelines as Code の使用
組織またはプロジェクトが優先プラットフォームとして Bitbucket Server を使用する場合は、Bitbucket Server の Webhook でリポジトリーの Pipelines as Code を使用できます。
前提条件
- Pipelines as Code がクラスターにインストールされている。
Bitbucket Server でプロジェクトのマネージャーとして Personal Access Token を生成し、そのコピーを別の場所に保存します。
注記-
トークンには、
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}')
Bitbucket Server で、以下の手順を実行します。
- Bitbucket Data Center リポジトリーの左側のナビゲーションペインを使用して Repository settings -> Webhooks に移動し、Add webhook をクリックします。
- Title を設定します。たとえば、"Pipelines as Code" です。
- URL を Pipelines as Code コントローラーのパブリック URL に設定します。
Webhook シークレットを追加し、そのコピーを別の場所に保存します。
openssl
をローカルマシンにインストールしている場合は、以下のコマンドを使用してランダムなシークレットを生成します。$ openssl rand -hex 20
以下のイベントを選択します。
- Repository: Push
- Repository: Modified
- Pull Request: Opened
- Pull Request: Source branch updated
- Pull Request: Comment added
- Save をクリックします。
OpenShift クラスターで、ターゲット namespace に app パスワードを使用して
Secret
オブジェクトを作成します。$ oc -n target-namespace create secret generic bitbucket-server-webhook-config \ --from-literal provider.token="<PERSONAL_TOKEN>" \ --from-literal webhook.secret="<WEBHOOK_SECRET>"
Repository
CR を作成します。例:
Repository
CRapiVersion: "pipelinesascode.tekton.dev/v1alpha1" kind: Repository metadata: name: my-repo namespace: target-namespace spec: url: "https://bitbucket.com/workspace/repo" git_provider: url: "https://bitbucket.server.api.url/rest" 1 user: "<BITBUCKET_USERNAME>" 2 secret: 3 name: "bitbucket-server-webhook-config" key: "provider.token" # Set this if you have a different key in your secret webhook_secret: name: "bitbucket-server-webhook-config" key: "webhook.secret" # Set this if you have a different key for your secret
注記tkn pac create
およびtkn pac bootstrap
コマンドは Bitbucket サーバーではサポートされません。