Red Hat Developer Hub の TechDocs


Red Hat Developer Hub 1.5

TechDocs プラグインを使用すると、チームの技術ドキュメントを 1 カ所で閲覧および管理できます。アドオンを使って、TechDocs エクスペリエンスをさらに強化およびカスタマイズできます。

Red Hat Customer Content Services

概要

組織は、Red Hat Developer Hub に組み込まれている TechDocs プラグインを使用して、技術ドキュメントを一元的に標準化された方法で作成、検索、使用できます。ドキュメントファイルはコードとともに保存され、Docs タブにレンダリングされます。サポート対象の TechDocs アドオンを使用するか、独自のアドオンを作成して、ドキュメントエクスペリエンスをさらに強化します。

第1章 TechDocs について

Red Hat Developer Hub インスタンスには、デフォルトで TechDocs プラグインがインストールされ、有効になっています。組織では、TechDocs プラグインを使用して、一元的な場所で、標準化された方法でドキュメントを作成、検索、管理できます。また、組み込みの TechDocs 機能やアドオンを使用して、技術ドキュメントのエクスペリエンスを強化することもできます。以下に例を示します。

docs-like-code アプローチ
技術ドキュメントを Markdown ファイルに記述し、コードとともにプロジェクトリポジトリー内に保存します。
ドキュメントサイトの生成
MkDocs を使用して、Developer Hub で一元的にレンダリングされるドキュメント用に、フル機能の Markdown ベースの静的 HTML サイトを作成します。
ドキュメントサイトのメタデータと統合
静的ドキュメントに加えて、最終更新日、サイト所有者、トップコントリビューター、未解決の GitHub イシュー、Slack サポートチャネル、Stack Overflow Enterprise タグなど、ドキュメントサイトに関する追加のメタデータを参照できます。
組み込みのナビゲーションおよび検索機能
ドキュメント内で必要な情報を迅速かつ簡単に見つけます。
アドオン
サポートされている TechDocs アドオンを使用して、ドキュメントをより機能的かつインタラクティブなものにします。一部のアドオンはプリインストールされており、デフォルトで有効になっています。デフォルトの機能を拡張するには、外部およびサードパーティーのアドオンを Red Hat Developer Hub インスタンスに動的にロードできます。TechDocs のエクスペリエンスをさらにカスタマイズする場合は、組織固有のドキュメントニーズに合わせてアドオンを作成できます。

第2章 TechDocs の設定

TechDocs プラグインは、Developer Hub インスタンスにデフォルトでプリインストールされ、有効になっています。Red Hat Developer Hub の Helm チャートまたは Red Hat Developer Hub Operator ConfigMap を設定することで、TechDocs プラグインを無効または有効にしたり、その他のパラメーターを変更したりできます。

重要

Red Hat Developer Hub には、コードベースから静的 HTML ドキュメントを生成する TechDocs ビルダーが組み込まれています。ただし、ローカルビルダーのデフォルトの基本設定は、実稼働環境向けではありません。

TechDocs のドキュメントを生成するための専用のリポジトリーで、CI/CD パイプラインを使用できます。生成された静的ファイルは、OpenShift Data Foundation または選択したクラウドストレージソリューションに保存され、静的 HTML ドキュメントサイトに公開されます。

TechDocs によって生成されるファイルを保存するように OpenShift Data Foundation を設定した後、OpenShift Data Foundation をクラウドストレージとして使用するように TechDocs プラグインを設定できます。

2.1. TechDocs ファイルのストレージの設定

TechDocs のパブリッシャーは、生成されたファイルをローカルストレージまたは OpenShift Data Foundation、Google GCS、AWS S3、Azure Blob Storage などのクラウドストレージに保存します。

2.1.1. ファイルストレージに OpenShift Data Foundation を使用する

OpenShift Data Foundation を設定することで、他のクラウドストレージソリューションを利用することなく、TechDocs によって生成されるファイルを保存できます。

OpenShift Data Foundation は、S3 互換バケットバックエンドを要求するために使用できる ObjectBucketClaim カスタムリソース(CR)を提供します。この機能を使用するには、OpenShift Data Foundation Operator をインストールする必要があります。

+

注記

エアギャップ環境の場合、TechDocs に推奨されるストレージは、OpenShift Data Foundation を使用することを推奨します。

前提条件

手順

  • 生成された TechDocs ファイルを保存する ObjectBucketClaim CR を作成します。以下に例を示します。

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: <rhdh_bucket_claim_name>
    spec:
      generateBucketName: <rhdh_bucket_claim_name>
      storageClassName: openshift-storage.noobaa.io
    Copy to Clipboard
    注記

    Developer Hub の ObjectBucketClaim CR を作成すると、Developer Hub ObjectBucketClaim の config map とシークレットの両方が自動的に作成されます。config map とシークレットの名前は ObjectBucketClaim CR と同じです。

ObjectBucketClaim CR を作成したら、config map とシークレットに保存されている情報を使用して、Developer Hub コンテナーからその情報に環境変数としてアクセスできるようにします。Developer Hub のインストールに使用した方法に応じて、Red Hat Developer Hub の Helm チャート設定または Operator 設定にアクセス情報を追加します。

