GitHubとの統合

Githubは、好みのCI/CDツールでホストされた自動化された安全な継続的インテグレーションと継続的デリバリー(CI/CD)パイプラインをトリガーするために使用できるWebhookを設定する機能を提供している。 ワークフロー・プロジェクトの新しいスナップショットが作成されると、プロジェクトのファイル記述子(JSON形式)を設定されたGitリポジトリにプッシュすることで、Github webhookをトリガーすることができます。

開始前に

ネットワークポリシーを使用して外部アクセスを開くことで、設定されたGithubエンドポイントに環境がアクセスできることを確認します。

手順

ワークフロー・バージョンのプロジェクト記述子ファイルをGithubにプッシュするために、以下の設定を完了します。

ワークフロー・オーサリングおよびWorkflow Process Service用:

  1. あなたの「Gitユーザー名とアクセストークンを含む、認証エイリアス用の「custom.xml設定ファイルを作成する。
    <?xml version="1.0" encoding="UTF-8"?>
    <server>
       <authData id="Git-J2C-Auth-Alias-Name" user="your_user_name" password="your_access_token"/>
    </server>
  2. あなたの「custom.xmlシークレットを作成する:
    kubectl create secret generic your-custom-secret-name --from-file=sensitiveCustom.xml=./custom.xml
  3. カスタム・リソース(CR)ファイルに以下の設定を追加します:
    bastudio_configuration:
        bastudio_custom_xml: |+
          <properties>
                  <server>
                    <git-configuration  merge="replace">
                      <git-endpoint-url>https://api.github.com/repos/user1/bawgitrepo</git-endpoint-url>
                      <git-auth-alias-name>Git-J2C-Auth-Alias-Name</git-auth-alias-name>
                    </git-configuration>
                  </server>
          </properties>
        custom_secret_name: your-custom-secret-name
    <git-endpoint-url> は Gitの REST URL です。 値は "github.com" ではなく "api.github.com" とすべきです。
  4. GitでSSLが有効になっている場合、'GitTLS証明書を'Cloud Pak for Business Automationにインポートし、CRファイルを更新する。
    oc create secret generic git-ssl-secret --from-file=tls.crt=/root/gitSSL.cert
    bastudio_configuration:
        tls:
          tlsTrustList: [git-ssl-secret]
    Gitウェブサイトがよく知られた認証局(CA)で署名されている場合は、このステップは必要ありません。
  5. ''shared_configuration.sc_egress_configuration.sc_restricted_internet_accessが'trueに設定されている場合、外部システムからの退出アクセスは無効となる。 ワークフロー・オーサリング・サーバーが外部のGitサーバーにアクセスできるようにするには、ワークフロー・オーサリング・サーバーがGitサーバーに接続する際にGitポートを使用することを許可するネットワーク・ポリシーを作成します。 以下のようにネットワークポリシーを適用する:
    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: "bas-allow-git"
    spec:
      podSelector:
        matchLabels:
          com.ibm.cp4a.networking/egress-external-app-component: 'BAS'
      policyTypes:
      - Egress
      egress:
      - to:
        - ipBlock:
            cidr:  # IP address your git server. 
      - ports:
        - protocol: TCP
          port: # Port of your git server.

    オペレーターが照合を終えるのを待つ。

  6. コンフィギュレーションの検証:
    1. bastudioポッドで、'/opt/ibm/wlp/usr/servers/defaultServer/TeamWorksConfiguration.running.xmlチェックし、'<git-endpoint-url>と'<git-auth-alias-name>ファイルにマージされていることを確認する。
    2. また、'/opt/ibm/wlp/usr/shared/resources/sensitive-custom/sensitiveCustom1.xmlファイルが存在し、Gitユーザーとトークンの '<authData>が存在することも確認しましょう。