1.3. 使用插件扩展CLI
您可以针对默认的oc
命令编写并安装插件,从而可以使用OpenShift Container Platform CLI执行新的及更复杂的任务。
1.3.1. 编写CLI插件
您可以使用任何可以编写命令行命令的编程语言或脚本为OpenShift Container Platform CLI编写插件。请注意,您不能使用插件来覆盖现有的oc
命令。
OpenShift CLI插件目前是技术预览功能。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关详细信息,请参阅红帽技术预览功能支持范围 。
流程
此过程创建一个简单的Bash插件,它的功能是在执行oc foo
命令时将消息输出到终端。
创建一个名为
oc-foo
的文件。在命名插件文件时,请记住以下几点:
-
文件必须以
oc-
或kubectl-
开始。 -
文件名决定了调用这个插件的命令。例如,
oc foo bar
命令将会调用文件名为oc-foo-bar
的插件。如果希望命令中包含破折号,也可以使用下划线。例如,可以通过oc foo-bar
命令调用文件名为oc-foo_bar
的插件。
-
文件必须以
将以下内容添加到该文件中。
#!/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
命令调用它。
其它资源
- 查看 Sample plug-in repository 中使用 Go 编写的插件示例。
- 查看 CLI runtime repository 中的一组用来帮助使用 Go 编写插件的工具程序。
1.3.2. 安装和使用CLI插件
为OpenShift Container Platform CLI编写自定义插件后,必须安装它以使用它提供的功能。
OpenShift CLI插件目前是技术预览功能。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关详细信息,请参阅红帽技术预览功能支持范围 。
先决条件
-
已安装
oc
CLI工具。 -
有一个 CLI 插件文件,其文件名以
oc-
或kubectl-
开始。
流程
将插件文件设置为可执行文件。
$ chmod +x <plugin_file>
将文件放在
PATH
中的任何位置,例如/usr/local/bin/
。$ sudo mv <plugin_file> /usr/local/bin/.
运行
oc plugin list
以确认插件可以被列出。$ oc plugin list The following compatible plugins are available: /usr/local/bin/<plugin_file>
如果您的插件没有被列出,检查文件是否以
OC-
或kubectl-
开始,是否可执行,并在您的PATH
中。调用插件引入的新命令或选项。
例如,如果您从 Sample plug-in repository 构建并安装了kubectl-ns插件,则可以使用以下命令查看当前命名空间。
$ oc ns
请注意,调用插件的命令取决于插件的文件名。例如,文件名为
oc-foo-bar
的插件会被oc foo bar
命令调用。