插件
概览
K9s 允许你通过自定义插件来扩展命令行和工具功能。K9s会在 $XDG_CONFIG_HOME/k9s/plugin.yml
中查找所有可用的插件。插件的定义如下:
- Shortcut 选项表示用户激活插件时可能键入的快捷键组合
- Description 将显示在 k9s 菜单中与快捷键相邻的位置
- Scopes 定义每个插件相关联的视图所涉及的资源名称/简称的集合。可以使用
all
来为所有视图提供这个快捷键。 - Command 表示插件激活时运行的特定命令
- Background 指定命令是否在后台运行
- Args 指定应用于以上命令的各种参数
K9s 提供了其他环境变量用于自定义插件参数。目前,可用的环境变量如下所示:
$NAMESPACE
– 选定的资源命名空间$NAME
– 选定的资源名称$CONTAINER
– 当前容器(如果适用)$FILTER
– 当前的过滤器(如果有的话)$KUBECONFIG
– KubeConfig 的位置。$CLUSTER
活动集群名称$CONTEXT
活动上下文名称$USER
活动用户$GROUPS
活动用户组$POD
在容器视图中时$COL-<RESOURCE_COLUMN_NAME>
使用给定的视图资源列名称。必须以COL-
为前缀!
注意:浏览一下由 K9s 社区友人贡献的一些自定义插件。
功能正在开发中... 随着这个特性的成熟,选项和布局可能会发生变化。
示例
这个示例定义了一个插件,用于使用 ctrl-l
快捷键来查看选定 Pod 的日志。
# $XDG_CONFIG_HOME/k9s/plugin.yml
plugin:
# 定义一个插件,通过 `ctrl-l` 快捷键在 pod 视图中查看日志。
fred:
# 定义调用插件的快捷键
shortCut: Ctrl-L
# 在 K9s 菜单中显示的内容
description: Pod logs
# 支持此快捷键的视图集合。(可以使用 `all`)
scopes:
- po
# 调用插件时运行的命令,这里也可以使用 Krew 插件!
command: kubectl
# 是否在后台模式下运行命令
background: false
# 定义命令参数
args:
- logs
- -f
- $NAME
- -n
- $NAMESPACE
- --context
- $CONTEXT