2.1.2. Helm チャートを使用してオブジェクトストレージをコンテナーからアクセス可能にする

ObjectBucketClaim カスタムリソース (CR) を作成すると、Developer Hub ObjectBucketClaim の config map とシークレットの両方が自動的に作成されます。config map とシークレットには ObjectBucket のアクセス情報が含まれています。Helm チャート設定にアクセス情報を追加すると、次の環境変数がコンテナーに追加され、Developer Hub コンテナーからその情報にアクセスできるようになります。

  • BUCKET_NAME
  • BUCKET_HOST
  • BUCKET_PORT
  • BUCKET_REGION
  • BUCKET_SUBREGION
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

これらの変数は、TechDocs プラグインの設定で使用されます。

前提条件

手順

  • Helm チャート値の upstream.backstage キーに、extraEnvVarsSecrets フィールドと extraEnvVarsCM フィールドの値として、Developer Hub の ObjectBucketClaim シークレットの名前を入力します。以下に例を示します。

    upstream:
      backstage:
        extraEnvVarsSecrets:
          - <rhdh_bucket_claim_name>
        extraEnvVarsCM:
          - <rhdh_bucket_claim_name>
    Copy to Clipboard
2.1.2.1. Helm チャート用の TechDocs プラグイン設定の例

次の例は、TechDocs プラグイン用の Developer Hub Helm チャート設定を示しています。

global:
  dynamic:
    includes:
      - 'dynamic-plugins.default.yaml'
  plugins:
    - disabled: false
      package: ./dynamic-plugins/dist/backstage-plugin-techdocs-backend-dynamic
      pluginConfig:
        techdocs:
          builder: external
          generator:
            runIn: local
          publisher:
            awsS3:
              bucketName: '${BUCKET_NAME}'
              credentials:
                accessKeyId: '${AWS_ACCESS_KEY_ID}'
                secretAccessKey: '${AWS_SECRET_ACCESS_KEY}'
              endpoint: 'https://${BUCKET_HOST}'
              region: '${BUCKET_REGION}'
              s3ForcePathStyle: true
            type: awsS3
Copy to Clipboard

2.1.3. Operator を使用してオブジェクトストレージをコンテナーからアクセス可能にする

ObjectBucketClaim カスタムリソース (CR) を作成すると、Developer Hub ObjectBucketClaim の config map とシークレットの両方が自動的に作成されます。config map とシークレットには ObjectBucket のアクセス情報が含まれています。Operator 設定にアクセス情報を追加すると、次の環境変数がコンテナーに追加され、Developer Hub コンテナーからその情報にアクセスできるようになります。

  • BUCKET_NAME
  • BUCKET_HOST
  • BUCKET_PORT
  • BUCKET_REGION
  • BUCKET_SUBREGION
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

これらの変数は、TechDocs プラグインの設定で使用されます。

前提条件

  • Operator を使用して OpenShift Container Platform に Red Hat Developer Hub をインストールした。
  • TechDocs によって生成されるファイルを保存するための ObjectBucketClaim CR を作成した。

手順

  • Backstage CR で、Developer Hub ObjectBucketClaim config map の名前を spec.application.extraEnvs.configMaps フィールドの値として入力し、Developer Hub ObjectBucketClaim シークレット名を spec.application.extraEnvs.secrets フィールドの値として入力します。以下に例を示します。

    apiVersion: objectbucket.io/v1alpha1
    kind: Backstage
    metadata:
     name: <name>
    spec:
      application:
        extraEnvs:
          configMaps:
            - name: <rhdh_bucket_claim_name>
          secrets:
            - name: <rhdh_bucket_claim_name>
    Copy to Clipboard
2.1.3.1. Operator 用の TechDocs プラグイン設定の例

次の例は、TechDocs プラグイン用の Red Hat Developer Hub Operator の config map 設定を示しています。

kind: ConfigMap
apiVersion: v1
metadata:
  name: dynamic-plugins-rhdh
data:
  dynamic-plugins.yaml: |
    includes:
      - dynamic-plugins.default.yaml
    plugins:
      - disabled: false
        package: ./dynamic-plugins/dist/backstage-plugin-techdocs-backend-dynamic
        pluginConfig:
          techdocs:
            builder: external
            generator:
              runIn: local
            publisher:
              awsS3:
                bucketName: '${BUCKET_NAME}'
                credentials:
                  accessKeyId: '${AWS_ACCESS_KEY_ID}'
                  secretAccessKey: '${AWS_SECRET_ACCESS_KEY}'
                endpoint: 'https://${BUCKET_HOST}'
                region: '${BUCKET_REGION}'
                s3ForcePathStyle: true
              type: awsS3
Copy to Clipboard

2.2. TechDocs サイトを生成して公開するための CI/CD の設定

TechDocs は、OpenShift Data Foundation などのクラウドストレージバケットから静的に生成されたドキュメントファイルを読み取ります。ドキュメントサイトは、ドキュメントファイルを含むリポジトリーに関連付けられた CI/CD ワークフローで生成されます。techdocs-cli CLI ツールを使用して、CI でドキュメントを生成し、クラウドストレージに公開できます。

次の例を使用して、TechDocs 公開用のスクリプトを作成できます。

