2.4. 使用插件扩展 OpenShift CLI

您可以针对默认的oc命令编写并安装插件,从而可以使用OpenShift Container Platform CLI执行新的及更复杂的任务。

2.4.1. 编写 CLI 插件

您可以使用任何可以编写命令行命令的编程语言或脚本为OpenShift Container Platform CLI编写插件。请注意,您无法使用插件来覆盖现有的 oc 命令。

流程

此过程创建一个简单的Bash插件,它的功能是在执行oc foo命令时将消息输出到终端。

  1. 创建一个名为oc-foo的文件。

    在命名插件文件时,请记住以下几点:

    • 该文件必须以 oc-kubectl- 开头,才能被识别为插件。
    • 文件名决定了调用该插件的命令。例如,可以通过 oc foo bar 命令调用文件名为 oc-foo-bar 的插件。如果希望命令中包含破折号,也可以使用下划线。例如,可以通过 oc foo-bar 命令调用文件名为 oc-foo_bar 的插件。
  2. 将以下内容添加到该文件中。

    #!/bin/bash
    
    # optional argument handling
    if [[ "$1" == "version" ]]
    then
        echo "1.0.0"
        exit 0
    fi
    
    # optional argument handling
    if [[ "$1" == "config" ]]
    then
        echo $KUBECONFIG
        exit 0
    fi
    
    echo "I am a plugin named kubectl-foo"

为 OpenShift Container Platform CLI 安装此插件后,可以使用 oc foo 命令调用。

其他资源

2.4.2. 安装和使用 CLI 插件

为 OpenShift Container Platform CLI 编写自定义插件后,您必须安装该插件以使用它提供的功能。

先决条件

  • 已安装oc CLI工具。
  • 您必须具有以 oc-kubectl- 开头的 CLI 插件文件。

流程

  1. 如有必要,将插件文件更新为可执行。

    $ chmod +x <plugin_file>
  2. 将文件放在PATH中的任何位置,例如/usr/local/bin/

    $ sudo mv <plugin_file> /usr/local/bin/.
  3. 运行 oc plugin list 以确保列出了插件。

    $ oc plugin list

    输出示例

    The following compatible plugins are available:
    
    /usr/local/bin/<plugin_file>

    如果您的插件没有被列出,请验证文件是否以 oc-kubectl- 开头,是否可执行,且位于 PATH 中。

  4. 调用插件引入的新命令或选项。

    例如,如果您从 Sample plug-in repository 构建并安装了 kubectl-ns 插件,则可以使用以下命令查看当前命名空间。

    $ oc ns

    请注意,调用插件的命令取决于插件文件名。例如,文件名为 oc-foo-bar的插件会被 oc foo bar 命令调用。