Red Hat Developer Hub 管理ガイド
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub は、開発者ポータルの構築に使用できるエンタープライズグレードのオープンな開発者プラットフォームです。このプラットフォームには、開発者の生産性を高めつつ、衝突やフラストレーションの軽減に役立つ、サポート対象の独自フレームワークが含まれています。
第1章 Red Hat OpenShift Container Platform へのカスタムアプリケーション設定ファイルの追加 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub にアクセスするには、Red Hat OpenShift Container Platform にカスタムアプリケーション設定ファイルを追加する必要があります。OpenShift Container Platform では、次のコンテンツをベーステンプレートとして使用して、app-config-rhdh という名前の ConfigMap を作成できます。
次のいずれかの方法で、カスタムアプリケーション設定ファイルを OpenShift Container Platform に追加できます。
- Red Hat Developer Hub Operator
- Red Hat Developer Hub Helm チャート
1.1. Helm チャートを使用したカスタムアプリケーション設定ファイルの OpenShift Container Platform への追加 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub Helm チャートを使用して、カスタムアプリケーション設定ファイルを OpenShift Container Platform インスタンスに追加できます。
前提条件
- Red Hat OpenShift Container Platform アカウントを作成している。
手順
- OpenShift Container Platform Web コンソールから、ConfigMaps タブを選択します。
- Create ConfigMap をクリックします。
- Create ConfigMap ページで、Configure via の YAML view オプションを選択し、必要に応じてファイルに変更を加えます。
- Create をクリックします。
- Helm リリースのリストを表示するには、Helm タブに移動します。
- 使用する Helm リリースのオーバーフローメニューをクリックし、Upgrade を選択します。
Helm 設定を編集するには、Form view または YAML view のいずれかを使用します。
Form view を使用する場合
- Root Schema → Backstage chart schema → Backstage parameters → Extra app configuration files to inline into command arguments を展開します。
- Add Extra app configuration files to inline into command arguments リンクをクリックします。
以下のフィールドに値を入力します。
-
configMapRef:
app-config-rhdh -
filename:
app-config-rhdh.yaml
-
configMapRef:
- Upgrade をクリックします。
YAML view を使用する場合
以下のように
upstream.backstage.extraAppConfig.configMapRefパラメーターおよびupstream.backstage.extraAppConfig.filenameパラメーターの値を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Upgrade をクリックします。
1.2. Operator を使用したカスタムアプリケーション設定ファイルの OpenShift Container Platform への追加 リンクのコピーリンクがクリップボードにコピーされました!
カスタムアプリケーション設定ファイルは、Red Hat Developer Hub インスタンスの設定を変更するために使用できる ConfigMap オブジェクトです。Developer Hub インスタンスを Red Hat OpenShift Container Platform にデプロイする場合は、ConfigMap オブジェクトを作成して Developer Hub カスタムリソース (CR) で参照することで、Red Hat Developer Hub Operator を使用して OpenShift Container Platform インスタンスにカスタムアプリケーション設定ファイルを追加できます。
カスタムアプリケーション設定ファイルには、BACKEND_SECRET という名前の機密性の高い環境変数が含まれています。この変数には、OpenShift Container Platform シークレットで定義された環境変数を参照するために Developer Hub が使用する必須のバックエンド認証キーが含まれます。'secrets-rhdh' という名前のシークレットを作成し、それを Developer Hub CR で参照する必要があります。
Red Hat Developer Hub インストールは、ユーザー自身で外部および不正アクセスから保護する必要があります。バックエンド認証キーを他のシークレットと同様に管理します。強力なパスワード要件を満たし、パスワードを設定ファイルで公開せず、環境変数としてのみ設定ファイルに挿入します。
前提条件
- アクティブな Red Hat OpenShift Container Platform アカウントがある。
- 管理者により OpenShift Container Platform に Red Hat Developer Hub Operator がインストールされている。詳細は、Red Hat Developer Hub Operator のインストール を参照してください。
- OpenShift Container Platform で Red Hat Developer Hub CR を作成している。
手順
- OpenShift Container Platform Web コンソールの Developer パースペクティブから Topology ビューを選択し、Developer Hub Pod の Open URL アイコンをクリックして、Developer Hub の外部 URL <RHDH_URL> を特定します。
- OpenShift Container Platform Web コンソールの Developer パースペクティブから、ConfigMaps ビューを選択します。
- Create ConfigMap をクリックします。
Configure via で YAML view オプションを選択し、次の例をベーステンプレートとして使用して、
app-config-rhdh.yamlなどのConfigMapオブジェクトを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックします。
- Secrets ビューを選択します。
- Create Key/value Secret をクリックします。
-
secrets-rhdhという名前のシークレットを作成します。 BACKEND_SECRETという名前のキーと、base64 でエンコードされた文字列を値として追加します。Red Hat Developer Hub インスタンスごとに一意の値を使用します。たとえば、次のコマンドを使用してターミナルからキーを生成できます。node -p 'require("crypto").randomBytes(24).toString("base64")'node -p 'require("crypto").randomBytes(24).toString("base64")'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックします。
- Topology ビューを選択します。
使用する Red Hat Developer Hub インスタンスのオーバーフローメニューをクリックし、Edit Backstage を選択して、Red Hat Developer Hub インスタンスの YAML ビューを読み込みます。
CR で、
spec.application.appConfig.configMapsフィールドの値としてカスタムアプリケーション設定の config map の名前を入力し、spec.application.extraEnvs.secretsフィールドの値としてシークレットの名前を入力します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Save をクリックします。
- Topology ビューに戻り、Red Hat Developer Hub Pod が起動するまで待ちます。
- Open URL アイコンをクリックして、Red Hat Developer Hub プラットフォームを使用し、設定変更を行います。
関連情報
- Developer Hub におけるロールと責任の詳細は、Red Hat Developer Hub のロールベースのアクセス制御 (RBAC) を参照してください。
第2章 外部 PostgreSQL データベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
管理者は、Red Hat Developer Hub で外部 PostgreSQL データベースを設定および使用できます。PostgreSQL 証明書ファイルを使用すると、Operator または Helm チャートを使用して外部 PostgreSQL インスタンスを設定できます。
Developer Hub は、外部 PostgreSQL データベースの設定をサポートします。データのバックアップや外部 PostgreSQL データベースの高可用性 (HA) の設定など、メンテナンスアクティビティーを実行できます。
デフォルトでは、Red Hat Developer Hub Operator または Helm チャートによってローカル PostgreSQL データベースが作成されます。ただし、この設定は実稼働環境には適していません。実稼働環境のデプロイメントでは、ローカルデータベースの作成を無効にし、代わりに外部の PostgreSQL インスタンスに接続するように Developer Hub を設定します。
2.1. Operator を使用した外部 PostgreSQL インスタンスの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub Operator を使用して外部 PostgreSQL インスタンスを設定できます。デフォルトでは、Operator は RHDH インスタンスのデプロイ先と同じ namespace に PostgreSQL のローカルインスタンスを作成して管理します。ただし、このデフォルト設定を変更して、Amazon Web Services (AWS) Relational Database Service (RDS) や Azure データベースなどの外部 PostgreSQL データベースサーバーを設定することもできます。
前提条件
- サポートされているバージョンの PostgreSQL を使用している。詳細は、製品ライフサイクルのページ を参照してください。
次の情報がある。
-
db-host: PostgreSQL インスタンスの Domain Name System (DNS) または IP アドレスを示します。 -
db-port: PostgreSQL インスタンスのポート番号 (5432など) を示します。 -
username: PostgreSQL インスタンスに接続するためのユーザー名を示します。 -
password: PostgreSQL インスタンスに接続するためのパスワードを示します。
-
- Red Hat Developer Hub Operator がインストールされている。
- オプション: TLS プロトコルを使用してデータベース接続を保護できるように、CA 証明書、Transport Layer Security (TLS) 秘密鍵、および TLS 証明書がある。詳細は、PostgreSQL ベンダーのドキュメントを参照してください。
デフォルトでは、Developer Hub は各プラグインのデータベースを使用します。見つからない場合は、自動的にデータベースを作成します。外部 PostgreSQL インスタンスを設定するには、PSQL Database 権限に加えて、Create Database 権限が必要になる場合があります。
手順
オプション: TLS 接続を使用して PostgreSQL インスタンスを設定するための証明書シークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL インスタンスに接続するための認証情報シークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 認証情報シークレットの名前を指定します。
- 2
- PostgreSQL インスタンスに接続するための認証情報データを指定します。
- 3
- オプション: 必要な Secure Sockets Layer (SSL) モード に応じて値を指定します。
- 4
- オプション: PostgreSQL インスタンスに TLS 接続が必要な場合にのみ値を指定します。
Backstageカスタムリソース (CR) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記BackstageCR にリストされている環境変数は、Operator のデフォルト設定を使用します。Operator のデフォルト設定を変更した場合は、それに応じてBackstageCR を再設定する必要があります。-
RHDH インスタンスをデプロイした namespace に
BackstageCR を適用します。
2.2. Helm チャートを使用した外部 PostgreSQL インスタンスの設定 リンクのコピーリンクがクリップボードにコピーされました!
Helm チャートを使用して外部 PostgreSQL インスタンスを設定できます。デフォルトでは、Helm チャートは RHDH インスタンスのデプロイ先と同じ namespace に PostgreSQL のローカルインスタンスを作成して管理します。ただし、このデフォルト設定を変更して、Amazon Web Services (AWS) Relational Database Service (RDS) や Azure データベースなどの外部 PostgreSQL データベースサーバーを設定することもできます。
前提条件
- サポートされているバージョンの PostgreSQL を使用している。詳細は、製品ライフサイクルのページ を参照してください。
次の情報がある。
-
db-host: PostgreSQL インスタンスの Domain Name System (DNS) または IP アドレスを示します。 -
db-port: PostgreSQL インスタンスのポート番号 (5432など) を示します。 -
username: PostgreSQL インスタンスに接続するためのユーザー名を示します。 -
password: PostgreSQL インスタンスに接続するためのパスワードを示します。
-
- Helm チャートを使用して RHDH アプリケーションをインストールした。
- オプション: TLS プロトコルを使用してデータベース接続を保護できるように、CA 証明書、Transport Layer Security (TLS) 秘密鍵、および TLS 証明書がある。詳細は、PostgreSQL ベンダーのドキュメントを参照してください。
デフォルトでは、Developer Hub は各プラグインのデータベースを使用します。見つからない場合は、自動的にデータベースを作成します。外部 PostgreSQL インスタンスを設定するには、PSQL Database 権限に加えて、Create Database 権限が必要になる場合があります。
手順
オプション: TLS 接続を使用して PostgreSQL インスタンスを設定するための証明書シークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL インスタンスに接続するための認証情報シークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 認証情報シークレットの名前を指定します。
- 2
- PostgreSQL インスタンスに接続するための認証情報データを指定します。
- 3
- オプション: 必要な Secure Sockets Layer (SSL) モード に応じて値を指定します。
- 4
- オプション: PostgreSQL インスタンスに TLS 接続が必要な場合にのみ値を指定します。
values.yamlという名前の Helm 設定ファイルで PostgreSQL インスタンスを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow values.yamlという名前の Helm 設定ファイルに設定の変更を適用します。helm upgrade -n <your-namespace> <your-deploy-name> openshift-helm-charts/redhat-developer-hub -f values.yaml --version 1.3.5
helm upgrade -n <your-namespace> <your-deploy-name> openshift-helm-charts/redhat-developer-hub -f values.yaml --version 1.3.5Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. Operator を使用したローカルデータベースの外部データベースサーバーへの移行 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Red Hat Developer Hub は各プラグインのデータを PostgreSQL データベースでホストします。データベースのリストを取得すると、Developer Hub で設定されているプラグインの数によっては、複数のデータベースが表示される場合があります。ローカルの PostgreSQL サーバーでホストされている RHDH インスタンスから、AWS RDS、Azure データベース、Crunchy データベースなどの外部 PostgreSQL サービスにデータを移行できます。各 RHDH インスタンスからデータを移行するには、pg_dump と psql、または pgAdmin などの PostgreSQL ユーティリティーを使用できます。
次の手順では、データベースコピースクリプトを使用して迅速な移行を実行します。
前提条件
手順
ターミナルで次のコマンドを実行して、ローカル PostgreSQL データベース Pod のポート転送を設定します。
oc port-forward -n <your-namespace> <pgsql-pod-name> <forward-to-port>:<forward-from-port>
oc port-forward -n <your-namespace> <pgsql-pod-name> <forward-to-port>:<forward-from-port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
-
<pgsql-pod-name>変数は、backstage-psql-<deployment-name>-<_index>という形式の PostgreSQL Pod の名前を示します。 -
<forward-to-port>変数は、PostgreSQL データの転送先のポートを示します。 <forward-from-port>変数は、5432などの PostgreSQL ローカルインスタンスのポートを示します。例: ポート転送の設定
oc port-forward -n developer-hub backstage-psql-developer-hub-0 15432:5432
oc port-forward -n developer-hub backstage-psql-developer-hub-0 15432:5432Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
次の
db_copy.shスクリプトのコピーを作成し、設定に応じて詳細を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 宛先ホスト名 (例:
<db-instance-name>.rds.amazonaws.com)。 - 2
- 宛先ポート (例:
5432)。 - 3
- 宛先サーバーのユーザー名 (例:
postgres)。 - 4
- ソースホスト名 (例:
127.0.0.1)。 - 5
- 送信元ポート番号 (例:
<forward-to-port>変数)。 - 6
- ソースサーバーのユーザー名 (例:
postgres)。 - 7
- インポートするデータベースの名前を二重引用符で囲み、スペースで区切ります (例:
"backstage_plugin_app" "backstage_plugin_auth" "backstage_plugin_catalog" "backstage_plugin_permission" "backstage_plugin_scaffolder" "backstage_plugin_search")。
データをコピーするための宛先データベースを作成します。
/bin/bash TO_PSW=<destination-db-password> /path/to/db_copy.sh
/bin/bash TO_PSW=<destination-db-password> /path/to/db_copy.sh1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<destination-db-password>変数は、宛先データベースに接続するためのパスワードを示します。
注記データのコピーが完了したら、ポート転送を停止できます。大規模データベースの処理と圧縮ツールの使用に関する詳細は、PostgreSQL Web サイトの Handling Large Databases セクションを参照してください。
-
Backstageカスタムリソース (CR) を再設定します。詳細は、Operator を使用した外部 PostgreSQL インスタンスの設定 を参照してください。 再設定後、
BackstageCR の末尾に次のコードが存在することを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記BackstageCR を再設定すると、対応するStatefulSetおよびPodオブジェクトは削除されますが、PersistenceVolumeClaimオブジェクトは削除されません。ローカルPersistenceVolumeClaimオブジェクトを削除するには、次のコマンドを使用します。oc -n developer-hub delete pvc <local-psql-pvc-name>
oc -n developer-hub delete pvc <local-psql-pvc-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <local-psql-pvc-name>変数は、data-<psql-pod-name>という形式です。- 設定の変更を適用します。
検証
次のコマンドを実行して、RHDH インスタンスが移行したデータを使用して実行されており、ローカルの PostgreSQL データベースが含まれていないことを確認します。
oc get pods -n <your-namespace>
oc get pods -n <your-namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力で次の詳細を確認します。
-
backstage-developer-hub-xxxPod が実行中の状態であること。 backstage-psql-developer-hub-0Pod が利用不可であること。これらの詳細は、OpenShift Container Platform Web コンソールの Topology ビューを使用して確認することもできます。
-
第3章 Kubernetes での TLS 接続を使用した RHDH インスタンスの設定 リンクのコピーリンクがクリップボードにコピーされました!
Azure Red Hat OpenShift (ARO) クラスター、サポートされているクラウドプロバイダーからのクラスター、または適切な設定を持つ独自のクラスターなど、Kubernetes クラスター内の Transport Layer Security (TLS) 接続を使用して、RHDH インスタンスを設定できます。Transport Layer Security (TLS) は、サードパーティーアプリケーションや外部データベースなどの他のエンティティーを使用して RHDH インスタンスの安全な接続を確立します。ただし、Kubernetes クラスターを設定するには、パブリック認証局 (CA) によって署名された証明書を使用する必要があります。
前提条件
- パブリック CA によって署名された証明書を使用して Azure Red Hat OpenShift (ARO) クラスターをセットアップした。CA 証明書の取得の詳細は、ベンダーのドキュメントを参照してください。
namespace を作成し、リソースに対する適切な読み取り権限を持つサービスアカウントを設定した。
例: ロールベースアクセス制御のための Kubernetes マニフェスト
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - サービスアカウントに関連付けられたシークレットとサービス CA 証明書を取得した。
いくつかのリソースを作成し、それらにアノテーションを追加して、Kubernetes プラグインでそれらのリソースを検出できるようにした。適用できる Kubernetes アノテーションは、次のとおりです。
-
コンポーネントにラベルを付けるための
backstage.io/kubernetes-id -
namespace にラベルを付けるための
backstage.io/kubernetes-namespace
-
コンポーネントにラベルを付けるための
手順
dynamic-plugins-rhdh.yamlファイルで Kubernetes プラグインを有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記backstage-plugin-kubernetesプラグインは、現在 テクノロジープレビュー機能 です。代わりに、一般提供 (GA) 機能である./dynamic-plugins/dist/backstage-plugin-topology-dynamicプラグインを使用することもできます。Kubernetes クラスターの詳細を設定し、
app-config-rhdh.yamlファイルでカタログ同期オプションを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kubernetes コントロールプレーンのベース URL。ベース URL は、
kubectl cluster-infoコマンドを実行して取得できます。 - 2
- このパラメーターの値を
falseに設定して、TLS 証明書の検証を有効にします。 - 3
- オプション: ARO クラスターを管理する Kubernetes ダッシュボードへのリンク。
- 4
- オプション:
secrets-rhdhシークレットで定義できるK8S_SERVICE_ACCOUNT_TOKEN環境変数を使用して、サービスアカウントトークンを渡します。 - 5
secrets-rhdhシークレットで定義できるK8S_CONFIG_CA_DATA環境変数を使用して、CA データを渡します。
- 設定変更を保存します。
検証
RHDH アプリケーションを実行してカタログをインポートします。
kubectl -n rhdh-operator get pods -w
kubectl -n rhdh-operator get pods -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Pod ログに設定に関するエラーが表示されていないことを確認します。
- Catalog に移動し、Developer Hub インスタンスのコンポーネントページをチェックして、クラスター接続と作成したリソースの存在を確認します。
証明書の問題や権限などに関する接続エラーが発生した場合は、コンポーネントページのメッセージボックスを確認するか、Pod のログを表示してください。
第4章 RHDH アプリケーションを企業のプロキシーの背後で実行 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションを起動する前に、次のいずれかの環境変数を設定することにより、RHDH アプリケーションを企業プロキシーの背後で実行できます。
-
HTTP_PROXY: HTTP リクエストに使用するプロキシーを示します。 -
HTTPS_PROXY: HTTPS リクエストに使用するプロキシーを示します。
さらに、NO_PROXY 環境変数を設定して、特定のドメインをプロキシーから除外することもできます。変数値は、プロキシーが指定されている場合でも、プロキシーを必要としないホスト名のコンマ区切りリストです。
4.1. Helm デプロイメントでのプロキシー情報の設定 リンクのコピーリンクがクリップボードにコピーされました!
Helm ベースのデプロイメントの場合、クラスター内にリソースを作成する権限を持つ開発者またはクラスター管理者は、values.yaml Helm 設定ファイルでプロキシー変数を設定できます。
前提条件
- Red Hat Developer Hub アプリケーションがインストールされている。
手順
Helm 設定ファイルでプロキシー情報を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は以下のようになります。
<http_proxy_url>- HTTP プロキシー URL に置き換える必要がある変数を示します。
<https_proxy_url>- HTTPS プロキシー URL に置き換える必要がある変数を示します。
<no_proxy_settings>プロキシーから除外するコンマ区切りの URL に置き換える必要がある変数を示します (例:
foo.com,baz.com)。例: Helm チャートを使用してプロキシー変数を設定する
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 設定変更を保存します。
4.2. Operator デプロイメントでのプロキシー情報の設定 リンクのコピーリンクがクリップボードにコピーされました!
Operator ベースのデプロイメントの場合、プロキシー設定に使用するアプローチはロールによって異なります。
- クラスター管理者は、Operator namespace へのアクセス権を持つため、Operator のデフォルトの ConfigMap ファイルでプロキシー変数を設定できます。この設定は、Operator のすべてのユーザーにプロキシー設定を適用します。
- 開発者は、カスタムリソース (CR) ファイルでプロキシー変数を設定できます。この設定は、その CR から作成された RHDH アプリケーションにプロキシー設定を適用します。
前提条件
- Red Hat Developer Hub アプリケーションがインストールされている。
手順
ロールに応じて、次のいずれかの手順を実行します。
管理者として、プロキシー情報を Operator のデフォルトの ConfigMap ファイルに設定します。
-
デフォルトの namespace
rhdh-operatorでbackstage-default-configという名前の ConfigMap ファイルを検索して開きます。 -
deployment.yamlキーを見つけます。 次の例に示すように、
Deployment仕様でHTTP_PROXY、HTTPS_PROXY、およびNO_PROXY環境変数の値を設定します。例: ConfigMap ファイルでプロキシー変数を設定する
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
デフォルトの namespace
開発者は、次の例に示すように、カスタムリソース (CR) ファイルにプロキシー情報を設定します。
例: CR ファイルでプロキシー変数を設定する
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 設定変更を保存します。
第5章 Red Hat Developer Hub と Amazon Web Services (AWS) の統合 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub アプリケーションを Amazon Web Services (AWS) と統合すると、AWS エコシステム内のワークフローを合理化できます。Developer Hub リソースを AWS と統合することで、ツール、サービス、ソリューションの包括的なスイートにアクセスできるようになります。
AWS との統合には、次のいずれかの方法を使用して Elastic Kubernetes Service (EKS) の Developer Hub のデプロイメントが必要です。
- Helm チャート
- Red Hat Developer Hub Operator
第6章 テンプレートの管理 リンクのコピーリンクがクリップボードにコピーされました!
テンプレートは、YAML ファイルで定義されたさまざまな UI フィールドで構成されるフォームです。テンプレートには、actions が含まれます。actions とは、順番に実行され、条件付きで実行できるステップです。
テンプレートを使用すると、Red Hat Developer Hub コンポーネントを簡単に作成し、Red Hat Developer Hub ソフトウェアカタログや、GitHub または GitLab のリポジトリーなどのさまざまな場所にこれらのコンポーネントを公開できます。
6.1. テンプレートエディターを使用したテンプレートの作成 リンクのコピーリンクがクリップボードにコピーされました!
テンプレートエディターを使用して、テンプレートを作成できます。
手順
以下のオプションのいずれかを使用して、テンプレートエディターにアクセスします。
-
Red Hat Developer Hub インスタンスの URL
https://<rhdh_url>/create/edit開きます。 - Red Hat Developer Hub コンソールのナビゲーションメニューで Create… をクリックし、オーバーフローメニューボタンをクリックして Template editor を選択します。
-
Red Hat Developer Hub インスタンスの URL
- Edit Template Form をクリックします。
- オプション: テンプレートのパラメーターの YAML 定義を変更します。これらのパラメーターの詳細は、「YAML ファイルとしてのテンプレートの作成」 を参照してください。
- Name * に、テンプレート向けに独自の名前を入力します。
- Owner ドロップダウンメニューから、テンプレートの所有者を選択します。
- Next をクリックします。
Repository Location ビューで、テンプレートを公開するホストされたリポジトリーに関する次の情報を入力します。
ドロップダウンメニューから利用可能な Host を選択します。
注記利用可能なホストは、
allowedHostsフィールドで YAML パラメーターで定義されます。サンプル YAML
# ... ui:options: allowedHosts: - github.com # ...# ... ui:options: allowedHosts: - github.com # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Owner * フィールドに、ホストリポジトリーが属する組織、ユーザーまたはプロジェクトを入力します。
- Repository * フィールドに、ホストされているリポジトリーの名前を入力します。
- Review をクリックします。
- 正確性の情報を確認し、Create をクリックします。
検証
- ナビゲーションパネルの Catalog タブをクリックします。
- Kind ドロップダウンメニューで、Template を選択します。
- テンプレートが既存のテンプレートのリストに表示されていることを確認します。
6.2. YAML ファイルとしてのテンプレートの作成 リンクのコピーリンクがクリップボードにコピーされました!
Template オブジェクトを YAML ファイルとして定義することでテンプレートを作成できます。
Template オブジェクトは、テンプレートとそのメタデータを記述します。また、必要な入力変数と、スキャフォールディングサービスによって実行されるアクションのリストも含まれています。
Template オブジェクトの例
- 1
- テンプレートの名前を指定します。
- 2
- テンプレートのタイトルを指定します。これは、Create… ビューのテンプレートタイルに表示されるタイトルです。
- 3
- テンプレートの説明を入力します。これは、Create… ビューのテンプレートタイルに表示される説明です。
- 4
- テンプレートの所有権を指定します。
ownerフィールドは、システムまたは組織内のテンプレートの管理または監視を行うユーザーに関する情報を提供します。上記の例では、ownerフィールドはbackstage/techdocs-coreに設定されています。これは、このテンプレートがbackstagenamespace のtechdocs-coreプロジェクトに属していることを意味します。 - 5
- コンポーネントタイプを指定します。この必須フィールドには任意の文字列値を指定できますが、組織でこれらに対して適切な分類を確立する必要があります。Red Hat Developer Hub インスタンスはこのフィールドを読み取り、その値に応じて異なる動作をする場合があります。たとえば、
websiteタイプのコンポーネントは、Web サイト専用のツールを Red Hat Developer Hub インターフェイスに表示する場合があります。このフィールドに共通する値は次のとおりです。
service- 通常 API を公開するバックエンドサービス。
website- Web サイト
library- npm モジュールや Java ライブラリーなどのソフトウェアライブラリー。
- 6
parametersセクションを使用して、ユーザーが Red Hat Developer Hub コンソールでテンプレートを使用してコンポーネントを作成するときにフォームビューに表示されるユーザー入力のパラメーターを指定します。タイトルとプロパティーによって定義される各parametersサブセクションにより、その定義を含む新しいフォームページが作成されます。- 7
- バックエンドで実行されるステップを指定するには、
stepsセクションを使用します。これらのステップは、一意のステップ ID、名前、およびアクションを使用して定義する必要があります。https://<rhdh_url>/create/actionsURL にアクセスすると、Red Hat Developer Hub インスタンスで利用可能なアクションを表示できます。 - 8
outputセクションを使用して、テンプレートの使用時に作成される出力データの構造を指定します。outputセクション、特にlinksサブセクションには、テンプレートから作成されたコンポーネントにアクセスして操作するためにユーザーが利用できる貴重な参照と URL が提供されます。- 9
- 生成されたコンポーネントに関連付けられたリポジトリーへの参照または URL を提供します。
- 10
- さまざまなコンポーネントが表示されているカタログまたはディレクトリーで、生成されたコンポーネントを表示できるようにする参照または URL を提供します。
6.3. 既存のテンプレートを Red Hat Developer Hub にインポートする リンクのコピーリンクがクリップボードにコピーされました!
カタログプロセッサーを使用して、既存のテンプレートを Red Hat Developer Hub インスタンスに追加できます。
前提条件
- 少なくとも 1 つのテンプレート YAML ファイルを含むディレクトリーまたはリポジトリーを作成した。
- GitHub や GitLab などのリポジトリーに保存されているテンプレートを使用する場合は、使用するプロバイダー用の Red Hat Developer Hub 統合を設定した。
手順
app-config.yaml設定ファイルで、catalog.rulesセクションを変更してテンプレートのルールを含め、追加するテンプレートを参照するようにcatalog.locationsセクションを設定します (次の例を参照)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
- ナビゲーションパネルの Catalog タブをクリックします。
- Kind ドロップダウンメニューで、Template を選択します。
- テンプレートが既存のテンプレートのリストに表示されていることを確認します。
第7章 Red Hat Developer Hub での TechDocs プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub TechDocs プラグインは、組織が一元的な場所で標準化された方法でドキュメントを作成、検索、使用するのに役立ちます。以下に例を示します。
- docs-like-code アプローチ
- 技術ドキュメントを Markdown ファイルに記述し、コードとともにプロジェクトリポジトリー内に保存します。
- ドキュメントサイトの生成
- MkDocs を使用して、Developer Hub で一元的にレンダリングされるドキュメント用に、フル機能の Markdown ベースの静的 HTML サイトを作成します。
- ドキュメントサイトのメタデータと統合
- 静的ドキュメントに加えて、最終更新日、サイト所有者、トップコントリビューター、未解決の GitHub イシュー、Slack サポートチャネル、Stack Overflow Enterprise タグなど、ドキュメントサイトに関する追加のメタデータを参照できます。
- 組み込みのナビゲーションおよび検索機能
- ドキュメントから必要な情報をより迅速かつ簡単に検索します。
- アドオン
- より高次のドキュメントのニーズに対応するために、アドオンを使用して TechDocs エクスペリエンスをカスタマイズします。
TechDocs プラグインは、Developer Hub インスタンスにデフォルトでプリインストールされ、有効になっています。Red Hat Developer Hub の Helm チャートまたは Red Hat Developer Hub Operator の config map を設定することで、TechDocs プラグインを無効または有効にしたり、その他のパラメーターを変更したりできます。
Red Hat Developer Hub には、コードベースから静的 HTML ドキュメントを生成する TechDocs ビルダーが組み込まれています。ただし、ローカルビルダーのデフォルトの基本設定は、実稼働環境向けではありません。
TechDocs のドキュメントを生成するための専用のリポジトリーで、CI/CD パイプラインを使用できます。生成された静的ファイルは、OpenShift Data Foundation または選択したクラウドストレージソリューションに保存され、静的 HTML ドキュメントサイトに公開されます。
TechDocs によって生成されるファイルを保存するように OpenShift Data Foundation を設定した後、OpenShift Data Foundation をクラウドストレージとして使用するように TechDocs プラグインを設定できます。
7.1. TechDocs ファイルのストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
TechDocs のパブリッシャーは、生成されたファイルをローカルストレージまたは OpenShift Data Foundation、Google GCS、AWS S3、Azure Blob Storage などのクラウドストレージに保存します。
7.1.1. ファイルストレージに OpenShift Data Foundation を使用する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Data Foundation を設定することで、他のクラウドストレージソリューションを利用することなく、TechDocs によって生成されるファイルを保存できます。
OpenShift Data Foundation は、ObjectBucketClaim カスタムリソース (CR) を備えています。これを使用すると、S3 互換のバケットバックエンドを要求できます。この機能を使用するには、OpenShift Data Foundation Operator をインストールする必要があります。
前提条件
- OpenShift Container Platform 管理者が、Red Hat OpenShift Container Platform に OpenShift Data Foundation Operator をインストールした。詳細は、OpenShift Container Platform - Red Hat OpenShift Data Foundation Operator のインストール を参照してください。
-
OpenShift Container Platform 管理者が、OpenShift Data Foundation クラスターを作成し、
StorageSystemスキーマを設定した。詳細は、OpenShift Container Platform - OpenShift Data Foundation クラスターの作成 を参照してください。
手順
生成された TechDocs ファイルを保存する
ObjectBucketClaimCR を作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Developer Hub の
ObjectBucketClaimCR を作成すると、Developer HubObjectBucketClaimの config map とシークレットの両方が自動的に作成されます。config map とシークレットの名前はObjetBucketClaimCR と同じです。
ObjectBucketClaim CR を作成したら、config map とシークレットに保存されている情報を使用して、Developer Hub コンテナーからその情報に環境変数としてアクセスできるようにします。Developer Hub のインストールに使用した方法に応じて、Red Hat Developer Hub の Helm チャート設定または Operator 設定にアクセス情報を追加します。
7.1.2. Helm チャートを使用してオブジェクトストレージをコンテナーからアクセス可能にする リンクのコピーリンクがクリップボードにコピーされました!
ObjectBucketClaim カスタムリソース (CR) を作成すると、Developer Hub ObjectBucketClaim の config map とシークレットの両方が自動的に作成されます。config map とシークレットには ObjectBucket のアクセス情報が含まれています。Helm チャート設定にアクセス情報を追加すると、次の環境変数がコンテナーに追加され、Developer Hub コンテナーからその情報にアクセスできるようになります。
-
BUCKET_NAME -
BUCKET_HOST -
BUCKET_PORT -
BUCKET_REGION -
BUCKET_SUBREGION -
AWS_ACCESS_KEY_ID -
AWS_SECRET_ACCESS_KEY
これらの変数は、TechDocs プラグインの設定で使用されます。
前提条件
- Helm チャートを使用して、OpenShift Container Platform に Red Hat Developer Hub をインストールしている。
-
TechDocs によって生成されるファイルを保存するための
ObjectBucketClaimCR を作成した。詳細は、ファイルストレージに OpenShift Data Foundation を使用する 参照してください。
手順
Helm チャート値の
upstream.backstageキーに、extraEnvVarsSecretsフィールドとextraEnvVarsCMフィールドの値として、Developer Hub のObjectBucketClaimシークレットの名前を入力します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.2.1. Helm チャート用の TechDocs プラグイン設定の例 リンクのコピーリンクがクリップボードにコピーされました!
次の例は、TechDocs プラグイン用の Developer Hub Helm チャート設定を示しています。
7.1.3. Operator を使用してオブジェクトストレージをコンテナーからアクセス可能にする リンクのコピーリンクがクリップボードにコピーされました!
ObjectBucketClaim カスタムリソース (CR) を作成すると、Developer Hub ObjectBucketClaim の config map とシークレットの両方が自動的に作成されます。config map とシークレットには ObjectBucket のアクセス情報が含まれています。Operator 設定にアクセス情報を追加すると、次の環境変数がコンテナーに追加され、Developer Hub コンテナーからその情報にアクセスできるようになります。
-
BUCKET_NAME -
BUCKET_HOST -
BUCKET_PORT -
BUCKET_REGION -
BUCKET_SUBREGION -
AWS_ACCESS_KEY_ID -
AWS_SECRET_ACCESS_KEY
これらの変数は、TechDocs プラグインの設定で使用されます。
前提条件
- Operator を使用して OpenShift Container Platform に Red Hat Developer Hub をインストールした。
-
TechDocs によって生成されるファイルを保存するための
ObjectBucketClaimCR を作成した。
手順
Developer Hub
BackstageCR で、spec.application.extraEnvs.configMapsフィールドの値として Developer HubObjectBucketClaimの config map の名前を入力し、spec.application.extraEnvs.secretsフィールドの値として Developer HubObjectBucketClaimのシークレット名を入力します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.3.1. Operator 用の TechDocs プラグイン設定の例 リンクのコピーリンクがクリップボードにコピーされました!
次の例は、TechDocs プラグイン用の Red Hat Developer Hub Operator の config map 設定を示しています。
7.2. TechDocs サイトを生成して公開するための CI/CD の設定 リンクのコピーリンクがクリップボードにコピーされました!
TechDocs は、OpenShift Data Foundation などのクラウドストレージバケットから静的に生成されたドキュメントファイルを読み取ります。ドキュメントサイトは、ドキュメントファイルを含むリポジトリーに関連付けられた CI/CD ワークフローで生成されます。techdocs-cli CLI ツールを使用して、CI でドキュメントを生成し、クラウドストレージに公開できます。
次の例を使用して、TechDocs 公開用のスクリプトを作成できます。
TechDocs ワークフローは、ユーザーがドキュメントファイルを含むリポジトリーに変更を加えたときに CI を開始します。docs/ ディレクトリーまたは mkdocs.yml 内のファイルが変更されたときにのみワークフローを開始するように設定できます。
7.2.1. CI 用のリポジトリーの準備 リンクのコピーリンクがクリップボードにコピーされました!
CI の最初のステップは、作業ディレクトリーにドキュメントソースリポジトリーを複製することです。
手順
作業ディレクトリーにドキュメントソースリポジトリーを複製するには、次のコマンドを入力します。
git clone <https://path/to/docs-repository/>
git clone <https://path/to/docs-repository/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.2. TechDocs サイトの生成 リンクのコピーリンクがクリップボードにコピーされました!
手順
技術ドキュメントを生成するように CI/CD を設定するには、次の手順を実行します。
次のコマンドを使用して、
npxパッケージをインストールし、techdocs-cliを実行します。npm install -g npx
npm install -g npxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して
techdocs-cliツールをインストールします。npm install -g @techdocs/cli
npm install -g @techdocs/cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、
mkdocsプラグインをインストールします。pip install "mkdocs-techdocs-core==1.*"
pip install "mkdocs-techdocs-core==1.*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、TechDocs サイトを生成します。
npx @techdocs/cli generate --no-docker --source-dir <path_to_repo> --output-dir ./site
npx @techdocs/cli generate --no-docker --source-dir <path_to_repo> --output-dir ./siteCopy to Clipboard Copied! Toggle word wrap Toggle overflow <path_to_repo>は、リポジトリーを複製するために使用したファイルパス内の場所です。
7.2.3. TechDocs サイトの公開 リンクのコピーリンクがクリップボードにコピーされました!
手順
TechDocs サイトを公開するには、次の手順を実行します。
- クラウドストレージプロバイダーに必要な認証環境変数を設定します。
次のコマンドを使用して、技術ドキュメントを公開します。
npx @techdocs/cli publish --publisher-type <awsS3|googleGcs> --storage-name <bucket/container> --entity <namespace/kind/name> --directory ./site
npx @techdocs/cli publish --publisher-type <awsS3|googleGcs> --storage-name <bucket/container> --entity <namespace/kind/name> --directory ./siteCopy to Clipboard Copied! Toggle word wrap Toggle overflow ソフトウェアテンプレートに
.github/workflows/techdocs.ymlファイルを追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第8章 Red Hat Developer Hub のデプロイメントの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub Operator は、カスタムリソース定義 (CRD) の rhdh.redhat.com/v1alpha2 API バージョンを公開します。この CRD は汎用の spec.deployment.patch フィールドを公開し、Developer Hub デプロイメントリソースを完全に制御できるようにします。このフィールドは、標準の apps.Deployment Kubernetes オブジェクトのフラグメントにすることができます。
手順
- 次のフィールドを使用して、Developer Hub カスタムリソース定義を作成します。
例
labelsDeveloper Hub Pod にラベルを追加します。
ラベル
my=trueを追加する例Copy to Clipboard Copied! Toggle word wrap Toggle overflow volumesmy-volumeという名前のボリュームを追加し、Developer Hub アプリケーションコンテナーの/my/pathの下にマウントします。追加ボリュームの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトの
dynamic-plugins-rootボリュームを、dynamic-plugins-rootという名前の永続ボリューム要求 (PVC) に置き換えます。$patch: replaceディレクティブに注意してください。そうしないと、新しいボリュームが追加されます。dynamic-plugins-rootボリュームの置換例Copy to Clipboard Copied! Toggle word wrap Toggle overflow CPUリクエストDeveloper Hub アプリケーションコンテナーの CPU リクエストを 250m に設定します。
CPU リクエストの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow my-sidecarコンテナーDeveloper Hub Pod に新しい
my-sidecarサイドカーコンテナーを追加します。サイドカーコンテナーの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow