1.3. 使用插件扩展CLI

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

1.3.1. 编写CLI插件

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

重要

OpenShift CLI插件目前是技术预览功能。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关详细信息,请参阅红帽技术预览功能支持范围

流程

此过程创建一个简单的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命令调用它。

其它资源

1.3.2. 安装和使用CLI插件

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

重要

OpenShift CLI插件目前是技术预览功能。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关详细信息,请参阅红帽技术预览功能支持范围

先决条件

  • 已安装oc CLI工具。
  • 有一个 CLI 插件文件,其文件名以 oc-kubectl-开始。

流程

  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 命令调用。