第2章 サンプルソフトウェアテンプレートの概要
Red Hat Advanced Developer Suite - ソフトウェアサプライチェーン(RHADS - SSC)のすぐに使用できるソフトウェアテンプレートは、以下のコンポーネントと統合して、アプリケーションの開発を加速しながら運用セキュリティーを強化します。
- Advanced Cluster Security (ACS): 開発プロセスの早い段階で脆弱性を特定して軽減できるように支援します。
- Quay: コンテナーイメージにセキュリティーが強化されたコンテナーレジストリーを提供し、各ビルドで継続的にスキャンして、アプリケーションの安全性を維持します。Quay の代わりに JFrog または Artifactory を使用することもできます。
- OpenShift Pipeline: ビルドおよびデプロイメントプロセスを自動化し、特定の要件に合わせてプロセスをカスタマイズできます。
- OpenShift GitOps: Git リポジトリーにアプリケーション設定があり、インフラストラクチャーをコードとしてサポートします。
さらに、RHADS - SSC は、Java、Python、JavaScript、Go などの一般的なプログラミング言語をサポートします。
RHADS - SSC をインストールした後、独自のテンプレートを作成する前に、Red Hat Developer Hub および Self-sevice ページでテンプレートをよく理解してください。デフォルトのテンプレートは、RHADS - SSC が安全なサプライチェーンをどのようにサポートするかを理解するのに役立つかもしれません。
2.1. ソフトウェアテンプレートからのアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub (RHDH)ポータルを使用してソフトウェアテンプレートを選択し、アプリケーションを作成します。
前提条件
ソフトウェアテンプレートを使用してアプリケーションを作成する前に、以下の前提条件を満たしているかどうかを確認します。
- Red Hat Advanced Developer Suite - ソフトウェアサプライチェーン(RHADS - SSC)を正常にインストールしました。
- Red Hat Developer Hub (RHDH)にログインします。Red Hat Developer Hub は、インストールプロセスの最後に RHADS - SSC インストールプログラムをリンクします。
- RHADS - SSC のインストール時 に Jenkins を統合する場合には、Jenkins を適切な認証情報で設定 します。
RHADS - SSC のインストール時に Bitbucket を統合した場合は、以下の前提条件を満たす必要があります。これにより、Red Hat OpenShift GitOps が正しい場所に git リポジトリーを作成できます。
- Bitbucket ワークスペース に プロジェクトを作成します。
- Bitbucket で アプリケーションパスワードを作成します。
手順
- RHDH ポータルで propagate アイコンを選択して、セルフサービスページに移動します。
- 適切なテンプレート(例:Quarkus Java - Trusted Application Pipeline)を選択します。
Application Information ビューの以下のフォームフィールドでテンプレートを設定します(手順 1 of 4)。
-
Name フィールドにアプリケーション名を入力します。この名前には、小文字(a-z)、数字(0-9)、およびダッシュ(-)を含めることができます。ただし、小文字の英数字で開始および終了する必要があります。有効な名前の例は
my-nameまたはabc-123 です。長さは 1 から 63 文字までである必要があります。 -
Owner ドロップダウンリストから適切な RHDH コンポーネントの所有者を選択します。デフォルト値は
user:guestです。所有者を登録していない場合は、デフォルトのuser:guestを選択したままにします。アプリケーションの所有権をカスタマイズするには、guestをユーザー名に置き換えます。 - Next を選択します。システムは、アプリケーションリポジトリー情報フォームを表示します(手順 2 ~ 4)。
-
Name フィールドにアプリケーション名を入力します。この名前には、小文字(a-z)、数字(0-9)、およびダッシュ(-)を含めることができます。ただし、小文字の英数字で開始および終了する必要があります。有効な名前の例は
git リポジトリー情報を設定します。
Host Type ドロップダウンリストからリポジトリーホストタイプを選択します。
- GitHub
- GitLab
- Bitbucket
- Repository Name フィールドに、A-Z、a-z、0-9、アンダースコア(_)、およびダッシュ(-)文字を使用してリポジトリー名を入力します。システムは、ホストリポジトリーサーバー上に作成するリポジトリーにこの名前を使用します。
-
Repository Default Branch フィールドに、リポジトリーのデフォルトブランチ名を入力します。デフォルトは
mainですが、別のブランチ名を指定することもできます。 - Repository Owner フィールドに Git リポジトリーを所有する組織内のユーザー名、組織名、またはプロジェクトを指定します。
Repository Server フィールドに Git リポジトリーサーバーのドメイン名を入力します。
Expand Git リポジトリーサーバー 説明 GitHub
ホストタイプ に GitHub を選択した場合、このフィールドには
github.comが事前に設定されています。ただし、HTTPプロトコルや.git拡張子なしでオンプレミスのホスト URL を入力することはできます。たとえば、github-github.apps.<custer_name>.<domain_name> です。GitLab
ホストタイプ に GitLab を選択した場合、このフィールドには
gitlab.comが事前に設定されます。ただし、HTTPプロトコルや.git拡張子なしでオンプレミスのホスト URL を入力することはできます。たとえば、gitlab-gitlab.apps.<custer_name>.<domain_name>.Bitbucket
このフィールドには
bitbucket.orgが事前に入力されています。Bitbucket の次のフィールドを設定します。
- Workspace フィールドに、プロジェクトが含まれるワークスペースの名前を入力します。
- Project フィールドにプロジェクトのキーを入力します。プロジェクトキーは、Bitbucket のプロジェクト名の横にあります。
CI Provider ドロップダウンリストからシステムがアプリケーションのビルド、テスト、およびデプロイに使用する継続的インテグレーション(CI)ツールを選択します。
Expand Git リポジトリーホスト 利用可能な CI プロバイダー Bitbucket
- Jenkins (SLSA 2)
- Tekton (SLSA 3)
- Azure Pipelines (SLSA2) (テクノロジープレビュー)
GitHub
- Jenkins (SLSA 2)
- GitHub Actions (SLSA 2)
- Tekton (SLSA 3)
- Azure Pipelines (SLSA2) (テクノロジープレビュー)
GitLab
- Jenkins (SLSA 2)
- GitLab CI (SLSA 2)
- Tekton (SLSA 3)
重要- Tekton CI で Bitbucket をソースリポジトリーとして使用する場合は、Bitbucket に Webhook を追加する 必要があります。
- Tekton CI で GitLab をソースリポジトリーとして使用する場合は、GitLab に Webhook を追加する 必要があります。
- GitHub Actions を使用する場合は、GitHub で必要なシークレットを設定する 必要があります。
- GitLab CI を使用する場合は、GitLab で必要なシークレットを設定する 必要があります。
- Azure Pipelines を使用する場合は、Azure で必要なシークレットを設定する 必要があります。
- Jenkins を使用する場合は、アプリケーションを Jenkins に追加する 必要があります。
- Azure Pipelines が CI プロバイダーの場合、RHADS - SSC が Azure Project フィールドにパイプラインを実行する Azure プロジェクトの名前を入力します。
- Next を選択します。システムに Deployment Information フォーム(ステップ 3 of 4)が表示されます。
デプロイメント情報を設定します。
-
Image Registry フィールドに、
HTTPプロトコルなしでイメージレジストリー URL を指定します。サポートされているレジストリーには、Quay (例:quay.io)、JFrog Artifactory (例:tssc.jfrog.io)、Sonatype Nexus Repository (例:nexus.mycompany.com) などがあります。 - Image Organization フィールドにイメージ組織名を入力します。
Image Name フィールドに、小文字、数字、および区切り文字のみを使用してイメージ名を入力します。区切り文字には、ピリオド (.)、最大 2 つのアンダースコア (_)、または 1 つ以上のハイフン (-) が含まれます。たとえば、
my-app_1.2と入力します。注記名前の先頭と末尾が区切り文字にならないようにする必要があります。
-
Deployment Namespace フィールドに、アプリケーションをデプロイする namespace またはクラスターの接頭辞を入力します。デフォルト値は
tssc-appです。RHads:tssc-appを接頭辞として使用する場合、SSC は名前空間をtssc-app-development、tssc-app-stage、およびtssc-app-prodとして作成します。
注記tssc-appは、デフォルトのデプロイメント namespace の接頭辞です。この接頭辞はカスタマイズできます。デフォルトのデプロイメント namespace の接頭辞をカスタマイズする方法の詳細は、サンプルソフトウェアテンプレートのカスタマイズ を参照してください。- 追加したすべての情報(手順 4)を確認するには、Review を選択します。
Create を選択します。RHADS - SSC は、次のようなアプリケーションのインフラストラクチャーとデプロイメントパイプラインをセットアップするための自動タスクを開始します。
- リポジトリーの作成と設定: GitOps リポジトリーとソースリポジトリーを含む、指定したホスティングサービスに新しいリポジトリーを作成します。
- namespace の作成: 開発、ステージング、および実稼働環境の namespace を生成します。
- GitOps 統合: Red Hat OpenShift GitOps (GitOps) (a.k.a.、Argo CD)リソースを作成して設定し、開発、ステージング、および実稼働環境の namespace 全体でアプリケーションのデプロイメントをオーケストレーションします。
- パイプライン定義: パイプライン定義を追加し、アプリケーションの構築、テスト、およびデプロイのための "コードとしてのパイプライン" モデルを提供します。
-
Image Registry フィールドに、