Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Shell exec failed" on 0.26.4 to 0.26.6 Windows OS #1787

Closed
ehfd opened this issue Sep 29, 2022 · 26 comments
Closed

"Shell exec failed" on 0.26.4 to 0.26.6 Windows OS #1787

ehfd opened this issue Sep 29, 2022 · 26 comments
Labels
question Further information is requested

Comments

@ehfd
Copy link

ehfd commented Sep 29, 2022




Describe the bug
A clear and concise description of what the bug is.

Shell does not start on version 0.26.4 to 0.26.6 on Windows from a pod.

To Reproduce
Steps to reproduce the behavior:

  1. On Windows, use K9s 0.26.4 to 0.26.6
  2. Use <s> on a pod to start a shell
  3. See error "Shell exec failed"

Expected behavior
A clear and concise description of what you expected to happen.

Shell should be started. It fails with "Shell exec failed".

Versions (please complete the following information):

  • OS: Windows
  • K9s: 0.26.4 to 0.26.6, WORKS on 0.26.3 and kubectl exec -it pod -- /bin/bash
  • K8s: 1.22.12

Additional context
Add any other context about the problem here.

Works on 0.26.3. Does not work on 0.26.4 to 0.26.6.

@ehfd ehfd changed the title "Shell exec failed" on 0.26.4 to 0.26.6 "Shell exec failed" on 0.26.4 to 0.26.6 Windows OS Sep 29, 2022
@derailed derailed added the question Further information is requested label Sep 29, 2022
@derailed
Copy link
Owner

@ehfd Can you include k9s debug logs? It should print out the command it's trying to exec. Once you see that command cp/paste in your shell and see what it's complaining about. There was a fix with exec for linux in 0.26.4, which could have hosed windows??

@ehfd
Copy link
Author

ehfd commented Sep 29, 2022

@derailed Before I do that, can I understand that as "you could not reproduce it yourself"?

@ehfd
Copy link
Author

ehfd commented Sep 29, 2022

