Red Hat Developer Hub 管理ガイド
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub は、開発者ポータルの構築に使用される、エンタープライズグレードのオープンな開発者プラットフォームです。このプラットフォームには、開発者の生産性を高めつつ、衝突やフラストレーションの軽減に役立つ、サポート対象の独自フレームワークが含まれています。
Red Hat Developer Hub のサポート リンクのコピーリンクがクリップボードにコピーされました!
本書で説明されている手順で問題が発生した場合は、Red Hat カスタマーポータル (http://access.redhat.com) にアクセスしてください。Red Hat Customer Portal を使用して、Red Hat 製品に関するテクニカルサポート記事の Red Hat ナレッジベースを検索または閲覧できます。Red Hat Global Support Services (GSS) の サポートケース を作成することもできます。製品として "Red Hat Developer Hub" を選択し、適切な製品バージョンを選択してください。
第1章 Red Hat Developer Hub の概要 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub (Developer Hub) は、デベロッパーポータルの構築を目的としたオープンな開発者プラットフォームです。Developer Hub を使用すると、エンジニアリングチームは、開発プロセスを合理化し、高品質のソフトウェアを効率的に構築するためのさまざまなツールやリソースを提供する統合プラットフォームにアクセスできます。
Developer Hub の目標は、以下を使用してデベロッパーポータルの作成と維持に伴う問題に対処することです。
- 生産性を高める利用可能な開発者ツールとリソースをすべて確認できる一元化されたダッシュボード
- エンタープライズクラスのベストプラクティスに準拠したクラウドネイティブアプリケーション開発に役立つセルフサービス機能と guardrails
- 企業全体のすべての開発者に対する適切なセキュリティーとガバナンス
Red Hat Developer Hub は、内部で承認されたツール、プログラミング言語、およびさまざまな開発者リソースを、自己管理型のポータル内で厳選して開発者に提供し、意思決定を簡素化します。このアプローチは、イノベーションを促進しながら、アプリケーション開発の加速とコード品質の維持に貢献します。
第2章 Helm チャートを使用した Red Hat Developer Hub のインストール リンクのコピーリンクがクリップボードにコピーされました!
柔軟性が高いインストール方法である Red Hat OpenShift (OpenShift) の Helm チャートを使用して、Red Hat Developer Hub をインストールできます。
Helm は OpenShift 上のパッケージマネージャーであり、次の特長を備えています。
- カスタムフックを使用して定期的なアプリケーション更新を適用します。
- 複雑なアプリケーションのインストールを管理します。
- パブリックおよびプライベートサーバーでホストできるチャートを提供します。
- アプリケーションの以前のバージョンへのロールバックをサポートします。
Red Hat Developer Hub の Helm チャートは、Red Hat OpenShift Dedicated、OpenShift Container Platform (OCP) の Helm カタログで入手できます。
前提条件
- OpenShift Web コンソールを使用して OCP にログインしている。
- アプリケーションを作成するために、プロジェクト内で適切なロールと権限を設定している。
手順
OpenShift にプロジェクトが存在しない場合は、作成します。
OpenShift でのプロジェクトの作成の詳細は、Red Hat OpenShift ドキュメント を参照してください。
- Red Hat OpenShift Web コンソールで、Developer モードに切り替えます。
- +Add をクリックします。
- Developer Catalog パネルから、Helm Chart をクリックします。
- 検索バーで Developer Hub を検索し、Red Hat Developer Hub カードを選択します。
- Create をクリックします。
-
OpenShift ルーターホスト (例:
apps.<clusterName>.com) を Root Schema → global → Shorthand for users who do not want to specify a custom HOSTNAME.Used ONLY with the DEFAULT upstream.backstage.appConfig value and with OCP Route enabled. にコピーし、必要に応じて他の値を調整します。 あるいは、OpenShift ルーターホスト (例:
apps.<clusterName>.com) をglobal.clusterRouterBaseにコピーし、必要に応じて他の値 (global.clusterRouterBase: apps.example.comなど) を調整します。上記の手順で、ホストに関する情報がコピーされます。この情報に Developer Hub のバックエンドがアクセスします。
OCP ルートが自動的に生成されると、ルートのホスト値が推測され、同じホスト情報が Developer Hub に送信されます。また、値を使用してホストを手動で設定することで Developer Hub がカスタムドメイン上に存在する場合は、カスタムホストが優先されます。
- Create をクリックし、データベースと Red Hat Developer Hub が起動するまで待ちます。
Open URL オプションをクリックして、Red Hat Developer Hub プラットフォームの使用を開始します。
Developer Hub Pod が CrashLoopBackOff でスタックし、次のログが表示されることがあります。
Loaded config from app-config-from-configmap.yaml, env
...
2023-07-24T19:44:46.223Z auth info Configuring "database" as KeyStore provider type=plugin
Backend failed to start up Error: Missing required config value at 'backend.database.client'
この場合、設定ファイルを確認します。これは、設定ファイルが RHDH コンテナーによってアクセスされていないためです。
第3章 エアギャップ環境 リンクのコピーリンクがクリップボードにコピーされました!
エアギャップ環境は、エアギャップネットワークまたは分離ネットワークとも呼ばれ、システムまたはネットワークを物理的に分離することでセキュリティーを確保します。この分離は、エアギャップシステムと外部ソース間の不正なアクセス、データ転送、または通信を防止するために確立されます。
Red Hat Developer Hub は、セキュリティーを確保し、特定の規制要件を満たすために、エアギャップ環境にインストールできます。
3.1. Red Hat Developer Hub をエアギャップ環境にインストールする リンクのコピーリンクがクリップボードにコピーされました!
Developer Hub をエアギャップ環境にインストールするには、registry.redhat.io とエアギャップ環境のレジストリーにアクセスできる必要があります。
前提条件
- Openshift Container Platform (OCP) 4.10 以降がインストールされている。
-
registry.redhat.ioにアクセスできる。 - 使用しているクラスターの OpenShift イメージレジストリーにアクセスできる。OpenShift イメージレジストリーの公開について、詳しくは OpenShift ドキュメントの レジストリーの公開 を参照してください。
-
ワークステーションに
ocコマンドラインツールをインストールしている。 -
ワークステーションに
podmanコマンドラインツールをインストールしている。 - Red Hat Developer ポータルのアカウントがある。
手順
ocを使用して OCP にログインします。oc login -u <user> -p <password> https://api.<HOSTNAME>:6443podmanを使用して、OCP イメージレジストリーにログインします。podman login -u kubeadmin -p $(oc whoami -t) default-route-openshift-image-registry.<HOSTNAME>注記次のコマンドを使用して OpenShift イメージレジストリーの完全なホスト名を取得し、そのホスト名をコマンドで使用してログインできます。
REGISTRY_HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}') podman login -u kubeadmin -p $(oc whoami -t) $REGISTRY_HOST次のコマンドを使用して、
podmanのregistry.redhat.ioにログインします。podman login registry.redhat.ioレジストリー認証の詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。
Red Hat イメージレジストリー から、Developer Hub および PostgreSQL イメージをワークステーションにプルします。
podman pull <DEVELOPERHUBIMAGE> podman pull registry.redhat.io/rhel9/postgresql-15:latest両方のイメージを内部 OCP レジストリーにプッシュします。
イメージを OCP レジストリーに直接プッシュする方法について、詳しくは How do I push an Image directly into the OpenShift 4 registry を参照してください。
podman push --remove-signatures registry.redhat.io/rhel9/postgresql-15:latest default-route-openshift-image-registry.<hostname>/<yourProject>/postgresql-15:latestヒントx509 エラーが発生した場合は、OpenShift ルートに使用される CA 証明書をシステムにインストールしていることを確認してください。
オプションで、
podmanpush コマンドに--tls-verify=falseを追加できますが、この方法は推奨されません。次のコマンドを使用して、両方のイメージが内部 OCP レジストリーに存在することを確認します。
oc get imagestream -n <projectName>次のコマンドを使用して、両方のイメージのローカルイメージルックアップを有効にします。
oc set image-lookup postgresql-15 oc set image-lookup rhdh-hub-rhel9YAML view に移動し、次の値を使用して
backstageとpostgresqlのimageセクションを更新します。Developer Hub イメージの値の例
upstream: backstage: image: registry: "" repository: rhdh-hub-rhel9 tag: latestPostgreSQL イメージの値の例
upstream: postgresql: image: registry: "" repository: postgresql-15 tag: latest- Helm Chart を使用して Red Hat Developer Hub をインストールします。Developer Hub のインストールについて、詳しくは2章Helm チャートを使用した Red Hat Developer Hub のインストール を参照してください。
第4章 Red Hat Developer Hub のロールベースアクセス制御 (RBAC) リンクのコピーリンクがクリップボードにコピーされました!
ロールベースアクセス制御は、認可済みユーザーへのアクセスを制限するセキュリティーパラダイムです。この機能を使用すると、特定の権限を持つロールが定義され、それらのロールがユーザーに割り当てられます。
Red Hat Developer Hub は RBAC を使用して、プラットフォーム内の権限システムを改善します。Developer Hub の RBAC 機能は、管理者ロールを導入し、効率的なアクセス制御を促進して、チーム、グループ、ユーザーを含む組織構造を活用します。
4.1. 権限ポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub では、2 つの方法で権限ポリシーを設定できます。
- 権限ポリシー管理者の設定
- 外部ファイルで定義された権限ポリシーの設定
4.1.1. 権限ポリシー管理者の設定 リンクのコピーリンクがクリップボードにコピーされました!
Developer Hub のユーザーとグループの権限ポリシーは、権限ポリシー管理者が管理します。ロールベースアクセス制御 REST API には、権限ポリシー管理者のみアクセスできます。
ポリシー管理者を設定する目的は、特定の制限付き認証ユーザーが RBAC REST API にアクセスできるようにすることです。パーミッションポリシーは policy.csv ファイルで定義されます。このファイルは、app-config-rhdh ConfigMap で参照されます。OpenShift プラットフォーム管理者またはクラスター管理者は、Red Hat Developer Hub がデプロイされている namespace にアクセスできるこのタスクを実行できます。
次のように、app-config.yaml ファイルで権限ポリシー管理者の認証情報を設定できます。
permission:
enabled: true
rbac:
admin:
users:
- name: user:default/joeuser
4.1.2. 外部ファイルで定義された権限ポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub を起動する前に、このアプローチを使用して権限ポリシーを設定できます。権限ポリシーが外部ファイルで定義されている場合は、同じファイルを Developer Hub にインポートできます。権限ポリシーは、Casbin ルール形式で定義する必要があります。Casbin ルールの形式の詳細は、Casbin ルールの基本 を参照してください。
以下は、権限ポリシーの設定例です。
p, role:default/guests, catalog-entity, read, deny
p, role:default/guests, catalog.entity.create, create, deny
g, user:default/<USER_TO_ROLE>, role:default/guests
定義された権限に関連付けられたアクションが含まれていない場合は、ポリシーとして use を追加します。以下の例を参照してください。
p, role:default/guests, kubernetes.proxy, use, deny
app-config.yaml ファイルで、policy.csv ファイルのパスを定義できます。
permission:
enabled: true
rbac:
policies-csv-file: /some/path/rbac-policy.csv
4.1.2.1. Developer Hub Helm Chart に policy.csv ファイルをマウントする リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub が Helm Chart を使用してデプロイされている場合は、policy.csv ファイルを Developer Hub Helm Chart にマウントすることで、それを定義する必要があります。
configMap を作成してマウントすることで、policy.csv ファイルを Developer Hub Helm Chart に追加できます。
前提条件
- OpenShift Web コンソールを使用して OCP にログインしている。
Red Hat Developer Hub が、Helm Chart を使用してインストールおよびデプロイされている。
Helm Chart を使用して Red Hat Developer Hub をインストールする場合の詳細は、2章Helm チャートを使用した Red Hat Developer Hub のインストール を参照してください。
手順
ポリシーを保持するために、Red Hat OpenShift で次の例のとおり configMap を作成します。
ConfigMapの例kind: ConfigMap apiVersion: v1 metadata: name: rbac-policy namespace: rhdh data: rbac-policy.csv: | p, role:default/guests, catalog-entity, read, allow p, role:default/guests, catalog.entity.create, create, allow g, user:default/<YOUR_USER>, role:default/guests- Developer Hub Helm Chart で、Root Schema → Backstage chart schema → Backstage parameters → Backstage container additional volume mounts に移動します。
Add Backstage container additional volume mounts を選択し、次の値を追加します。
-
mountPath:
opt/app-root/src/rbac -
Name:
rbac-policy
-
mountPath:
RBAC ポリシーを、Developer Hub Helm Chart の Backstage container additional volumes に追加します。
-
name:
rbac-policy configMap
-
defaultMode:
420 -
name:
rbac-policy
-
defaultMode:
-
name:
app-config.yamlファイル内のポリシーパスを、次のように更新します。app-config.yamlファイルの例permission: enabled: true rbac: policies-csv-file: ./rbac/rbac-policy.csv
4.1.3. Red Hat Developer Hub の権限ポリシー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub の権限ポリシーは、リソースまたは機能へのアクセスを管理する一連のルールです。これらのポリシーは、ユーザーのロールに基づいてユーザーに付与される認可レベルを示します。権限ポリシーは、特定の環境内でセキュリティーと機密性を維持するために実装されます。
Developer Hub では、次の権限ポリシーがサポートされます。
- Catalog 権限
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
| read | ユーザーまたはロールがカタログから読み取ることを許可します。 |
|
| create | ユーザーまたはロールによるカタログエンティティーの作成 (既存のコンポーネントをカタログに登録することを含む) を許可します。 | |
|
|
| update | ユーザーまたはロールがカタログから単一または複数のエンティティーを更新することを許可します。 |
|
|
| delete | ユーザーまたはロールがカタログから単一または複数のエンティティーを削除することを許可します。 |
|
| read | ユーザーまたはロールがカタログから単一または複数の場所を読み取ることを許可します。 | |
|
| create | ユーザーまたはロールがカタログ内に場所を作成することを許可します。 | |
|
| delete | ユーザーまたはロールがカタログから場所を削除することを許可します。 |
- Scaffolder 権限
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
| テンプレートからのアクションの実行を許可します。 | |
|
|
| read | ユーザーまたはロールがテンプレートから単一または複数のパラメーターを読み取ることを許可します。 |
|
|
| read | ユーザーまたはロールがテンプレートから単一または複数のステップを読み取ることを許可します。 |
- RBAC 権限
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
|
| read | ユーザーまたはロールに権限ポリシーとロールの読み取りを許可します。 |
|
|
| create | ユーザーまたはロールが単一または複数の権限ポリシーとロールを作成することを許可します。 |
|
|
| update | ユーザーまたはロールが単一または複数の権限ポリシーとロールを更新することを許可します。 |
|
|
| delete | ユーザーまたはロールが単一または複数の権限ポリシーとロールを削除することを許可します。 |
- Kubernetes 権限
| 名前 | リソースタイプ | ポリシー | 説明 |
|---|---|---|---|
|
| ユーザーまたはロールがプロキシーエンドポイントにアクセスすることを許可します。 |
4.2. ロールベースアクセス制御 (RBAC) REST API リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub は、Developer Hub で権限とロールを管理するために使用できる RBAC REST API を提供します。この API は、Developer Hub の権限ポリシーとロールのメンテナンスを容易にし、自動化します。
RBAC REST API を使用すると、次のアクションを実行できます。
- すべて、または特定の権限ポリシー、もしくはロールに関する情報を取得します。
- 権限ポリシーまたはロールを作成、更新、削除します。
- 静的プラグインに関する権限ポリシーの情報を取得します。
RBAC REST API には、次のコンポーネントが必要です。
認可
RBAC REST API には、許可されたユーザーロールに対するベアラートークンの認可が必要です。開発目的の場合、ブラウザーで Web コンソールにアクセスできます。ネットワーク要求リストでトークン要求を更新すると、応答 JSON 内でトークンが見つかります。
Authorization: Bearer $token
たとえば、Developer Hub の Homepage で Network タブに移動し、query?term= ネットワーク呼び出しを検索できます。あるいは、Catalog ページに移動し、entity-facets を持つネットワーク呼び出しを選択してベアラートークンを取得することもできます。
HTTP メソッド
RBAC REST API は、API 要求で次の HTTP メソッドをサポートします。
-
GET: 指定したリソースのエンドポイントから指定した情報を取得する -
POST: リソースを作成または更新する -
PUT: リソースを更新する -
DELETE: リソースを削除する
ベース URL
RBAC REST API 要求のベース URL は、http://SERVER:PORT/api/permission/policies (http://localhost:7007/api/permission/policies など) です。
エンドポイント
指定された kind、namespace、ユーザー名の RBAC REST API エンドポイント (例: /api/permission/policies/[kind]/[namespace]/[name]) は、対応するリソースにアクセスするためにベース URL に追加する URI です。
以下は、/api/permission/policies/[kind]/[namespace]/[name] エンドポイントの要求 URL の例です。
http://localhost:7007/api/permission/policies/user/default/johndoe
少なくとも 1 つの権限が user:default/johndoe に割り当てられている場合、前述した要求 URL の例は、有効な認可トークンを含む GET 応答で送信されると結果を返します。ただし、権限がロールにのみ割り当てられている場合、例として挙げた要求 URL は出力を返しません。
要求データ
RBAC REST API の HTTP POST 要求では、データに JSON 要求の body が必要になる場合があります。
http://localhost:7007/api/permission/policies の POST 要求 URL と JSON 要求の body データの例:
{
"entityReference": "role:default/test",
"permission": "catalog-entity",
"policy": "delete",
"effect": "allow"
}
HTTP ステータスコード
RBAC REST API は、応答として返される次の HTTP ステータスコードをサポートしています。
-
200OK: 要求は成功しました。 -
201Created: 要求により、新しいリソースが正常に作成されました。 -
204No Content: 要求は成功しましたが、応答ペイロードで送信する追加コンテンツはありません。 -
400Bad Request: 要求に入力エラーがありました。 -
401Unauthorized: 要求されたリソースに対する有効な認証がありません。 -
403Forbidden: 要求の承認が拒否されました。 -
404Not Found: 要求されたリソースは見つかりません。 -
409Conflict: 要求が、現在の状態およびターゲットリソースと競合しています。
4.2.1. REST クライアントまたは curl ユーティリティーを使用して RBAC REST API で要求を送信する リンクのコピーリンクがクリップボードにコピーされました!
RBAC REST API を使用すると、ユーザーインターフェイスを使用せずに、Developer Hub の権限ポリシーおよびロールと対話できます。RBAC REST API 要求は、任意の REST クライアントまたは curl ユーティリティーを使用して送信できます。
前提条件
- Red Hat Developer Hub がインストールされ、実行されている。Red Hat Developer Hub のインストールについて、詳しくは 2章Helm チャートを使用した Red Hat Developer Hub のインストール を参照してください。
- Developer Hub にアクセスできる。
手順
要求の送信先となる API エンドポイント (例:
POST/api/permission/policies) を特定します。ユースケースに合わせて、要求の詳細を調整します。REST クライアントの場合:
- Authorization: Web コンソールから生成されたトークンを入力します。
-
HTTP method:
POSTに設定します。 -
URL: RBAC REST API のベース URL とエンドポイント (例:
http://localhost:7007/api/permission/policies) を入力します。
curl ユーティリティーの場合:
-
-X:POSTに設定します。 -H: 以下のヘッダーを設定します。Content-type: application/jsonAuthorization: Bearer $token$tokenは、ブラウザーの Web コンソールから要求されたトークンです。-
URL: 次の RBAC REST API ベースの URL エンドポイント (例:
http://localhost:7007/api/permission/policies) を入力します。 -
-d: 要求の JSON bodyを追加します
要求の例:
curl -X POST "http://localhost:7007/api/permission/policies" -d '{"entityReference":"role:default/test", "permission": "catalog-entity", "policy": "read", "effect":"allow"}' -H "Content-Type: application/json" -H "Authorization: Bearer $token" -v- 要求を実行し、応答を確認します。
4.2.2. サポートされている RBAC REST API エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
RBAC REST API は、Developer Hub で権限ポリシーとロールを管理し、そのポリシーとロールに関する情報を取得するための以下のエンドポイントを提供します。
4.2.2.1. 権限ポリシー リンクのコピーリンクがクリップボードにコピーされました!
RBAC REST API は、Red Hat Developer Hub で権限ポリシーを管理するために、次のエンドポイントをサポートします。
- [GET] /api/permission/policies
すべてのユーザーの権限ポリシーリストを返します。
応答例 (JSON)
[ { "entityReference": "role:default/test", "permission": "catalog-entity", "policy": "read", "effect": "allow" }, { "entityReference": "role:default/test", "permission": "catalog.entity.create", "policy": "use", "effect": "allow" }, ]- [GET] /api/permission/policies/{kind}/{namespace}/{name}
指定されたエンティティー参照に関連する権限ポリシーを返します。
Expand 表4.1 要求パラメーター 名前 説明 タイプ 要件 kindエンティティーの種類
String
必須
namespaceエンティティーの名前空間
String
必須
nameエンティティーに関連するユーザー名
String
必須
応答例 (JSON)
[ { "entityReference": "role:default/test", "permission": "catalog-entity", "policy": "read", "effect": "allow" }, { "entityReference": "role:default/test", "permission": "catalog.entity.create", "policy": "use", "effect": "allow" } ]- [POST] /api/permission/policies
指定されたエンティティーの権限ポリシーを作成します。
Expand 表4.2 要求パラメーター 名前 説明 タイプ 要件 entityReference名前空間と名前を含むエンティティーの参照値
String
必須
permission権限の種類
String
必須
policy権限の読み取りまたは書き込みポリシー
String
必須
effectポリシーを許可するかどうか
String
必須
要求 の body の例 (JSON)
{ "entityReference": "role:default/test", "permission": "catalog-entity", "policy": "read", "effect": "allow" }応答の例
201 Created- [PUT] /api/permission/policies/{kind}/{namespace}/{name}
指定されたエンティティーの権限ポリシーを更新します。
要求パラメーター
要求の body には、
oldPolicyオブジェクトとnewPolicyオブジェクトが含まれています。Expand 名前 説明 タイプ 要件 permission権限の種類
String
必須
policy権限の読み取りまたは書き込みポリシー
String
必須
effectポリシーを許可するかどうか
String
必須
要求 の body の例 (JSON)
{ "oldPolicy": { "permission": "catalog-entity", "policy": "read", "effect": "deny" }, "newPolicy": { "permission": "policy-entity", "policy": "read", "effect": "allow" } }応答の例
200- [DELETE] /api/permission/policies/{kind}/{namespace}/{name}?permission={value1}&policy={value2}&effect={value3}
指定されたエンティティーに追加された権限ポリシーを削除します。
Expand 表4.3 要求パラメーター 名前 説明 タイプ 要件 kindエンティティーの種類
String
必須
namespaceエンティティーの名前空間
String
必須
nameエンティティーに関連するユーザー名
String
必須
permission権限の種類
String
必須
policy権限の読み取りまたは書き込みポリシー
String
必須
effectポリシーを許可するかどうか
String
必須
応答の例
204 No Content- [GET] /api/permission/plugins/policies
すべての静的プラグインの権限ポリシーを返します。
応答例 (JSON)
[ { "pluginId": "catalog", "policies": [ { "permission": "catalog-entity", "policy": "read" }, { "permission": "catalog.entity.create", "policy": "create" }, { "permission": "catalog-entity", "policy": "delete" }, { "permission": "catalog-entity", "policy": "update" }, { "permission": "catalog.location.read", "policy": "read" }, { "permission": "catalog.location.create", "policy": "create" }, { "permission": "catalog.location.delete", "policy": "delete" } ] }, ... ]
4.2.2.2. ロール リンクのコピーリンクがクリップボードにコピーされました!
RBAC REST API は、Red Hat Developer Hub でロールを管理するために、次のエンドポイントをサポートします。
- [GET] /api/permission/roles
Developer Hub のすべてのロールを返します。
応答例 (JSON)
[ { "memberReferences": ["user:default/pataknight"], "name": "role:default/guests" }, { "memberReferences": [ "group:default/janus-authors", "user:default/matt" ], "name": "role:default/rbac_admin" } ]- [GET] /api/permission/roles/{kind}/{namespace}/{name}
Developer Hub でロールを作成します。
Expand 表4.4 要求パラメーター 名前 説明 タイプ 要件 body作成される新しいロールの
memberReferences、group、namespace、name。要求の body
必須
要求 の body の例 (JSON)
{ "memberReferences": ["group:default/test"], "name": "role:default/test_admin" }応答の例
201 Created- [PUT] /api/permission/roles/{kind}/{namespace}/{name}
Developer Hub のロールの
memberReferences、kind、namespace、またはnameを更新します。要求パラメーター
要求の body には、
oldRoleオブジェクトとnewRoleオブジェクトが含まれています。Expand 名前 説明 タイプ 要件 body作成される新しいロールの
memberReferences、group、namespace、name。要求の body
必須
要求 の body の例 (JSON)
{ "oldRole": { "memberReferences": ["group:default/test"], "name": "role:default/test_admin" }, "newRole": { "memberReferences": ["group:default/test", "user:default/test2"], "name": "role:default/test_admin" } }応答の例
200 OK- [DELETE] /api/permission/roles/{kind}/{namespace}/{name}?memberReferences=<VALUE>
Developer Hub のロールから、指定されたユーザーまたはグループを削除します。
Expand 表4.5 要求パラメーター 名前 説明 タイプ 要件 kindエンティティーの種類
String
必須
namespaceエンティティーの名前空間
String
必須
nameエンティティーに関連するユーザー名
String
必須
memberReferences関連するグループの情報
String
必須
応答の例
204- [DELETE] /api/permission/roles/{kind}/{namespace}/{name}
Developer Hub から、指定されたロールを削除します。
Expand 表4.6 要求パラメーター 名前 説明 タイプ 要件 kindエンティティーの種類
String
必須
namespaceエンティティーの名前空間
String
必須
nameエンティティーに関連するユーザー名
String
必須
応答の例
204
第5章 動的プラグインのインストール リンクのコピーリンクがクリップボードにコピーされました!
動的プラグインのサポートは、バックエンドプラグインマネージャーパッケージに基づいています。これは、設定されたルートディレクトリー (app config 内の DynamicPlugins.rootDirectory) をスキャンして動的プラグインパッケージを探し、動的にロードするサービスです。
5.1. Helm のデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub (RHDH) インスタンスをデプロイするには、柔軟なインストール方法である Helm Chart を使用します。
コードを再コンパイルしたりコンテナーを再ビルドしたりすることなく、動的プラグインを Developer Hub インスタンスにサイドロードできます。
動的プラグインをインストールするには、Helm Chart で次の global.dynamic パラメーターを使用します。
-
plugins: このフィールドには、インストールが予定されている動的プラグインのリストが含まれます。デフォルトでは、これは空のリストです。パッケージは、動的プラグインのフォルダーへのローカル相対パス (./ で始まる) として、または NPM リポジトリー内のパッケージ仕様として指定できます。 -
include: このフィールドには、同じ構文を使用する YAML ファイルのリストが含まれます。これらのファイルのpluginsリストは、プライマリー helm 値のプラグインリストにより組み込まれ、場合によってはオーバーライドされます。デフォルト設定には、dynamic-plugins.default.yamlファイルが含まれています。このファイルには、デフォルトで有効か無効かに関係なく、Developer Hub に含まれるすべての動的プラグインが含まれます。
5.2. Helm Chart を使用した動的プラグインのインストール リンクのコピーリンクがクリップボードにコピーされました!
Helm Chart の global.dynamic.plugins リストにエントリーを追加することで、RHDH に動的プラグインを含めることができます。
各エントリーには、次のフィールドが含まれている必要があります。
-
package: インストールされる、(ローカルパスまたは NPM リポジトリーからの) 動的プラグインパッケージのパッケージ仕様 -
integrity: (ローカルパッケージの場合はオプション) 特定パッケージの整合性チェックサム。形式は <alg>-<digest>。サポートされるアルゴリズムは、sha256、sha384、sha512です。 -
pluginConfig: プラグイン固有の app-config yaml フラグメント (オプション)。詳細は、プラグインの設定を参照してください。 -
disabled:trueに設定すると、動的プラグインが無効になります。デフォルト:false。
5.2.1. 例 リンクのコピーリンクがクリップボードにコピーされました!
例 1: ローカルソースとリモートソースから 2 つのプラグインを有効にする (そのうちの 1 つには、特定のアプリ設定が必要)
global:
dynamic:
plugins:
- package: <a local package-spec used by npm pack>
- package: <a remote package-spec used by npm pack>
integrity: sha512-<some hash>
pluginConfig: ...
例 2: 含まれるファイルからプラグインを無効にする
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: <some imported plugins listed in dynamic-plugins.default.yaml>
disabled: true
例 3: 含まれるファイルからプラグインを有効にする
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: <some imported plugins listed in dynamic-plugins.custom.yaml>
disabled: false
5.3. Red Hat Developer Hub にプリロードされた動的プラグイン リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub (Developer Hub) には、厳選された動的プラグインが事前にロードされています。これらの動的プラグインのほとんどは、必須の設定があるため、デフォルトでは無効になっています。
この RHDH リリースに含まれる動的プラグインの完全なリストについては、動的プラグインのマトリクス の表を参照してください。
アプリケーションが起動すると、デフォルトで無効になっているプラグインごとに、Developer Hub Pod のログ内の install-dynamic-plugins init container に次のような行が表示されます。
======= Skipping disabled dynamic plugin ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic
このプラグインを有効にするには、同じ名前のパッケージを追加し、Helm Chart の値の無効なフィールドを、次のように調整します。
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic
disabled: false
プラグインのデフォルト設定は、dynamic-plugins.default.yaml ファイルから展開されますが、pluginConfig エントリーを使用して、このデフォルト設定をオーバーライドできます。
5.4. 動的プラグインの基本設定 リンクのコピーリンクがクリップボードにコピーされました!
一部の動的プラグインでは、環境変数を設定する必要があります。必須の環境変数が設定されておらず、プラグインが有効になっている場合、アプリケーションの起動に失敗する可能性があります。
各プラグインで必須の環境変数は、動的プラグインマトリクス の表にリストされています。
ZiB-bomb の検出。大きなファイルを含む動的プラグインをインストールする場合、インストールスクリプトがパッケージアーカイブを ZiB-bomb とみなすと、インストールは失敗します。
パッケージアーカイブ内のファイルの最大許容サイズを増やすには、デプロイメント install-dynamic-plugins initContainer の MAX_ENTRY_SIZE 環境値を、デフォルトサイズの 20000000 バイトより大きくします。
5.5. Red Hat Developer Hub に含まれる動的プラグイン リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー機能は、実稼働環境での Red Hat サービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、今後の製品機能への早期アクセスを提供することで、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにしています。
Red Hat のテクノロジープレビュー機能のサポートの詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
バンドルされたコミュニティーの動的プラグインに対する Red Hat のサポートについて、詳しくは Red Hat Developer サポートポリシー のページを参照してください。
プラグインは 47 個あります。
| 名前 | Role | プラグイン | 説明 | バージョン | サポートレベル | パス | 必須の変数 | デフォルト |
|---|---|---|---|---|---|---|---|---|
| 3scale | バックエンド | @janus-idp/backstage-plugin-3scale-backend | 3scale Backstage プロバイダープラグインは、3scale コンテンツを Backstage カタログに同期します。 | 1.3.6 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-3scale-backend-dynamic |
| Disabled |
| AAP | バックエンド | @janus-idp/backstage-plugin-aap-backend | 1.4.5 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic |
| Disabled | |
| ACR | フロントエンド | @janus-idp/backstage-plugin-acr | 1.2.4 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-acr | Disabled | ||
| Analytics Provider Segment | フロントエンド | @janus-idp/backstage-plugin-analytics-provider-segment | Segment 用の Backstage Analytics API 実装を提供します。これをインストールして設定すると、ユーザーが Backstage インスタンスに移動して使用すると、分析イベントが Segment に送信されます。 | 1.2.0 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-analytics-provider-segment |
| Disabled |
| Argo CD | フロントエンド | @roadiehq/backstage-plugin-argo-cd | Argo CD を表示し、対話するための Backstage プラグイン。 | 2.3.5 | 実稼働 | ./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd | Disabled | |
| Argo CD | バックエンド | @roadiehq/backstage-plugin-argo-cd-backend | Argo CD バックエンドの Backstage プラグイン | 2.11.3 | 実稼働 | ./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd-backend-dynamic |
| Disabled |
| Argo CD | バックエンド | @roadiehq/scaffolder-backend-argocd | 1.1.17 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-scaffolder-backend-argocd-dynamic |
| Disabled | |
| Azure Devops | フロントエンド | @backstage/plugin-azure-devops | 0.3.7 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-azure-devops | Disabled | ||
| Azure Devops | バックエンド | @backstage/plugin-azure-devops-backend | Azure DevOps フロントエンドプラグインが使用する、ビルドやプルリクエストなどを取得するための API が含まれる Azure DevOps バックエンドプラグイン。 | 0.4.3 | テクノロジープレビュー | ./dynamic-plugins/dist/backstage-plugin-azure-devops-backend-dynamic |
| Disabled |
| Datadog | フロントエンド | @roadiehq/backstage-plugin-datadog | Datadog のグラフとダッシュボードを Backstage に埋め込みます。 | 2.2.0 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-backstage-plugin-datadog | Disabled | |
| Dynatrace | フロントエンド | @backstage/plugin-dynatrace | Dynatrace に統合する Backstage プラグイン。 | 7.0.5 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-dynatrace | Disabled | |
| GitHub | バックエンド | @backstage/plugin-catalog-backend-module-github | GitHub への統合を支援する Backstage カタログバックエンドモジュール | 0.4.4 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic |
| Disabled |
| GitHub | バックエンド | @backstage/plugin-catalog-backend-module-github-org | カタログプラグインの github-org バックエンドモジュール。 | 0.1.0 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic |
| Disabled |
| GitHub | フロントエンド | @backstage/plugin-github-actions | GitHub Actions に統合する Backstage プラグイン | 0.6.6 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-github-actions | Disabled | |
| GitHub | フロントエンド | @backstage/plugin-github-issues | GitHub Issues に統合する Backstage プラグイン | 0.2.14 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-github-issues | Disabled | |
| GitHub | フロントエンド | @roadiehq/backstage-plugin-github-insights | Readme、Top Contributor、およびその他のウィジェットを提供する Backstage プラグイン。 | 2.3.21 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-backstage-plugin-github-insights | Disabled | |
| GitHub | フロントエンド | @roadiehq/backstage-plugin-github-pull-requests | GitHub プルリクエストを表示し、対話するための Backstage プラグイン。 | 2.5.18 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-backstage-plugin-github-pull-requests | Disabled | |
| GitHub | フロントエンド | @roadiehq/backstage-plugin-security-insights | GitHub リポジトリーのセキュリティーに関する洞察を追加するための Backstage プラグイン。 | 2.3.9 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-backstage-plugin-security-insights | Disabled | |
| Gitlab | バックエンド | @backstage/plugin-catalog-backend-module-gitlab | GitLab インスタンスからリポジトリーを展開します。 | 0.3.3 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-gitlab-dynamic | Disabled | |
| Gitlab | バックエンド | @backstage/plugin-scaffolder-backend-module-gitlab | GitLab との対話を可能にする scaffolder バックエンドのモジュール | 0.2.9 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gitlab-dynamic | Disabled | |
| Gitlab | フロントエンド | @immobiliarelabs/backstage-plugin-gitlab | GitLab と対話するための Backstage プラグイン | 6.2.0 | コミュニティーサポート | ./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab | Disabled | |
| Gitlab | バックエンド | @immobiliarelabs/backstage-plugin-gitlab-backend | GitLab と対話するための Backstage プラグイン | 6.2.0 | コミュニティーサポート | ./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab-backend-dynamic |
| Disabled |
| Jenkins | フロントエンド | @backstage/plugin-jenkins | Jenkins 二統合される Backstage プラグイン | 0.9.0 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-jenkins | Disabled | |
| Jenkins | バックエンド | @backstage/plugin-jenkins-backend | Jenkins に統合する Backstage バックエンドプラグイン | 0.3.0 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-jenkins-backend-dynamic |
| Disabled |
| Jfrog Artifactory | フロントエンド | @janus-idp/backstage-plugin-jfrog-artifactory | Jfrog Artifactory プラグインは、Jfrog Artifactory レジストリー内のコンテナーイメージに関する情報を表示します。 | 1.2.4 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-jfrog-artifactory | Disabled | |
| Jira | フロントエンド | @roadiehq/backstage-plugin-jira | Jira を表示し、対話するための Backstage プラグイン | 2.4.11 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-backstage-plugin-jira | Disabled | |
| Keycloak | バックエンド | Keycloak バックエンドプラグインは、Keycloak を Backstage に統合します。 | 1.7.6 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-keycloak-backend-dynamic |
| Disabled | |
| Kubernetes | フロントエンド | @backstage/plugin-kubernetes | Kubernetes に統合する Backstage プラグイン | 0.11.0 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-kubernetes | 有効 | |
| Kubernetes | バックエンド | @backstage/plugin-kubernetes-backend | Kubernetes に統合する Backstage バックエンドプラグイン | 0.13.0 | 実稼働 | ./dynamic-plugins/dist/backstage-plugin-kubernetes-backend-dynamic |
| 有効 |
| Kubernetes | フロントエンド | @janus-idp/backstage-plugin-topology | Topology プラグインを使用すると、Kubernetes クラスター上の任意のサービスを駆動する Deployment、Job、Daemonset、Statefulset、CronJob、Pod などのワークロードを視覚化できます。 | 1.16.4 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-topology | 有効 | |
| Lighthouse | フロントエンド | @backstage/plugin-lighthouse | Lighthouse に統合する Backstage プラグイン | 0.4.10 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-lighthouse | Disabled | |
| Nexus リポジトリーマネージャー | フロントエンド | @janus-idp/backstage-plugin-nexus-repository-manager | Nexus Repository Manager プラグインは、Backstage アプリケーションの Nexus Repository Manager で利用可能なビルドアーティファクトに関する情報を表示します。 | 1.4.4 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-nexus-repository-manager | Disabled | |
| OCM | フロントエンド | @janus-idp/backstage-plugin-ocm |
Open Cluster Management (OCM) プラグインは、Backstage インスタンスを OCM の | 3.5.0 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm | Disabled | |
| OCM | バックエンド | @janus-idp/backstage-plugin-ocm-backend | 3.4.6 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm-backend-dynamic |
| Disabled | |
| Pagerduty | フロントエンド | @backstage/plugin-pagerduty | PagerDuty に統合する Backstage プラグイン | 0.6.6 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-pagerduty | Disabled | |
| Quay | フロントエンド | @janus-idp/backstage-plugin-quay | Quay プラグインは、Backstage アプリケーションの Quay レジストリー内のコンテナーイメージに関する情報を表示します。 | 1.4.6 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-quay | Disabled | |
| Quay | バックエンド | @janus-idp/backstage-scaffolder-backend-module-quay | このモジュールは、Quay の Backstage テンプレートアクションを提供します。 | 1.2.1 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-quay-dynamic | 有効 | |
| Regex | バックエンド | @janus-idp/backstage-scaffolder-backend-module-regex | このプラグインは、RegExp の Backstage テンプレートアクションを提供します。 | 1.2.1 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-regex-dynamic | 有効 | |
| Scaffolder | バックエンド | @roadiehq/scaffolder-backend-module-utils | scaffolder テンプレートで使用するアクションのコレクションが含まれています。 | 1.10.4 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-utils-dynamic | 有効 | |
| ServiceNow | バックエンド | @janus-idp/backstage-scaffolder-backend-module-servicenow | このプラグインは、ServiceNow の Backstage テンプレートアクションを提供します。 | 1.2.3 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-servicenow-dynamic |
| Disabled |
| SonarQube | フロントエンド | @backstage/plugin-sonarqube | SonarQube コードの品質とセキュリティーの結果を表示するための Backstage プラグイン。 | 0.7.7 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-sonarqube | Disabled | |
| SonarQube | バックエンド | @backstage/plugin-sonarqube-backend | 0.2.8 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-sonarqube-backend-dynamic |
| Disabled | |
| SonarQube | バックエンド | @janus-idp/backstage-scaffolder-backend-module-sonarqube | このモジュールは、SonarQube の Backstage テンプレートアクションを提供します。 | 1.2.1 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-sonarqube-dynamic | Disabled | |
| Tech Radar | フロントエンド | @backstage/plugin-tech-radar | 組織の Tech Radar を表示できる Backstage プラグイン | 0.6.9 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-tech-radar | Disabled | |
| Techdocs | フロントエンド | @backstage/plugin-techdocs | コンポーネントのテクニカルドキュメントをレンダリングする Backstage プラグイン | 1.8.0 | 実稼働 | ./dynamic-plugins/dist/backstage-plugin-techdocs | Disabled | |
| Techdocs | バックエンド | @backstage/plugin-techdocs-backend | コンポーネントのテクニカルドキュメントをレンダリングする Backstage バックエンドプラグイン | 1.8.0 | 実稼働 | ./dynamic-plugins/dist/backstage-plugin-techdocs-backend-dynamic |
| Disabled |
| Tekton | フロントエンド | @janus-idp/backstage-plugin-tekton | Tekton プラグインを使用すると、Kubernetes クラスターで利用可能な PipelineRun リソースを視覚化できます。 | 3.1.3 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-tekton | Disabled |
5.6. Ansible Automation Platform のインストールと設定 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform (AAP) プラグインは、ジョブテンプレートやワークフロージョブテンプレートなどのアクセス可能なテンプレートを AAP から Developer Hub カタログに同期します。
Ansible Automation Platform プラグインはテクノロジープレビュー機能としてのみご利用いただけます。
テクノロジープレビュー機能は、実稼働環境での Red Hat サービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、今後の製品機能への早期アクセスを提供することで、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにしています。
Red Hat のテクノロジープレビュー機能のサポートの詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
バンドルされたコミュニティーの動的プラグインに対する Red Hat のサポートについて、詳しくは Red Hat Developer サポートポリシー のページを参照してください。
5.6.1. 管理者の場合 リンクのコピーリンクがクリップボードにコピーされました!
5.6.1.1. AAP バックエンドプラグインのインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
AAP バックエンドプラグインを使用すると、Developer Hub の app-config.yaml 設定ファイルを使用して 1 つまたは複数のプロバイダーを設定できます。
前提条件
- Developer Hub アプリケーションがインストールされ、実行中である。
- Ansible Automation Platform でアカウントを作成している。
インストール
AAP バックエンドプラグインは、基本的な設定プロパティーとともに Developer Hub にプリロードされています。これを有効にするには、次のように、disabled プロパティーを false に設定します。
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic
disabled: false
Basic configuration
AAP プラグインを有効にするには、次の環境変数を設定する必要があります。
-
AAP_BASE_URL: サービスのベース URL -
AAP AUTH TOKEN: サービスの認証トークン
詳細設定
aapマーカーを使用して、Developer Hub のapp-config.yamlファイルを次のように設定できます。catalog: providers: aap: dev: baseUrl: $(AAP_BASE_URL) authorization: 'Bearer ${AAP_AUTH_TOKEN}' owner: <owner> system: <system> schedule: # optional; same options as in TaskScheduleDefinition # supports cron, ISO duration, "human duration" as used in code frequency: { minutes: 1 } # supports ISO duration, "human duration" as used in code timeout: { minutes: 1 }
5.6.1.2. AAP バックエンドプラグインのトラブルシューティング用のログ行 リンクのコピーリンクがクリップボードにコピーされました!
Developer Hub アプリケーションを起動すると、以下のログ行が表示されます。
[1] 2023-02-13T15:26:09.356Z catalog info Discovered ResourceEntity API type=plugin target=AapResourceEntityProvider:dev
[1] 2023-02-13T15:26:09.423Z catalog info Discovered ResourceEntity Red Hat Event (DEV, v1.2.0) type=plugin target=AapResourceEntityProvider:dev
[1] 2023-02-13T15:26:09.620Z catalog info Discovered ResourceEntity Red Hat Event (TEST, v1.1.0) type=plugin target=AapResourceEntityProvider:dev
[1] 2023-02-13T15:26:09.819Z catalog info Discovered ResourceEntity Red Hat Event (PROD, v1.1.0) type=plugin target=AapResourceEntityProvider:dev
[1] 2023-02-13T15:26:09.819Z catalog info Applying the mutation with 3 entities type=plugin target=AapResourceEntityProvider:dev
5.6.2. ユーザーの場合 リンクのコピーリンクがクリップボードにコピーされました!
5.6.2.1. Developer Hub AAP からのテンプレートへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
AAP バックエンドプラグインを正常に設定すると、ジョブテンプレートやワークフロージョブテンプレートなどのテンプレートが AAP から同期され、Developer Hub カタログページにリソースとして表示されます。
前提条件
- Developer Hub アプリケーションがインストールされ、実行中である。
- AAP バックエンドプラグインがインストールされている。インストールおよび設定の手順は、「AAP バックエンドプラグインのインストールおよび設定」 を参照してください。
手順
- Developer Hub アプリケーションを開き、Catalog ページに移動します。
ページの左側にある Kind ドロップダウンから Resource を選択し、 the Type ドロップダウンから job template または workflow job template を選択します。
AAP から利用可能なすべてのテンプレートのリストがページに表示されます。
リストからテンプレートを選択します。
OVERVIEW タブには、次のようなさまざまなカードが含まれています。
- About: テンプレートに関する詳細情報を提供します。
- Relations: テンプレートと関連する側面を視覚的に表示します。
- Links: AAP ダッシュボードへのリンクと、テンプレートの詳細ページへのリンクが含まれます。
- subcomponents: 関連するサブコンポーネントの一覧を表示します。
5.7. Keycloak のインストールと設定 リンクのコピーリンクがクリップボードにコピーされました!
Keycloak を Developer Hub に統合する Keycloak バックエンドプラグインには、次の機能があります。
- レルム内の Keycloak ユーザーの同期
- レルム内の Keycloak グループとそのユーザーの同期
5.7.1. 管理者の場合 リンクのコピーリンクがクリップボードにコピーされました!
5.7.1.1. インストール リンクのコピーリンクがクリップボードにコピーされました!
Keycloak プラグインは、基本的な設定プロパティーとともに Developer Hub にプリロードされています。これを有効にするには、次のように、disabled プロパティーを false に設定します。
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-keycloak-backend-dynamic
disabled: false
5.7.1.2. Basic configuration リンクのコピーリンクがクリップボードにコピーされました!
Keycloak プラグインを有効にするには、次の環境変数を設定する必要があります。
-
KEYCLOAK_BASE_URL -
KEYCLOAK_LOGIN_REALM -
KEYCLOAK_REALM -
KEYCLOAK_CLIENT_ID -
KEYCLOAK_CLIENT_SECRET
5.7.1.3. 詳細設定 リンクのコピーリンクがクリップボードにコピーされました!
スケジュール設定
次のように、app-config.yaml ファイルでスケジュールを設定できます。
catalog:
providers:
keycloakOrg:
default:
# ...
# highlight-add-start
schedule: # optional; same options as in TaskScheduleDefinition
# supports cron, ISO duration, "human duration" as used in code
frequency: { minutes: 1 }
# supports ISO duration, "human duration" as used in code
timeout: { minutes: 1 }
initialDelay: { seconds: 15 }
# highlight-add-end
app-config.yaml ファイルのスケジュールに変更を加えた場合は、再起動して変更を適用します。
Keycloak クエリーパラメーター
次のように、app-config.yaml ファイル内のデフォルトの Keycloak クエリーパラメーターをオーバーライドできます。
catalog:
providers:
keycloakOrg:
default:
# ...
# highlight-add-start
userQuerySize: 500 # Optional
groupQuerySize: 250 # Optional
# highlight-add-end
Developer Hub と Keycloak 間の通信は、Keycloak API を使用して有効になります。ユーザー名およびパスワード、またはクライアント認証情報は、認証方法に対応しています。
以下の表は、app-config.yaml ファイルの catalog.providers.keycloakOrg.<ENVIRONMENT_NAME> オブジェクトでプラグインを有効にするために設定できるパラメーターを説明しています。
| 名前 | 説明 | デフォルト値 | 必須 |
|---|---|---|---|
|
|
Keycloak サーバーの場所 (例: | "" | はい |
|
| 同期するレルム |
| いいえ |
|
| 認証に使用するレルム |
| いいえ |
|
| 認証するユーザー名 | "" | パスワードベースの認証を使用している場合は Yes |
|
| 認証するパスワード | "" | パスワードベースの認証を使用している場合は Yes |
|
| 認証するクライアント ID | "" | クライアントクレデンシャルベースの認証を使用している場合は Yes |
|
| 認証するクライアントシークレット | "" | クライアントクレデンシャルベースの認証を使用している場合は Yes |
|
| 一度にクエリーするユーザーの数 |
| いいえ |
|
| 一度にクエリーするグループの数 |
| いいえ |
クライアントクレデンシャルを使用する場合は、アクセスタイプを confidential に設定し、サービスアカウントを有効にする必要があります。realm-management クライアントロールから以下のロールも追加する必要があります。
-
query-groups -
query-users -
view-users
5.7.1.4. 制限事項 リンクのコピーリンクがクリップボードにコピーされました!
自己署名または企業証明書に問題がある場合は、Developer Hub を開始する前に以下の環境変数を設定できます。
NODE_TLS_REJECT_UNAUTHORIZED=0
環境変数を設定するソリューションは推奨されません。
5.7.2. ユーザーの場合 リンクのコピーリンクがクリップボードにコピーされました!
5.7.2.1. Keycloak プラグインを使用した Developer Hub へのユーザーとグループのインポート リンクのコピーリンクがクリップボードにコピーされました!
プラグインが正常に設定されると、プラグインは起動するたびにユーザーとグループをインポートします。
スケジュールを設定すると、ユーザーとグループもインポートされます。
最初のインポートが完了したら、User を選択して、カタログページからユーザーの一覧を表示できます。
ページにユーザーの一覧が表示されます。
ユーザーを選択すると、Keycloak からインポートされた情報が表示されます。
グループを選択し、リストを表示して、Keycloak からインポートされたグループの情報を選択または表示することもできます。