自定义视图
概述
SneakCast v0.17.0 on The Beach! - Yup! sound is sucking but what a setting! K9s v0.40.0 -Column Blow- Sneak peek
K9s 支持在表格视图中自定义资源列。因此,您可以告诉它您希望显示哪些列,以及它们的显示顺序。
要使用此功能,您需要创建一个新的配置文件,即 $XDG_CONFIG_HOME/k9s/views.yaml
。该文件利用 GVR (Group/Version/Resource) 来配置相关的表格视图列。如果某个视图没有找到对应的 GVR,则将使用默认渲染方式(即我们现在的显示方式)。进入宽屏模式(wide mode)将会在您的自定义列之后,添加该资源上所有可用的剩余列。此外,您可以编辑您的视图配置文件并实时调整您的资源视图!
此外,您可以使用 $XDG_DATA_HOME/ClusterX/ContextY/views.yaml
为特定集群定制您的自定义视图
。
📢 🎉 从 v0.40.X 版本
开始,您可以指定 json 解析表达式来进一步自定义您的资源渲染。
新的列语法如下:
COLUMN_NAME< :json_parse_expression >< |column_attributes >
其中 :json_parse_expression
代表一个从资源清单(manifest)中提取特定片段的表达式。类似于 kubectl -o custom-columns
命令。此表达式是可选的。
重要!列必须是有效的 YAML 字符串。因此,如果您的列定义包含非字母字符,它们必须使用单引号/双引号或进行转义。
注意!请务必关注 k9s 的日志,因为任何与自定义视图规范相关的问题都只会在日志中显示。
另外,您可以指定列属性来进一步调整列的渲染。要使用此功能,您需要添加一个 |
指示符,后跟您的渲染位。您可以拥有以下一个或多个属性:
T
-> 时间列指示符N
-> 数字列指示符W
-> 开启宽列,即仅在宽屏模式下显示。如果存在,则默认为标准资源定义。S
-> 确保列可见且不是宽列。如果标准资源定义中存在wide
,则会覆盖它。H
-> 隐藏该列L
-> 左对齐(默认)R
-> 右对齐
示例
这是一个自定义 Pods 和 Services 视图的示例视图配置。
# $XDG_CONFIG_HOME/k9s/views.yaml
views:
# Alters the pod view column layout. Uses GVR as key
v1/pods:
# Overrides default sort column
sortColumn: AGE:asc
columns:
- AGE
- NAMESPACE|WR # => 🌚 Specifies the NAMESPACE column to be right aligned and only visible while in wide mode
- ZORG:.metadata.labels.fred\.io\.kubernetes\.blee # => 🌚 extract fred.io.kubernetes.blee label into it's own column
- BLEE:.metadata.annotations.blee|R # => 🌚 extract annotation blee into it's own column and right align it
- NAME
- BLEE:.metadata.annotations.blee|R # => 🌚 extract annotation blee into it's own column and right align it
- IP
- NODE
- STATUS
- READY
- MEM/RL|S # => 🌚 Overrides std resource default wide attribute via `S` for `Show`
- '%MEM/R|' # => NOTE! column names with non alpha names need to be quoted as columns must be strings!
v1/pods@fred: # => 🌚 As of v0.40.6, you can now further customize pod view for a specific namespace
# Overrides default sort column
sortColumn: NAME:asc
columns:
- NAME|WR
- AGE
v1/pods@fred: # => 🌚 New v0.40.6! Customize columns for a given resource and namespace!
columns:
- AGE
- NAME|WR
v1/pods@kube*: # => 🌚 New v0.40.6! You can also specify a namespace using a regular expression.
columns:
- NAME
- AGE
- LABELS
cool-kid: # => 🌚 New v0.40.8! You can also reference a specific alias and display a custom view for it
columns:
- AGE
- NAMESPACE|WR
# Alters the service view column layout
v1/services:
columns:
- AGE
- NAMESPACE
- NAME
- TYPE
- CLUSTER-IP
