Red Hat Developer Hub でのプラグインの設定
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub は、プラグインによって拡張されたエンタープライズレベルの統合開発者プラットフォームであり、開発者の抵抗やフラストレーションを軽減しながら生産性を向上させます。
Red Hat Developer Hub のサポート リンクのコピーリンクがクリップボードにコピーされました!
このマニュアルに記載されている手順で問題が発生した場合は、Red Hat カスタマーポータル を参照してください。Red Hat カスタマーポータルは次の目的に使用できます。
- 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 のプラグインは、全体的なユーザーエクスペリエンスの一貫性を維持することで生産性を最大化し、開発ワークフローを合理化します。
第2章 動的プラグインのインストール リンクのコピーリンクがクリップボードにコピーされました!
動的プラグインのサポートは、バックエンドプラグインマネージャーパッケージに基づいています。これは、設定されたルートディレクトリー (app config 内の dynamicPlugins.rootDirectory) をスキャンして動的プラグインパッケージを探し、動的にロードするサービスです。
Red Hat Developer Hub に事前にインストールされている動的プラグインを使用することも、パブリック NPM レジストリーから外部動的プラグインをインストールすることもできます。
2.1. インストール済みプラグインの表示 リンクのコピーリンクがクリップボードにコピーされました!
Dynamic Plugins Info フロントエンドプラグインを使用すると、Red Hat Developer Hub アプリケーションに現在インストールされているプラグインを表示できます。このプラグインはデフォルトで有効です。
手順
- Developer Hub アプリケーションを開き、Administration をクリックします。
- Plugins タブに移動し、インストールされているプラグインのリストと関連情報を表示します。
2.2. 事前にインストール済みの動的プラグイン リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub には、厳選された動的プラグインが事前にインストールされています。カスタム設定を必要とする動的プラグインは、デフォルトでは無効になっています。
このリリースの Developer Hub に事前にインストールされている動的プラグインの完全なリストは、動的プラグインのサポートマトリクス を参照してください。
アプリケーションが起動すると、デフォルトで無効になっているプラグインごとに、Developer Hub Pod のログ内の install-dynamic-plugins init container に次のようなメッセージが表示されます。
======= Skipping disabled dynamic plugin ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic
このプラグインを有効にするには、同じ名前のパッケージを Helm チャートに追加し、disabled フィールドの値を ‘false’ に変更します。以下に例を示します。
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 エントリーを使用すると、デフォルト設定をオーバーライドできます。
2.2.1. 事前にインストールされた動的プラグインの説明と詳細 リンクのコピーリンクがクリップボードにコピーされました!
テクノロジープレビュー機能は、実稼働環境での Red Hat サービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポートの詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
バンドルされたコミュニティーの動的プラグインに対する Red Hat のサポートの詳細は、Red Hat Developer サポートポリシー のページを参照してください。
Red Hat Developer Hub では 60 個のプラグインが利用可能です。詳細は、以下の表を参照してください。
| 名前 | プラグイン | ロール | バージョン | サポートレベル | パス | 必須の変数 | デフォルト |
|---|---|---|---|---|---|---|---|
| 3scale | @janus-idp/backstage-plugin-3scale-backend | バックエンド | 1.5.15 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-3scale-backend-dynamic |
| Disabled |
| Ansible Automation Platform (AAP) | @janus-idp/backstage-plugin-aap-backend | バックエンド | 1.6.15 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic |
| Disabled |
| ACR | @janus-idp/backstage-plugin-acr | フロントエンド | 1.4.13 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-acr | Disabled | |
| Analytics Provider Segment | @janus-idp/backstage-plugin-analytics-provider-segment | フロントエンド | 1.4.9 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-analytics-provider-segment |
| Enabled |
| Argo CD | @janus-idp/backstage-plugin-argocd | フロントエンド | 1.2.3 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-argocd | Disabled | |
| Argo CD | @roadiehq/backstage-plugin-argo-cd | フロントエンド | 2.6.5 | 実稼働 | ./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd | Disabled | |
| Argo CD | @roadiehq/backstage-plugin-argo-cd-backend | バックエンド | 3.0.2 | 実稼働 | ./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd-backend-dynamic |
| Disabled |
| Argo CD | @roadiehq/scaffolder-backend-argocd | バックエンド | 1.1.27 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-scaffolder-backend-argocd-dynamic |
| Disabled |
| Azure | @backstage/plugin-scaffolder-backend-module-azure | バックエンド | 0.1.9 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-azure-dynamic | Enabled | |
| Azure Devops | @backstage/plugin-azure-devops | フロントエンド | 0.4.4 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-azure-devops | Disabled | |
| Azure Devops | @backstage/plugin-azure-devops-backend | バックエンド | 0.6.5 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-azure-devops-backend-dynamic |
| Disabled |
| Azure Repositories | @parfuemerie-douglas/scaffolder-backend-module-azure-repositories | バックエンド | 0.2.7 | コミュニティーサポート | ./dynamic-plugins/dist/parfuemerie-douglas-scaffolder-backend-module-azure-repositories | Disabled | |
| Bitbucket Cloud | @backstage/plugin-catalog-backend-module-bitbucket-cloud | バックエンド | 0.2.4 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-cloud-dynamic |
| Disabled |
| Bitbucket Cloud | @backstage/plugin-scaffolder-backend-module-bitbucket-cloud | バックエンド | 0.1.7 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-cloud-dynamic | Enabled | |
| Bitbucket Server | @backstage/plugin-catalog-backend-module-bitbucket-server | バックエンド | 0.1.31 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-server-dynamic |
| Disabled |
| Bitbucket Server | @backstage/plugin-scaffolder-backend-module-bitbucket-server | バックエンド | 0.1.7 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-server-dynamic | Enabled | |
| Datadog | @roadiehq/backstage-plugin-datadog | フロントエンド | 2.2.8 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-backstage-plugin-datadog | Disabled | |
| Dynatrace | @backstage/plugin-dynatrace | フロントエンド | 10.0.4 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-dynatrace | Disabled | |
| Gerrit | @backstage/plugin-scaffolder-backend-module-gerrit | バックエンド | 0.1.9 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gerrit-dynamic | Enabled | |
| GitHub | @backstage/plugin-catalog-backend-module-github | バックエンド | 0.6.0 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic |
| Disabled |
| GitHub | @backstage/plugin-scaffolder-backend-module-github | バックエンド | 0.2.7 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-github-dynamic | Enabled | |
| GitHub Actions | @backstage/plugin-github-actions | フロントエンド | 0.6.16 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-github-actions | Disabled | |
| GitHub Insights | @roadiehq/backstage-plugin-github-insights | フロントエンド | 2.3.29 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-backstage-plugin-github-insights | Disabled | |
| GitHub Issues | @backstage/plugin-github-issues | フロントエンド | 0.4.2 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-github-issues | Disabled | |
| GitHub Org | @backstage/plugin-catalog-backend-module-github-org | バックエンド | 0.1.12 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic |
| Disabled |
| GitHub Pull Requests | @roadiehq/backstage-plugin-github-pull-requests | フロントエンド | 2.5.26 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-backstage-plugin-github-pull-requests | Disabled | |
| GitLab | @immobiliarelabs/backstage-plugin-gitlab | フロントエンド | 6.5.0 | コミュニティーサポート | ./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab | Disabled | |
| GitLab | @backstage/plugin-catalog-backend-module-gitlab | バックエンド | 0.3.15 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-gitlab-dynamic | Disabled | |
| GitLab | @immobiliarelabs/backstage-plugin-gitlab-backend | バックエンド | 6.5.0 | コミュニティーサポート | ./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab-backend-dynamic |
| Disabled |
| GitLab | @backstage/plugin-scaffolder-backend-module-gitlab | バックエンド | 0.3.3 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gitlab-dynamic | Enabled | |
| GitLab Org | @backstage/plugin-catalog-backend-module-gitlab-org | バックエンド | 0.3.10 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-gitlab-org-dynamic | Disabled | |
| Http Request | @roadiehq/scaffolder-backend-module-http-request | バックエンド | 4.3.2 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-http-request-dynamic | Enabled | |
| Jenkins | @backstage/plugin-jenkins | フロントエンド | 0.9.10 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-jenkins | Disabled | |
| Jenkins | @backstage/plugin-jenkins-backend | バックエンド | 0.4.5 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-jenkins-backend-dynamic |
| Disabled |
| JFrog Artifactory | @janus-idp/backstage-plugin-jfrog-artifactory | フロントエンド | 1.4.11 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-jfrog-artifactory | Disabled | |
| Jira | @roadiehq/backstage-plugin-jira | フロントエンド | 2.5.8 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-backstage-plugin-jira | Disabled | |
| Keycloak | @janus-idp/backstage-plugin-keycloak-backend | バックエンド | 1.9.12 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-keycloak-backend-dynamic |
| Disabled |
| Kubernetes | @backstage/plugin-kubernetes | フロントエンド | 0.11.9 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-kubernetes | Disabled | |
| Kubernetes | @backstage/plugin-kubernetes-backend | バックエンド | 0.17.0 | 実稼働 | ./dynamic-plugins/dist/backstage-plugin-kubernetes-backend-dynamic |
| Disabled |
| Lighthouse | @backstage/plugin-lighthouse | フロントエンド | 0.4.20 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-lighthouse | Disabled | |
| Nexus Repository Manager | @janus-idp/backstage-plugin-nexus-repository-manager | フロントエンド | 1.6.10 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-nexus-repository-manager | Disabled | |
| OCM | @janus-idp/backstage-plugin-ocm | フロントエンド | 4.1.8 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm | Disabled | |
| OCM | @janus-idp/backstage-plugin-ocm-backend | バックエンド | 4.0.9 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm-backend-dynamic |
| Disabled |
| PagerDuty | @pagerduty/backstage-plugin | フロントエンド | 0.12.0 | コミュニティーサポート | ./dynamic-plugins/dist/pagerduty-backstage-plugin | Disabled | |
| Quay | @janus-idp/backstage-plugin-quay | フロントエンド | 1.7.8 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-quay | Disabled | |
| Quay | @janus-idp/backstage-scaffolder-backend-module-quay | バックエンド | 1.4.12 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-quay-dynamic | Enabled | |
| RBAC | @janus-idp/backstage-plugin-rbac | フロントエンド | 1.24.1 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-rbac | Disabled | |
| Regex | @janus-idp/backstage-scaffolder-backend-module-regex | バックエンド | 1.4.12 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-regex-dynamic | Enabled | |
| Scaffolder Relation Processor | @janus-idp/backstage-plugin-catalog-backend-module-scaffolder-relation-processor | バックエンド | 1.0.3 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-plugin-catalog-backend-module-scaffolder-relation-processor-dynamic | Enabled | |
| Security Insights | @roadiehq/backstage-plugin-security-insights | フロントエンド | 2.3.17 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-backstage-plugin-security-insights | Disabled | |
| ServiceNow | @janus-idp/backstage-scaffolder-backend-module-servicenow | バックエンド | 1.4.14 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-servicenow-dynamic |
| Disabled |
| SonarQube | @backstage/plugin-sonarqube | フロントエンド | 0.7.17 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-sonarqube | Disabled | |
| SonarQube | @backstage/plugin-sonarqube-backend | バックエンド | 0.2.20 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-sonarqube-backend-dynamic |
| Disabled |
| SonarQube | @janus-idp/backstage-scaffolder-backend-module-sonarqube | バックエンド | 1.4.12 | Red Hat テクノロジープレビュー | ./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-sonarqube-dynamic | Disabled | |
| TechDocs | @backstage/plugin-techdocs | フロントエンド | 1.10.4 | 実稼働 | ./dynamic-plugins/dist/backstage-plugin-techdocs | Enabled | |
| TechDocs | @backstage/plugin-techdocs-backend | バックエンド | 1.10.4 | 実稼働 | ./dynamic-plugins/dist/backstage-plugin-techdocs-backend-dynamic | Enabled | |
| Tech Radar | @backstage/plugin-tech-radar | フロントエンド | 0.7.4 | コミュニティーサポート | ./dynamic-plugins/dist/backstage-plugin-tech-radar | Disabled | |
| Tekton | @janus-idp/backstage-plugin-tekton | フロントエンド | 3.7.7 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-tekton | Disabled | |
| Topology | @janus-idp/backstage-plugin-topology | フロントエンド | 1.21.10 | 実稼働 | ./dynamic-plugins/dist/janus-idp-backstage-plugin-topology | Disabled | |
| Utils | @roadiehq/scaffolder-backend-module-utils | バックエンド | 1.15.3 | コミュニティーサポート | ./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-utils-dynamic | Enabled |
- Keycloak を設定するには、Keycloak のインストールと設定 を参照してください。
- Techdocs を設定するには、リファレンスドキュメント を参照してください。基本的なセットアップを試した後、実稼働環境のユースケース用に TechDocs をデプロイするときに、CI/CD を使用してドキュメントと外部クラウドストレージを生成します。こちらの 推奨されるデプロイ方法 も参照してください。
2.3. Red Hat Developer Hub Operator を使用した動的プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
動的プラグインの設定は、Backstage カスタムリソース (CR) が参照できる ConfigMap オブジェクトに保存できます。
pluginConfig フィールドが環境変数を参照する場合は、secrets-rhdh シークレットで変数を定義する必要があります。
手順
- OpenShift Container Platform Web コンソールから、ConfigMaps タブを選択します。
- Create ConfigMap をクリックします。
Create ConfigMap ページで、Configure via の YAML view オプションを選択し、必要に応じてファイルを編集します。
GitHub 動的プラグインを使用した
ConfigMapオブジェクトの例kind: ConfigMap apiVersion: v1 metadata: name: dynamic-plugins-rhdh data: dynamic-plugins.yaml: | includes: - dynamic-plugins.default.yaml plugins: - package: './dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic' disabled: false pluginConfig: catalog: providers: github: organization: "${GITHUB_ORG}" schedule: frequency: { minutes: 1 } timeout: { minutes: 1 } initialDelay: { seconds: 100 }- Create をクリックします。
- Topology ビューに移動します。
使用する Red Hat Developer Hub インスタンスのオーバーフローメニューをクリックし、Edit Backstage を選択して、Red Hat Developer Hub インスタンスの YAML ビューを読み込みます。
dynamicPluginsConfigMapNameフィールドをBackstageCR に追加します。以下に例を示します。apiVersion: rhdh.redhat.com/v1alpha1 kind: Backstage metadata: name: my-rhdh spec: application: # ... dynamicPluginsConfigMapName: dynamic-plugins-rhdh # ...- Save をクリックします。
- Topology ビューに戻り、Red Hat Developer Hub Pod が起動するまで待ちます。
- Open URL アイコンをクリックして、新しい設定変更を適用した Red Hat Developer Hub プラットフォームの使用を開始します。
検証
Red Hat Developer Hub のルート URL に
/api/dynamic-plugins-info/loaded-pluginsを追加し、プラグインのリストをチェックして、動的プラグイン設定がロードされていることを確認します。プラグインの例リスト
[ { "name": "backstage-plugin-catalog-backend-module-github-dynamic", "version": "0.5.2", "platform": "node", "role": "backend-plugin-module" }, { "name": "backstage-plugin-techdocs", "version": "1.10.0", "role": "frontend-plugin", "platform": "web" }, { "name": "backstage-plugin-techdocs-backend-dynamic", "version": "1.9.5", "platform": "node", "role": "backend-plugin" }, ]
2.4. Helm チャートを使用した動的プラグインのインストール リンクのコピーリンクがクリップボードにコピーされました!
柔軟なインストール方法である Helm チャートを使用して、Developer Hub インスタンスをデプロイできます。Helm chart を使用すると、コードを再コンパイルしたりコンテナーを再ビルドしたりすることなく、動的プラグインを Developer Hub インスタンスにサイドロードできます。
Helm を使用して Developer Hub に動的プラグインをインストールするには、Helm チャートに次の global.dynamic パラメーターを追加します。
plugins: インストールを目的とした動的プラグインのリスト。デフォルトでは、リストは空です。プラグインのリストには次のフィールドを入力できます。-
package: インストールする動的プラグインパッケージのパッケージ仕様。パッケージは、ローカルまたは外部の動的プラグインのインストールに使用できます。ローカルインストールの場合は、動的プラグインを含むローカルフォルダーへのパスを使用します。外部インストールの場合は、パブリック NPM リポジトリーのパッケージ仕様を使用します。 -
integrity(外部パッケージの場合に必要): パッケージ固有の<alg>-<digest>形式の整合性チェックサム。サポートされるアルゴリズムは、sha256、sha384、sha512です。 -
pluginConfig: オプションのプラグイン固有のapp-configYAML フラグメント。詳細は、プラグインの設定を参照してください。 -
disabled:trueに設定すると、動的プラグインが無効になります。デフォルト:false。
-
-
includes: 同じ構文を使用する YAML ファイルのリスト。
includes ファイル内の plugins リストは、main Helm values の plugins リストとマージされます。プラグインパッケージが両方の plugins リストに記載されている場合、main Helm values の plugins フィールドが includes ファイルの plugins フィールドをオーバーライドします。デフォルト設定には、dynamic-plugins.default.yaml ファイルが含まれています。このファイルには、デフォルトで有効か無効かに関係なく、Developer Hub に事前にインストールされているすべての動的プラグインが含まれます。
2.4.1. 整合性チェックサムの取得 リンクのコピーリンクがクリップボードにコピーされました!
整合性チェックサムを取得するには、次のコマンドを入力します。
npm view <package name>@<version> dist.integrity
2.4.2. 動的プラグインインストール用の Helm chart 設定の例 リンクのコピーリンクがクリップボードにコピーされました!
次の例は、特定の種類の動的プラグインインストール用に Helm chart を設定する方法を示しています。
外部プラグインが特定のアプリケーション設定を必要とする場合に、ローカルプラグインと外部プラグインを設定する
global:
dynamic:
plugins:
- package: <alocal package-spec used by npm pack>
- package: <external package-spec used by npm pack>
integrity: sha512-<some hash>
pluginConfig: ...
含まれるファイルからプラグインを無効にする
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: <some imported plugins listed in dynamic-plugins.default.yaml>
disabled: true
含まれるファイルからプラグインを有効にする
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: <some imported plugins listed in dynamic-plugins.custom.yaml>
disabled: false
含まれるファイルで無効になっているプラグインを有効にする
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: <some imported plugins listed in dynamic-plugins.custom.yaml>
disabled: false
2.4.3. Helm chart を使用した外部動的プラグインのインストール リンクのコピーリンクがクリップボードにコピーされました!
NPM レジストリーには、デモンストレーションの目的で使用できる外部動的プラグインが含まれています。たとえば、次のコミュニティープラグインは、NPMJS リポジトリーの janus-idp 組織で使用できます。
- Notifications (フロントエンドおよびバックエンド)
- Kubernetes actions (scaffolder actions)
Notifications プラグインおよび Kubernetes actions プラグインをインストールするには、次の例に示すように、global.dynamic.plugins リストの Helm chart values に当該プラグインを追加します。
global:
dynamic:
plugins:
- package: '@janus-idp/plugin-notifications-backend-dynamic@1.3.6'
# Integrity can be found at https://registry.npmjs.org/@janus-idp/plugin-notifications-backend-dynamic
integrity: 'sha512-Qd8pniy1yRx+x7LnwjzQ6k9zP+C1yex24MaCcx7dGDPT/XbTokwoSZr4baSSn8jUA6P45NUUevu1d629mG4JGQ=='
- package: '@janus-idp/plugin-notifications@1.1.12
'
# https://registry.npmjs.org/@janus-idp/plugin-notifications
integrity: 'sha512-GCdEuHRQek3ay428C8C4wWgxjNpNwCXgIdFbUUFGCLLkBFSaOEw+XaBvWaBGtQ5BLgE3jQEUxa+422uzSYC5oQ=='
pluginConfig:
dynamicPlugins:
frontend:
janus-idp.backstage-plugin-notifications:
appIcons:
- name: notificationsIcon
module: NotificationsPlugin
importName: NotificationsActiveIcon
dynamicRoutes:
- path: /notifications
importName: NotificationsPage
module: NotificationsPlugin
menuItem:
icon: notificationsIcon
text: Notifications
config:
pollingIntervalMs: 5000
- package: '@janus-idp/backstage-scaffolder-backend-module-kubernetes-dynamic@1.3.5'
# https://registry.npmjs.org/@janus-idp/backstage-scaffolder-backend-module-kubernetes-dynamic
integrity: 'sha512-19ie+FM3QHxWYPyYzE0uNdI5K8M4vGZ0SPeeTw85XPROY1DrIY7rMm2G0XT85L0ZmntHVwc9qW+SbHolPg/qRA=='
proxy:
endpoints:
/explore-backend-completed:
target: 'http://localhost:7017'
- package: '@dfatwork-pkgs/search-backend-module-explore-wrapped-dynamic@0.1.3-next.1'
# https://registry.npmjs.org/@dfatwork-pkgs/search-backend-module-explore-wrapped-dynamic
integrity: 'sha512-mv6LS8UOve+eumoMCVypGcd7b/L36lH2z11tGKVrt+m65VzQI4FgAJr9kNCrjUZPMyh36KVGIjYqsu9+kgzH5A=='
- package: '@dfatwork-pkgs/plugin-catalog-backend-module-test-dynamic@0.0.0'
# https://registry.npmjs.org/@dfatwork-pkgs/plugin-catalog-backend-module-test-dynamic
integrity: 'sha512-YsrZMThxJk7cYJU9FtAcsTCx9lCChpytK254TfGb3iMAYQyVcZnr5AA/AU+hezFnXLsr6gj8PP7z/mCZieuuDA=='
2.5. 動的プラグインパッケージのカスタム NPM レジストリーの使用 リンクのコピーリンクがクリップボードにコピーされました!
カスタム NPM レジストリーをセットアップすることで、エアギャップ環境に外部プラグインをインストールできます。
Helm chart を使用して、動的プラグインパッケージの NPM レジストリー URL と認証情報を設定できます。npm pack を使用して取得した動的プラグインパッケージの場合は、.npmrc ファイルを使用できます。
Helm chart を使用して、次の内容で dynamic-plugins-npmrc という名前のシークレットを作成し、.npmrc ファイルを NPM レジストリーに追加します。
apiVersion: v1
kind: Secret
metadata:
name: dynamic-plugins-npmrc
type: Opaque
stringData:
.npmrc: |
registry=<registry-url>
//<registry-url>:_authToken=<auth-token>
...
2.6. 動的プラグインの基本設定 リンクのコピーリンクがクリップボードにコピーされました!
一部の動的プラグインでは、環境変数を設定する必要があります。必須の環境変数が設定されておらず、プラグインが有効になっている場合、アプリケーションの起動に失敗する可能性があります。
各プラグインで必須の環境変数は、動的プラグインのサポートマトリクス にリストされています。
ZIB 爆弾の検出: 大きなファイルを含む動的プラグインをインストールするときに、インストールスクリプトがパッケージアーカイブを ZIB 爆弾と判断すると、インストールが失敗します。
パッケージアーカイブ内のファイルの最大許容サイズを増やすには、デプロイメント install-dynamic-plugins initContainer の MAX_ENTRY_SIZE 環境値を、デフォルトサイズの 20000000 バイトより大きくします。
2.7. Red Hat Developer Hub 用の Ansible プラグインのインストールと使用 リンクのコピーリンクがクリップボードにコピーされました!
Ansible plug-ins for Red Hat Developer Hub は、厳選されたラーニングパス、ボタン操作によるコンテンツ作成、統合開発ツール、その他の事前設定済みリソースを備えた Ansible 固有のポータルエクスペリエンスを提供します。
Ansible プラグインはテクノロジープレビュー機能です。
テクノロジープレビュー機能は、実稼働環境での Red Hat サービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポートの詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
バンドルされたコミュニティーの動的プラグインに対する Red Hat のサポートの詳細は、Red Hat Developer サポートポリシー のページを参照してください。
2.7.1. 管理者の場合 リンクのコピーリンクがクリップボードにコピーされました!
Ansible プラグインをインストールして設定するには、Ansible plug-ins for Red Hat Developer Hub のインストール を参照してください。
2.7.2. ユーザーの場合 リンクのコピーリンクがクリップボードにコピーされました!
Ansible プラグインを使用するには、Ansible plug-ins for Red Hat Developer Hub の使用 を参照してください。
2.8. Keycloak のインストールと設定 リンクのコピーリンクがクリップボードにコピーされました!
Keycloak を Developer Hub に統合する Keycloak バックエンドプラグインには、次の機能があります。
- レルム内の Keycloak ユーザーの同期
- レルム内の Keycloak グループとそのユーザーの同期
2.8.1. 管理者の場合 リンクのコピーリンクがクリップボードにコピーされました!
2.8.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
2.8.1.2. Basic configuration リンクのコピーリンクがクリップボードにコピーされました!
Keycloak プラグインを有効にするには、次の環境変数を設定する必要があります。
-
KEYCLOAK_BASE_URL -
KEYCLOAK_LOGIN_REALM -
KEYCLOAK_REALM -
KEYCLOAK_CLIENT_ID -
KEYCLOAK_CLIENT_SECRET
2.8.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
2.8.1.4. 制限 リンクのコピーリンクがクリップボードにコピーされました!
自己署名または企業証明書に問題がある場合は、Developer Hub を開始する前に以下の環境変数を設定できます。
NODE_TLS_REJECT_UNAUTHORIZED=0
環境変数を設定するソリューションは推奨されません。
2.8.2. ユーザーの場合 リンクのコピーリンクがクリップボードにコピーされました!
2.8.2.1. Keycloak プラグインを使用した Developer Hub へのユーザーとグループのインポート リンクのコピーリンクがクリップボードにコピーされました!
プラグインが正常に設定されると、プラグインは起動するたびにユーザーとグループをインポートします。
スケジュールを設定すると、ユーザーとグループもインポートされます。
最初のインポートが完了したら、User を選択して、カタログページからユーザーの一覧を表示できます。
ページにユーザーの一覧が表示されます。
ユーザーを選択すると、Keycloak からインポートされた情報が表示されます。
グループを選択し、リストを表示して、Keycloak からインポートされたグループの情報を選択または表示することもできます。
2.9. Nexus Repository Manager のインストールと設定 リンクのコピーリンクがクリップボードにコピーされました!
Nexus Repository Manager プラグインは、Developer Hub アプリケーションのビルドアーティファクトに関する情報を表示します。ビルドアーティファクトは Nexus Repository Manager で入手できます。
Nexus Repository Manager プラグインは、テクノロジープレビュー機能のみです。
テクノロジープレビュー機能は、実稼働環境での Red Hat サービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポートの詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
バンドルされたコミュニティーの動的プラグインに対する Red Hat のサポートの詳細は、Red Hat Developer サポートポリシー のページを参照してください。
2.9.1. 管理者の場合 リンクのコピーリンクがクリップボードにコピーされました!
2.9.1.1. Nexus Repository Manager プラグインのインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
インストール
Nexus Repository Manager プラグインは、基本的な設定プロパティーとともに Developer Hub にプリロードされています。これを有効にするには、次のように、disabled プロパティーを false に設定します。
global:
dynamic:
includes:
- dynamic-plugins.default.yaml
plugins:
- package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-nexus-repository-manager
disabled: false
設定
次のように、
app-config.yamlファイルでプロキシーを目的の Nexus Repository Manager サーバーに設定します。proxy: '/nexus-repository-manager': target: 'https://<NEXUS_REPOSITORY_MANAGER_URL>' headers: X-Requested-With: 'XMLHttpRequest' # Uncomment the following line to access a private Nexus Repository Manager using a token # Authorization: 'Bearer <YOUR TOKEN>' changeOrigin: true # Change to "false" in case of using self hosted Nexus Repository Manager instance with a self-signed certificate secure: trueオプション: Nexus Repository Manager プロキシーのベース URL を次のように変更します。
nexusRepositoryManager: # default path is `/nexus-repository-manager` proxyPath: /custom-pathオプション: 次の実験的アノテーションを有効にします。
nexusRepositoryManager: experimentalAnnotations: true以下のアノテーションを使用してエンティティーにアノテーションを付けます。
metadata: annotations: # insert the chosen annotations here # example nexus-repository-manager/docker.image-name: `<ORGANIZATION>/<REPOSITORY>`,
2.9.2. ユーザーの場合 リンクのコピーリンクがクリップボードにコピーされました!
2.9.2.1. Developer Hub での Nexus Repository Manager プラグインの使用 リンクのコピーリンクがクリップボードにコピーされました!
Nexus Repository Manager は、ビルドアーティファクトに関する情報を表示できるフロントエンドプラグインです。
前提条件
- Developer Hub アプリケーションがインストールされ、実行中である。
- Nexus Repository Manager プラグインがインストールされている。インストールプロセスは、「Nexus Repository Manager プラグインのインストールおよび設定」 を参照してください。
手順
- Developer Hub アプリケーションを開き、Catalog ページからコンポーネントを選択します。
BUILD ARTIFACTS タブに移動します。
BUILD ARTIFACTS タブには、ビルドアーティファクトのリストと、VERSION、REPOSITORY、REPOSITORY TYPE、MANIFEST、MODIFIED、SIZE などの関連情報が含まれます。
2.10. Tekton のインストールと設定 リンクのコピーリンクがクリップボードにコピーされました!
Tekton プラグインを使用すると、Kubernetes または OpenShift クラスターでの CI/CD パイプライン実行の結果を視覚化できます。このプラグインを使用すると、ユーザーはアプリケーションのパイプラインに含まれるすべての関連タスクの概略ステータスを視覚的に確認できます。
2.10.1. 管理者の場合 リンクのコピーリンクがクリップボードにコピーされました!
2.10.1.1. インストール リンクのコピーリンクがクリップボードにコピーされました!
前提条件
-
@backstage/plugin-kubernetesおよび@backstage/plugin-kubernetes-backend動的プラグインがインストールおよび設定されている。 -
Kubernetes プラグインが、
ServiceAccountを使用してクラスターに接続するように設定されている。 ServiceAccountがクラスターにアクセスするように、ClusterRoleがカスタムリソース (PipelineRuns および TaskRuns) に付与されている。注記RHDH Kubernetes プラグインが設定されている場合、
ClusterRoleはすでに付与されています。-
Pod ログを表示するために、
pods/logの権限を付与している。 以下のコードを使用して、カスタムリソースおよび Pod ログに
ClusterRoleを付与することができます。kubernetes: ... customResources: - group: 'tekton.dev' apiVersion: 'v1' plural: 'pipelineruns' - group: 'tekton.dev' apiVersion: 'v1' ... apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: backstage-read-only rules: - apiGroups: - "" resources: - pods/log verbs: - get - list - watch ... - apiGroups: - tekton.dev resources: - pipelineruns - taskruns verbs: - get - list読み取り専用の
ClusterRole用に準備されたマニフェストを使用できます。これにより、Kubernetes プラグインと Tekton プラグインの両方にアクセスできるようになります。以下のアノテーションをエンティティーの
catalog-info.yamlファイルに追加し、エンティティーに Kubernetes リソースが含まれているかどうかを特定します。annotations: ... backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>また、
backstage.io/kubernetes-namespaceアノテーションを追加して、定義された namespace を使用して Kubernetes リソースを識別することもできます。annotations: ... backstage.io/kubernetes-namespace: <RESOURCE_NS>以下のアノテーションをエンティティーの
catalog-info.yamlファイルに追加して、RHDH で Tekton 関連の機能を有効にします。アノテーションの値は、RHDH エンティティーの名前を識別します。annotations: ... janus-idp.io/tekton : <BACKSTAGE_ENTITY_NAME>RHDH が Kubernetes リソースを検索するために使用する、カスタムラベルセレクターを追加します。ラベルセレクターは ID アノテーションよりも優先されます。
annotations: ... backstage.io/kubernetes-label-selector: 'app=my-app,component=front-end'Kubernetes プラグインが要求されたエンティティーから Kubernetes リソースを取得できるように、以下のラベルをリソースに追加します。
labels: ... backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>注記ラベルセレクターを使用する場合は、上記のラベルがリソースに存在する必要があります。
手順
Tekton プラグインは、基本的な設定プロパティーとともに RHDH にプリロードされています。これを有効にするには、次のように、disabled プロパティーを false に設定します。
global: dynamic: includes: - dynamic-plugins.default.yaml plugins: - package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-tekton disabled: false
2.10.2. ユーザーの場合 リンクのコピーリンクがクリップボードにコピーされました!
2.10.2.1. RHDH での Tekton プラグインの使用 リンクのコピーリンクがクリップボードにコピーされました!
Tekton フロントエンドプラグインを使用して PipelineRun リソースを表示できます。
前提条件
- Red Hat Developer Hub (RHDH) がインストールされている。
- Tekton プラグインがインストールされている。インストールプロセスは、Tekton プラグインのインストールと設定 を参照してください。
手順
- RHDH アプリケーションを開き、Catalog ページからコンポーネントを選択します。
CI タブに移動します。
CI タブには、Kubernetes クラスターに関連付けられた PipelineRun リソースのリストが表示されます。リストには、NAME、VULNERABILITIES、STATUS、TASK STATUS、STARTED、DURATION などのパイプライン実行の詳細が含まれます。
リスト内の PipelineRun 名の横にある行展開ボタンをクリックして、PipelineRun の視覚化を表示します。パイプライン実行リソースには、完了すべきタスクが含まれます。タスクカードにマウスポインターをかざすと、その特定のタスクを完了する手順を表示できます。
2.11. Argo CD プラグインの有効化と設定 リンクのコピーリンクがクリップボードにコピーされました!
Argo CD プラグインを使用すると、OpenShift GitOps の継続的デリバリー (CD) のワークフローを視覚化できます。このプラグインは、アプリケーションのステータス、デプロイメントの詳細、コミットメッセージ、コミットの作成者、環境にプロモートされたコンテナーイメージ、およびデプロイメントの履歴の概要を視覚的に提供します。
2.11.1. 管理者の場合 リンクのコピーリンクがクリップボードにコピーされました!
2.11.1.1. Argo CD プラグインの有効化 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
次の例に示すように、Argo CD インスタンス情報を
app-config.yaml設定マップに追加します。argocd: appLocatorMethods: - type: 'config' instances: - name: argoInstance1 url: https://argoInstance1.com username: ${ARGOCD_USERNAME} password: ${ARGOCD_PASSWORD} - name: argoInstance2 url: https://argoInstance2.com username: ${ARGOCD_USERNAME} password: ${ARGOCD_PASSWORD}Argo CD アプリケーションを特定するために、エンティティーの
catalog-info.yamlファイルに次のアノテーションを追加します。annotations: ... # The label that Argo CD uses to fetch all the applications. The format to be used is label.key=label.value. For example, rht-gitops.com/janus-argocd=quarkus-app. argocd/app-selector: '${ARGOCD_LABEL_SELECTOR}'(オプション) Argo CD インスタンスを切り替えるには、次の例に示すように、エンティティーの
catalog-info.yamlファイルに次のアノテーションを追加します。annotations: ... # The Argo CD instance name used in `app-config.yaml`. argocd/instance-name: '${ARGOCD_INSTANCE}'注記このアノテーションを設定しなかった場合、Argo CD プラグインは、
app-config.yamlで設定された最初の Argo CD インスタンスをデフォルトで使用します。
手順
dynamic-plugins ConfigMap に以下を追加して、Argo CD プラグインを有効にします。
global: dynamic: includes: - dynamic-plugins.default.yaml plugins: - package: ./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd-backend-dynamic disabled: false - package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-argocd disabled: false
2.11.2. ユーザーの場合 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- Red Hat Developer Hub RHDH で Argo CD プラグインが有効にされている。
手順
- Catalog タブを選択し、使用するコンポーネントを選択します。
CD タブを選択して、Argo CD によって管理されるデプロイメントの詳細を表示します。
適切なカードを選択すると、デプロイメントの詳細 (コミットメッセージ、作成者名、デプロイメントの履歴など) が表示されます。
-
リンクアイコン (
) をクリックすると、Argo CD でデプロイメントの詳細が開きます。
-
リンクアイコン (
Overview タブを選択し、Deployment summary セクションに移動して、namespace 全体にわたるアプリケーションのデプロイメントの概要を確認します。また、適切な Argo CD アプリケーションを選択して Argo CD でデプロイメントの詳細を開くか、Revision 列からコミット ID を選択して GitLab または GitHub での変更を確認します。