9.7. Web コンソールをカスタマイズする


クラスター管理者は、動的プラグインを統合することで、OpenShift Container Platform の Web コンソールをカスタマイズできます。仮想マシン (VM) の所有者は、Virtualization ページのさまざまなタブから、これらのプラグインによって提供されるアクションを使用できるようになります。

9.7.1. 仮想マシンの一括操作を有効にする

仮想マシン (VM) の所有者が、バックアップやストレージ移行などの大規模な管理タスクを、複数の仮想マシンに対して同時に実行できるようにするには、Web コンソールで一括操作を可能にする動的プラグインを作成する必要があります。

この統合により、マルチ仮想マシン環境における手作業が削減され、カスタムアクションが Virtualization ページ内からネイティブな一括操作として選択可能になります。

前提条件

  • 動的プラグインを作成している。
  • クラスター管理者の権限がある。
  • OpenShift Virtualization がインストールされている OpenShift Container Platform クラスターへアクセスできる。

手順

  1. プラグインの設定ファイルに、console.action/provider 拡張機能を追加します。

    一括操作を有効にするには、VirtualMachine リソースの配列を対象とする contextId フィールドを使用する必要があります。

    console-extensions.json ファイルの抜粋例:

    {
       type: 'console.action/provider',
       properties: {
         contextId: 'kubevirt.io~v1~VirtualMachine[]',
         provider: {
           $codeRef: 'useSimpleBulkActions',
         },
       },
     }
    • properties.contextId は、KubeVirt プラグインがサポートを宣言する文字列を指定します。
    • properties.provider は、アクションアイテムを生成するソースコード内の React フックまたは関数を指定します。
  2. 拡張機能が参照するソースファイル内で、選択されたリソースの配列を処理するフックを実装します。

    プラグインの例:

    import {
      type ExtensionHook,
      AccessReviewResourceAttributes,
      Action,
    } from '@openshift-console/dynamic-plugin-sdk';
    import { V1VirtualMachine } from '@kubevirt-ui-ext/kubevirt-api/kubevirt';
    import { VirtualMachineModel } from '@kubevirt-ui-ext/kubevirt-api/console';
    import { useMemo } from 'react';
    
    const useSimpleBulkActions: ExtensionHook<Action[], (V1VirtualMachine & { cluster?: string })[]> = (
      vms,
    ) => {
      const areAllRunning = vms.every((vm) => vm.status?.printableStatus === 'Running');
      const isCrossCluster = new Set(vms.map((vm) => vm.cluster)).size > 1;
      const firstVm = vms[0];
    
      const accessReview: AccessReviewResourceAttributes = useMemo(
        () => ({
          cluster: firstVm?.cluster,
          group: VirtualMachineModel.apiGroup,
          name: firstVm?.metadata?.name,
          namespace: firstVm?.metadata?.namespace,
          resource: VirtualMachineModel.plural,
          verb: 'delete',
        }),
        [firstVm?.cluster, firstVm?.metadata?.name, firstVm?.metadata?.namespace],
      );
    
      const checkAllRunningAction: Action = useMemo(
        () => ({
          id: 'check-all-running',
          cta: () => console.log('All selected VMs are running?', areAllRunning),
          label: 'Check VMs are running',
          disabled: isCrossCluster,
          disabledTooltip: isCrossCluster ? 'VMs from different clusters detected' : '',
          accessReview,
        }),
        [areAllRunning, isCrossCluster, accessReview],
      );
    
      const actions = useMemo(() => [checkAllRunningAction], [checkAllRunningAction]);
      return [actions, true, null];
    };
    
    export default useSimpleBulkActions;

    前の例で示したプラグインは、選択されたすべての仮想マシンが実行されているかを確認し、ログメッセージをコンソールに出力します。

  3. プラグインをクラスターにデプロイします。

検証

  1. OpenShift Container Platform Web コンソールにログインします。
  2. 仮想マシンに対して一括操作を適用できることを確認します。

    1. Virtualization VirtualMachines に移動します。
    2. 既存の仮想マシンが 2 つ以上ある場合は、該当するチェックボックスを選択します。
    3. Actions ドロップダウンメニューをクリックします。作成したカスタムアクションが実行できることを確認します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る