插件


概览

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

 返回



© 2020 Imhotep Software LLC. 所有材料均根据 Apache v2.0 许可。