第1章 サンプルソフトウェアテンプレートのカスタマイズ
すぐに使用できるソフトウェアテンプレートをオンプレミス環境向けにカスタマイズする方法を説明します。クラスター管理者は、デプロイメントのニーズに合わせてメタデータと仕様を変更する完全な制御権を持っています。
前提条件
変更を行う前に、次の点を確認してください。
- RHTAP のインストール時に、tssc-sample-templates からフォークされたリポジトリー URL を使用した。
- tssc-sample-jenkins パイプラインテンプレートをフォークしてクローンした。
- フォークしたリポジトリーが最新であり、アップストリームリポジトリーと同期済みである。
手順
-
フォークされた
tssc-sample-templates
リポジトリーを複製し、Visual Studio Code などの任意のテキストエディターで開きます。 プロジェクトディレクトリー内で プロパティー ファイルを見つけます。このファイルには、カスタマイズできるデフォルト値が保存されます。ファイルを編集するために開き、環境に応じて次のキーと値のペアを更新します。
キー 説明 export GITHUB_DEFAULT_HOST
このキーは、オンプレミスの GitHub ホストの完全修飾ドメイン名に設定します。つまり、
HTTP
プロトコルと.git
拡張子を除外した URL です。たとえば、ithub-github.apps.cluster-ljg9z.sandbox219.opentlc.com です。デフォルトはgithub.com
です。export GITLAB_DEFAULT_HOST
このキーは、オンプレミスの GitLab ホストの完全修飾ドメイン名に設定します。つまり、
HTTP
プロトコルと.git
拡張子を除外した URL です。たとえば、gitlab-gitlab.apps.cluster-ljg9z.sandbox219.opentlc.com です。デフォルトはgitlab.com
です。export QUAY_DEFAULT_HOST
デフォルトの Quay URL は、
HTTP
プロトコルのない特定のオンプレミスイメージレジストリー URL に対応します。たとえば、quay-tv2pb.apps.cluster-tv2pb.sandbox1194.opentlc.com などです。デフォルトの quay ホストはquay.io
です。export DEFAULT_DEPLOYMENT_NAMESPACE_PREFIX
RHTAP 内のデプロイメントの名前空間接頭辞です。デフォルトは
rhtap-app
です。注記RHTAP インストールプロセス中にデフォルトの
trusted-application-pipeline: namespace
を変更した場合は、これを更新してください。export PIPELINE_REPO_URL
フォークされたパイプラインリポジトリーの URL。例: https://github.com/redhat-appstudio/tssc-sample-pipelines
export PIPELINE_REPO_BRANCH
参照先のフォークされたパイプラインリポジトリーのブランチ。例:
main
。export GITHUB_DEFAULT_ORG
デフォルトとして設定する GitHub 組織の名前。
export QUAY_DEFAULT_ORG
デフォルトとして設定する Quay 組織の名前。
図1.1 プロパティーファイル
ターミナルで generate.sh スクリプトを実行します。このアクションにより、ソフトウェアテンプレートが調整され、デフォルトのホスト値が指定した入力値に置き換わります。
./generate.sh
図1.2 generate.sh スクリプト
Jenkins のみ: Jenkins ライブラリーをカスタマイズするには、skeleton > ci > gitops-template > jenkins に移動し、Jenkinsfile を開きます。
remote
URL をフォークしたリポジトリーの URL に置き換えます。たとえば、remote: 'https://github.com/<username>/tssc-sample-jenkins.git' です。さらに、Jenkins がローカル以外の OpenShift インスタンス上にあり、Rekor サービスと TUF サービスが異なるクラスター上にある場合は、
REKOR_HOST
およびTUF_MIRROR
環境変数を更新します。これらの変数は、コンポーネントリポジトリー内の env.sh ファイルで設定するか、Jenkins で環境変数またはシークレットとして設定 できます。この設定により、外部 Jenkins サーバーが RHTAP でインストールされた Rekor および TUF と通信できるようになります。これがないと、RHTAP は Jenkins パイプラインでコンテナーイメージに正しく署名しない可能性があります。REKOR_HOST
変数およびTUF_MIRROR
変数を更新するには、以下を実行します。skeleton > ci > gitops-template > jenkins > rhtap から env.sh ファイルを開きます。
2 番目の env.sh ファイルは、skeleton > ci > source-repo > jenkins > rhtap にあります。ニーズに合ったものを選択するか、両方を更新します。
env.sh で、
REKOR_HOST
とTUF_MIRROR
のデフォルト値を確認します。REKOR_HOST=http://rekor-server.rhtap-tas.svc TUF_MIRROR=http://tuf.rhtap-tas.svc
.svc
は、OpenShift クラスターの URL に置き換えます。.svc
ドメインはローカルクラスターを参照し、内部サービスはルートに.svc
を含む他のサービスにアクセスできますが、外部 Jenkins はアクセスできません。Rekor および TUF サービスの正しいルートは、RHTAP のインストールプロセスの一部として出力されます。これらのデータが利用できない場合は、CLI でこのコマンドを実行し、出力で Rekor ルートと TUF ルートを選択します。
$ oc get routes -n rhtap-tas
Rekor サーバーの URL の例: http://rekor-server.rhtap-tas.apps.rosa.j6ufg-t3htv-ts6.z797.p3.openshiftapps.com。
注記- Jenkins で環境変数またはシークレットを設定するには、外部ツールとのセキュアな統合のために Jenkins にシークレットを追加する を参照してください。
- デフォルトでは、RHTAP は動的に読み込まれた Jenkins ライブラリーを使用します。動的ロードではなく組み込みの Jenkins ライブラリーを使用するように RHTAP を設定する必要がある場合は、Jenkins プロビジョニング設定を変更する必要があります。この変更により、トレーサビリティーと Red Hat Enterprise Contract (Enterprise Contract) のアテステーションが改善されます。詳細な手順は、組み込みの Jenkins ライブラリーを使用するように RHTAP を設定する を参照してください。
-
RHACS のみ: RHACS スキャンを有効にするには、env.sh ファイルで
export DISABLE_ACS
をfalse
に設定します。 変更をコミットしてリポジトリーにプッシュします。これにより、RHDH のテンプレートが自動的に更新されます。あるいは、カスタマイズしたテンプレートの 1 つまたはすべてを RHDH に直接インポートして更新することもできます。
- Git プロバイダーのフォークされたサンプルテンプレートリポジトリーに移動します。
-
単一のテンプレートの場合は、
templates
ディレクトリーからtemplate.yaml
を選択します。ブラウザーのアドレスバーから URL をコピーします。たとえば、https://github.com/<username>/tssc-sample-templates/blob/main/templates/devfile-sample-code-with-quarkus-dance/template.yaml です。すべてのテンプレートの場合は、all.yaml
を選択し、ブラウザーのアドレスバーからその URL をコピーします。たとえば、https://github.com/<username>/tssc-sample-templates/blob/main/all.yaml です。 - RHDH プラットフォームに戻ります。
- Create > Register Existing Component を選択します。
- Select URL フィールドに、手順 4b でコピーした適切な URL を貼り付けます。
- Analyze を選択し、Import を選択して RHDH のテンプレートを更新します。
検証
- テンプレートのカスタマイズによる影響を調べるアプリケーションの作成を検討してください。
関連情報
- パイプラインをカスタマイズするには、サンプルパイプラインテンプレートのカスタマイズ を参照してください。