You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Via [Winget](https://github.com/microsoft/winget-cli) for Windows
@@ -171,7 +171,7 @@ Binaries for Linux, Windows and Mac are available as tarballs in the [release pa
171
171
172
172
## Building From Source
173
173
174
-
K9s is currently using GO v1.22.X or above.
174
+
K9s is currently using GO v1.23.X or above.
175
175
In order to build K9s from source you must:
176
176
177
177
1. Clone the repo
@@ -362,6 +362,8 @@ K9s uses aliases to navigate most K8s resources.
362
362
| To view and switch to another Kubernetes context (Pod view) | `:`ctx⏎ | |
363
363
| To view and switch directly to another Kubernetes context (Last used view) | `:`ctx context-name⏎ | |
364
364
| To view and switch to another Kubernetes namespace | `:`ns⏎ | |
365
+
| To switch back to the last active command (like how "cd -" works) | `-` | Navigation that adds breadcrumbs to the bottom are not commands |
366
+
| To go back and forward through the command history | back: `[`, forward: `]` | Same as above |
365
367
| To view all saved resources | `:`screendump or sd⏎ | |
366
368
| To delete a resource (TAB and ENTER to confirm) | `ctrl-d` | |
367
369
| To kill a resource (no confirmation dialog, equivalent to kubectl delete --now) | `ctrl-k` | |
@@ -396,7 +398,7 @@ You can now override the context portForward default address configuration by se
396
398
maxConnRetry: 5
397
399
# Indicates whether modification commands like delete/kill/edit are disabled. Default is false
398
400
readOnly: false
399
-
# Toggles whether k9s should exit when CTRL-C is pressed. When set to true, you will need to exist k9s via the :quit command. Default is false.
401
+
# Toggles whether k9s should exit when CTRL-C is pressed. When set to true, you will need to exit k9s via the :quit command. Default is false.
400
402
noExitOnCtrlC: false
401
403
#UI settings
402
404
ui:
@@ -411,13 +413,13 @@ You can now override the context portForward default address configuration by se
411
413
noIcons: false
412
414
# Toggles reactive UI. This option provide for watching on disk artifacts changes and update the UI live Defaults to false.
413
415
reactive: false
414
-
# By default all contexts wil use the dracula skin unless explicitly overridden in the context config file.
416
+
# By default all contexts will use the dracula skin unless explicitly overridden in the context config file.
415
417
skin: dracula # => assumes the file skins/dracula.yaml is present in the $XDG_DATA_HOME/k9s/skins directory
416
418
# Allows to set certain views default fullscreen mode. (yaml, helm history, describe, value_extender, details, logs) Default false
417
419
defaultsToFullScreen: false
418
420
# Toggles icons display as not all terminal support these chars.
419
421
noIcons: false
420
-
# Toggles whether k9s should check for the latest revision from the Github repository releases. Default is false.
422
+
# Toggles whether k9s should check for the latest revision from the GitHub repository releases. Default is false.
421
423
skipLatestRevCheck: false
422
424
# When altering kubeconfig or using multiple kube configs, k9s will clean up clusters configurations that are no longer in use. Setting this flag to true will keep k9s from cleaning up inactive cluster configs. Defaults to false.
423
425
keepMissingClusters: false
@@ -431,6 +433,8 @@ You can now override the context portForward default address configuration by se
431
433
sinceSeconds: 300 # => tail the last 5 mins.
432
434
# Toggles log line wrap. Default false
433
435
textWrap: false
436
+
# Autoscroll in logs will be disabled. Default is false.
437
+
disableAutoscroll: false
434
438
# Toggles log line timestamp info. Default false
435
439
showTime: false
436
440
# Provide shell pod customization when nodeShell feature gate is enabled!
@@ -563,6 +567,13 @@ In order to surface hotkeys globally please follow these steps:
563
567
564
568
---
565
569
570
+
## Port Forwarding over websockets
571
+
572
+
K9s follows `kubectl` feature flag environment variables to enable/disable port-forwarding over websockets. (default enabled in>1.30)
573
+
To disable Websocket support, set`KUBECTL_PORT_FORWARD_WEBSOCKETS=false`
574
+
575
+
---
576
+
566
577
## FastForwards
567
578
568
579
As of v0.25.0, you can leverage the `FastForwards` feature to tell K9s how to default port-forwards. In situations where you are dealing with multiple containers or containers exposing multiple ports, it can be cumbersome to specify the desired port-forward from the dialog as in most cases, you already know which container/port tuple you desire. For these use cases, you can now annotate your manifests with the following annotations:
@@ -620,7 +631,25 @@ The annotation value must specify a container to forward to as well as a local p
620
631
621
632
You can change which columns shows up for a given resource via custom views. To surface this feature, you will need to create a new configuration file, namely `$XDG_CONFIG_HOME/k9s/views.yaml`. This file leverages GVR (Group/Version/Resource) to configure the associated table view columns. If no GVR is found for a view the default rendering will take over (ie what we have now). Going wide will add all the remaining columns that are available on the given resource after your custom columns. To boot, you can edit your views config file and tune your resources views live!
622
633
623
-
> NOTE: This is experimental and will most likely change as we iron this out!
634
+
📢 🎉 As of `release v0.40.0` you can specify json parse expressions to further customize your resources rendering.
Where `:json_parse_expression` represents an expression to pull a specific snippet out of the resource manifest.
641
+
Similar to `kubectl -o custom-columns` command. This expression is optional.
642
+
643
+
Additionally, you can specify column attributes to further tailor the column rendering.
644
+
To use this you will need to add a `|` indicator followed by your rendering bits.
645
+
You can have one or more of the following attributes:
646
+
647
+
*`T` ->time column indicator
648
+
*`N` -> number column indicator
649
+
*`W` -> turns on wide column aka only shows whilein wide mode. Defaults to the standard resource definition when present.
650
+
*`H` -> Hides the column
651
+
*`L` -> Left align (default)
652
+
*`R` -> Right align
624
653
625
654
Here is a sample views configuration that customize a pods and services views.
626
655
@@ -630,7 +659,9 @@ views:
630
659
v1/pods:
631
660
columns:
632
661
- AGE
633
-
- NAMESPACE
662
+
- NAMESPACE|WR # => 🌚 Specifies the NAMESPACE column to be right aligned and only visible while in wide mode
663
+
- ZORG:.metadata.labels.fred\.io\.kubernetes\.blee # => 🌚 extract fred.io.kubernetes.blee label into it's own column
664
+
- BLEE:.metadata.annotations.blee|R # => 🌚 extract annotation blee into it's own column and right align it
634
665
- NAME
635
666
- IP
636
667
- NODE
@@ -645,6 +676,8 @@ views:
645
676
- CLUSTER-IP
646
677
```
647
678
679
+
> 🩻 NOTE: This is experimental and will most likely change as we iron this out!
680
+
648
681
---
649
682
650
683
## Plugins
@@ -654,15 +687,15 @@ K9s allows you to extend your command line and tooling by defining your very own
654
687
A plugin is defined as follows:
655
688
656
689
* Shortcut option represents the key combination a user would type to activate the plugin. Valid values are [a-z], Shift-[A-Z], Ctrl-[A-Z].
657
-
* Override option make that the default action related to the shortcut will be overrided by the plugin
690
+
* Override option make that the default action related to the shortcut will be overridden by the plugin
658
691
* Confirm option (when enabled) lets you see the command that is going to be executed and gives you an option to confirm or prevent execution
659
692
* Description will be printed next to the shortcut in the k9s menu
660
693
* Scopes defines a collection of resources names/short-names for the views associated with the plugin. You can specify `all` to provide this shortcut for all views.
661
694
* Command represents ad-hoc commands the plugin runs upon activation
662
695
* Background specifies whether or not the command runs in the background
663
696
* Args specifies the various arguments that should apply to the command above
664
697
* OverwriteOutput boolean option allows plugin developers to provide custom messages on plugin stdout execution. See example in [#2644](https://github.com/derailed/k9s/pull/2644)
665
-
* Dangerous boolean option enables disabling the plugin when read-only mode is set. See [#2604](https://github.com/derailed/k9s/issues/2604)
698
+
* Dangerous boolean option enables disabling the plugin when read-only mode is set. See [#2604](https://github.com/derailed/k9s/issues/2604)
666
699
667
700
K9s does provide additional environment variables for you to customize your plugins arguments. Currently, the available environment variables are as follows:
668
701
@@ -694,9 +727,9 @@ plugins:
694
727
fred:
695
728
shortCut: Ctrl-L
696
729
override: false
697
-
overwriteOutput: false
730
+
overwriteOutput: false
698
731
confirm: false
699
-
dangerous: false
732
+
dangerous: false
700
733
description: Pod logs
701
734
scopes:
702
735
- pods
@@ -937,7 +970,7 @@ k9s:
937
970
noIcons: false
938
971
# Toggles reactive UI. This option provide for watching on disk artifacts changes and update the UI live Defaults to false.
939
972
reactive: false
940
-
# By default all contexts wil use the dracula skin unless explicitly overridden in the context config file.
973
+
# By default all contexts will use the dracula skin unless explicitly overridden in the context config file.
941
974
skin: dracula # => assumes the file skins/dracula.yaml is present in the $XDG_DATA_HOME/k9s/skins directory
942
975
defaultsToFullScreen: false
943
976
skipLatestRevCheck: false
@@ -958,6 +991,7 @@ k9s:
958
991
buffer: 5000
959
992
sinceSeconds: -1
960
993
textWrap: false
994
+
disableAutoscroll: false
961
995
showTime: false
962
996
thresholds:
963
997
cpu:
@@ -1083,12 +1117,12 @@ to make this project a reality!
1083
1117
1084
1118
## Meet The Core Team!
1085
1119
1120
+
If you have chops in GO and K8s and would like to offer your time to help maintain and enhance this project, please reach out to me.
Copy file name to clipboardExpand all lines: change_logs/release_0.10.0.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ Most of the refactors are around K8s resource fetching and viewing as well as na
24
24
25
25
## Custom Skins Per Cluster
26
26
27
-
In this release, we've added support for skins at the cluster level. Do you want K9s to look differently based on which cluster you're connecting to? All you'll need is to name the skin file in the K9s home directory as follows `mycluster_skin.yml`. If no cluster specific skin file is found, the standard `skin.yml` file will be loaded if present. Please checkout the `skins` directory in this repo or PR me if you have cool skins you'd like to share with your fellow K9ers as they will be featured in these release notes and in the project README.
27
+
In this release, we've added support for skins at the cluster level. Do you want K9s to look differently based on which cluster you're connecting to? All you'll need is to name the skin file in the K9s home directory as follows `mycluster_skin.yml`. If no cluster specific skin file is found, the standard `skin.yml` file will be loaded if present. Please checkout the `skins` directory in this repo or PR me if you have cool skins you'd like to share with your fellow K9sers as they will be featured in these release notes and in the project README.
Copy file name to clipboardExpand all lines: change_logs/release_0.12.0.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Also if you dig this tool, please make some noise on social! [@kitesurfer](https
12
12
13
13
### Searchable Logs
14
14
15
-
There has been quiet a few demands for this feature. It should now be generally available in this drop. It works the same as the resource view ie `/fred`, you can also specify a fuzzy filter using `/-f blee-duh`. The paint is still fresh on that deal and not super confident that it will work nominally as I had to rework the logs to enable. So totally possible I've hosed something in the process.
15
+
There has been quite a few demands for this feature. It should now be generally available in this drop. It works the same as the resource view ie `/fred`, you can also specify a fuzzy filter using `/-f blee-duh`. The paint is still fresh on that deal and not super confident that it will work nominally as I had to rework the logs to enable. So totally possible I've hosed something in the process.
16
16
17
17
### APIServer Dud
18
18
@@ -38,7 +38,7 @@ k9s:
38
38
39
39
### K9s Slackers
40
40
41
-
I've enabled a [K9s slack channel](https://join.slack.com/t/k9sers/shared_invite/enQtOTAzNTczMDYwNjc5LWJlZjRkNzE2MzgzYWM0MzRiYjZhYTE3NDc1YjNhYmM2NTk2MjUxMWNkZGMzNjJiYzEyZmJiODBmZDYzOGQ5NWM) dedicated to all K9ers. This would be a place for us to meet and discuss ideas and use cases. I'll be honest here I am not a big slack afficionado as I don't do very well with interrupt drive workflows. But I think it would be a great resource for us all.
41
+
I've enabled a [K9s slack channel](https://join.slack.com/t/k9sers/shared_invite/enQtOTAzNTczMDYwNjc5LWJlZjRkNzE2MzgzYWM0MzRiYjZhYTE3NDc1YjNhYmM2NTk2MjUxMWNkZGMzNjJiYzEyZmJiODBmZDYzOGQ5NWM) dedicated to all K9sers. This would be a place for us to meet and discuss ideas and use cases. I'll be honest here I am not a big slack aficionado as I don't do very well with interrupt drive workflows. But I think it would be a great resource for us all.
42
42
43
43
NOTE: Please be kind to each others and threat everyone with respect as I would like this to be a safe and fun place for folks to hangout. Thank you for you support and understanding!!
0 commit comments