# Prepare
REPOSITORY_URL='https://github.com/org/repo'
git clone $REPOSITORY_URL
cd repo

# Install @techdocs/cli, mkdocs and mkdocs plugins
npm install -g @techdocs/cli
pip install "mkdocs-techdocs-core==1.*"

# Generate
techdocs-cli generate --no-docker

# Publish
techdocs-cli publish --publisher-type awsS3 --storage-name <bucket/container> --entity <Namespace/Kind/Name>
Copy to Clipboard

TechDocs ワークフローは、ユーザーがドキュメントファイルを含むリポジトリーに変更を加えたときに CI を開始します。docs/ ディレクトリーまたは mkdocs.yml 内のファイルが変更されたときにのみワークフローを開始するように設定できます。

2.2.1. CI 用のリポジトリーの準備

CI の最初のステップは、作業ディレクトリーにドキュメントソースリポジトリーを複製することです。

手順

  • 作業ディレクトリーにドキュメントソースリポジトリーを複製するには、次のコマンドを入力します。

    git clone <https://path/to/docs-repository/>
    Copy to Clipboard

2.2.2. TechDocs サイトの生成

手順

技術ドキュメントを生成するように CI/CD を設定するには、次の手順を実行します。

  1. 次のコマンドを使用して、npx パッケージをインストールし、techdocs-cli を実行します。

    npm install -g npx
    Copy to Clipboard
  2. 次のコマンドを使用して techdocs-cli ツールをインストールします。

    npm install -g @techdocs/cli
    Copy to Clipboard
  3. 次のコマンドを使用して、mkdocs プラグインをインストールします。

    pip install "mkdocs-techdocs-core==1.*"
    Copy to Clipboard
  4. 次のコマンドを使用して、techdocs サイトを生成します。

    npx @techdocs/cli generate --no-docker --source-dir <path_to_repo> --output-dir ./site
    Copy to Clipboard

    <path_to_repo> は、リポジトリーを複製するために使用したファイルパス内の場所です。

2.2.3. TechDocs サイトの公開

手順

techdocs サイトを公開するには、次の手順を実行します。

  1. クラウドストレージプロバイダーに必要な認証環境変数を設定します。
  2. 次のコマンドを使用して、技術ドキュメントを公開します。

    npx @techdocs/cli publish --publisher-type <awsS3|googleGcs> --storage-name <bucket/container> --entity <namespace/kind/name> --directory ./site
    Copy to Clipboard
  3. ソフトウェアテンプレートに .github/workflows/techdocs.yml ファイルを追加します。以下に例を示します。

    name: Publish TechDocs Site
    
    on:
     push:
       branches: [main]
       # You can even set it to run only when TechDocs related files are updated.
       # paths:
       #   - "docs/**"
       #   - "mkdocs.yml"
    
    jobs:
     publish-techdocs-site:
       runs-on: ubuntu-latest
    
       # The following secrets are required in your CI environment for publishing files to AWS S3.
       # e.g. You can use GitHub Organization secrets to set them for all existing and new repositories.
       env:
         TECHDOCS_S3_BUCKET_NAME: ${{ secrets.TECHDOCS_S3_BUCKET_NAME }}
         AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
         AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
         AWS_REGION: ${{ secrets.AWS_REGION }}
         ENTITY_NAMESPACE: 'default'
         ENTITY_KIND: 'Component'
         ENTITY_NAME: 'my-doc-entity'
         # In a Software template, Scaffolder will replace {{cookiecutter.component_id | jsonify}}
         # with the correct entity name. This is same as metadata.name in the entity's catalog-info.yaml
         # ENTITY_NAME: '{{ cookiecutter.component_id | jsonify }}'
    
       steps:
         - name: Checkout code
           uses: actions/checkout@v3
    
         - uses: actions/setup-node@v3
         - uses: actions/setup-python@v4
           with:
             python-version: '3.9'
    
         - name: Install techdocs-cli
           run: sudo npm install -g @techdocs/cli
    
         - name: Install mkdocs and mkdocs plugins
           run: python -m pip install mkdocs-techdocs-core==1.*
    
         - name: Generate docs site
           run: techdocs-cli generate --no-docker --verbose
    
         - name: Publish docs site
           run: techdocs-cli publish --publisher-type awsS3 --storage-name $TECHDOCS_S3_BUCKET_NAME --entity $ENTITY_NAMESPACE/$ENTITY_KIND/$ENTITY_NAME
    Copy to Clipboard

第3章 TechDocs アドオン

TechDocs アドオンは、組み込みの TechDocs プラグインの機能を拡張する動的プラグインです。たとえば、アドオンを使用して、ドキュメントの問題を報告したり、テキストサイズを変更したり、TechDocs Reader ページまたは Entity ページでオーバーレイで画像を表示したりできます。

次の表は、Red Hat Developer Hub 1.5 で使用できる TechDocs アドオンを説明しています。

表3.1 Red Hat Developer Hub で利用可能な TechDocs アドオン
TechDocs アドオンパッケージ/プラグイン説明

<ReportIssue />

backstage-plugin-techdocs-module-addons-contrib

TechDocs ページのテキストの一部を選択し、ドキュメントが含まれているリポジトリーに対してイシューを作成します。選択したテキストがイシューテンプレートに自動的に入力されます。

