7.4. プラグインの作成
プラグインは、CLI コマンドの作成に使用できるプログラミング言語またはスクリプトで作成できます。プラグインには必ずしもバイナリーコンポーネントが必要であるとは限りません。echo
、sed
、または 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
コマンドがフラグ値およびその他のランタイムコンテキストにアクセスする方法について説明しています。