Skip to content

Commit 855e995

Browse files
authored
Rel v0.50.8 (#3457)
* revert ns cmd * fix#3421-helm-view-ns * fix#3439-add-vendor-config * fix#3453-add-gpu-cols * rel notes
1 parent 711a8b8 commit 855e995

33 files changed

+644
-196
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
NAME := k9s
2-
VERSION ?= v0.50.7
2+
VERSION ?= v0.50.8
33
PACKAGE := github.com/derailed/$(NAME)
44
OUTPUT_BIN ?= execs/${NAME}
55
GO_FLAGS ?=

README.md

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ Your donations will go a long way in keeping our servers lights on and beers in
2323
[![Go Report Card](https://goreportcard.com/badge/github.com/derailed/k9s?)](https://goreportcard.com/report/github.com/derailed/k9s)
2424
[![golangci badge](https://github.com/golangci/golangci-web/blob/master/src/assets/images/badge_a_plus_flat.svg)](https://golangci.com/r/github.com/derailed/k9s)
2525
[![codebeat badge](https://codebeat.co/badges/89e5a80e-dfe8-4426-acf6-6be781e0a12e)](https://codebeat.co/projects/github-com-derailed-k9s-master)
26-
[![Build Status](https://api.travis-ci.com/derailed/k9s.svg?branch=master)](https://travis-ci.com/derailed/k9s)
2726
[![Docker Repository on Quay](https://quay.io/repository/derailed/k9s/status "Docker Repository on Quay")](https://quay.io/repository/derailed/k9s)
2827
[![release](https://img.shields.io/github/release-pre/derailed/k9s.svg)](https://github.com/derailed/k9s/releases)
2928
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/mum4k/termdash/blob/master/LICENSE)
@@ -77,17 +76,6 @@ Wanna discuss K9s features with your fellow `K9sers` or simply show your support
7776

7877
---
7978

80-
## 🥳 A Word From Our Rhodium Sponsors...
81-
82-
Below are organizations that have opted to show their support and sponsor K9s.
83-
84-
<br/>
85-
<a href="https://panfactum.com"><img src="assets/sponsors/panfactum.png" alt="panfactum"></a>
86-
<br/>
87-
<br/>
88-
89-
---
90-
9179
## Installation
9280

9381
K9s is available on Linux, macOS and Windows platforms.
@@ -407,6 +395,10 @@ You can now override the context portForward default address configuration by se
407395
k9s:
408396
# Enable periodic refresh of resource browser windows. Default false
409397
liveViewAutoRefresh: false
398+
# !!New!! v0.50.8...
399+
# Extends the list of supported GPU vendors. The key is the vendor name, the value must correspond to k8s resource driver designation.
400+
gpuVendors:
401+
bozo: bozo/gpu
410402
# The path to screen dump. Default: '%temp_dir%/k9s-screens-%username%' (k9s info)
411403
screenDumpDir: /tmp/dumps
412404
# Represents ui poll intervals in seconds. Default 2secs

assets/sponsors/panfactum.png

-1.67 KB
Binary file not shown.

change_logs/release_v0.50.8.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<img src="https://github.com/derailed/k9s/master/assets/k9s.png" align="center" width="800" height="auto"/>
2+
3+
# Release v0.50.8
4+
5+
## Notes
6+
7+
Thank you to all that contributed with flushing out issues and enhancements for K9s!
8+
I'll try to mark some of these issues as fixed. But if you don't mind grab the latest rev
9+
and see if we're happier with some of the fixes!
10+
If you've filed an issue please help me verify and close.
11+
12+
Your support, kindness and awesome suggestions to make K9s better are, as ever, very much noted and appreciated!
13+
Also big thanks to all that have allocated their own time to help others on both slack and on this repo!!
14+
15+
As you may know, K9s is not pimped out by corps with deep pockets, thus if you feel K9s is helping your Kubernetes journey,
16+
please consider joining our [sponsorship program](https://github.com/sponsors/derailed) and/or make some noise on social! [@kitesurfer](https://twitter.com/kitesurfer)
17+
18+
On Slack? Please join us [K9slackers](https://join.slack.com/t/k9sers/shared_invite/zt-3360a389v-ElLHrb0Dp1kAXqYUItSAFA)
19+
20+
## Maintenance Release!
21+
22+
---
23+
24+
## Resolved Issues
25+
26+
* [#3453](https://github.com/derailed/k9s/issues/3453) [Feature Request] Add GPU column to pod/container view
27+
* [#3451](https://github.com/derailed/k9s/issues/3451) Weirdness when filtering namespaces
28+
* [#3439](https://github.com/derailed/k9s/issues/3438) Allow KnownGPUVendors customization
29+
30+
---
31+
32+
## Contributed PRs
33+
34+
Please be sure to give `Big Thanks!` and `ATTA Girls/Boys!` to all the fine contributors for making K9s better for all of us!!
35+
36+
* [#3437](https://github.com/derailed/k9s/pull/3437) feat: Add GPU usage to pod view
37+
* [#3421](https://github.com/derailed/k9s/pull/3421) Fix #3421 - can't switch namespaces in helm view
38+
* [#3356](https://github.com/derailed/k9s/pull/3356) allow skin to be selected via K9S_SKIN env var
39+
40+
---
41+
<img src="https://github.com/derailed/k9s/master/assets/imhotep_logo.png" width="32" height="auto"/> © 2025 Imhotep Software LLC. All materials licensed under [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0)#

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/derailed/k9s
22

3-
go 1.24.4
3+
go 1.24.3
44

55
require (
66
github.com/adrg/xdg v0.5.3
@@ -29,7 +29,7 @@ require (
2929
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394
3030
golang.org/x/text v0.26.0
3131
gopkg.in/yaml.v3 v3.0.1
32-
helm.sh/helm/v3 v3.18.3
32+
helm.sh/helm/v3 v3.18.4
3333
k8s.io/api v0.33.2
3434
k8s.io/apiextensions-apiserver v0.33.2
3535
k8s.io/apimachinery v0.33.2

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2604,8 +2604,8 @@ gorm.io/gorm v1.26.1 h1:ghB2gUI9FkS46luZtn6DLZ0f6ooBJ5IbVej2ENFDjRw=
26042604
gorm.io/gorm v1.26.1/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE=
26052605
gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o=
26062606
gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g=
2607-
helm.sh/helm/v3 v3.18.3 h1:+cvyGKgs7Jt7BN3Klmb4SsG4IkVpA7GAZVGvMz6VO4I=
2608-
helm.sh/helm/v3 v3.18.3/go.mod h1:wUc4n3txYBocM7S9RjTeZBN9T/b5MjffpcSsWEjSIpw=
2607+
helm.sh/helm/v3 v3.18.4 h1:pNhnHM3nAmDrxz6/UC+hfjDY4yeDATQCka2/87hkZXQ=
2608+
helm.sh/helm/v3 v3.18.4/go.mod h1:WVnwKARAw01iEdjpEkP7Ii1tT1pTPYfM1HsakFKM3LI=
26092609
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
26102610
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
26112611
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

internal/client/client.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ func (a *APIClient) ValidNamespaceNames() (NamespaceNames, error) {
270270

271271
ok, err := a.CanI(ClusterScope, NsGVR, "", ListAccess)
272272
if !ok || err != nil {
273+
a.cache.Add(cacheNSKey, NamespaceNames{}, cacheExpiry)
273274
return nil, fmt.Errorf("user not authorized to list all namespaces")
274275
}
275276

internal/config/config_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,9 @@ func TestConfigSaveFile(t *testing.T) {
561561
require.NoError(t, cfg.Load("testdata/configs/k9s.yaml", true))
562562

563563
cfg.K9s.RefreshRate = 100
564+
cfg.K9s.GPUVendors = map[string]string{
565+
"bozo": "bozo/gpu.com",
566+
}
564567
cfg.K9s.APIServerTimeout = "30s"
565568
cfg.K9s.ReadOnly = true
566569
cfg.K9s.Logger.TailCount = 500

internal/config/json/schemas/k9s.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@
88
"additionalProperties": false,
99
"properties": {
1010
"liveViewAutoRefresh": { "type": "boolean" },
11+
"gpuVendors": {
12+
"type": "object",
13+
"additionalProperties": {
14+
"type": "object",
15+
"properties": {
16+
"vendor": { "type": "string" },
17+
"model": { "type": "string" }
18+
},
19+
"required": ["vendor", "model"]
20+
}
21+
},
1122
"screenDumpDir": {"type": "string"},
1223
"refreshRate": { "type": "integer" },
1324
"apiServerTimeout": { "type": "string" },

internal/config/k9s.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@ import (
1919
"github.com/derailed/k9s/internal/slogs"
2020
)
2121

22-
var KnownGPUVendors = map[string]string{
22+
type gpuVendors map[string]string
23+
24+
// KnownGPUVendors tracks a set of known GPU vendors.
25+
var KnownGPUVendors = defaultGPUVendors
26+
27+
var defaultGPUVendors = gpuVendors{
2328
"nvidia": "nvidia.com/gpu",
2429
"amd": "amd.com/gpu",
2530
"intel": "gpu.intel.com/i915",
@@ -28,6 +33,7 @@ var KnownGPUVendors = map[string]string{
2833
// K9s tracks K9s configuration options.
2934
type K9s struct {
3035
LiveViewAutoRefresh bool `json:"liveViewAutoRefresh" yaml:"liveViewAutoRefresh"`
36+
GPUVendors gpuVendors `json:"gpuVendors" yaml:"gpuVendors"`
3137
ScreenDumpDir string `json:"screenDumpDir" yaml:"screenDumpDir,omitempty"`
3238
RefreshRate int `json:"refreshRate" yaml:"refreshRate"`
3339
APIServerTimeout string `json:"apiServerTimeout" yaml:"apiServerTimeout"`
@@ -60,6 +66,7 @@ type K9s struct {
6066
func NewK9s(conn client.Connection, ks data.KubeSettings) *K9s {
6167
return &K9s{
6268
RefreshRate: defaultRefreshRate,
69+
GPUVendors: make(gpuVendors),
6370
MaxConnRetry: defaultMaxConnRetry,
6471
APIServerTimeout: client.DefaultCallTimeoutDuration.String(),
6572
ScreenDumpDir: AppDumpsDir,
@@ -121,6 +128,10 @@ func (k *K9s) Merge(k1 *K9s) {
121128
return
122129
}
123130

131+
for k, v := range k1.GPUVendors {
132+
KnownGPUVendors[k] = v
133+
}
134+
124135
k.LiveViewAutoRefresh = k1.LiveViewAutoRefresh
125136
k.DefaultView = k1.DefaultView
126137
k.ScreenDumpDir = k1.ScreenDumpDir

0 commit comments

Comments
 (0)