�[90m11:37PM�[0m �[32mINF�[0m 🐶 K9s starting up...
�[90m11:37PM�[0m �[31mWRN�[0m Unable to locate K9s config. Generating new configuration...
�[90m11:37PM�[0m �[32mINF�[0m ✅ Kubernetes connectivity
�[90m11:37PM�[0m �[31mWRN�[0m No context specific skin file found -- C:\Users\User\AppData\Local\k9s\nautilus_skin.yml
�[90m11:37PM�[0m �[31mWRN�[0m No skin file found -- C:\Users\User\AppData\Local\k9s\skin.yml. Loading stock skins.
�[90m11:37PM�[0m �[31mWRN�[0m Custom view load failed C:\Users\User\AppData\Local\k9s\views.yml �[36merror=�[0m�[31m"open C:\\Users\\User\\AppData\\Local\\k9s\\views.yml: The system cannot find the file specified."�[0m
�[90m11:37PM�[0m �[31mWRN�[0m CustomView watcher failed �[36merror=�[0m�[31m"GetFileAttributes: The system cannot find the file specified."�[0m
�[90m11:37PM�[0m �[31mWRN�[0m os detect failed �[36merror=�[0m�[31m"no os information available"�[0m
�[90m11:37PM�[0m �[1m�[31mERR�[0m�[0m kubectl command is not in your path �[36merror=�[0m�[31m"exec: \"kubectl\": cannot run executable found relative to current directory"�[0m
�[90m11:37PM�[0m �[1m�[31mERR�[0m�[0m Shell exec failed
�[90m11:37PM�[0m �[31mWRN�[0m os detect failed �[36merror=�[0m�[31m"no os information available"�[0m
�[90m11:37PM�[0m �[1m�[31mERR�[0m�[0m kubectl command is not in your path �[36merror=�[0m�[31m"exec: \"kubectl\": cannot run executable found relative to current directory"�[0m
�[90m11:37PM�[0m �[1m�[31mERR�[0m�[0m Shell exec failed
�[90m11:37PM�[0m �[1m�[31mERR�[0m�[0m kubectl command is not in your path �[36merror=�[0m�[31m"exec: \"kubectl\": cannot run executable found relative to current directory"�[0m
�[90m11:37PM�[0m �[1m�[31mERR�[0m�[0m Edit exec failed
�[90m11:37PM�[0m �[1m�[31mERR�[0m�[0m kubectl command is not in your path �[36merror=�[0m�[31m"exec: \"kubectl\": cannot run executable found relative to current directory"�[0m
�[90m11:37PM�[0m �[1m�[31mERR�[0m�[0m Edit exec failed
�[90m11:37PM�[0m �[1m�[31mERR�[0m�[0m kubectl command is not in your path �[36merror=�[0m�[31m"exec: \"kubectl\": cannot run executable found relative to current directory"�[0m
�[90m11:37PM�[0m �[1m�[31mERR�[0m�[0m Edit exec failed

Ahh, I think I might understand that. kubectl is not in my path. But why does it work until 0.26.3 and not from 0.26.4?
It works in 0.26.3 without kubectl needed in the path.

@slimus
Copy link
Collaborator

slimus commented Oct 4, 2022

I guess because we updated k8s libs?

@ehfd
Copy link
Author

ehfd commented Oct 7, 2022

@slimus Is K9s supposed to have kubectl externally for it to run properly then?

@slimus
Copy link
Collaborator

slimus commented Oct 12, 2022

@ehfd yes. kubectl should be presented in your system and available from your PATH.

@ehfd
Copy link
Author

ehfd commented Oct 12, 2022

Then, the difference until 0.26.3 was that everything worked when I just put kubectl in the same directory as k9s. Without PATH.

@slimus
Copy link
Collaborator

slimus commented Oct 12, 2022

I'm not sure, but maybe this is related to your issue https://go.dev/src/os/exec/exec.go

// The functions Command and LookPath look for a program
// in the directories listed in the current path, following the
// conventions of the host operating system.
// Operating systems have for decades included the current
// directory in this search, sometimes implicitly and sometimes
// configured explicitly that way by default.
// Modern practice is that including the current directory
// is usually unexpected and often leads to security problems.

// To avoid those security problems, as of Go 1.19, this package will not resolve a program
// using an implicit or explicit path entry relative to the current directory.
// That is, if you run exec.LookPath("go"), it will not successfully return
// ./go on Unix nor .\go.exe on Windows, no matter how the path is configured.
// Instead, if the usual path algorithms would result in that answer,
// these functions return an error err satisfying errors.Is(err, ErrDot).

@ehfd
Copy link
Author

ehfd commented Oct 13, 2022

Well, unfortunate then. Probably a recent change.

@ehfd
Copy link
Author

ehfd commented Oct 13, 2022

// These will not find and run ./prog or .\prog.exe,
// no matter how the current path is configured.
//
// Code that always wants to run a program from the current directory
// can be rewritten to say "./prog" instead of "prog".
//
// Code that insists on including results from relative path entries
// can instead override the error using an errors.Is check:
//
//	path, err := exec.LookPath("prog")
//	if errors.Is(err, exec.ErrDot) {
//		err = nil
//	}
//	if err != nil {
//		log.Fatal(err)
//	}
//	use(path)
//
// and
//
//	cmd := exec.Command("prog")
//	if errors.Is(cmd.Err, exec.ErrDot) {
//		cmd.Err = nil
//	}
//	if err := cmd.Run(); err != nil {
//		log.Fatal(err)
//	}
//
// Setting the environment variable GODEBUG=execerrdot=0
// disables generation of ErrDot entirely, temporarily restoring the pre-Go 1.19
// behavior for programs that are unable to apply more targeted fixes.
// A future version of Go may remove support for this variable.
//
// Before adding such overrides, make sure you understand the
// security implications of doing so.
// See https://go.dev/blog/path-security for more information.

Right below that line, it does show how it can detect executables in the current directory, though.
And I guess k9s will have no harm changing the error behavior to this.

@slimus
Copy link
Collaborator

slimus commented Oct 13, 2022

@ehfd it would be nice if you can create PR. Thanks!

@ehfd
Copy link
Author

ehfd commented Oct 13, 2022

Will consider it. Could you point where this relevant code is tho?

@slimus
Copy link
Collaborator

slimus commented Oct 13, 2022

For sure:

func runK(a *App, opts shellOpts) bool {

@ehfd
Copy link
Author

ehfd commented Oct 14, 2022

PR #1802

@ehfd
Copy link
Author

ehfd commented Oct 29, 2022

This is what @slimus wrote in #1802:

@derailed I was thinking about this problem for the last couple of days. And I have an idea of how to fix it and don't have any global security issues. We can add a new config execKubectl: kubectl (default value) and use it in our code. @ehfd and others can change it to execKubectl: ./kubectl. And also with this change, I can use OpenShift cli execKubectl: oc instead of kubectl, because OpenShift cluster has its own cli tool. What do you think about it? Thanks a lot.

Rather than this, what about adding a command line option like --localkubectl? I tend to just remove the %LocalAppData%\k9s folder when I'm finished in portable purposes. So basically, if that command line option is invoked, the code block I wrote in #1802 is conditionally activated. And for OpenShift, we can add another command line option --execkubectl for changing the name of the executable.

@derailed
Copy link
Owner

@slimus Thank you Alex!! I thought this made perfect sense too! We should try a PR for it, as @ehfd PR PR would not have worked unless the cmd is specified as ./kubetcl or add . to the PATH. The quick resolve here imho it to use something like direnv to set the path to your kubectl of choice or alias kubectl as oc. This feel pretty edge case to me as most respectable k8s cluster admins would setup kubectl and k9s in their shell and be done already. On the other hand if one want to use k8s envs in a temporal fashion, then perhaps the container route is advisable.
That said, I am definitely not keen to introduce 2 CLI args to fit that bill...

@AntonioND
Copy link
Contributor

AntonioND commented Feb 2, 2023

I'm having this issue with version v0.27.2, except I have the kubectl binary in my PATH (installed by the Kubernetes plugin for VS Code) C:\Users\<username>\.azure-kubectl\kubectl.exe.

If I close K9s I can invoke kubectl as usual without specifying the full path, but K9s doesn't find it.

@obamor
Copy link

obamor commented Feb 7, 2023

Hello, I have the same Issue as @AntonioND

Windown 11
k9s: v0.27.2
kubectl: v1.26.1 (C:\ProgramData\chocolatey\bin\kubectl.exe)

kubectl is available via PATH

Logs of k9s

�[90m6:27PM�[0m �[1m�[31mERR�[0m�[0m kubectl command is not in your path �[36merror=�[0m�[31m"exec: \"kubectl\": cannot run executable found relative to current directory"�[0m
�[90m6:27PM�[0m �[1m�[31mERR�[0m�[0m Edit exec failed

@AntonioND
Copy link
Contributor

AntonioND commented Feb 9, 2023

I've modified k9s to print the PATH right before attempting to run kubectl, and the list of directories includes the one where I have kubectl.exe. I've decided to do a bit of digging, and I think it's a problem in how the Go library behaves when it detects the binary in the current working directory.

This is LookPath():
https://cs.opensource.google/go/go/+/fd208c8850cdfe84469d3e4ef9bd55e2e0cece70:src/os/exec/lp_windows.go;l=90-129

And this is the documentation of DotError:
https://cs.opensource.google/go/go/+/fd208c8850cdfe84469d3e4ef9bd55e2e0cece70:src/os/exec/exec.go;l=1296-1303

I've just realized I had a kubectl.exe in the same directory as my k9s.exe. LookPath() detects it and ignores everything else I have in my PATH (where I have kubectl.exe in not one, but two locations!). After removing the kubectl.exe of my working directory, it can find it in my PATH.

EDIT: I also tried to set GODEBUG=execerrdot=0 but it didn't work for some reason https://cs.opensource.google/go/go/+/fd208c8850cdfe84469d3e4ef9bd55e2e0cece70:src/os/exec/exec.go;l=83-86

@AntonioND
Copy link
Contributor

I've created a PR to detect failures due to my problem and write the reason to the log.

derailed pushed a commit that referenced this issue Feb 11, 2023
`exec.LookPath()` and `exec.Command()` aren't supposed to work with
binaries that are located in the current working directory:

https://cs.opensource.google/go/go/+/fd208c8850cdfe84469d3e4ef9bd55e2e0cece70:src/os/exec/exec.go

If `kubectl` is found in the current working directory, `LookPath()`
will return `ErrDot` even if it is also found in any other directory in
the `PATH`.

This patch detects this condition and shows a meaningful error message
in the log so that the user knows the reason why `kubectl` couldn't be
executed.

Related: #1787
@ehfd
Copy link
Author

ehfd commented Feb 12, 2023

I still think that there should be a command-line option and/or k9s configuration to allow this.

@slimus
Copy link
Collaborator

slimus commented Feb 15, 2023

@ehfd let's create a new issue with improvements and close this one. What do you think?

@ehfd
Copy link
Author

ehfd commented Feb 16, 2023

@slimus at your convenience.

@PapaySail
Copy link

scoop install kubectl is a solution for me.

agrimrules added a commit to agrimrules/k9s that referenced this issue Apr 28, 2023
* wins palette

* Add Nord skin (#1103)

* fix bugz

* when k9s --insecure-skip-tls-verify is set, kubectl would set the same (#1101)

* when k9s --insecure-skip-tls-verify is set, kubectl would set the same

* check insecure flag nil

* add rel notes

* Update docs

* checkpoint

* checkpoint

* Solarized light skin (#1114)

@leg100 Thank you Louis for this new K9s skin!

* Dynamically load style for help from skin (#1113)

* fix shell issue + bugz

* rev up

* windows shell fix

* Update color codes to match iTerm2's Solarized Dark theme, make highlighted text on cursor line legible. (#1134)

* feat(log): Support of kubectl.kubernetes.io/default-logs-container an… (#1133)

* feat(log): Support of kubectl.kubernetes.io/default-logs-container annotation

Closes #1057

* feat(log): Support of kubectl.kubernetes.io/default-logs-container annotation

refactored to return ok bool with the container

Closes #1057

* feat(log): Support of kubectl.kubernetes.io/default-logs-container annotation

refactored getDefaultLogContainer
log if container was not found

* feat(log): Add all containers toggle (#1141)

Closes #1138

* build: add more variables (#1136)

Add more variables and make it overridable so project maintainers
can customize the build of k9s.

* fix #1163 #1153 #1151 #1140 #1137 #1132 #1131

* fix cron triggers

* fix #1169 index out of range (#1170)

* Fix #1163 add prompt styles (#1172)

* fix cron triggers (#1171)

* add rel notes

* fix cron triggers again...

* K9s 1167/cronjob trigger with feelings (#1179)

* fix cron triggers

* fix cron triggers again...

* fix #1182 #1167 (#1183)

* update rel notes

* fix typo (#1185)

Co-authored-by: James3 Li(李麒傑) <james3_li@asus.com>

* K9s 1186: prev logs (#1190)

* fix cron triggers

* fix cron triggers again...

* fix #1186

* update rel notes

* Disable pod view for ExternalName services (#1196)

Previously all pods in the service's namespace were shown.

* Fix info styles in stock them to match defaults in styles.go (#1205)

* Fix environement variable substitution bug at plugin argument (#1198)

* Update copyright year in release note (#1177)

* add support for flux reconcile/suspend/resume (#1125)

# Shift-T (with confirmation) to toggle helm releases or kustomizations suspend and resume
# Shift-R (no confirmation) to reconcile a git source or a helm release or a kustomization

* Make k9s configuration compatible with XDG Base Directory Specification to not pollute user home directories. (#1025)

* Make k9s configuration compatible with XDG Base Directory Specification to not pollute user home directories.

* Update readme to include new configuration directory.

* Replace spaces with tabs.. :)

* Remove extra backslash in Windows configuration directory path.

Co-authored-by: Fernand Galiana <fernand.galiana@gmail.com>

* Support bash's process substitution on kubeconfig flag (#1211)

* Support GVR environment variables for plugin (#1213)

* Add resource name as plugin environment variable

* Add support of RESOURCE_GROUP & RESOURCE_VERSION too

* Revert "Support bash's process substitution on kubeconfig flag (#1211)" (#1217)

This reverts commit 274d841380ac75c06a1397f74d15d1d56c26fdc0.

* K9s: rev 0.24.15 (#1218)

* fix cron triggers

* fix cron triggers again...

* fix #1203 #1206

* cleaning up

* revert persistent flag

* fix #1181 + update docs

* cleaning up

* cleaning up

* cleaning up

* update docs

* Added red skin for production envs (#1236)

* Add abbreviation for ReadWriteOncePod PV access mode (#1227)

* Bump k8s.io dependencies to 0.22.0

* Add abbreviation for ReadWriteOncePod PV access mode

* build: bump to use go1.17 (#1232)

Signed-off-by: Rui Chen <rui@chenrui.dev>

* update build dependencies

* feat: replace blurry k8s logo with sharper version (#1261)

* Skin to preserve your terminal session background color (#1266)

* Adding note on popeye config (#1264)

* #1268 age sorting (#1269)

* #1268 age sorting

* cleaning up

* Node shell pods tolerate all taints (#1249)

* Improve contrast by changing the table `cursorFgColor` to match the `bgColor` (#1250)

* Bump github.com/adrg/xdg from 0.3.0 to 0.3.4 (#1254)

Bumps [github.com/adrg/xdg](https://github.com/adrg/xdg) from 0.3.0 to 0.3.4.
- [Release notes](https://github.com/adrg/xdg/releases)
- [Commits](https://github.com/adrg/xdg/compare/v0.3.0...v0.3.4)

---
updated-dependencies:
- dependency-name: github.com/adrg/xdg
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github.com/fsnotify/fsnotify from 1.4.9 to 1.5.1 (#1246)

Bumps [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) from 1.4.9 to 1.5.1.
- [Release notes](https://github.com/fsnotify/fsnotify/releases)
- [Changelog](https://github.com/fsnotify/fsnotify/blob/master/CHANGELOG.md)
- [Commits](https://github.com/fsnotify/fsnotify/compare/v1.4.9...v1.5.1)

---
updated-dependencies:
- dependency-name: github.com/fsnotify/fsnotify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github.com/rs/zerolog from 1.23.0 to 1.25.0 (#1263)

Bumps [github.com/rs/zerolog](https://github.com/rs/zerolog) from 1.23.0 to 1.25.0.
- [Release notes](https://github.com/rs/zerolog/releases)
- [Commits](https://github.com/rs/zerolog/compare/v1.23.0...v1.25.0)

---
updated-dependencies:
- dependency-name: github.com/rs/zerolog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernand Galiana <fernand.galiana@gmail.com>

* Bump alpine from 3.14.1 to 3.14.2 (#1245)

Bumps alpine from 3.14.1 to 3.14.2.

---
updated-dependencies:
- dependency-name: alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix #1258 (#1270)

* update rel notes

* Some small color modifications (#1286)

Because in some situations, the text became invisible

* skins: add missing directive to kiss (#1287)

* Fix a small typo which comes from the cluster info view (#1284)

* Removed cusor colors that are too light to read (#1271)

* refactor: move from io/ioutil to io and os packages (#1300)

The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* K9s: Release v0.25.0 (#1304)

* update rel notes

* release 0.25 checkpoint

* cleaning up

* fixed #1308 #1307 #1296 (#1309)

* Fix accessMode getting exception (#1306)

The result obtained in the old way is always the first ReadWriteOnce(RWO)

* Add s390x support (#1301)

* fixed #1311 #1310 #1293 (#1313)

* windows fix

* update docs

* update docs

* Add plugin examples for `helm get values` and `kubectl get events` (#1288)

* Create helm_values.yml

* Create watch_events.yml

* K9s: rel v0.25.4 (#1322)

* release v0.25.4

* update docs

* update docs

* rel v0.25.5 (#1334)

* rel v0.25.6 (#1335)

* Increase the color contrast for selected items (#1340)

I have tested this with both Gruvbox Light & Dark, see the relevant PR
for screenshots.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>

* K9s: release v0.25.7 (#1343)

* fix #1341

* fix tests

* Support colors on Windows (#1312)

* add logFile flag to change the default log file path (#1336)

* release v0.25.8 (#1354)

* Add rose-pine skin (#1363)

* Add flux trace shortcut to flux plugin (#1356)

* Add flux trace shortcut to flux plugin

Implementation notes: $RESOURCE_NAME is exported in plural form (e.g. cronjobs, pods) so the script trims the trailing s if any.

* Generalize to support other resource name plural forms

such as Ingresses

* Add customizable dump directory property (#1321)

* Add customizable dump directory property

Add property for configuration file and arguments

* Resolve Comments

Co-authored-by: Artem Vlasov <artemv@tradeix.com>

* k9s: release v0.25.9 (#1364)

* release v0.25.9

* update docs

* must get moore sleep!

* update rev

* release v0.25.11 (#1377)

* K9s: release v0.25.12 (#1379)

* release v0.25.12

* update rel notes

* release v0.25.13 (#1383)

* release v0.25.14 (#1385)

* fix #1384 (#1388)

* release v0.25.16 (#1400)

* K9s: rel v0.25.17 (#1406)

* fix #1402 #1401

* add rel notes

* fix #1402 (#1408)

* Fix Typo (#1422)

This fixes a small typo I keep stumbling upon in the README

* Fix the flux plugin to use the context of the currently running instance (#1366)

Rather than the default context.

This means if you run k9s --context XXX, any flux commands run by the plugin will run on the correct context

* fix view details secret fullscreen padding to 0 (#1493)

closes https://github.com/derailed/k9s/issues/1450

* plugin to allow default chart values retrieval (#1539)


@fragolinux Thank you for this update!

* Add locking favorite namespaces (#1449) (#1519)

* add locking favorite namespaces (#1449)

* let favorites be set via type default

* Add Helm values support (#1518)

* working get values and get all valeus

* less verbose variable naming

* addressing comments and refactored to have a single view that has toggleable values

* better returns and logging

* returning event instead of nil

Co-authored-by: Joshua Ward <joshua.l.ward@leidos.com>

* fix: correct typo (#1566)

@budimanjojo Great catch! Thank you!!

* Allow all deletion propagation policies (#1553)

* Allow all deletion propagation policies

* Add "none" deletion propagation policy

* Capitalise true/false when checking suspension (#1601)

* Fix typo in FastForwards annotation name (#1600)

Took me a while to get auto forwards working - read the code and figured out the name in the README.md file was wrong :)

* K9s release v0.25.19 (#1610)

* release v0.25.19

* update deps revs

* update deps

* K9s release v0.25.20 (#1621)

* release v0.25.20

* fix rel notes

* [FIX] chg makefile version (#1624)

* Fix reference to base image in Dockerfile (#1629)

* Fix TestToAge (#1627)

* Fix delete dialog dropdown styling (#1632)

* Fix delete dialog dropdown styling

Update tview to allow dropdown styling

* Update tview

* additional tests + cleanup

* K9s rel v0.25.21 (#1635)

* additional tests + cleanup

* update docs

* update docs

* Fix #1636: can't switch context with --kubeconfig flag (#1638)

Co-authored-by: Aleksei Romanenko <alex.romanenko@linkup.com>

* Fix PF and RS colors (#1656)

Co-authored-by: Aleksei Romanenko <alex.romanenko@linkup.com>

* K9s/rel v0.26.0 (#1660)

* additional tests + cleanup

* release v0.26.0

* cleaning up deprecation

* Fix PF delete with no container (#1668)

* Fix PF delete with no container

* Fix PF delete with no container

Co-authored-by: Aleksei Romanenko <alex.romanenko@linkup.com>

* feat: allow disable CTRL-C behavior (#1672)

Fixes #1599

* Show UsedBy for PriorityClasses (#1666)

Co-authored-by: Aleksei Romanenko <alex.romanenko@linkup.com>

* Fix persistentvolumes not showing terminating status (#1682)

@anhpngt Doh!! indeed... Thank you for the fix Tuan! I see what's happening with the renderer. Will fix in the next drop...

* K9s/rel v0.26.1 (#1685)

* fix #1661 #1680

* cleaning up

* add rel notes

* K9s/rel v0.26.2 (#1691)

* update dependencies + #1690 fix??

* update docs

* update deps + docs

* hotfix: windoze

* update tag

* fix redundant type conversion code (#1725)

Co-authored-by: rolancia <rolancia.com@gmail.com> Good catch!! Thank you @rolancia!!

* Bump golang from 1.19.0-alpine3.16 to 1.19.1-alpine3.16 (#1754)

Bumps golang from 1.19.0-alpine3.16 to 1.19.1-alpine3.16.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix typo in cronjob (#1759)

* README : correct (auto-)port-forwards annotations (#1744)

* README : correct (auto-)port-forwards annotations

* README : one more port-forwards typo

* Fix flux plugin to properly handle trace (#1753)

@kuznero Thank you!

* Fix  Get CustomResourceDefinition(#1711) (#1722)

* Fix  Get CustomResourceDefinition(#1711)

* Update crd_test.go

* Plugin for opening a root shell to k3d containter (#1709)

* Plugin for opening a root shell to k3d containter

* Add namespace and context to kubectl call

Co-authored-by: Igor Iatsenko <igor.iatsenko@here.com>

* Fix GracePeriodSeconds (#1739)

`var x int64` means the value is 0 rather than the intended nil
(default).

`Delete` doesn't provide a way to configure the grace period anyway so
remove the variable and only override on a `force`

Co-authored-by: Phil Kates <phil.kates@cartacapitalmarkets.com>

* List all helm releases (#1755)

On second thought, I'll accept your PR and will update the code to use `all` as I am getting ready for a new drop and would like to include your changes. Thanks Anthony!

* Replace clipboard package (#868) (#1721)

* Replace clipboard package

Fixes #868

* Raise error when clipboard.Write fails

* Call clipboard.Write when Init successes

* Flash error rather than panic

* Refactor copying into clipboard

* Refactor cpCmd to remove wrappers

* Use clipboardWrite instead of cpCmd

* K9s/rel v0.26.4 (#1767)

* release v0.26.4

* update deps

* update docs

* fix merge

* update gha

* clean up test

* release v0.26.5 (#1771)

* Add a closing tag when showing timestamp in log view (#1776)

* Log toggles: add a space after "On" in logs view (#1775)

Toggling any of the log commands on and off causes the log indicator to
dance around - I assume this is because the line is centered, and when
on it is N characters long, when off N+1 characters, and so on
centering, the x-offset gets rounded.

This commit just adds an extra space after each "On" string so that
it occupies the same width as the "Off" string ... and the when
furiously toggling, the line remains blissfully static.

* docs: update homebrew installation note (#1772)

Linuxbrew has been merged into Homebrew

See https://github.com/Linuxbrew/brew/issues/612 and https://github.com/Homebrew/brew/issues/7028

* Fix directory path when viewing ScreenDump (#1777)

* Fix path when viewing ScreenDump

* Log save should use `CurrentCluster` iso `CurrentContext`

* Remove sanitizing of dir in ScreenDump dao

* Switch `CurrentCluster` to `CurrentContext` for SD

* Revert log saving to `CurrentContext`

* Save tables to `CurrentContext` iso `CurrentCluster`

* fix #1773

* K9s/rel v0.26.6 (#1784)

* fix #1773

* update release notes

* Update CronJob version to v1 (#1793)

* Update CronJob version to v1 (from v1beta1, unavaliable from 1.25 onwards).

* Try both batch/v1beta1 (for legacy) and batch/v1

* Revert previous commit. Use c.GVR() to find the correct version. Make
cronjob (un)suspend version aware.

* Simply changes by dropping support for deprecated batch/v1beta1 version

* Bump k8s.io/apimachinery from 0.25.1 to 0.25.3 (#1808)

Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.25.1 to 0.25.3.
- [Release notes](https://github.com/kubernetes/apimachinery/releases)
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.25.1...v0.25.3)

---
updated-dependencies:
- dependency-name: k8s.io/apimachinery
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump k8s.io/metrics from 0.25.1 to 0.25.3 (#1807)

Bumps [k8s.io/metrics](https://github.com/kubernetes/metrics) from 0.25.1 to 0.25.3.
- [Release notes](https://github.com/kubernetes/metrics/releases)
- [Commits](https://github.com/kubernetes/metrics/compare/v0.25.1...v0.25.3)

---
updated-dependencies:
- dependency-name: k8s.io/metrics
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump k8s.io/client-go from 0.25.1 to 0.25.3 (#1806)

Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.25.1 to 0.25.3.
- [Release notes](https://github.com/kubernetes/client-go/releases)
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.25.1...v0.25.3)

---
updated-dependencies:
- dependency-name: k8s.io/client-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* use go install (#1797)

* Bump k8s.io/cli-runtime from 0.25.1 to 0.25.3 (#1811)

Bumps [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) from 0.25.1 to 0.25.3.
- [Release notes](https://github.com/kubernetes/cli-runtime/releases)
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.25.1...v0.25.3)

---
updated-dependencies:
- dependency-name: k8s.io/cli-runtime
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernand Galiana <fernand.galiana@gmail.com>

* Bump github.com/fsnotify/fsnotify from 1.5.4 to 1.6.0 (#1810)

Bumps [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) from 1.5.4 to 1.6.0.
- [Release notes](https://github.com/fsnotify/fsnotify/releases)
- [Changelog](https://github.com/fsnotify/fsnotify/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fsnotify/fsnotify/compare/v1.5.4...v1.6.0)

---
updated-dependencies:
- dependency-name: github.com/fsnotify/fsnotify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump golang.org/x/text from 0.3.7 to 0.4.0 (#1812)

Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.7 to 0.4.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.3.7...v0.4.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump k8s.io/kubectl from 0.25.1 to 0.25.3 (#1809)

Bumps [k8s.io/kubectl](https://github.com/kubernetes/kubectl) from 0.25.1 to 0.25.3.
- [Release notes](https://github.com/kubernetes/kubectl/releases)
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.25.1...v0.25.3)

---
updated-dependencies:
- dependency-name: k8s.io/kubectl
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Allow multiple port forwards for a single Pod (#1804)

* Bump github.com/spf13/cobra from 1.5.0 to 1.6.0 (#1814)

Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github.com/mattn/go-runewidth from 0.0.13 to 0.0.14 (#1813)

Bumps [github.com/mattn/go-runewidth](https://github.com/mattn/go-runewidth) from 0.0.13 to 0.0.14.
- [Release notes](https://github.com/mattn/go-runewidth/releases)
- [Commits](https://github.com/mattn/go-runewidth/compare/v0.0.13...v0.0.14)

---
updated-dependencies:
- dependency-name: github.com/mattn/go-runewidth
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/checkout from 2 to 3.1.0 (#1795)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3.1.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump golang from 1.19.1-alpine3.16 to 1.19.2-alpine3.16 (#1796)

Bumps golang from 1.19.1-alpine3.16 to 1.19.2-alpine3.16.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github.com/rs/zerolog from 1.27.0 to 1.28.0 (#1780)

Bumps [github.com/rs/zerolog](https://github.com/rs/zerolog) from 1.27.0 to 1.28.0.
- [Release notes](https://github.com/rs/zerolog/releases)
- [Commits](https://github.com/rs/zerolog/compare/v1.27.0...v1.28.0)

---
updated-dependencies:
- dependency-name: github.com/rs/zerolog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump k8s.io/klog/v2 from 2.70.1 to 2.80.1 (#1779)

Bumps [k8s.io/klog/v2](https://github.com/kubernetes/klog) from 2.70.1 to 2.80.1.
- [Release notes](https://github.com/kubernetes/klog/releases)
- [Changelog](https://github.com/kubernetes/klog/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes/klog/compare/v2.70.1...v2.80.1)

---
updated-dependencies:
- dependency-name: k8s.io/klog/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* K9s/rel v0.26.7 (#1816)

* update batch resource api and remove unused ingress render

* docs update: add rel notes + update release version

* Bump actions/setup-go from 3.1.0 to 3.3.1 (#1817)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3.1.0 to 3.3.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v3.1.0...v3.3.1)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* flux.yml plugin now displays stderr messages (#1829)

Stderr were previously not piped into less

* Plugin support for carvel kapp CR (#1830)

* Plugin support for carvel kapp CR

Shortcuts to call carvel kctrl cli

See https://carvel.dev/kapp-controller/docs/develop/management-command/#app

* Update carvel.yml

* Bump all references of github.com/cenkalti/backoff to v4 (#1821)

* Update README.md (#1696)

* Fix order of arguments for `CanI` function call (#1866)

When checking permissions to (un)suspend cronjobs, a user will always be
considered as unauthorized, because of the wrong arguments order when
calling the `CanI` function.

For `CanI` definition, see:
https://github.com/derailed/k9s/blob/2f72441bac30337fc2211e5ce5d93d3e475c9657/internal/client/client.go#L138
```
func (a *APIClient) CanI(ns, gvr string, verbs []string) (auth bool, err error)
```

* Add VIM-like quit force option. (#1859)

Signed-off-by: Audun Nes <audun.nes@gmail.com>

Signed-off-by: Audun Nes <audun.nes@gmail.com>

* Add policy view to serviceAccounts (#1840)

Add the same policy view to ServiceAccounts as users/groups.
This also works under the xray view. This commit also fixes the
issue with role/rolebindings not having the same name not showing
up in Policy view.

* feat: add noLatestRevCheck config option (#1874)

* feat: add noLatestRevCheck flag to configure whether k9s should fetch the latest rev from the Github repo.

* refactor: rename "noLatestRevCheck" to more appropriate "skipLatestRevCheck"

* bugfix for port forward custom containers not showing #1844 (#1877)

* bugfix for port forward costum containers not showing
#1844

* Adjust the port forward test key structure

Co-authored-by: Eugene <eugene.berger@dell.com>

* Add k8s client compatibility matrix (#1872)

Co-authored-by: Aleksei Romanenko <alex.romanenko@linkup.com>

* Update ScanSA calls to account for blank service accounts (#1871)

The original check in ScanSA assumed the service account on the pod spec
was not blank. It can be blank and when it is kubernetes will default
to using the 'default' service account. This change extends the check
logic to also include that.

* Set build date on macos (#1849)

* Add labels configuration to Shell node pod (#1847)

* Add labels config to shell node pod spec

* Add labels to config tests

* Use default terminal colors for better readability (#1290) (#1837)

* fix(skins): use additional default colors for 'transparent' skin

* fix(cmd): use default terminal color for cmd output

* Bump golang from 1.19.2-alpine3.16 to 1.19.5-alpine3.16 (#1915)

Bumps golang from 1.19.2-alpine3.16 to 1.19.5-alpine3.16.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/checkout from 3.1.0 to 3.3.0 (#1908)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 3.3.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.1.0...v3.3.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Replace x86_64 to amd64 build (#1910)

Co-authored-by: Aleksei Romanenko <alex.romanenko@linkup.com>

* Bump alpine from 3.16.2 to 3.17.1 (#1907)

Bumps alpine from 3.16.2 to 3.17.1.

---
updated-dependencies:
- dependency-name: alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* K9s/rel v0.27.0 (#1932)

* fix #1661 #1680

* rev k8s + cleanup

* release v0.27.0

* release v0.27.1 (#1945)

* bring out the duds

* fix brew installer

* Bump github.com/rs/zerolog from 1.28.0 to 1.29.0 (#1942)

Bumps [github.com/rs/zerolog](https://github.com/rs/zerolog) from 1.28.0 to 1.29.0.
- [Release notes](https://github.com/rs/zerolog/releases)
- [Commits](https://github.com/rs/zerolog/compare/v1.28.0...v1.29.0)

---
updated-dependencies:
- dependency-name: github.com/rs/zerolog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump helm.sh/helm/v3 from 3.10.1 to 3.11.0 (#1928)

Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.10.1 to 3.11.0.
- [Release notes](https://github.com/helm/helm/releases)
- [Commits](https://github.com/helm/helm/compare/v3.10.1...v3.11.0)

---
updated-dependencies:
- dependency-name: helm.sh/helm/v3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fernand Galiana <fernand.galiana@gmail.com>

* Bump actions/setup-go from 3.3.1 to 3.5.0 (#1899)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3.3.1 to 3.5.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v3.3.1...v3.5.0)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: acessing clusters with private dns (#1903)

Co-authored-by: Gustavo Okuyama <gustavo.okuyama@ifood.com.br>

* update docs

* Bump helm.sh/helm/v3 from 3.11.0 to 3.11.1 (#1963)

Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.11.0 to 3.11.1.
- [Release notes](https://github.com/helm/helm/releases)
- [Commits](https://github.com/helm/helm/compare/v3.11.0...v3.11.1)

---
updated-dependencies:
- dependency-name: helm.sh/helm/v3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: Add missing help menu to gruvbox-dark skin (#1969)

The values of almost everything in the skins gruvbox-light and
gruvbox-dark are the same, but gruvbox-dark is missing the values of the
help menu, which looks a bit broken.

This patch copies the values from gruvbox-light to gruvbox-dark so that
it looks fine.

* Added Nightfox theme (#1960)

* Bump github.com/fatih/color from 1.13.0 to 1.14.1 (#1959)

Bumps [github.com/fatih/color](https://github.com/fatih/color) from 1.13.0 to 1.14.1.
- [Release notes](https://github.com/fatih/color/releases)
- [Commits](https://github.com/fatih/color/compare/v1.13.0...v1.14.1)

---
updated-dependencies:
- dependency-name: github.com/fatih/color
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump golang from 1.19.5-alpine3.16 to 1.20.0-alpine3.16 (#1956)

Bumps golang from 1.19.5-alpine3.16 to 1.20.0-alpine3.16.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump k8s.io/klog/v2 from 2.80.1 to 2.90.0 (#1958)

Bumps [k8s.io/klog/v2](https://github.com/kubernetes/klog) from 2.80.1 to 2.90.0.
- [Release notes](https://github.com/kubernetes/klog/releases)
- [Changelog](https://github.com/kubernetes/klog/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes/klog/compare/v2.80.1...v2.90.0)

---
updated-dependencies:
- dependency-name: k8s.io/klog/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github.com/cenkalti/backoff/v4 from 4.1.3 to 4.2.0 (#1957)

Bumps [github.com/cenkalti/backoff/v4](https://github.com/cenkalti/backoff) from 4.1.3 to 4.2.0.
- [Release notes](https://github.com/cenkalti/backoff/releases)
- [Commits](https://github.com/cenkalti/backoff/compare/v4.1.3...v4.2.0)

---
updated-dependencies:
- dependency-name: github.com/cenkalti/backoff/v4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Match ${XXX} environment variables (#1896)

* set default sinceSeconds to 300 (#1965)

* fix: Show meaningful error message when kubectl exec fails (#1966)

`exec.LookPath()` and `exec.Command()` aren't supposed to work with
binaries that are located in the current working directory:

https://cs.opensource.google/go/go/+/fd208c8850cdfe84469d3e4ef9bd55e2e0cece70:src/os/exec/exec.go

If `kubectl` is found in the current working directory, `LookPath()`
will return `ErrDot` even if it is also found in any other directory in
the `PATH`.

This patch detects this condition and shows a meaningful error message
in the log so that the user knows the reason why `kubectl` couldn't be
executed.

Related: https://github.com/derailed/k9s/issues/1787

* Add sort by pod count on node view (#1961)

* Release v0.27.3 (#1970)

- [Issue #1968](https://github.com/derailed/k9s/issues/1968) Some skins are missing the definitions for the help menu
- [Issue #1967](https://github.com/derailed/k9s/issues/1967) Helm cve-2023-25165
- [Issue #1964](https://github.com/derailed/k9s/issues/1964) logger.sinceSeconds config setting inconsistent with README
- [Issue #1955](https://github.com/derailed/k9s/issues/1955) K9s crashes with empty resources and/or verbs in RBAC
- [Issue #1954](https://github.com/derailed/k9s/issues/1954) Open very slow
- [Issue #1883](https://github.com/derailed/k9s/issues/1883) Fix force deletion
- [Issue #1788](https://github.com/derailed/k9s/issues/1788) Draining nodes cannot be forced
- [Issue #1150](https://github.com/derailed/k9s/issues/1150) Add a persistent popup for drain failures

* Add missing help menu to one_dark skin (#1973)

Missing color profile for the help menu, so matches the skin theme
correctly.

* Bump github.com/derailed/popeye from 0.10.1 to 0.11.0 (#1975)

Bumps [github.com/derailed/popeye](https://github.com/derailed/popeye) from 0.10.1 to 0.11.0.
- [Release notes](https://github.com/derailed/popeye/releases)
- [Changelog](https://github.com/derailed/popeye/blob/master/.goreleaser.yml)
- [Commits](https://github.com/derailed/popeye/compare/v0.10.1...v0.11.0)

---
updated-dependencies:
- dependency-name: github.com/derailed/popeye
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump golang.org/x/text from 0.6.0 to 0.7.0 (#1976)

Bumps [golang.org/x/text](https://github.com/golang/text) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.6.0...v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump alpine from 3.17.1 to 3.17.2 (#1974)

Bumps alpine from 3.17.1 to 3.17.2.

---
updated-dependencies:
- dependency-name: alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix #2007: Remove debug command (#2011)

Co-authored-by: Aleksei Romanenko <alex.romanenko@linkup.com>

* Bump golang from 1.20.0-alpine3.16 to 1.20.2-alpine3.16 (#2008)

Bumps golang from 1.20.0-alpine3.16 to 1.20.2-alpine3.16.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump golang.org/x/net from 0.5.0 to 0.7.0 (#2000)

Bumps [golang.org/x/net](https://github.com/golang/net) from 0.5.0 to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](https://github.com/golang/net/compare/v0.5.0...v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump k8s.io/client-go from 0.26.1 to 0.26.2 (#1999)

Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.26.1 to 0.26.2.
- [Release notes](https://github.com/kubernetes/client-go/releases)
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.26.1...v0.26.2)

---
updated-dependencies:
- dependency-name: k8s.io/client-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#1993)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.8.1...v1.8.2)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* added full logs viewing (#2002)

Changes to be committed:
	modified:   README.md
	new file:   log_full.yml

Co-authored-by: Ryne Yang <ryneyang@acuityads.com>

* Bump k8s.io/metrics from 0.26.1 to 0.26.2 (#1998)

Bumps [k8s.io/metrics](https://github.com/kubernetes/metrics) from 0.26.1 to 0.26.2.
- [Release notes](https://github.com/kubernetes/metrics/releases)
- [Commits](https://github.com/kubernetes/metrics/compare/v0.26.1...v0.26.2)

---
updated-dependencies:
- dependency-name: k8s.io/metrics
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* adding instruction to install in FreeBSD via pkg (#1991)

* Bump github.com/derailed/popeye from 0.11.0 to 0.11.1 (#1986)

Bumps [github.com/derailed/popeye](https://github.com/derailed/popeye) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/derailed/popeye/releases)
- [Changelog](https://github.com/derailed/popeye/blob/master/.goreleaser.yml)
- [Commits](https://github.com/derailed/popeye/compare/v0.11.0...v0.11.1)

---
updated-dependencies:
- dependency-name: github.com/derailed/popeye
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github.com/containerd/containerd from 1.6.15 to 1.6.18 (#1981)

Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.6.15 to 1.6.18.
- [Release notes](https://github.com/containerd/containerd/releases)
- [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md)
- [Commits](https://github.com/containerd/containerd/compare/v1.6.15...v1.6.18)

---
updated-dependencies:
- dependency-name: github.com/containerd/containerd
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update k8s matrix (#1979)

Co-authored-by: Aleksei Romanenko <alex.romanenko@linkup.com>

* fix: fix outdated stern links (#1990)

* Sort by view default only if sort not currently set (#1962)

* Fix accessing nil map (#1996)

Co-authored-by: julien.demais.e <julien.demais.e@thalesdigital.io>

* feat: add support for renaming contexts. (#2006)

* feat: add support for renaming contexts.

* chore: try to reduce ABC

* test: account for the `rename` hint

* generated binary zip for windows (#1972)

* fix: multiple matches in a single line. (#1876)

* Allowing a few hard coded colors to be configurable (#1405)

* making some hard coded colors configurable via skins

* more flexible colors for logo messages

* correct color formatting per MR comments

* no need to convert to String

---------

Co-authored-by: Cason Adams <cadams@roku.com>

* Convert command to lowercase in the command palette (#1432)

* Update setup-go action, with caching (#2054)

* Bump golang from 1.20.2-alpine3.16 to 1.20.3-alpine3.16 (#2049)

Bumps golang from 1.20.2-alpine3.16 to 1.20.3-alpine3.16.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/checkout from 3.3.0 to 3.5.2 (#2058)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3.3.0 to 3.5.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.3.0...v3.5.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github.com/docker/docker (#2044)

Bumps [github.com/docker/docker](https://github.com/docker/docker) from 20.10.21+incompatible to 20.10.24+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Commits](https://github.com/docker/docker/compare/v20.10.21...v20.10.24)

---
updated-dependencies:
- dependency-name: github.com/docker/docker
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump alpine from 3.17.2 to 3.17.3 (#2040)

Bumps alpine from 3.17.2 to 3.17.3.

---
updated-dependencies:
- dependency-name: alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Updated monokai skin with help styles, and more monokai appropriate colors (#2030)

* Add help styles to monokai skin

* Fixed typo, and changed several colors to be more monokai-y

* Use default background

* Bump github.com/fatih/color from 1.14.1 to 1.15.0 (#2023)

Bumps [github.com/fatih/color](https://github.com/fatih/color) from 1.14.1 to 1.15.0.
- [Release notes](https://github.com/fatih/color/releases)
- [Commits](https://github.com/fatih/color/compare/v1.14.1...v1.15.0)

---
updated-dependencies:
- dependency-name: github.com/fatih/color
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Roles are rendered using same colorer function from skin (#2027)

---------

Signed-off-by: Rui Chen <rui@chenrui.dev>
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Audun Nes <audun.nes@gmail.com>
Co-authored-by: derailed <fernand.galiana@gmail.com>
Co-authored-by: Mathieu <mathieux51@gmail.com>
Co-authored-by: Harry Han <hanxiaoyin@gmail.com>
Co-authored-by: Louis Garman <75728+leg100@users.noreply.github.com>
Co-authored-by: Gabor Maghera <gmaghera@gmail.com>
Co-authored-by: Raul Cabello Martin <raulcabm@gmail.com>
Co-authored-by: Alexandre Vicenzi <github@alxd.me>
Co-authored-by: James Li <cijie.lee@gmail.com>
Co-authored-by: James3 Li(李麒傑) <james3_li@asus.com>
Co-authored-by: Daniel Lee Harple <dlh@harple.com>
Co-authored-by: David Alger <davidmalger@gmail.com>
Co-authored-by: Takumasa Sakao <tsakao@zlab.co.jp>
Co-authored-by: Andrii Dembitskyi <andrew.dembitskiy@gmail.com>
Co-authored-by: fragolinux <a.fragola@eco-mind.eu>
Co-authored-by: Arthur <pysen@svartavillan.se>
Co-authored-by: Jan-Kees van Andel <jankeesvanandel@gmail.com>
Co-authored-by: Chris Henzie <chrishenzie@google.com>
Co-authored-by: rui <rui@chenrui.dev>
Co-authored-by: Diogo Nunes <dialex.nunes@gmail.com>
Co-authored-by: Torjus Eidet <torjue@gmail.com>
Co-authored-by: Anthony DeChiaro <taintedkernel@users.noreply.github.com>
Co-authored-by: Konstantinos Natsakis <5933427+knatsakis@users.noreply.github.com>
Co-authored-by: Jacob Dreesen <jacob@hdreesen.de>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vladimir Varankin <vladimir@varank.in>
Co-authored-by: Rick <1450685+LinuxSuRen@users.noreply.github.com>
Co-authored-by: Zach Peters <zpeters@gmail.com>
Co-authored-by: Eng Zer Jun <engzerjun@gmail.com>
Co-authored-by: muicoder <muicoder@gmail.com>
Co-authored-by: Raul Cabello Martin <raul.cabello@suse.com>
Co-authored-by: Danny Rich <danieljrich17@gmail.com>
Co-authored-by: Gerhard Lazu <gerhard@users.noreply.github.com>
Co-authored-by: mattn <mattn.jp@gmail.com>
Co-authored-by: Wendell Sun <iwendellsun@gmail.com>
Co-authored-by: Sergio A. Arevalo Soria <sergio.alberto.arevalo.soria@nav.no>
Co-authored-by: Guillaume Berche <guillaume.berche@orange.com>
Co-authored-by: Vlasov Artem <vlasovartem21@gmail.com>
Co-authored-by: Artem Vlasov <artemv@tradeix.com>
Co-authored-by: Bengt Lüers <Bengt.Lueers@gmail.com>
Co-authored-by: RichieSams <adastley@gmail.com>
Co-authored-by: Léo <rolland.leo@orange.fr>
Co-authored-by: fragolinux <fragolino@gmail.com>
Co-authored-by: tyzbit <3319104+tyzbit@users.noreply.github.com>
Co-authored-by: Joshua Ward <j2udevelopment@gmail.com>
Co-authored-by: Joshua Ward <joshua.l.ward@leidos.com>
Co-authored-by: Budiman Jojo <budimanjojo@gmail.com>
Co-authored-by: Christian Provenzano <18606244+caproven@users.noreply.github.com>
Co-authored-by: Gabriel Simmer <bladesimmer@gmail.com>
Co-authored-by: Michael Legart <michael@legart.dk>
Co-authored-by: CBC <44186296+cbconne@users.noreply.github.com>
Co-authored-by: Bryan A. S <53131727+bryanasdev000@users.noreply.github.com>
Co-authored-by: Aleksei Romanenko <slimusgm@gmail.com>
Co-authored-by: Aleksei Romanenko <alex.romanenko@linkup.com>
Co-authored-by: Aleksei Romanenko <478249+slimus@users.noreply.github.com>
Co-authored-by: Ben Blackmore <bripkens@gmail.com>
Co-authored-by: Tuan Anh Pham <anh.pngt@gmail.com>
Co-authored-by: 이태형 <55282922+rolancia@users.noreply.github.com>
Co-authored-by: Maurizio Pasquinelli <pasquinellimaurizio@gmail.com>
Co-authored-by: jon r <jon@allmende.io>
Co-authored-by: Roman Kuznetsov <roman@kuznero.com>
Co-authored-by: iserpent <iserpent@gmail.com>
Co-authored-by: Igor Iatsenko <igor.iatsenko@here.com>
Co-authored-by: Phil Kates <me@philkates.com>
Co-authored-by: Phil Kates <phil.kates@cartacapitalmarkets.com>
Co-authored-by: Anthony <aday@cyral.com>
Co-authored-by: Takumi Sue <23391543+mikutas@users.noreply.github.com>
Co-authored-by: Richard Hull <rm_hull@yahoo.co.uk>
Co-authored-by: fredericvl <34839323+fredericvl@users.noreply.github.com>
Co-authored-by: SammyA <SammyA@users.noreply.github.com>
Co-authored-by: Kevin Gentile <kgentile@protonmail.com>
Co-authored-by: Grzegorz Burzyński <czeslavo@gmail.com>
Co-authored-by: Dan Ramich <dramich@users.noreply.github.com>
Co-authored-by: James Spurin <james@spurin.com>
Co-authored-by: Samuel Demirdjian <sam@enov.ws>
Co-authored-by: Audun V. Nes <audun.nes@gmail.com>
Co-authored-by: Mohamed Messaad <hajimenomomo@gmail.com>
Co-authored-by: Eugene Berger <F1bonacc1@users.noreply.github.com>
Co-authored-by: Eugene <eugene.berger@dell.com>
Co-authored-by: Mat Schaffer <115565899+matschaffer-roblox@users.noreply.github.com>
Co-authored-by: Ruben Rodriguez <aki_yoshi@outlook.com>
Co-authored-by: wkyoshida <15043193+wkyoshida@users.noreply.github.com>
Co-authored-by: Gustavo Okuyama <gubtosmail@gmail.com>
Co-authored-by: Gustavo Okuyama <gustavo.okuyama@ifood.com.br>
Co-authored-by: Antonio Niño Díaz <antonio_nd@outlook.com>
Co-authored-by: Ivar Stangeby <ivarhs@ulrik.uio.no>
Co-authored-by: Wolfgang Ebner <wolfgang.p.ebner@gmail.com>
Co-authored-by: Andrew Spiers <7andrew@gmail.com>
Co-authored-by: Niko Janceski <thinkniko@gmail.com>
Co-authored-by: Lucas Teligioridis <lucas@teligioridis.dev>
Co-authored-by: linehrr <linehrr@gmail.com>
Co-authored-by: Ryne Yang <ryneyang@acuityads.com>
Co-authored-by: Gabriel M. Dutra <0xdutra@gmail.com>
Co-authored-by: Howie Zhao <howiezhaohr@hotmail.com>
Co-authored-by: croustiPoulet <51698462+croustiPoulet@users.noreply.github.com>
Co-authored-by: julien.demais.e <julien.demais.e@thalesdigital.io>
Co-authored-by: Jacob Lorenzen <jacob@lorenzen.me>
Co-authored-by: Rahul Somasundaram <rahulstsgr@gmail.com>
Co-authored-by: Cason Adams <casonadams@gmail.com>
Co-authored-by: Cason Adams <cadams@roku.com>
Co-authored-by: R0CKSTAR <yeahdongcn@gmail.com>
Co-authored-by: mmetc <92726601+mmetc@users.noreply.github.com>
Co-authored-by: Mike Sigsworth <mikesigsworth@gmail.com>
Co-authored-by: Alexandru Placinta <placintaalexandru1@gmail.com>
@ehfd ehfd closed this as not planned Won't fix, can't repro, duplicate, stale Jun 27, 2023
@sasaxena-equinix
Copy link

scoop install kubectl is a solution for me.

Thanks @PapaySail, this works for me too.

@ehfd
Copy link
Author

ehfd commented Mar 17, 2024

For Windows users, add $env:Path = "$env:Path;$PWD" if you are using Powershell and set "PATH=%PATH%;%CD%" when using cmd or a .bat file (in this case, use %~dp0 over %CD%).

placintaalexandru pushed a commit to placintaalexandru/k9s that referenced this issue Apr 3, 2024
…1966)

`exec.LookPath()` and `exec.Command()` aren't supposed to work with
binaries that are located in the current working directory:

https://cs.opensource.google/go/go/+/fd208c8850cdfe84469d3e4ef9bd55e2e0cece70:src/os/exec/exec.go

If `kubectl` is found in the current working directory, `LookPath()`
will return `ErrDot` even if it is also found in any other directory in
the `PATH`.

This patch detects this condition and shows a meaningful error message
in the log so that the user knows the reason why `kubectl` couldn't be
executed.

Related: derailed#1787
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

7 participants