プリインストール

<TextSize />

backstage-plugin-techdocs-module-addons-contrib

スライダーまたはボタンを使用してフォントサイズを拡大または縮小することで、ドキュメントページのテキストサイズをカスタマイズします。フォントサイズのデフォルト値は 100% です。この設定は変更されるたびにブラウザーのローカルストレージに保存されます。

外部

<LightBox />

backstage-plugin-techdocs-module-addons-contrib

ライトボックスでドキュメントページの画像を開き、1 つのページにある複数の画像に移動します。ライトボックスの画像サイズは、ドキュメントページの画像サイズと同じです。ズームアイコンをクリックすると、画像のサイズが画面に合わせて拡大されます。

外部

backstage-plugin-techdocs-module-addons-contrib プラグインパッケージは、Red Hat がサポートするプリインストールアドオンと外部アドオンの両方を TechDocs プラグインにエクスポートします。このプラグインパッケージは、Red Hat Developer Hub にプリインストールされており、デフォルトで有効になっています。プラグインパッケージを無効にすると、パッケージによってエクスポートされるすべての TechDocs アドオンも無効になります。

3.1. TechDocs アドオンのインストールと設定

Red Hat がサポートする TechDocs アドオンは、`backstage-plugin-techdocs-module-addons-contrib` プラグインパッケージによって TechDocs プラグインにエクスポートされます。このプラグインパッケージは、Red Hat Developer Hub にプリインストールされ、デフォルトで有効になっています。<ReportIssue/> アドオンはこのプラグインパッケージのデフォルト設定に含まれており、TechDocs プラグインですぐに使用できます。

インストールに Operator または Helm チャートを使用したかどうかに応じて、Red Hat Developer Hub の ConfigMap または Helm チャートで `backstage-plugin-techdocs-module-addons-contrib` プラグインパッケージを設定することで、サポートされている他の TechDocs アドオンをインストールできます。サポートされているアドオンの機能以外の TechDocs エクスペリエンスをカスタマイズする場合は、独自に作成したアドオンを含むサードパーティーのアドオンを TechDocs プラグインにインストールできます。

3.1.1. Operator を使用した外部 TechDocs アドオンのインストールと設定

動的プラグインを使用して、TechDocs アドオンを TechDocs プラグインにインポートできます。Red Hat Developer Hub Operator を使用して動的プラグインをインストールする場合は、ConfigMap のプラグインパッケージに TechDocs アドオンを追加できます。

ReportIssue などのプリインストールされたアドオンは、デフォルトの backstage-plugin-techdocs-module-addons-contrib パッケージ設定に含まれています。Red Hat がサポートする外部アドオンは、設定ファイルの techdocsAddons セクションに手動で追加することでインストールします。

手順

  1. OpenShift Container Platform Web コンソールの Developer パースペクティブから、ConfigMaps > Create ConfigMap をクリックします。
  2. Create ConfigMap ページで、Configure via フィールドの YAML view オプションを選択します。
  3. 新しく作成した ConfigMap に、デフォルトの backstage-plugin-techdocs-module-addons-contrib パッケージ設定を追加します。以下に例を示します。

    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-techdocs-module-addons-contrib
            disabled: false
            pluginConfig:
              dynamicPlugins:
                frontend:
                  backstage.plugin-techdocs-module-addons-contrib:
                    techdocsAddons:
                      - importName: ReportIssue
    Copy to Clipboard
  4. ConfigMap の techdocsAddons セクションで、指定したプラグインパッケージから追加する外部 TechDocs アドオンごとに importName: <external_techdocs_add-on> を追加します。以下に例を示します。

    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-techdocs-module-addons-contrib
            disabled: false
            pluginConfig:
              dynamicPlugins:
                frontend:
                  backstage.plugin-techdocs-module-addons-contrib:
                    techdocsAddons:
                      - importName: ReportIssue
                      - importName: <external_techdocs_add-on>
    Copy to Clipboard

    ここでは、以下のようになります。

    <external_techdocs_add-on>
    インストールする外部 TechDocs アドオン (TextSizeLightBox など) を指定します。
  5. Create をクリックします。
  6. Web コンソールのナビゲーションメニューで、Topology をクリックします。
  7. 使用する Red Hat Developer Hub インスタンスのオーバーフローメニューをクリックし、Edit Backstage を選択して、Red Hat Developer Hub インスタンスの YAML ビューを読み込みます。
  8. Backstage CR で、dynamicPluginsConfigMapName: <dynamic_plugins_configmap> というキーと値のペアを追加します。以下に例を示します。

    apiVersion: rhdh.redhat.com/v1alpha3
    kind: Backstage
    metadata:
      name: my-rhdh
    spec:
      application:
    # ...
        dynamicPluginsConfigMapName: _<dynamic_plugins_configmap>_
    # ...
    Copy to Clipboard

    ここでは、以下のようになります。

    <dynamic_plugins_configmap>
    Red Hat Developer Hub インスタンスの動的プラグイン ConfigMap の名前を指定します (例: dynamic-plugins-rhdh)。
  9. Save をクリックします。
  10. Web コンソールのナビゲーションメニューで、Topology をクリックし、Red Hat Developer Hub の Pod が起動するまで待ちます。
  11. Open URL アイコンをクリックして、新しい設定変更を適用した Red Hat Developer Hub プラットフォームの使用を開始します。

