This documentation is for a release that is no longer maintained
See documentation for the latest supported version.設定
Red Hat Developer Hub の設定
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub を実稼働環境向けに設定し、IT エコシステムで動作させるために、カスタム config map や Secret を追加する方法を説明します。
第1章 カスタム Red Hat Developer Hub 設定のプロビジョニングおよび使用 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub を設定するには、Red Hat OpenShift Container Platform アプリケーションを設定するために広く使用されているこれらの方法を使用します。
- config map を使用してファイルとディレクトリーをマウントします。
- シークレットを使用して環境変数を挿入します。
これらの方法を Developer Hub に適用する方法を学びます。
- カスタム config map およびシークレットを OpenShift Container Platform にプロビジョニングします。
選択したデプロイメント方法を使用して config map をマウントし、シークレットを注入します。
1.1. カスタム Red Hat Developer Hub 設定のプロビジョニング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub を設定するには、Red Hat Developer Hub を実行する前に、カスタムの Red Hat Developer Hub config map とシークレットを Red Hat OpenShift Container Platform にプロビジョニングします。
デフォルトの config map およびシークレットを使用して Developer Hub を実行するには、この手順を省略できます。この設定への変更は、Developer Hub の再起動時に元に戻される可能性があります。
前提条件
-
OpenShift CLI (
oc) を使用して、Developer Hub インスタンスを格納するための OpenShift Container Platform クラスターに開発者権限でアクセスできる。
手順
カスタムの <
;my_product_secrets > .txtファイルを作成し、設定ファイルのクリアテキストではなく、OpenShift Container Platform シークレットの環境変数としてシークレットをプロビジョニングします。1 行ごとにKEY=value形式のシークレットが 1 つ含まれています。- 認証シークレットを入力 します。
カスタムの
app-config.yamlファイルを作成します。これは、メインの Developer Hub 設定ファイルです。Developer Hub が適切に機能させるには、
app-config.yamlファイルにbaseUrlフィールドが必須です。初期化中にエラーが発生しないようにするには、アプリケーションセクションとbackendセクションの両方でbaseUrlを指定する必要があります。例1.1
app-config.yamlでのbaseUrlの設定Copy to Clipboard Copied! Toggle word wrap Toggle overflow 任意で、以下のような設定を入力します。
カスタム設定ファイルを OpenShift Container Platform クラスターにプロビジョニングします。
Developer Hub インスタンスを含むことを目的とした <my-rhdh-project> プロジェクトを作成します。
oc create namespace my-rhdh-project
$ oc create namespace my-rhdh-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、Web コンソールを使用してプロジェクトを作成 します。
app-config.yamlファイルを <my-rhdh-project> プロジェクトのmy-rhdh-app-configconfig map にプロビジョニングします。oc create configmap my-rhdh-app-config --from-file=app-config.yaml --namespace=my-rhdh-project
$ oc create configmap my-rhdh-app-config --from-file=app-config.yaml --namespace=my-rhdh-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、Web コンソールを使用して config map を作成 します。
<
my_product_secrets > .txtファイルを <my -rhdh-project> プロジェクトの <my _product_secrets> シークレットにプロビジョニングします。oc create secret generic <my_product_secrets> --from-file=<my_product_secrets>.txt --namespace=my-rhdh-project
$ oc create secret generic <my_product_secrets> --from-file=<my_product_secrets>.txt --namespace=my-rhdh-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、Web コンソールを使用してシークレットを作成 します。
<my_product_secrets> は、Developer Hub 内のシークレット設定の識別子を指定するのに推奨される Developer Hub シークレット名です。
次のステップ
追加の config map およびシークレットのプロビジョニングを検討してください。
- 外部 PostgreSQL データベースを使用するには、PostgreSQL データベースのシークレットをプロビジョニング します。
- 動的プラグインを有効にするには、動的プラグイン設定マップをプロビジョニングします。
- 外部ファイルを使用して承認を設定するには、RBAC ポリシー config map をプロビジョニング します。
1.2. Red Hat Developer Hub Operator を使用したカスタム設定での Developer Hub の実行 リンクのコピーリンクがクリップボードにコピーされました!
Developer Hub Operator を使用してカスタム設定で Red Hat Developer Hub を実行するには、次の Backstage カスタムリソース (CR) を作成します。
- カスタム config map にプロビジョニングされたファイルをマウントする。
- カスタムシークレットでプロビジョニングされた環境変数を挿入する。
前提条件
-
OpenShift CLI (
oc) を使用して、Developer Hub インスタンスを格納するための OpenShift Container Platform クラスターに開発者権限でアクセスできる。 - OpenShift Container Platform 管理者により OpenShift Container Platform に Red Hat Developer Hub Operator がインストールされている。
-
<my-rhdh-project>プロジェクトにカスタム config map とシークレットをプロビジョニングしている。
手順
my-rhdh-custom-resource.yamlファイルで Backstage CR を作成し、カスタム config map とシークレットを使用します。例1.2 最小の
my-rhdh-custom-resource.yamlカスタムリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例1.3 動的プラグインおよび RBAC ポリシー config map、および外部の PostgreSQL データベースシークレットを含む
my-rhdh-custom-resource.yamlカスタムリソースの例。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 必須フィールド:
- 必須フィールドはありません。空の Backstage CR を作成し、デフォルト設定で Developer Hub を実行できます。
- オプションのフィールド:
spec.application.appConfig.configMaps- config map 名のリストを入力します。
my-rhdh-app-configconfig map のファイルをマウントします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例1.4
my-rhdh-app-configおよびrbac-policiesconfig map にファイルをマウントします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.application.extraEnvs.envs必要に応じて、プロキシー環境変数 など、シークレットではない追加の環境変数を入力します。
例1.5
HTTP_PROXY、HTTPS_PROXY、およびNO_PROXY環境変数を注入します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.application.extraEnvs.secrets環境変数のシークレット名リストを入力します。
例1.6 Red Hat Developer Hub シークレットに環境変数を挿入する
spec: application: extraEnvs: secrets: - name: <my_product_secrets>spec: application: extraEnvs: secrets: - name: <my_product_secrets>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例1.7 Red Hat Developer Hub および
my-rhdh-database-secretsシークレットに環境変数を挿入します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
<my_product_secrets> は、Developer Hub 内のシークレット設定の識別子を指定するのに推奨される Developer Hub シークレット名です。
spec.application.extraFiles.secrets証明書ファイルのシークレット名とファイルのリストを入力します。
my-rhdh-database-certificates-secretsシークレットに含まれるpostgres-crt.pem、postgres-ca.pem、およびpostgres-key.keyファイルをマウントします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.database.enableLocalDbローカルの PostgreSQL データベースを有効または無効にします。
ローカルの PostgreSQL データベース生成を無効にして、外部の postgreSQL データベースを使用します。
spec: database: enableLocalDb: falsespec: database: enableLocalDb: falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 開発環境で、ローカルの PostgreSQL データベースを使用します。
spec: database: enableLocalDb: truespec: database: enableLocalDb: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow spec.deployment任意で デプロイメント設定を入力します。
Developer Hub インスタンスを起動または更新するには、Backstage CR を適用します。
oc apply --filename=my-rhdh-custom-resource.yaml --namespace=my-rhdh-project
$ oc apply --filename=my-rhdh-custom-resource.yaml --namespace=my-rhdh-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.1. Red Hat Developer Hub Operator を使用したカスタム設定での追加ファイルのマウント リンクのコピーリンクがクリップボードにコピーされました!
Developer Hub Operator を使用して、ConfigMap や Secret などの追加ファイルをコンテナー内の任意の場所にマウントできます。
mountPath フィールドで、ConfigMap または Secret をマウントする場所を指定します。マウントの動作は、subPath を含めるか除外するかに関係なく、key または mountPath フィールドの指定によって変わります。
-
keyとmountPathが指定されていない場合: 各キーまたは値が、subPathを使用してfilenameまたはコンテンツとしてマウントされます。 -
keyがmountPathの有無にかかわらず指定されている場合: 指定されたキーまたは値が、subPathを使用してマウントされます。 -
mountPathのみが指定されている場合: すべてのキーまたは値を含むディレクトリーが、subPathを使用せずにマウントされます。
-
OpenShift Container Platform は、
subPathを使用してマウントされたボリュームを自動的に更新しません。デフォルトでは、RHDH Operator がこれらの ConfigMap または Secret を監視し、変更が発生したときに RHDH Pod を更新します。 - セキュリティー上の理由から、Red Hat Developer Hub は Operator サービスアカウントにシークレットの読み取りアクセス権を付与しません。そのため、mountPath と key の両方を指定せずに Secret からファイルをマウントすることはできません。
前提条件
-
OpenShift CLI (
oc) を使用して、Developer Hub インスタンスが含まれる OpenShift Container Platform クラスターにアクセスするための開発者権限がある。 - OpenShift Container Platform 管理者により OpenShift Container Platform に Red Hat Developer Hub Operator がインストールされている。
手順
OpenShift Container Platform で、次の YAML コードを使用して ConfigMap または Secret を作成します。
例1.8 最小限の
my-project-configmapConfigMap の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例1.9 最小限の Red Hat Developer Hub シークレットの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、カスタム Red Hat Developer Hub 設定のプロビジョニングおよび使用 を参照してください。
configMaps nameの値を ConfigMap の名前に設定するか、secrets nameの値をBackstageCR の Secret の名前に設定します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
<my_product_secrets> は、Developer Hub 内のシークレット設定の識別子を指定するのに推奨される Developer Hub シークレット名です。
1.3. Red Hat Developer Hub Helm チャートを使用したカスタム設定での Developer Hub の実行 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub Helm チャートを使用して、カスタムアプリケーション設定ファイルを OpenShift Container Platform インスタンスに追加できます。
前提条件
- OpenShift Container Platform Web コンソールを使用すると、Developer Hub インスタンスが含まれる <my-rhdh-project> という名前の an OpenShift Container Platform project に対して開発者権限を持つアクセス権が付与されている。
-
カスタム設定ファイルおよびシークレットを
<my-rhdh-project>プロジェクトにアップロードしている。
手順
Developer Hub でカスタム設定ファイルを使用するように Helm を設定します。
- Helm リリースのリストを表示するには、Helm タブに移動します。
- 使用する Helm リリースのオーバーフローメニューをクリックし、Upgrade を選択します。
- YAML ビュー を使用して Helm 設定を編集します。
以下のように
upstream.backstage.extraAppConfig.configMapRefパラメーターおよびupstream.backstage.extraAppConfig.filenameパラメーターの値を設定します。Helm 設定の抜粋
upstream: backstage: extraAppConfig: - configMapRef: my-rhdh-app-config filename: app-config.yamlupstream: backstage: extraAppConfig: - configMapRef: my-rhdh-app-config filename: app-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Upgrade をクリックします。
次のステップ
- Helm を使用して Developer Hub をインストールします。
第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 を再設定する必要があります。-
BackstageCR を Developer Hub インスタンスをデプロイした namespace に適用します。
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.4.3
helm upgrade -n <your-namespace> <your-deploy-name> openshift-helm-charts/redhat-developer-hub -f values.yaml --version 1.4.3Copy 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章 Operator を使用する場合の Red Hat Developer Hub デプロイメントの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub Operator は、カスタムリソース (CR) の rhdh.redhat.com/v1alpha3 API バージョンを公開します。この CR は汎用の spec.deployment.patch フィールドを公開し、Developer Hub デプロイメントリソースを完全に制御できるようにします。このフィールドは、標準の apps.Deployment Kubernetes オブジェクトのフラグメントにすることができます。
手順
-
次のフィールドを使用して
BackstageCR を作成します。
例
labelsDeveloper Hub Pod にラベルを追加します。
ラベル
my=trueを追加する例Copy to Clipboard Copied! Toggle word wrap Toggle overflow volumes
my-volume という名前のボリュームを追加し、Developer Hub アプリケーションコンテナーの /my/path の下にマウントします。
追加ボリュームの例
デフォルトの dynamic-plugins-root ボリュームを、dynamic-plugins-root という名前の永続ボリューム要求 (PVC) に置き換えます。$patch: replace ディレクティブに注意してください。そうしないと、新しいボリュームが追加されます。
dynamic-plugins-root ボリュームの置換例
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
第4章 企業プロキシーの背後で Red Hat Developer Hub を実行する リンクのコピーリンクがクリップボードにコピーされました!
ネットワークが制限された環境で、プロキシーを使用してリモートネットワークリソースにアクセスするように Red Hat Developer Hub を設定します。
アプリケーションを起動する前に、以下のいずれかの環境変数を設定して企業プロキシーの背後で Developer Hub アプリケーションを実行できます。
HTTP_PROXY- HTTP 要求に使用するプロキシーを示します。
HTTPS_PROXY- HTTPS 要求に使用するプロキシーを示します。
NO_PROXY- 特定のドメインのプロキシーをバイパスするように環境変数を設定します。変数値は、プロキシーが指定されていても、プロキシーなしでアクセスできるホスト名または IP アドレスのコンマ区切りリストです。
4.1. NO_PROXY 除外ルールについて リンクのコピーリンクがクリップボードにコピーされました!
NO_PROXY は、ホスト名または IP アドレスのコンマ区切り/スペース区切りのリストとオプションのポート番号です。入力 URL が NO_PROXY にリストされているエントリーのいずれかと一致する場合、ダイレクト要求がその URL をフェッチします (たとえば、プロキシー設定を省略します)。
RHDH の NO_PROXY のデフォルト値は localhost,127.0.0.1 です。これをオーバーライドする場合は、リストに localhost または localhost:7007 以上を含めます。そうしないと、RHDH バックエンドが失敗する可能性があります。
一致は、以下のルールに従います。
-
NO_PROXY=*は、すべての要求のプロキシーをバイパスします。 -
スペースとコンマは、
NO_PROXYリストのエントリーを区切る可能性があります。たとえば、NO_PROXY="localhost,example.com"、NO_PROXY="localhost example.com"、またはNO_PROXY="localhost, example.com"でも同じ効果があります。 -
NO_PROXYにエントリーが含まれていない場合は、HTTP(S)_PROXY設定を行うと、バックエンドはプロキシー経由ですべての要求を送信します。 -
バックエンドは、リクエストがプロキシーをバイパスすべきかどうかを決定するために DNS ルックアップを実行しません。たとえば、DNS が
example.comを1.2.3.4に解決した場合、NO_PROXY=1.2.3.4を設定しても、example.comに送信される要求には影響しません。IP アドレス1.2.3.4に送信された要求のみがプロキシーをバイパスします。 -
ホスト名または IP アドレスの後にポートを追加する場合、プロキシーをバイパスするために要求はホスト/IP およびポートの両方に一致する必要があります。たとえば、
NO_PROXY=example.com:1234は、http(s)://example.com:1234への要求のプロキシーをバイパスしますが、http(s)://example.comなどの他のポートでの要求はバイパスしません。 -
ホスト名または IP アドレスの後にポートを指定しないと、ポートに関係なく、そのホスト/IP アドレスに対するすべての要求がプロキシーをバイパスします。たとえば、
NO_PROXY=localhostは、http(s)://localhost:7077およびhttp(s)://localhost:8888などの URL に送信される要求のプロキシーをバイパスします。 -
CIDR 表記の IP アドレスブロックは機能しません。したがって、バックエンドがそのブロックの IP アドレスにリクエストを送信しても、
NO_PROXY=10.11.0.0/16を設定することの効果はありません。 -
IPv4 アドレスのみをサポートします。
::1などの IPv6 アドレスは機能しません。 -
通常、プロキシーは、ホスト名が
NO_PROXYリストのエントリーと完全に一致する場合にのみバイパスされます。唯一の例外は、ドット (.) またはワイルドカード (*) で始まるエントリーです。このような場合は、ホスト名がエントリーで終わる場合はプロキシーをバイパスします。
指定のドメインとそのすべてのサブドメインを除外する場合は、ドメインとそのワイルドカードドメインをリスト表示します。たとえば、NO_PROXY=example.com,.example.com を設定して、http(s)://example.com および http(s)://subdomain.example.com に送信されるリクエストのプロキシーをバイパスします。
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
開発者は、次の例に示すように、
BackstageCR ファイルにプロキシー情報を設定します。例: CR ファイルでプロキシー変数を設定する
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 設定変更を保存します。
4.3. 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
- 設定変更を保存します。
第5章 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.yaml設定ファイルでカタログ同期オプションを設定 します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kubernetes コントロールプレーンのベース URL。ベース URL は、
kubectl cluster-infoコマンドを実行して取得できます。 - 2
- このパラメーターの値を
falseに設定して、TLS 証明書の検証を有効にします。 - 3
- オプション: ARO クラスターを管理する Kubernetes ダッシュボードへのリンク。
- 4
- オプション:<
my_product_secrets> シークレットで定義したK8S_SERVICE_ACCOUNT_TOKEN環境変数を使用してサービスアカウントトークンを渡します。 - 5
- <
my_product_secrets> シークレットで定義した環境変数を使用して CA データを渡します。K8S_CONFIG_CA_DATA
- 設定変更を保存します。
検証
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 のログを表示してください。
第6章 動的プラグインキャッシュの使用 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub (RHDH) の動的プラグインキャッシュは、以前にインストールされたプラグインを保存することでインストールプロセスを強化し、プラットフォームの起動時間を短縮します。設定が変更されていない場合、この機能により、次回の起動時にプラグインを再度ダウンロードする必要がなくなります。
動的プラグインキャッシュを有効化する場合:
-
システムは、各プラグインの YAML 設定 (
pluginConfigを除く) のチェックサムを計算します。 -
チェックサムは、プラグインのディレクトリー内の
dynamic-plugin-config.hashという名前のファイルに保存されます。 - 起動中に、プラグインのパッケージ参照が以前のインストールと一致し、チェックサムが変更されていない場合、ダウンロードはスキップされます。
- 前回の起動以降に無効になっているプラグインは自動的に削除されます。
6.1. 動的プラグインキャッシュの有効化 リンクのコピーリンクがクリップボードにコピーされました!
RHDH で動的プラグインキャッシュを有効にするには、プラグインディレクトリー dynamic-plugins-root が永続ボリュームである必要があります。
Helm チャートインストールの場合、dynamic-plugins-root という名前の永続ボリュームが自動的に作成されます。
Operator ベースのインストールの場合、次のように PersistentVolumeClaim (PVC) を手動で作成する必要があります。
RHDH Operator の今後のバージョンでは、PVC が自動的に作成される予定です。
6.2. 動的プラグインキャッシュの設定 リンクのコピーリンクがクリップボードにコピーされました!
次のオプションの動的プラグインキャッシュパラメーターを設定できます。
forceDownload: キャッシュをバイパスしてプラグインの再インストールを強制するには、trueに設定します。デフォルトはfalseです。たとえば、dynamic-plugins.yamlファイルを次のように変更します。plugins: - disabled: false forceDownload: true package: 'oci://quay.io/example-org/example-plugin:v1.0.0!internal-backstage-plugin-example'plugins: - disabled: false forceDownload: true package: 'oci://quay.io/example-org/example-plugin:v1.0.0!internal-backstage-plugin-example'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第7章 動的プラグインでの Redis Cache の使用 リンクのコピーリンクがクリップボードにコピーされました!
Redis キャッシュストアを使用すると、RHDH のパフォーマンスと信頼性を向上できます。RHDH のプラグインは、Keyv を利用した専用のキャッシュ接続を受け取ります。
7.1. Red Hat Developer Hub への Redis Cache のインストール リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- Operator または Helm チャートのいずれかを使用して Red Hat Developer Hub をインストールしている。
-
アクティブな Redis サーバーがある。外部 Redis サーバーの設定の詳細は、
Redis の公式ドキュメントを参照してください。
手順
app-config.yaml ファイルに次のコードを追加します。
backend:
cache:
store: redis
connection: redis://user:pass@cache.example.com:6379
useRedisSets: true
backend:
cache:
store: redis
connection: redis://user:pass@cache.example.com:6379
useRedisSets: true
7.2. Red Hat Developer Hub での Redis Cache の設定 リンクのコピーリンクがクリップボードにコピーされました!
7.2.1. useRedisSets リンクのコピーリンクがクリップボードにコピーされました!
useRedisSets オプションを使用すると、キーの管理に Redis セットを使用するかどうかを決定できます。デフォルトでは、このオプションは true に設定されています。
useRedisSets が有効化 (true) の場合:
- Redis セットの namespace が作成され、生成されたすべてのキーがその namespace に追加され、キーのグループ管理が可能になります。
- キーが削除されると、メインストレージと Redis セットから削除されます。
- clear 関数を使用してすべてのキーを削除すると、Redis セット内のすべてのキーが削除対象としてチェックされ、セット自体も削除されます。
高パフォーマンスのシナリオでは、useRedisSets を有効にすると、メモリーリークが発生する可能性があります。高パフォーマンスのアプリケーションまたはサービスを実行している場合は、useRedisSets を false に設定する必要があります。
useRedisSets を false に設定すると、キーは個別に処理され、Redis セットは使用されません。この設定では、clear 関数を使用する際に、実稼働環境でパフォーマンスの問題が発生する可能性があります。これは、すべてのキーの削除を反復処理する必要があるためです。