3.4. Bitbucket Cloud での Pipelines as Code の使用
組織またはプロジェクトが優先プラットフォームとして Bitbucket Cloud を使用する場合、Bitbucket Cloud の Webhook を使用してリポジトリーに Pipelines as Code を使用できます。
前提条件
- Pipelines as Code がクラスターにインストールされている。
Bitbucket Cloud でアプリのパスワードを作成する。
以下のボックスをチェックして、適切なパーミッションをトークンに追加します。
-
アカウント:
メール、読み取り -
ワークスペースのメンバーシップ:
読み取り、書き込み -
プロジェクト:
読み取り、書き込み -
問題:
読み取り、書き込み プルリクエスト:
読み取り、書き込み注記-
tkn pacCLI を使用して Webhook を設定する必要がある場合は、Webhooks:ReadとWriteパーミッションをトークンに追加します。 - 生成されたら、パスワードまたはトークンのコピーを別の場所に保存します。
-
-
アカウント:
手順
Webhook を設定し、
RepositoryCR を作成します。tkn pacCLI ツールを使用して webhook を設定し、リポジトリーCR を 自動的に 作成するには、次のコマンドを使用します。tkn pac create repo
$ tkn pac create repoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 対話型出力の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Webhook を設定して
RepositoryCR を 手動 で作成するには、以下の手順を実行します。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 Cloud で、以下の手順を実行します。
- Bitbucket Cloud リポジトリーの左側のナビゲーションペインを使用して Repository settings -> Webhooks に移動し、Add webhook をクリックします。
- Title を設定します。たとえば、"Pipelines as Code" です。
- URL を Pipelines as Code コントローラーのパブリック URL に設定します。
- Repository: Push、Pull Request: Created、Pull Request: Updated、および Pull Request: Comment created のイベントを選択します。
- Save をクリックします。
OpenShift クラスターで、ターゲット namespace に app パスワードを使用して
Secretオブジェクトを作成します。oc -n target-namespace create secret generic bitbucket-cloud-token \ --from-literal provider.token="<BITBUCKET_APP_PASSWORD>"
$ oc -n target-namespace create secret generic bitbucket-cloud-token \ --from-literal provider.token="<BITBUCKET_APP_PASSWORD>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow RepositoryCR を作成します。例:
RepositoryCRCopy to Clipboard Copied! Toggle word wrap Toggle overflow
注記-
tkn pac createおよびtkn pac bootstrapコマンドは Bitbucket Cloud ではサポートされていません。 Bitbucket Cloud では Webhook シークレットはサポートされません。ペイロードを保護し、CI のハイジャックを防止するために、Pipelines as Code は Bitbucket Cloud IP アドレスのリストをフェッチし、Webhook の受信がそれらの IP アドレスからのみ行われるようにします。
-
デフォルトの動作を無効にするには、
pipelinesAsCode.settings仕様のTektonConfigカスタムリソースでbitbucket-cloud-check-source-ipパラメーターをfalseに設定します。 -
追加の安全な IP アドレスまたはネットワークを許可するには、
pipelinesAsCode.settings仕様のTektonConfigカスタムリソースのbitbucket-cloud-additional-source-ipパラメーターにコンマ区切りの値として追加します。
-
デフォルトの動作を無効にするには、
オプション: 既存の
RepositoryCR の場合は、複数の Bitbucket Cloud Webhook シークレットを追加するか、削除されたシークレットの代わりに指定します。tkn pacCLI ツールを使用して Webhook を追加します。例:
tkn pacCLI を使用した Webhook の追加tkn pac webhook add -n repo-pipelines
$ tkn pac webhook add -n repo-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 対話型出力の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記[-n <namespace>]オプションをtkn pac webhook addコマンドで使用するのは、RepositoryCR がデフォルト以外の namespace に存在する場合のみです。-
既存の OpenShift
Secretオブジェクトのwebhook.secretキーを更新します。
オプション: 既存の
RepositoryCR の場合は、Personal Access Token を更新します。tkn pacCLI ツールを使用して Personal Access Token を更新します。例:
tkn pacCLI を使用した Personal Access Token の更新tkn pac webhook update-token -n repo-pipelines
$ tkn pac webhook update-token -n repo-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 対話型出力の例
? Please enter your personal access token: **************************************** 🔑 Secret owner-repo has been updated with new personal access token in the repo-pipelines namespace.
? Please enter your personal access token: **************************************** 🔑 Secret owner-repo has been updated with new personal access token in the repo-pipelines namespace.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記[-n <namespace>]オプションをtkn pac webhook update-tokenコマンドで使用するのは、RepositoryCR がデフォルト以外の namespace に存在する場合のみです。または、
RepositoryCR を変更して Personal Access Token を更新します。RepositoryCR でシークレットの名前を見つけます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc patchコマンドを使用して、$target_namespacenamespace の$passwordの値を更新します。oc -n $target_namespace patch secret bitbucket-cloud-token -p "{\"data\": {\"provider.token\": \"$(echo -n $NEW_TOKEN|base64 -w0)\"}}"$ oc -n $target_namespace patch secret bitbucket-cloud-token -p "{\"data\": {\"provider.token\": \"$(echo -n $NEW_TOKEN|base64 -w0)\"}}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- Creating app password on Bitbucket Cloud (Atlassian のドキュメント)
- Introducing Altassian Account ID and Nicknames (Atlassian ドキュメント)