3.1.2. Helm チャートを使用した外部 TechDocs アドオンのインストールと設定

動的プラグインを使用して、TechDocs アドオンを TechDocs プラグインにインポートできます。Red Hat Developer Hub の Helm チャートを使用して動的プラグインをインストールする場合は、Helm チャートのプラグインパッケージに TechDocs アドオンを追加できます。

ReportIssue などのプリインストールされたアドオンは、デフォルトの backstage-plugin-techdocs-module-addons-contrib パッケージ設定に含まれています。Red Hat がサポートする外部アドオンは、設定ファイルの techdocsAddons セクションに手動で追加することでインストールします。

前提条件

  • TechDocs プラグインがインストールされ、有効になっている。

手順

  1. Helm チャートを使用した動的プラグインのインストール に示されているように、Helm チャートで、動的プラグインをインストールするために必要な global.dynamic パラメーターを追加します。

    注記

    デフォルト設定には dynamic-plugins.default.yaml ファイルが含まれています。このファイルには、デフォルトで有効か無効かに関係なく、Red Hat Developer Hub にプリインストールされているすべての動的プラグイン (TechDocs アドオンを含む) が含まれています。

  2. Helm チャートで、デフォルトの backstage-plugin-techdocs-module-addons-contrib パッケージ設定を追加します。以下に例を示します。

    global:
      dynamic:
        plugins:
          - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib
            disabled: false
            pluginConfig:
              dynamicPlugins:
                frontend:
                  backstage.plugin-techdocs-module-addons-contrib:
                    techdocsAddons:
                      - importName: ReportIssue
    Copy to Clipboard
  3. Helm チャートの techdocsAddons セクションで、指定したプラグインパッケージから追加する外部 TechDocs アドオンごとに importName: <external_techdocs_add-on> を追加します。以下に例を示します。

    global:
      dynamic:
        plugins:
          - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib
            disabled: false
            pluginConfig:
              dynamicPlugins:
                frontend:
                  backstage.plugin-techdocs-module-addons-contrib:
                    techdocsAddons:
                      - importName: ReportIssue
                      - importName: <external_techdocs_add-on>
    Copy to Clipboard

    ここでは、以下のようになります。

    <external_techdocs_add-on>
    インストールする外部 TechDocs アドオン (TextSizeLightBox など) を指定します。

3.1.3. サードパーティーの TechDocs アドオンのインストールと設定

互換性のあるサードパーティーの TechDocs アドオンを、フロントエンドの動的プラグインとして Red Hat Developer Hub インスタンスにインストールできます。

前提条件

  • サードパーティーの TechDocs アドオンのルートディレクトリーに、必要なすべてのメタデータと依存関係を含む有効な package.json ファイルがある。
  • サードパーティーのプラグインが、OCI イメージ内の動的プラグインとしてパッケージ化されている。別のパッケージタイプは、Red Hat Developer Hub にサードパーティーのプラグインをインストールする を参照してください。
  • yarn パッケージマネージャーがインストールされている。
  • サードパーティーのプラグインが、OCI イメージ内の動的プラグインとしてパッケージ化されている。* Node.js と NPM がインストールされ、設定されています。

