Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

7.4. プラグインの作成

プラグインは、CLI コマンドの作成に使用できるプログラミング言語またはスクリプトで作成できます。プラグインには必ずしもバイナリーコンポーネントが必要であるとは限りません。echosed、または grep などのオペレーティングシステムのユーティリティーに完全に依存させることができます。または、oc バイナリーに依存させることも可能です。

oc プラグインで唯一の必須要件として、plugin.yaml 記述子ファイルが必要となります。このファイルは、プラグインの登録に必要な最低限の属性を宣言する必要があり、検索の順序 のセクションで指定された場所に置かれる必要があります。

7.4.1. plugin.yaml 記述子

記述子ファイルは、以下の属性をサポートします。

name: "great-plugin"              # REQUIRED: the plug-in command name, to be invoked under 'kubectl'
shortDesc: "great-plugin plug-in" # REQUIRED: the command short description, for help
longDesc: ""                      # the command long description, for help
example: ""                       # command example(s), for help
command: "./example"              # REQUIRED: the command, binary, or script to invoke when running the plug-in
flags:                            # flags supported by the plug-in
  - name: "flag-name"             # REQUIRED for each flag: flag name
    shorthand: "f"                # short version of the flag name
    desc: "example flag"          # REQUIRED for each flag: flag description
    defValue: "extreme"           # default value of the flag
tree:                             # allows the declaration of subcommands
  - ...                           # subcommands support the same set of attributes

前述の記述子は great-plugin プラグインを宣言します。これには、-f | --flag-name という名前の 1 つのフラグが含まれます。これは以下を実行して呼び出すことができます。

$ oc plugin great-plugin -f value

プラグインが呼び出されると、記述子ファイルと同じディレクトリーにある example バイナリーまたはスクリプトが呼び出され、多くの引数および環境変数が渡されます。ランタイム属性へのアクセス のセクションでは、example コマンドがフラグ値およびその他のランタイムコンテキストにアクセスする方法について説明しています。