Red Hat Developer Hub 管理ガイド


Red Hat Developer Hub 1.0

Red Hat Customer Content Services

概要

Red Hat Developer Hub は、開発者ポータルを構築するための開発者プラットフォームです。このドキュメントでは、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 にログインしている。
  • アプリケーションを作成するために、プロジェクト内で適切なロールと権限を設定している。

手順

  1. OpenShift にプロジェクトが存在しない場合は、作成します。

    OpenShift でのプロジェクトの作成の詳細は、Red Hat OpenShift ドキュメント を参照してください。

  2. Red Hat OpenShift Web コンソールで、Developer モードに切り替えます。
  3. +Add をクリックします。
  4. Developer Catalog パネルから、Helm Chart をクリックします。
  5. 検索バーで Developer Hub を検索し、Red Hat Developer Hub カードを選択します。
  6. Create をクリックします。
  7. OpenShift ルーターホスト (例: apps.<clusterName>.com) を Root SchemaglobalShorthand 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. にコピーし、必要に応じて他の値を調整します。
  8. あるいは、OpenShift ルーターホスト (例: apps.<clusterName>.com) を global.clusterRouterBase にコピーし、必要に応じて他の値 (global.clusterRouterBase: apps.example.com など) を調整します。

    上記の手順で、ホストに関する情報がコピーされます。この情報に Developer Hub のバックエンドがアクセスします。

    OCP ルートが自動的に生成されると、ルートのホスト値が推測され、同じホスト情報が Developer Hub に送信されます。また、値を使用してホストを手動で設定することで Developer Hub がカスタムドメイン上に存在する場合は、カスタムホストが優先されます。

  9. Create をクリックし、データベースと Red Hat Developer Hub が起動するまで待ちます。
  10. Open URL オプションをクリックして、Red Hat Developer Hub プラットフォームの使用を開始します。

    RHDH の Helm のインストール
注記

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 ポータルのアカウントがある。

手順

  1. oc を使用して OCP にログインします。

    oc login -u <user> -p <password> https://api.<HOSTNAME>:6443
  2. podman を使用して、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
  3. 次のコマンドを使用して、podmanregistry.redhat.io にログインします。

    podman login registry.redhat.io

    レジストリー認証の詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。

  4. Red Hat イメージレジストリー から、Developer Hub および PostgreSQL イメージをワークステーションにプルします。

    podman pull <DEVELOPERHUBIMAGE>
    podman pull registry.redhat.io/rhel9/postgresql-15:latest
  5. 両方のイメージを内部 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 証明書をシステムにインストールしていることを確認してください。

    オプションで、podman push コマンドに --tls-verify=false を追加できますが、この方法は推奨されません。

  6. 次のコマンドを使用して、両方のイメージが内部 OCP レジストリーに存在することを確認します。

    oc get imagestream -n <projectName>
  7. 次のコマンドを使用して、両方のイメージのローカルイメージルックアップを有効にします。

    oc set image-lookup postgresql-15
    oc set image-lookup  rhdh-hub-rhel9
  8. YAML view に移動し、次の値を使用して backstagepostgresqlimage セクションを更新します。

    Developer Hub イメージの値の例

    upstream:
      backstage:
        image:
          registry: ""
          repository: rhdh-hub-rhel9
          tag: latest

    PostgreSQL イメージの値の例

    upstream:
      postgresql:
        image:
          registry: ""
          repository: postgresql-15
          tag: latest

  9. 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 のインストール を参照してください。

手順

  1. ポリシーを保持するために、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

  2. Developer Hub Helm Chart で、Root Schema → Backstage chart schema → Backstage parameters → Backstage container additional volume mounts に移動します。
  3. Add Backstage container additional volume mounts を選択し、次の値を追加します。

    • mountPath: opt/app-root/src/rbac
    • Name: rbac-policy
  4. RBAC ポリシーを、Developer Hub Helm Chart の Backstage container additional volumes に追加します。

    • name: rbac-policy
    • configMap

      • defaultMode: 420
      • name: rbac-policy
  5. 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 権限
Expand
名前リソースタイプポリシー説明

catalog.entity.read

catalog-entity

read

ユーザーまたはロールがカタログから読み取ることを許可します。

catalog.entity.create

 

create

ユーザーまたはロールによるカタログエンティティーの作成 (既存のコンポーネントをカタログに登録することを含む) を許可します。

catalog.entity.refresh

catalog-entity

update

ユーザーまたはロールがカタログから単一または複数のエンティティーを更新することを許可します。

catalog.entity.delete

catalog-entity

delete

ユーザーまたはロールがカタログから単一または複数のエンティティーを削除することを許可します。

catalog.location.read

 

read

ユーザーまたはロールがカタログから単一または複数の場所を読み取ることを許可します。

catalog.location.create

 

create

ユーザーまたはロールがカタログ内に場所を作成することを許可します。

catalog.location.delete

 

delete

ユーザーまたはロールがカタログから場所を削除することを許可します。

Scaffolder 権限
Expand
名前リソースタイプポリシー説明

scaffolder.action.execute

scaffolder-action

 

テンプレートからのアクションの実行を許可します。

scaffolder.template.parameter.read

scaffolder-template

read

ユーザーまたはロールがテンプレートから単一または複数のパラメーターを読み取ることを許可します。

scaffolder.template.step.read

scaffolder-template

read

ユーザーまたはロールがテンプレートから単一または複数のステップを読み取ることを許可します。

RBAC 権限
Expand
名前リソースタイプポリシー説明

policy.entity.read

policy-entity

read

ユーザーまたはロールに権限ポリシーとロールの読み取りを許可します。

policy.entity.create

policy-entity

create

ユーザーまたはロールが単一または複数の権限ポリシーとロールを作成することを許可します。

policy.entity.update

policy-entity

update

ユーザーまたはロールが単一または複数の権限ポリシーとロールを更新することを許可します。

policy.entity.delete

policy-entity

delete

ユーザーまたはロールが単一または複数の権限ポリシーとロールを削除することを許可します。

Kubernetes 権限
Expand
名前リソースタイプポリシー説明

kubernetes.proxy

  

ユーザーまたはロールがプロキシーエンドポイントにアクセスすることを許可します。

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 の HomepageNetwork タブに移動し、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/policiesPOST 要求 URL と JSON 要求の body データの例:

{
    "entityReference": "role:default/test",
    "permission": "catalog-entity",
    "policy": "delete",
    "effect": "allow"
}

HTTP ステータスコード

RBAC REST API は、応答として返される次の HTTP ステータスコードをサポートしています。

  • 200 OK: 要求は成功しました。
  • 201 Created: 要求により、新しいリソースが正常に作成されました。
  • 204 No Content: 要求は成功しましたが、応答ペイロードで送信する追加コンテンツはありません。
  • 400 Bad Request: 要求に入力エラーがありました。
  • 401 Unauthorized: 要求されたリソースに対する有効な認証がありません。
  • 403 Forbidden: 要求の承認が拒否されました。
  • 404 Not Found: 要求されたリソースは見つかりません。
  • 409 Conflict: 要求が、現在の状態およびターゲットリソースと競合しています。

4.2.1. REST クライアントまたは curl ユーティリティーを使用して RBAC REST API で要求を送信する

RBAC REST API を使用すると、ユーザーインターフェイスを使用せずに、Developer Hub の権限ポリシーおよびロールと対話できます。RBAC REST API 要求は、任意の REST クライアントまたは curl ユーティリティーを使用して送信できます。

前提条件

手順

  1. 要求の送信先となる 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/json

      Authorization: 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

  2. 要求を実行し、応答を確認します。

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

作成される新しいロールの memberReferencesgroupnamespacename

要求の body

必須

要求 の body の例 (JSON)

{
  "memberReferences": ["group:default/test"],
  "name": "role:default/test_admin"
}

応答の例

201 Created

[PUT] /api/permission/roles/{kind}/{namespace}/{name}

Developer Hub のロールの memberReferenceskindnamespace、または name を更新します。

要求パラメーター

要求の body には、oldRole オブジェクトと newRole オブジェクトが含まれています。

Expand
名前説明タイプ要件

body

作成される新しいロールの memberReferencesgroupnamespacename

要求の 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>。サポートされるアルゴリズムは、sha256sha384sha512 です。
  • 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 initContainerMAX_ENTRY_SIZE 環境値を、デフォルトサイズの 20000000 バイトより大きくします。

5.5. Red Hat Developer Hub に含まれる動的プラグイン

重要

テクノロジープレビュー機能は、実稼働環境での Red Hat サービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、今後の製品機能への早期アクセスを提供することで、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにしています。

Red Hat のテクノロジープレビュー機能のサポートの詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

バンドルされたコミュニティーの動的プラグインに対する Red Hat のサポートについて、詳しくは Red Hat Developer サポートポリシー のページを参照してください。

プラグインは 47 個あります。

Expand
表5.1 動的プラグインのサポートマトリクス
名前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

3SCALE_BASE_URL

3SCALE_ACCESS_TOKEN

Disabled

AAP

バックエンド

@janus-idp/backstage-plugin-aap-backend

 

1.4.5

Red Hat テクノロジープレビュー

./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic

AAP_BASE_URL

AAP_AUTH_TOKEN

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

SEGMENT_WRITE_KEY

SEGMENT_MASK_IP

SEGMENT_TEST_MODE

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

ARGOCD_USERNAME

ARGOCD_PASSWORD

ARGOCD_INSTANCE1_URL

ARGOCD_AUTH_TOKEN

ARGOCD_INSTANCE2_URL

ARGOCD_AUTH_TOKEN2

Disabled

Argo CD

バックエンド

@roadiehq/scaffolder-backend-argocd

 

1.1.17

コミュニティーサポート

./dynamic-plugins/dist/roadiehq-scaffolder-backend-argocd-dynamic

ARGOCD_USERNAME

ARGOCD_PASSWORD

ARGOCD_INSTANCE1_URL

ARGOCD_AUTH_TOKEN

ARGOCD_INSTANCE2_URL

ARGOCD_AUTH_TOKEN2

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

AZURE_TOKEN

AZURE_ORG

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

GITHUB_ORG

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

GITHUB_ORG_URL

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

GITLAB_HOST

GITLAB_TOKEN

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

JENKINS_URL

JENKINS_USERNAME

JENKINS_TOKEN

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

バックエンド

@janus-idp/backstage-plugin-keycloak-backend

Keycloak バックエンドプラグインは、Keycloak を Backstage に統合します。

1.7.6

実稼働

./dynamic-plugins/dist/janus-idp-backstage-plugin-keycloak-backend-dynamic

KEYCLOAK_BASE_URL

KEYCLOAK_LOGIN_REALM

KEYCLOAK_REALM

KEYCLOAK_CLIENT_ID

KEYCLOAK_CLIENT_SECRET

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

K8S_CLUSTER_NAME

K8S_CLUSTER_URL

K8S_CLUSTER_TOKEN

有効

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 の MultiClusterHub および MultiCluster エンジンと統合します。

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

OCM_HUB_NAME

OCM_HUB_URL

moc_infra_token

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

SERVICENOW_BASE_URL

SERVICENOW_USERNAME

SERVICENOW_PASSWORD

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

SONARQUBE_URL

SONARQUBE_TOKEN

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

TECHDOCS_BUILDER_TYPE

TECHDOCS_GENERATOR_TYPE

TECHDOCS_PUBLISHER_TYPE

BUCKET_NAME

BUCKET_REGION_VAULT

BUCKET_URL

AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY

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: サービスの認証トークン

詳細設定

  1. 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 カタログページにリソースとして表示されます。

前提条件

手順

  1. Developer Hub アプリケーションを開き、Catalog ページに移動します。
  2. ページの左側にある Kind ドロップダウンから Resource を選択し、 the Type ドロップダウンから job template または workflow job template を選択します。

    aap バックエンドプラグイン backstage

    AAP から利用可能なすべてのテンプレートのリストがページに表示されます。

  3. リストからテンプレートを選択します。

    OVERVIEW タブには、次のようなさまざまなカードが含まれています。

    • About: テンプレートに関する詳細情報を提供します。
    • Relations: テンプレートと関連する側面を視覚的に表示します。
    • Links: AAP ダッシュボードへのリンクと、テンプレートの詳細ページへのリンクが含まれます。
    • subcomponents: 関連するサブコンポーネントの一覧を表示します。
    aap バックエンドプラグイン backstage 詳細

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> オブジェクトでプラグインを有効にするために設定できるパラメーターを説明しています。

Expand
名前説明デフォルト値必須

baseUrl

Keycloak サーバーの場所 (例: https://localhost:8443/auth)。Keycloak の新しいバージョンでは、/auth コンテキストパスが省略されることに注意してください。

""

はい

realm

同期するレルム

master

いいえ

loginRealm

認証に使用するレルム

master

いいえ

username

認証するユーザー名

""

パスワードベースの認証を使用している場合は Yes

password

認証するパスワード

""

パスワードベースの認証を使用している場合は Yes

clientId

認証するクライアント ID

""

クライアントクレデンシャルベースの認証を使用している場合は Yes

clientSecret

認証するクライアントシークレット

""

クライアントクレデンシャルベースの認証を使用している場合は Yes

userQuerySize

一度にクエリーするユーザーの数

100

いいえ

groupQuerySize

一度にクエリーするグループの数

100

いいえ

クライアントクレデンシャルを使用する場合は、アクセスタイプを 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 を選択して、カタログページからユーザーの一覧を表示できます。

catalog-list

ページにユーザーの一覧が表示されます。

user-list

ユーザーを選択すると、Keycloak からインポートされた情報が表示されます。

user-profile

グループを選択し、リストを表示して、Keycloak からインポートされたグループの情報を選択または表示することもできます。

group-profile

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る