手順

  1. 次のコマンドを入力して、サードパーティーのアドオンをインポートするために使用するサードパーティーのプラグインをインストールします。

    yarn install
    Copy to Clipboard
  2. 使用するサードパーティーの TechDocs アドオンのソースコードを取得します。
  3. 次のコマンドを使用して、TechDocs アドオンを動的プラグインとしてエクスポートします。

    npx @janus-idp/cli@latest package export-dynamic-plugin
    Copy to Clipboard
    注記

    @latest タグは、最新の機能および修正と互換性のある最新バージョンの @janus-idp/cli パッケージを取得します。Red Hat Developer Hub のバージョンと互換性のあるバージョンを使用してください。

  4. サードパーティーの TechDocs アドオンを動的プラグインとしてパッケージ化するために、プラグインが保存されているルートディレクトリー (dist-dynamic ディレクトリーではない) に移動し、--tag オプションを指定して npx コマンドを実行し、イメージ名とタグを指定します。以下に例を示します。

    npx @janus-idp/cli@latest package package-dynamic-plugins --tag quay.io/<user_name>/<techdocs_add-on_image>:latest
    Copy to Clipboard
    注記

    package-dynamic-plugins コマンドの出力に、dynamic-plugin-config.yaml ファイルで使用するプラグインへのファイルパスが表示されます。

  5. サードパーティーの TechDocs アドオンを Quay リポジトリーに公開するために、お使いの仮想化ツールに応じて次のいずれかのコマンドを使用して、イメージをレジストリーにプッシュします。

    • podman を使用するには、次のコマンドを入力します。

      podman push quay.io/<user_name>/<techdocs_add-on_image>:latest
      Copy to Clipboard
    • docker を使用するには、次のコマンドを入力します。

      docker push quay.io/<user_name>/<techdocs_add-on_image>:latest
      Copy to Clipboard
  6. dynamic-plugins.yaml ファイルを開き、サードパーティーの TechDocs アドオンの設定を表示または変更します。以下に例を示します。

    plugins:
          - package: oci://quay.io/<user_name>/<techdocs_add-on_image>:latest!<techdocs_add-on_package>
            disabled: false
            pluginConfig:
              dynamicPlugins:
                frontend:
                 <techdocs_add-on_package>
                    techdocsAddons:
                      - importName: <third-party_add-on_name>
                       config:
                          props:
                           <techdocs_add-on_property_key>: <techdocs_add-on_property_value>
    Copy to Clipboard

    以下は、

    <user_name>
    Quay ユーザー名または組織名を指定します。
    <techdocs_add-on_image>
    使用するサードパーティーアドオンのイメージの名前を指定します (例: mermaid)。
    <techdocs_add-on_package>
    パッケージを指定します (例: backstage-plugin-techdocs-addon-mermaid)。
    <third-party_add-on_name>
    使用するサードパーティーアドオンの名前を指定します (例: Mermaid)。
    <techdocs_add-on_property_key>
    サードパーティーアドオンに渡すことができるカスタムプロパティーの名前 (例: themeVariables) を指定します。プロパティーは各アドオンに固有です。1 つのアドオンに対して複数のプロパティーをリストできます。
    <techdocs_add-on_property_value>
    サードパーティーアドオンのプロパティーキーの値を指定します (例: lineColor: #000000)。

3.2. TechDocs アドオンの削除

管理者は、アドオンのインストールに使用した方法に応じて Operator または Helm チャートを使用して、インストールした TechDocs アドオンを Red Hat Developer Hub インスタンスから削除できます。Operator を使用してアドオンをインストールした場合は、ConfigMap からアドオンを削除します。Helm チャートを使用してアドオンをインストールした場合は、Helm チャートからアドオンを削除します。

Red Hat Developer Hub インスタンスからプラグインを削除するのではなく無効にする場合は、TechDocs アドオンのインポートに使用しているプラグインを無効にできます。disabled ステータスはプラグインレベルで制御されます。そのため、プラグインを無効にすると、指定したプラグインパッケージ内のすべての TechDocs アドオンが無効になります。

3.2.1. ConfigMap からの外部 TechDocs アドオンの削除

Operator を使用して Red Hat Developer Hub インスタンスにインストールした特定のプラグインからインポートした TechDocs アドオンの機能を使用する必要がなくなった場合は、一時的に無効にするか、ConfigMap から完全に削除できます。disabled ステータスはプラグインレベルで制御されます。そのため、プラグインを無効にすると、無効化されたプラグインパッケージ内のすべての TechDocs アドオンが無効になります。

手順

  1. OpenShift Container Platform Web コンソールの Developer パースペクティブから、ConfigMaps をクリックします。
  2. ConfigMaps ページで、削除する TechDocs アドオンが含まれている ConfigMap をクリックします。
  3. Configure via フィールドで YAML view オプションを選択します。
  4. ConfigMap の plugins セクションで、TechDocs アドオンを無効にするか削除するかに応じて、次のいずれかの操作を実行します。

    • 特定のプラグインパッケージ内の TechDocs アドオンをすべて一時的に無効にするには、disabled フィールドの値を true に変更します。以下に例を示します。

      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-techdocs-module-addons-contrib
              disabled: true
              pluginConfig:
                dynamicPlugins:
                  frontend:
                    backstage.plugin-techdocs-module-addons-contrib:
                      techdocsAddons:
                        - importName: ReportIssue
                        - importName: <external_techdocs_add-on>
      Copy to Clipboard

      ここでは、以下のようになります。

      <external_techdocs_add-on>
      削除する外部 TechDocs アドオン (例: TextSize) を指定します。
    • Red Hat Developer Hub インスタンスから 1 つ以上の TechDocs アドオンを削除するには、ConfigMap の techdocsAddons セクションから、削除する各外部 TechDocs アドオンの importName: <external_techdocs_add-on> を削除します。以下に例を示します。

      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-techdocs-module-addons-contrib
              disabled: false
              pluginConfig:
                dynamicPlugins:
                  frontend:
                    backstage.plugin-techdocs-module-addons-contrib:
                      techdocsAddons:
                        - importName: ReportIssue
                        - importName: <external_techdocs_add-on>
      Copy to Clipboard

      ここでは、以下のようになります。

      <external_techdocs_add-on>
      削除する外部 TechDocs アドオン (例: TextSize) を指定します。
  5. Save をクリックします。
  6. Web コンソールのナビゲーションメニューで、Topology をクリックし、Red Hat Developer Hub の Pod が起動するまで待ちます。
  7. Open URL アイコンをクリックして、新しい設定変更を適用した Red Hat Developer Hub プラットフォームの使用を開始します。

3.2.2. Helm チャートからの外部 TechDocs アドオンの削除

Helm チャートを使用して Red Hat Developer Hub インスタンスにインストールした特定のプラグインからインポートした TechDocs アドオンの機能を使用する必要がなくなった場合は、一時的に無効にするか、Helm チャートから完全に削除できます。disabled ステータスはプラグインレベルで制御されます。そのため、プラグインを無効にすると、無効化されたプラグインパッケージ内のすべての TechDocs アドオンが無効になります。

手順

  • Helm チャートの plugins セクションで、TechDocs アドオンを無効にするか削除するかに応じて、次のいずれかの操作を実行します。

    • 特定のプラグインパッケージ内の TechDocs アドオンをすべて一時的に無効にするには、disabled フィールドの値を true に変更します。以下に例を示します。

      global:
        dynamic:
          plugins:
            - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib
              disabled: true
              pluginConfig:
                dynamicPlugins:
                  frontend:
                    backstage.plugin-techdocs-module-addons-contrib:
                      techdocsAddons:
                        - importName: ReportIssue
                        - importName: <external_techdocs_add-on>
      Copy to Clipboard

      ここでは、以下のようになります。

      <external_techdocs_add-on>
      削除する外部 TechDocs アドオン (例: TextSize) を指定します。
    • Red Hat Developer Hub インスタンスから 1 つ以上の TechDocs アドオンを削除するには、Helm チャートの techdocsAddons セクションから、削除する各外部 TechDocs アドオンの importName: <external_techdocs_add-on> を削除します。以下に例を示します。

      global:
        dynamic:
          plugins:
            - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib
              disabled: false
              pluginConfig:
                dynamicPlugins:
                  frontend:
                    backstage.plugin-techdocs-module-addons-contrib:
                      techdocsAddons:
                        - importName: ReportIssue
                        - importName: <external_techdocs_add-on>
      Copy to Clipboard

      ここでは、以下のようになります。

      <external_techdocs_add-on>
      削除する外部 TechDocs アドオン (例: TextSize) を指定します。

3.3. TechDocs アドオンの使用

管理者が Red Hat Developer Hub インスタンスに TechDocs アドオンをインストールしたら、それを使用して TechDocs プラグインの機能を拡張し、ドキュメントエクスペリエンスを強化できます。

3.3.1. ReportIssue TechDocs アドオンの使用

組織の TechDocs ドキュメントにエラーが見つかった場合は、ReportIssue アドオンを使用して、ドキュメントから直接新しい GitHub または GitLab のイシューを作成できます。ReportIssue により、ドキュメント内で強調表示したテキストが、リポジトリー内の新しいイシューテンプレートに自動的にインポートされます。

前提条件

  • ReportIssue アドオンが TechDocs プラグインにインストールされ、有効になっている。
  • ドキュメントの問題の報告先リポジトリーでイシューを作成する権限がある。

手順

  1. TechDocs ドキュメントで、イシューとして報告するテキストを強調表示します。
  2. ReportIssue ボックス内のテキスト (例: Open new GitHub issue) をクリックします。
  3. リポジトリーの新しいイシューページから、報告するイシューをテンプレートを使用して作成します。

    注記

    デフォルトのイシュータイトルは Documentation feedback: <highlighted_text> です。<highlighted_text> は、TechDocs ドキュメントで強調表示したテキストです。

    イシューの説明では、<highlighted_text>The highlighted text フィールドのデフォルト値になります。

検証

  • 作成したイシューがリポジトリーのイシューページにリスト表示されます。

3.3.2. TextSize TechDocs アドオンの使用

TextSize アドオンを使用すると、TechDocs Reader ページまたは Entity ページのテキストのサイズを変更できます。

前提条件

  • TextSize アドオンが TechDocs プラグインにインストールされ、有効になっている。

手順

  1. TechDocs ヘッダーで、Settings アイコンをクリックします。
  2. スライドスケールを使用して、ドキュメントのテキストのサイズを調整します。

    注記
    • デフォルトのテキストサイズは 100% です。
    • 最小テキストサイズは 90% です。
    • 最大テキストサイズは 150% です。

3.3.3. LightBox TechDocs アドオンの使用

TechDocs ドキュメントに画像が含まれている場合は、LightBox アドオンを使用して、ライトボックスまたはオーバーレイウィンドウで拡大版の画像を表示できます。ズームしてライトボックスの画像のサイズを変更することもできます。1 つのドキュメントページに複数の画像が含まれている場合は、ライトボックスで画像を切り替えることができます。

前提条件

  • LightBox アドオンが TechDocs プラグインにインストールされ、有効になっている。

手順

  1. TechDocs ドキュメントで、ライトボックスで表示する画像をクリックします。
  2. ライトボックスでは、次のいずれかの操作を実行できます。

    • 画像をクリックするかスクロールして拡大または縮小します。
    • 矢印をクリックして画像を切り替えます。

3.4. TechDocs アドオンの作成

既存の TechDocs アドオンの機能では満たされないドキュメントのニーズが組織にある場合、開発者は TechDocs プラグイン用の新しいアドオンを作成できます。

TechDocs アドオンは、フロントエンドプラグインからインポートされる React コンポーネントです。TechDocs アドオンのエクスポートに使用できる既存のプラグインがない場合は、backstage-cli を使用して、カスタマイズ可能なデフォルトのフロントエンドプラグイン構造を生成することで、新しいプラグインを作成できます。

TechDocs アドオンを TechDocs プラグインにインポートするために使用できる新しいプラグインのフォルダー構造は、次の例のようになります。

<new_plugin_for_techdocs_add-on>/
   dev/
       index.ts
   src/
       components/
         <new_techdocs_add-on_component>/
              <new_techdocs_add-on_component>.test.tsx
              <new_techdocs_add-on_component>.tsx
               index.ts
         <new_techdocs_add-on_fetch-component>/
              <new_techdocs_add-on_fetch-component>.test.tsx
              <new_techdocs_add-on_fetch-component>.tsx
               index.ts
       index.ts
       plugin.test.ts
       plugin.ts
       routes.ts
       setupTests.ts
   .eslintrc.js
   package.json
   README.md
Copy to Clipboard

前提条件

  • yarn パッケージマネージャーがインストールされている。
  • Docker v3.2.0 以降または Podman v3.2.0 以降がインストール済みで実行中である。

手順

  1. ターミナルで、新しいプラグインを作成するリポジトリーのルートフォルダーに移動します。
  2. 新しいフロントエンドプラグインを作成するために、次のコマンドを実行します。

    yarn new
    Copy to Clipboard

    出力例

    ? What do you want to create? plugin - A new frontend plugin
    ? Enter the ID of the plugin [required]
    Copy to Clipboard

  3. ターミナルプロンプトで、新しいプラグインの名前を入力します。以下に例を示します。

    ? Enter the ID of the plugin [required] <new_plugin_for_techdocs_add-on>
    Copy to Clipboard

    出力例

    Successfully created plugin
    Copy to Clipboard

    結果

    plugins ディレクトリーに、プラグインに付けた名前と同じ名前のサブディレクトリーが自動的に生成されます。このディレクトリーには、新しいプラグインを作成するために設定する必要があるすべてのファイルが含まれています。

  4. ターミナルで、新しいプラグインのディレクトリーに移動します。以下に例を示します。

    cd plugins/<new_techdocs_add-on_directory>
    Copy to Clipboard
  5. `@backstage/plugin-techdocs-react` パッケージを追加して、TechDocs アドオンのフロントエンドユーティリティーを取得します。以下に例を示します。

    yarn add @backstage/plugin-techdocs-react
    Copy to Clipboard
  6. カスタム TechDocs アドオンのコンポーネントが含まれるディレクトリーで、アドオンに必要のないデフォルトのファイルまたはファイルコンポーネント (routes.ts ファイルや index.tsx ファイルおよび plugins.ts ファイルのコンポーネントなど) を削除します。
  7. plugins.ts ファイルに次のコードを追加します。

    import { createPlugin } from '@backstage/core-plugin-api';
    import { createTechDocsAddonExtension } from '@backstage/plugin-techdocs-react';
    
    export const <new_plugin_for_techdocs_add-on> = createPlugin({
      id: '<new_techdocs_add-on>',
     });
    
     /*
     *
     * @public
     */
    export const <new_techdocs_add-on> = <new_plugin_for_techdocs_add-on>.provide(
     createTechDocsAddonExtension<_<new_techdocs_addon_props>_>({
        name: '<new_techdocs_add-on>',
        location: TechDocsAddonLocations.Content,
        component: <new_techdocs_add-on_component>,
      }),
    );
    Copy to Clipboard

    以下は、

    <new_plugin_for_techdocs_add-on>
    Red Hat Developer Hub インスタンスに TechDocs アドオンをインポートするために使用する新しいプラグインを指定します。
    <new_techdocs_add-on>
    作成するカスタム TechDocs アドオンを指定します。
    <new_techdocs_addon_props> (任意)
    該当する場合は、<new_techdocs_add-on>.tsx ファイルで指定されているように、新しい TechDocs アドオンの props を指定します。
    <new_techdocs_add-on_component>
    作成するカスタム TechDocs アドオンの React コンポーネントを指定します。このコンポーネントは、後のステップで .tsx ファイルに作成します。
  8. index.ts ファイルで、次のコードを追加して、作成するカスタム TechDocs アドオンをエクスポートします。

    export { <new_plugin_for_techdocs_add-on>, <new_techdocs_add-on> } from './plugin';
    Copy to Clipboard
  9. 新しい <new_techdocs_add-on>.tsx ファイルを作成し、新しい TechDocs アドオンコンポーネントのコードを追加します。
  10. 新しい index.tsx ファイルを作成し、次のコードを追加して新しい TechDocs アドオンコンポーネントをエクスポートします。

    export { <new_techdocs_add-on>, type <new_techdocs_addon_props>} from './<new_techdocs_add-on_directory>'
    Copy to Clipboard

    以下は、

    <new_techdocs_addon_props> (任意)
    該当する場合は、<new_techdocs_add-on>.tsx ファイルで指定されているように、新しい TechDocs アドオンの props を指定します。
  11. plugins.ts ファイルに、新しい TechDocs アドオンコンポーネントをインポートします。
  12. TechDocs アドオンのインストールと設定 の手順に従って、新しい TechDocs アドオンをインストールして設定します。

検証

  1. RHDH アプリケーションを再起動し、プラグインが正常にアクティブ化され、設定されていることを確認します。
  2. アプリケーションログを確認のため検証して、プラグインが期待どおりに機能していることを確認します。

法律上の通知

Copyright © 2025 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 をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat