diff --git a/.goreleaser.yml b/.goreleaser.yml index 4c7089c7..76f8bfdb 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -56,5 +56,10 @@ brews: folder: Formula homepage: https://k9scli.io/ description: Kubernetes CLI To Manage Your Clusters In Style! + install: | + system "make", "build" + bin.install "execs/k9s" + + generate_completions_from_executable(bin/"k9s", "completion") test: | system "k9s version" diff --git a/Makefile b/Makefile index 230986d3..d559c44d 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ -GO_FLAGS ?= NAME := k9s +GO_FLAGS ?= +CGO_ENABLED?=0 OUTPUT_BIN ?= execs/${NAME} PACKAGE := github.com/derailed/$(NAME) GIT_REV ?= $(shell git rev-parse --short HEAD) @@ -9,7 +10,7 @@ DATE ?= $(shell TZ=UTC date -j -f "%s" ${SOURCE_DATE_EPOCH} +"%Y-%m-%dT%H: else DATE ?= $(shell date -u -d @${SOURCE_DATE_EPOCH} +"%Y-%m-%dT%H:%M:%SZ") endif -VERSION ?= v0.27.0 +VERSION ?= v0.27.1 IMG_NAME := derailed/k9s IMAGE := ${IMG_NAME}:${VERSION} @@ -23,7 +24,7 @@ cover: ## Run test coverage suite @go tool cover --html=cov.out build: ## Builds the CLI - @go build ${GO_FLAGS} \ + @CGO_ENABLED=${CGO_ENABLED} go build ${GO_FLAGS} \ -ldflags "-w -s -X ${PACKAGE}/cmd.version=${VERSION} -X ${PACKAGE}/cmd.commit=${GIT_REV} -X ${PACKAGE}/cmd.date=${DATE}" \ -a -tags netgo -o ${OUTPUT_BIN} main.go diff --git a/README.md b/README.md index 009430e8..a79fe3a6 100644 --- a/README.md +++ b/README.md @@ -39,21 +39,6 @@ Wanna discuss K9s features with your fellow `K9sers` or simply show your support * Channel: [K9ersSlack](https://k9sers.slack.com/) * Invite: [K9slackers Invite](https://join.slack.com/t/k9sers/shared_invite/enQtOTA5MDEyNzI5MTU0LWQ1ZGI3MzliYzZhZWEyNzYxYzA3NjE0YTk1YmFmNzViZjIyNzhkZGI0MmJjYzhlNjdlMGJhYzE2ZGU1NjkyNTM) ---- - -## K8S Compatibility Matrix -| k9s | k8s client | -| ------------------ | ---------- | -| v0.26.7 - v0.26.6 | 0.25.3 | -| v0.26.5 - v0.26.4 | 0.25.1 | -| v0.26.3 - v0.26.1 | 0.24.3 | -| v0.26.0 - v0.25.19 | 0.24.2 | -| v0.25.18 - v0.25.3 | 0.22.3 | -| v0.25.2 - v0.25.0 | 0.22.0 | -| <= v0.24 | 0.21.3 | - - - ## Installation K9s is available on Linux, macOS and Windows platforms. @@ -114,7 +99,7 @@ K9s is available on Linux, macOS and Windows platforms. ```shell curl.exe -A MS https://webinstall.dev/k9s | powershell ``` - + * As a [Docker Desktop Extension](https://docs.docker.com/desktop/extensions/) (for the Docker Desktop built in Kubernetes Server) ```shell @@ -197,6 +182,20 @@ K9s is available on Linux, macOS and Windows platforms. --- +## K8S Compatibility Matrix + +| k9s | k8s client | +| ------------------ | ---------- | +| v0.26.7 - v0.26.6 | 0.25.3 | +| v0.26.5 - v0.26.4 | 0.25.1 | +| v0.26.3 - v0.26.1 | 0.24.3 | +| v0.26.0 - v0.25.19 | 0.24.2 | +| v0.25.18 - v0.25.3 | 0.22.3 | +| v0.25.2 - v0.25.0 | 0.22.0 | +| <= v0.24 | 0.21.3 | + +--- + ## The Command Line ```shell @@ -490,8 +489,8 @@ metadata: annotations: k9scli.io/auto-port-forwards: zorg::5556 # => will default to container zorg port 5556 and local port 5566. No port-forward dialog will be shown. # Or... - k9scli.io/port-forwards: bozo::9090:p1 # => launches the port-forward dialog selecting default port-forward on container bozo port named p1(8081) - # mapping to local port 9090. + k9scli.io/port-forwards: bozo::9090:p1 # => launches the port-forward dialog selecting default port-forward on container bozo port named p1(8081) + # mapping to local port 9090. ... spec: containers: diff --git a/change_logs/release_v0.27.1.md b/change_logs/release_v0.27.1.md new file mode 100644 index 00000000..e36572f1 --- /dev/null +++ b/change_logs/release_v0.27.1.md @@ -0,0 +1,29 @@ + + +# Release v0.27.1 + +## Notes + +Thank you to all that contributed with flushing out issues and enhancements for K9s! I'll try to mark some of these issues as fixed. But if you don't mind grab the latest rev and see if we're happier with some of the fixes! If you've filed an issue please help me verify and close. Your support, kindness and awesome suggestions to make K9s better are, as ever, very much noted and appreciated! Also big thanks to all that have allocated their own time to help others on both slack and on this repo!! + +As you may know, K9s is not pimped out by corps with deep pockets, thus if you feel K9s is helping your Kubernetes journey, please consider joining our [sponsorship program](https://github.com/sponsors/derailed) and/or make some noise on social! [@kitesurfer](https://twitter.com/kitesurfer) + +On Slack? Please join us [K9slackers](https://join.slack.com/t/k9sers/shared_invite/enQtOTA5MDEyNzI5MTU0LWQ1ZGI3MzliYzZhZWEyNzYxYzA3NjE0YTk1YmFmNzViZjIyNzhkZGI0MmJjYzhlNjdlMGJhYzE2ZGU1NjkyNTM) + +--- + +## Maintenance Release + +--- + +## Resolved Issues + +* [Issue #1943](https://github.com/derailed/k9s/issues/1943) k9s display is broken after switching to v0.27.0 +* [Issue #1935](https://github.com/derailed/k9s/issues/1935) Active namespace is dropped after accessing forbidden resources +* [Issue #1913](https://github.com/derailed/k9s/issues/1913) Exit edit mode deadlock +* [Issue #1895](https://github.com/derailed/k9s/issues/1895) AWS workspace. K9s fails on startup with unknown userid error +* [Issue #1842](https://github.com/derailed/k9s/issues/1842) Strange one - brew installed k9s + +--- + + © 2022 Imhotep Software LLC. All materials licensed under [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0) diff --git a/go.mod b/go.mod index 83bb2ecf..0c5d6606 100644 --- a/go.mod +++ b/go.mod @@ -7,11 +7,11 @@ require ( github.com/atotto/clipboard v0.1.4 github.com/cenkalti/backoff/v4 v4.1.3 github.com/derailed/popeye v0.10.1 - github.com/derailed/tview v0.8.0 + github.com/derailed/tcell/v2 v2.3.1-rc.3 + github.com/derailed/tview v0.8.1 github.com/fatih/color v1.13.0 github.com/fsnotify/fsnotify v1.6.0 github.com/fvbommel/sortorder v1.0.2 - github.com/gdamore/tcell/v2 v2.5.4 github.com/ghodss/yaml v1.0.0 github.com/mattn/go-colorable v0.1.13 github.com/mattn/go-runewidth v0.0.14 @@ -20,8 +20,8 @@ require ( github.com/rs/zerolog v1.28.0 github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.6.0 - github.com/stretchr/testify v1.8.0 - golang.org/x/text v0.5.0 + github.com/stretchr/testify v1.8.1 + golang.org/x/text v0.6.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.10.1 k8s.io/api v0.26.1 @@ -121,7 +121,7 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.3 // indirect github.com/rubenv/sql-migrate v1.1.2 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/shopspring/decimal v1.2.0 // indirect @@ -138,8 +138,8 @@ require ( golang.org/x/net v0.3.1-0.20221206200815-1e63c2f08a10 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect - golang.org/x/sys v0.3.0 // indirect - golang.org/x/term v0.3.0 // indirect + golang.org/x/sys v0.4.0 // indirect + golang.org/x/term v0.4.0 // indirect golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect diff --git a/go.sum b/go.sum index 57df1a39..3a0fe2ec 100644 --- a/go.sum +++ b/go.sum @@ -128,8 +128,10 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= github.com/derailed/popeye v0.10.1 h1:+lyLDGUyKANfMiSHV8X1pHD1HhcxEXCa8ple0ZvyRqc= github.com/derailed/popeye v0.10.1/go.mod h1:ChD8GPNvgsgjLG5fQBZIxm3VOhFrqd10Xn8IxfuGn4w= -github.com/derailed/tview v0.8.0 h1:S5RMQ/Jito0pSyLO4ruqJG/60s0YAmyH6I4CU91G//w= -github.com/derailed/tview v0.8.0/go.mod h1:7ezLKLaUxfeuURd2FHG3vwV8AR03E66em2dr/lTlllQ= +github.com/derailed/tcell/v2 v2.3.1-rc.3 h1:9s1fmyRcSPRlwr/C9tcpJKCujbrtmPpST6dcMUD2piY= +github.com/derailed/tcell/v2 v2.3.1-rc.3/go.mod h1:nf68BEL8fjmXQHJT3xZjoZFs2uXOzyJcNAQqGUEMrFY= +github.com/derailed/tview v0.8.1 h1:hvNR3LLrWEuaQbPYfBnRn7bYkxCP26K6nX9J+MGlhyw= +github.com/derailed/tview v0.8.1/go.mod h1:q+odnnhO6QDPpBT+0dqaWj+X+uoJ6MJehXj9shgP+Cw= github.com/distribution/distribution/v3 v3.0.0-20220526142353-ffbd94cbe269 h1:hbCT8ZPPMqefiAWD2ZKjn7ypokIGViTvBBg/ExLSdCk= github.com/docker/cli v20.10.17+incompatible h1:eO2KS7ZFeov5UJeaDmIs1NFEDRf32PaqRpvoEkKBy5M= github.com/docker/cli v20.10.17+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= @@ -178,8 +180,6 @@ github.com/fvbommel/sortorder v1.0.2 h1:mV4o8B2hKboCdkJm+a7uX/SIpZob4JzUpc5GGnM4 github.com/fvbommel/sortorder v1.0.2/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= -github.com/gdamore/tcell/v2 v2.5.4 h1:TGU4tSjD3sCL788vFNeJnTdzpNKIw1H5dgLnJRQVv/k= -github.com/gdamore/tcell/v2 v2.5.4/go.mod h1:dZgRy5v4iMobMEcWNYBtREnDZAT9DYmfqIkrgEMxLyw= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= @@ -541,8 +541,9 @@ github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5 github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/rakyll/hey v0.1.4 h1:hhc8GIqHN4+rPFZvkM9lkCQGi7da0sINM83xxpFkbPA= github.com/rakyll/hey v0.1.4/go.mod h1:nAOTOo+L52KB9SZq/M6J18kxjto4yVtXQDjU2HgjUPI= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= +github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= @@ -584,8 +585,9 @@ github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -593,8 +595,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -610,7 +613,6 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY= @@ -646,7 +648,6 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -684,7 +685,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -730,7 +730,6 @@ golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.3.1-0.20221206200815-1e63c2f08a10 h1:Frnccbp+ok2GkUS2tC84yAq/U9Vg+0sIO7aRL3T4Xnc= golang.org/x/net v0.3.1-0.20221206200815-1e63c2f08a10/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -827,16 +826,14 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -846,8 +843,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -907,7 +904,6 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/internal/config/styles.go b/internal/config/styles.go index 71f0ad69..5ae172e3 100644 --- a/internal/config/styles.go +++ b/internal/config/styles.go @@ -5,8 +5,8 @@ import ( "os" "path/filepath" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "gopkg.in/yaml.v2" ) diff --git a/internal/config/styles_test.go b/internal/config/styles_test.go index ec8938d7..e934e880 100644 --- a/internal/config/styles_test.go +++ b/internal/config/styles_test.go @@ -4,8 +4,8 @@ import ( "testing" "github.com/derailed/k9s/internal/config" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/stretchr/testify/assert" ) diff --git a/internal/dao/node.go b/internal/dao/node.go index d1035633..8686d0c0 100644 --- a/internal/dao/node.go +++ b/internal/dao/node.go @@ -155,7 +155,7 @@ func (n *Node) List(ctx context.Context, ns string) ([]runtime.Object, error) { _, name := client.Namespaced(fqn) podCount, err := n.CountPods(name) if err != nil { - return nil, err + log.Error().Err(err).Msgf("unable to get pods count for %s", name) } res = append(res, &render.NodeWithMetrics{ Raw: u, diff --git a/internal/model/describe.go b/internal/model/describe.go index 1f0f2b5a..8a44af1b 100644 --- a/internal/model/describe.go +++ b/internal/model/describe.go @@ -175,6 +175,10 @@ func (d *Describe) reconcile(ctx context.Context) error { // Describe describes a given resource. func (d *Describe) describe(ctx context.Context, gvr client.GVR, path string) (string, error) { + defer func(t time.Time) { + log.Debug().Msgf("Describe model elapsed: %v", time.Since(t)) + }(time.Now()) + meta, err := getMeta(ctx, gvr) if err != nil { return "", err diff --git a/internal/model/stack_test.go b/internal/model/stack_test.go index a8d70506..9ccc5ed6 100644 --- a/internal/model/stack_test.go +++ b/internal/model/stack_test.go @@ -5,8 +5,8 @@ import ( "testing" "github.com/derailed/k9s/internal/model" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog" "github.com/stretchr/testify/assert" ) diff --git a/internal/render/alias_test.go b/internal/render/alias_test.go index 0b5b4bbf..18c0e5ae 100644 --- a/internal/render/alias_test.go +++ b/internal/render/alias_test.go @@ -5,7 +5,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/render" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/stretchr/testify/assert" ) diff --git a/internal/render/benchmark.go b/internal/render/benchmark.go index 7a82ea72..2b60cff6 100644 --- a/internal/render/benchmark.go +++ b/internal/render/benchmark.go @@ -9,8 +9,8 @@ import ( "strings" "github.com/derailed/k9s/internal/client" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) diff --git a/internal/render/color.go b/internal/render/color.go index e7fc49ff..cc1339b2 100644 --- a/internal/render/color.go +++ b/internal/render/color.go @@ -1,7 +1,7 @@ package render import ( - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) var ( diff --git a/internal/render/color_test.go b/internal/render/color_test.go index 6414a022..77bb4c51 100644 --- a/internal/render/color_test.go +++ b/internal/render/color_test.go @@ -4,7 +4,7 @@ import ( "testing" "github.com/derailed/k9s/internal/render" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/stretchr/testify/assert" ) diff --git a/internal/render/container.go b/internal/render/container.go index 53ee31ee..e879265e 100644 --- a/internal/render/container.go +++ b/internal/render/container.go @@ -7,8 +7,8 @@ import ( "strings" "github.com/derailed/k9s/internal/client" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" diff --git a/internal/render/context.go b/internal/render/context.go index 0268e8ee..f4f1c54b 100644 --- a/internal/render/context.go +++ b/internal/render/context.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" diff --git a/internal/render/dir.go b/internal/render/dir.go index b27afd6d..6c50c17d 100644 --- a/internal/render/dir.go +++ b/internal/render/dir.go @@ -4,7 +4,7 @@ import ( "fmt" "os" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) diff --git a/internal/render/ev.go b/internal/render/ev.go index 9c28f13e..018e899c 100644 --- a/internal/render/ev.go +++ b/internal/render/ev.go @@ -5,7 +5,7 @@ import ( "strings" "github.com/derailed/k9s/internal/client" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" ) diff --git a/internal/render/helm.go b/internal/render/helm.go index 3c3a6de7..2d2e0d77 100644 --- a/internal/render/helm.go +++ b/internal/render/helm.go @@ -5,7 +5,7 @@ import ( "strconv" "github.com/derailed/k9s/internal/client" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "helm.sh/helm/v3/pkg/release" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" diff --git a/internal/render/ns.go b/internal/render/ns.go index 4569e452..35a8d783 100644 --- a/internal/render/ns.go +++ b/internal/render/ns.go @@ -6,7 +6,7 @@ import ( "strings" "github.com/derailed/k9s/internal/client" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" diff --git a/internal/render/ns_test.go b/internal/render/ns_test.go index 6c9cb9c0..d8352456 100644 --- a/internal/render/ns_test.go +++ b/internal/render/ns_test.go @@ -4,7 +4,7 @@ import ( "testing" "github.com/derailed/k9s/internal/render" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/stretchr/testify/assert" ) diff --git a/internal/render/ofaas.go b/internal/render/ofaas.go index 8c39e94e..a529b320 100644 --- a/internal/render/ofaas.go +++ b/internal/render/ofaas.go @@ -10,7 +10,7 @@ package render // "github.com/derailed/k9s/internal/client" // "github.com/derailed/tview" -// "github.com/gdamore/tcell/v2" +// "github.com/derailed/tcell/v2" // ofaas "github.com/openfaas/faas-provider/types" // metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/internal/render/pod.go b/internal/render/pod.go index 1c144664..bfbb8c17 100644 --- a/internal/render/pod.go +++ b/internal/render/pod.go @@ -6,8 +6,8 @@ import ( "strings" "github.com/derailed/k9s/internal/client" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" diff --git a/internal/render/pod_test.go b/internal/render/pod_test.go index a4423ca7..d65ff667 100644 --- a/internal/render/pod_test.go +++ b/internal/render/pod_test.go @@ -4,7 +4,7 @@ import ( "testing" "github.com/derailed/k9s/internal/render" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/stretchr/testify/assert" v1 "k8s.io/api/core/v1" res "k8s.io/apimachinery/pkg/api/resource" diff --git a/internal/render/policy.go b/internal/render/policy.go index 641ff1c8..36709250 100644 --- a/internal/render/policy.go +++ b/internal/render/policy.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/derailed/k9s/internal/client" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" diff --git a/internal/render/popeye.go b/internal/render/popeye.go index fc304830..b9709008 100644 --- a/internal/render/popeye.go +++ b/internal/render/popeye.go @@ -8,8 +8,8 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/popeye/pkg/config" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) diff --git a/internal/render/portforward.go b/internal/render/portforward.go index 5d07e809..2a039acf 100644 --- a/internal/render/portforward.go +++ b/internal/render/portforward.go @@ -5,7 +5,7 @@ import ( "strings" "github.com/derailed/k9s/internal/client" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) diff --git a/internal/render/pv.go b/internal/render/pv.go index becff02f..eecf98a7 100644 --- a/internal/render/pv.go +++ b/internal/render/pv.go @@ -6,7 +6,7 @@ import ( "strings" "github.com/derailed/k9s/internal/client" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" diff --git a/internal/render/rbac.go b/internal/render/rbac.go index 21bc79cd..ddf2c790 100644 --- a/internal/render/rbac.go +++ b/internal/render/rbac.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) diff --git a/internal/render/reference.go b/internal/render/reference.go index 06d9c14d..33b8493c 100644 --- a/internal/render/reference.go +++ b/internal/render/reference.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/derailed/k9s/internal/client" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) diff --git a/internal/render/screen_dump.go b/internal/render/screen_dump.go index eb6c1f04..230303a1 100644 --- a/internal/render/screen_dump.go +++ b/internal/render/screen_dump.go @@ -6,7 +6,7 @@ import ( "path/filepath" "time" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) diff --git a/internal/render/subject.go b/internal/render/subject.go index 2d47e32e..07b5c548 100644 --- a/internal/render/subject.go +++ b/internal/render/subject.go @@ -3,7 +3,7 @@ package render import ( "fmt" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) diff --git a/internal/tchart/component.go b/internal/tchart/component.go index 68c52c50..c86e3cb2 100644 --- a/internal/tchart/component.go +++ b/internal/tchart/component.go @@ -4,8 +4,8 @@ import ( "image" "sync" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) const ( diff --git a/internal/tchart/component_test.go b/internal/tchart/component_test.go index fde5fd67..eee63a60 100644 --- a/internal/tchart/component_test.go +++ b/internal/tchart/component_test.go @@ -4,7 +4,7 @@ import ( "testing" "github.com/derailed/k9s/internal/tchart" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/stretchr/testify/assert" ) diff --git a/internal/tchart/gauge.go b/internal/tchart/gauge.go index 5711d445..f2da6931 100644 --- a/internal/tchart/gauge.go +++ b/internal/tchart/gauge.go @@ -4,8 +4,8 @@ import ( "fmt" "image" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) const ( diff --git a/internal/tchart/sparkline.go b/internal/tchart/sparkline.go index 3874ab4f..ce304f13 100644 --- a/internal/tchart/sparkline.go +++ b/internal/tchart/sparkline.go @@ -5,8 +5,8 @@ import ( "image" "math" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) var sparks = []rune{'▁', '▂', '▃', '▄', '▅', '▆', '▇', '█'} diff --git a/internal/ui/action.go b/internal/ui/action.go index 45e28c21..1bf9e072 100644 --- a/internal/ui/action.go +++ b/internal/ui/action.go @@ -4,7 +4,7 @@ import ( "sort" "github.com/derailed/k9s/internal/model" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/ui/app.go b/internal/ui/app.go index 2e0475f7..fd7aa247 100644 --- a/internal/ui/app.go +++ b/internal/ui/app.go @@ -7,8 +7,8 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/model" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/ui/config_test.go b/internal/ui/config_test.go index b5fcaeaa..fd2ffe56 100644 --- a/internal/ui/config_test.go +++ b/internal/ui/config_test.go @@ -8,7 +8,7 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/stretchr/testify/assert" ) diff --git a/internal/ui/crumbs_test.go b/internal/ui/crumbs_test.go index a7c6bbcb..80b7fdb9 100644 --- a/internal/ui/crumbs_test.go +++ b/internal/ui/crumbs_test.go @@ -7,8 +7,8 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog" "github.com/stretchr/testify/assert" ) diff --git a/internal/ui/dialog/delete.go b/internal/ui/dialog/delete.go index df26b245..0f8357c8 100644 --- a/internal/ui/dialog/delete.go +++ b/internal/ui/dialog/delete.go @@ -40,10 +40,8 @@ func ShowDelete(styles config.Dialog, pages *ui.Pages, msg string, ok okFunc, ca }) propField := f.GetFormItemByLabel("Propagation:").(*tview.DropDown) propField.SetListStyles( - styles.FgColor.Color(), - styles.BgColor.Color(), - styles.ButtonFocusFgColor.Color(), - styles.ButtonFocusBgColor.Color(), + styles.FgColor.Color(), styles.BgColor.Color(), + styles.ButtonFocusFgColor.Color(), styles.ButtonFocusBgColor.Color(), ) f.AddCheckbox("Force:", force, func(_ string, checked bool) { force = checked diff --git a/internal/ui/dialog/error.go b/internal/ui/dialog/error.go index c26baa34..b17a29aa 100644 --- a/internal/ui/dialog/error.go +++ b/internal/ui/dialog/error.go @@ -6,8 +6,8 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) // ShowConfirm pops a confirmation dialog. diff --git a/internal/ui/flash.go b/internal/ui/flash.go index ba962742..7455a132 100644 --- a/internal/ui/flash.go +++ b/internal/ui/flash.go @@ -5,8 +5,8 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/model" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/ui/indicator.go b/internal/ui/indicator.go index 3711f710..cdcabdb7 100644 --- a/internal/ui/indicator.go +++ b/internal/ui/indicator.go @@ -8,8 +8,8 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/render" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) // StatusIndicator represents a status indicator when main header is collapsed. diff --git a/internal/ui/key.go b/internal/ui/key.go index fe81f7eb..fbf0028c 100644 --- a/internal/ui/key.go +++ b/internal/ui/key.go @@ -1,6 +1,6 @@ package ui -import "github.com/gdamore/tcell/v2" +import "github.com/derailed/tcell/v2" func init() { initKeys() diff --git a/internal/ui/prompt.go b/internal/ui/prompt.go index 00d60f22..4283793c 100644 --- a/internal/ui/prompt.go +++ b/internal/ui/prompt.go @@ -5,8 +5,8 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/model" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) const ( diff --git a/internal/ui/select_table.go b/internal/ui/select_table.go index 5dcbeb2f..335f3622 100644 --- a/internal/ui/select_table.go +++ b/internal/ui/select_table.go @@ -1,8 +1,8 @@ package ui import ( + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) // SelectTable represents a table with selections. diff --git a/internal/ui/table.go b/internal/ui/table.go index d77c69eb..511cefa6 100644 --- a/internal/ui/table.go +++ b/internal/ui/table.go @@ -11,8 +11,8 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/render" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" "golang.org/x/text/cases" "golang.org/x/text/language" diff --git a/internal/ui/tree.go b/internal/ui/tree.go index 20d51569..c6241620 100644 --- a/internal/ui/tree.go +++ b/internal/ui/tree.go @@ -4,8 +4,8 @@ import ( "context" "github.com/derailed/k9s/internal/model" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) // KeyListenerFunc listens to key presses. diff --git a/internal/view/actions.go b/internal/view/actions.go index 943c9747..658b199b 100644 --- a/internal/view/actions.go +++ b/internal/view/actions.go @@ -7,7 +7,7 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/ui/dialog" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/view/alias.go b/internal/view/alias.go index eb468278..c31623e8 100644 --- a/internal/view/alias.go +++ b/internal/view/alias.go @@ -7,7 +7,7 @@ import ( "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) const aliasTitle = "Aliases" diff --git a/internal/view/alias_test.go b/internal/view/alias_test.go index 7cfd8fae..9b86d9bb 100644 --- a/internal/view/alias_test.go +++ b/internal/view/alias_test.go @@ -12,7 +12,7 @@ import ( "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/view" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/stretchr/testify/assert" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/internal/view/app.go b/internal/view/app.go index 130b9cc3..da4cab6c 100644 --- a/internal/view/app.go +++ b/internal/view/app.go @@ -21,8 +21,8 @@ import ( "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/ui/dialog" "github.com/derailed/k9s/internal/watch" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -595,10 +595,9 @@ func (a *App) dirCmd(path string) error { path = dir } } - a.Content.Stack.Clear() a.cmdHistory.Push("dir " + path) - return a.inject(NewDir(path)) + return a.inject(NewDir(path), true) } func (a *App) helpCmd(evt *tcell.EventKey) *tcell.EventKey { @@ -613,7 +612,7 @@ func (a *App) helpCmd(evt *tcell.EventKey) *tcell.EventKey { return nil } - if err := a.inject(NewHelp(a)); err != nil { + if err := a.inject(NewHelp(a), false); err != nil { a.Flash().Err(err) } @@ -630,7 +629,7 @@ func (a *App) aliasCmd(evt *tcell.EventKey) *tcell.EventKey { return nil } - if err := a.inject(NewAlias(client.NewGVR("aliases"))); err != nil { + if err := a.inject(NewAlias(client.NewGVR("aliases")), false); err != nil { a.Flash().Err(err) } @@ -644,12 +643,17 @@ func (a *App) gotoResource(cmd, path string, clearStack bool) { } } -func (a *App) inject(c model.Component) error { +func (a *App) inject(c model.Component, clearStack bool) error { ctx := context.WithValue(context.Background(), internal.KeyApp, a) if err := c.Init(ctx); err != nil { log.Error().Err(err).Msgf("component init failed for %q", c.Name()) - dialog.ShowError(a.Styles.Dialog(), a.Content.Pages, err.Error()) + //dialog.ShowError(a.Styles.Dialog(), a.Content.Pages, err.Error()) + return err } + if clearStack { + a.Content.Stack.Clear() + } + a.Content.Push(c) return nil diff --git a/internal/view/benchmark.go b/internal/view/benchmark.go index 0aaf1134..bd6a8b90 100644 --- a/internal/view/benchmark.go +++ b/internal/view/benchmark.go @@ -11,7 +11,7 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/perf" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // Benchmark represents a service benchmark results view. @@ -45,7 +45,7 @@ func (b *Benchmark) viewBench(app *App, model ui.Tabular, gvr, path string) { } details := NewDetails(b.App(), "Results", fileToSubject(path), false).Update(data) - if err := app.inject(details); err != nil { + if err := app.inject(details, false); err != nil { app.Flash().Err(err) } } diff --git a/internal/view/browser.go b/internal/view/browser.go index ec84c478..b4cdc548 100644 --- a/internal/view/browser.go +++ b/internal/view/browser.go @@ -18,7 +18,7 @@ import ( "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/ui/dialog" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -261,7 +261,7 @@ func (b *Browser) viewCmd(evt *tcell.EventKey) *tcell.EventKey { } v := NewLiveView(b.app, "YAML", model.NewYAML(b.GVR(), path)) - if err := v.app.inject(v); err != nil { + if err := v.app.inject(v, false); err != nil { v.app.Flash().Err(err) } return nil @@ -464,7 +464,7 @@ func (b *Browser) defaultContext() context.Context { } func (b *Browser) refreshActions() { - if b.App().Content.Top().Name() != b.Name() { + if b.App().Content.Top() != nil && b.App().Content.Top().Name() != b.Name() { return } aa := ui.KeyActions{ diff --git a/internal/view/cluster_info.go b/internal/view/cluster_info.go index 6baaefa7..c5a2cab7 100644 --- a/internal/view/cluster_info.go +++ b/internal/view/cluster_info.go @@ -8,8 +8,8 @@ import ( "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/view/cm.go b/internal/view/cm.go index 7540b026..a0793c9a 100644 --- a/internal/view/cm.go +++ b/internal/view/cm.go @@ -7,7 +7,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // ConfigMap represents a configmap viewer. @@ -54,7 +54,7 @@ func scanRefs(evt *tcell.EventKey, a *App, t *Table, gvr string) *tcell.EventKey a.Flash().Infof("Viewing references for %s::%s", gvr, path) view := NewReference(client.NewGVR("references")) view.SetContextFn(refContext(gvr, path, false)) - if err := a.inject(view); err != nil { + if err := a.inject(view, false); err != nil { a.Flash().Err(err) } diff --git a/internal/view/command.go b/internal/view/command.go index 20b8dcd3..c1d0da03 100644 --- a/internal/view/command.go +++ b/internal/view/command.go @@ -199,7 +199,7 @@ func (c *Command) specialCmd(cmd, path string) bool { } tokens := canRX.FindAllStringSubmatch(cmd, -1) if len(tokens) == 1 && len(tokens[0]) == 3 { - if err := c.app.inject(NewPolicy(c.app, tokens[0][1], tokens[0][2])); err != nil { + if err := c.app.inject(NewPolicy(c.app, tokens[0][1], tokens[0][2]), false); err != nil { log.Error().Err(err).Msgf("policy view load failed") return false } @@ -268,13 +268,10 @@ func (c *Command) exec(cmd, gvr string, comp model.Component, clearStack bool) ( if err := c.app.Config.Save(); err != nil { log.Error().Err(err).Msg("Config save failed!") } - if clearStack { - c.app.Content.Stack.Clear() - } - - if err := c.app.inject(comp); err != nil { + if err := c.app.inject(comp, clearStack); err != nil { return err } + c.app.cmdHistory.Push(cmd) return diff --git a/internal/view/container.go b/internal/view/container.go index a17d1bfa..1ccad276 100644 --- a/internal/view/container.go +++ b/internal/view/container.go @@ -11,7 +11,7 @@ import ( "github.com/derailed/k9s/internal/port" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" v1 "k8s.io/api/core/v1" ) @@ -125,7 +125,7 @@ func (c *Container) showPFCmd(evt *tcell.EventKey) *tcell.EventKey { } pf := NewPortForward(client.NewGVR("portforwards")) pf.SetContextFn(c.portForwardContext) - if err := c.App().inject(pf); err != nil { + if err := c.App().inject(pf, false); err != nil { c.App().Flash().Err(err) } diff --git a/internal/view/context.go b/internal/view/context.go index 8ede1c23..8a9a19b8 100644 --- a/internal/view/context.go +++ b/internal/view/context.go @@ -6,7 +6,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/view/cow.go b/internal/view/cow.go index c8f13135..140faf99 100644 --- a/internal/view/cow.go +++ b/internal/view/cow.go @@ -8,8 +8,8 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) // Cow represents a bomb viewer. diff --git a/internal/view/cronjob.go b/internal/view/cronjob.go index 08e2206a..cb265a35 100644 --- a/internal/view/cronjob.go +++ b/internal/view/cronjob.go @@ -10,8 +10,8 @@ import ( "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/ui/dialog" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" batchv1 "k8s.io/api/batch/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -56,7 +56,7 @@ func (c *CronJob) showJobs(app *App, model ui.Tabular, gvr, path string) { v := NewJob(client.NewGVR("batch/v1/jobs")) v.SetContextFn(jobCtx(path, string(cj.UID))) - if err := app.inject(v); err != nil { + if err := app.inject(v, false); err != nil { app.Flash().Err(err) } } diff --git a/internal/view/details.go b/internal/view/details.go index 6db69033..066b0558 100644 --- a/internal/view/details.go +++ b/internal/view/details.go @@ -8,8 +8,8 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/sahilm/fuzzy" ) diff --git a/internal/view/dir.go b/internal/view/dir.go index 3635dbf5..ce3a1885 100644 --- a/internal/view/dir.go +++ b/internal/view/dir.go @@ -13,7 +13,7 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/ui/dialog" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) const ( @@ -95,7 +95,7 @@ func (d *Dir) viewCmd(evt *tcell.EventKey) *tcell.EventKey { } details := NewDetails(d.App(), "YAML", sel, true).Update(string(yaml)) - if err := d.App().inject(details); err != nil { + if err := d.App().inject(details, false); err != nil { d.App().Flash().Err(err) } @@ -143,7 +143,7 @@ func (d *Dir) gotoCmd(evt *tcell.EventKey) *tcell.EventKey { } v := NewDir(sel) - if err := d.App().inject(v); err != nil { + if err := d.App().inject(v, false); err != nil { d.App().Flash().Err(err) } @@ -215,7 +215,7 @@ func (d *Dir) applyCmd(evt *tcell.EventKey) *tcell.EventKey { } details := NewDetails(d.App(), "Applied Manifest", sel, true).Update(res) - if err := d.App().inject(details); err != nil { + if err := d.App().inject(details, false); err != nil { d.App().Flash().Err(err) } } @@ -244,7 +244,7 @@ func (d *Dir) delCmd(evt *tcell.EventKey) *tcell.EventKey { res = "message:\n" + fmtResults(res) } details := NewDetails(d.App(), "Deleted Manifest", sel, true).Update(res) - if err := d.App().inject(details); err != nil { + if err := d.App().inject(details, false); err != nil { d.App().Flash().Err(err) } }, func() {}) diff --git a/internal/view/event.go b/internal/view/event.go index 443b68b0..f2bb0230 100644 --- a/internal/view/event.go +++ b/internal/view/event.go @@ -3,7 +3,7 @@ package view import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // Event represents a command alias view. diff --git a/internal/view/group.go b/internal/view/group.go index 36fd7a04..ad074a00 100644 --- a/internal/view/group.go +++ b/internal/view/group.go @@ -6,7 +6,7 @@ import ( "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // Group presents a RBAC group viewer. @@ -40,7 +40,7 @@ func (g *Group) policyCmd(evt *tcell.EventKey) *tcell.EventKey { if path == "" { return evt } - if err := g.App().inject(NewPolicy(g.App(), "Group", path)); err != nil { + if err := g.App().inject(NewPolicy(g.App(), "Group", path), false); err != nil { g.App().Flash().Err(err) } diff --git a/internal/view/helm.go b/internal/view/helm.go index b756976f..6e6e2968 100644 --- a/internal/view/helm.go +++ b/internal/view/helm.go @@ -7,7 +7,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" ) @@ -56,7 +56,7 @@ func (c *Helm) getValsCmd() func(evt *tcell.EventKey) *tcell.EventKey { v.actions.Add(ui.KeyActions{ ui.KeyV: ui.NewKeyAction("Toggle All Values", c.toggleValuesCmd, true), }) - if err := v.app.inject(v); err != nil { + if err := v.app.inject(v, false); err != nil { v.app.Flash().Err(err) } return nil diff --git a/internal/view/help.go b/internal/view/help.go index 8517eff9..bd04ebcb 100644 --- a/internal/view/help.go +++ b/internal/view/help.go @@ -13,8 +13,8 @@ import ( "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) const ( diff --git a/internal/view/helpers.go b/internal/view/helpers.go index fd112ab9..129d0740 100644 --- a/internal/view/helpers.go +++ b/internal/view/helpers.go @@ -14,8 +14,8 @@ import ( "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" ) @@ -89,7 +89,7 @@ func defaultEnv(c *client.Config, path string, header render.Header, row render. func describeResource(app *App, m ui.Tabular, gvr, path string) { v := NewLiveView(app, "Describe", model.NewDescribe(client.NewGVR(gvr), path)) - if err := app.inject(v); err != nil { + if err := app.inject(v, false); err != nil { app.Flash().Err(err) } } @@ -115,7 +115,7 @@ func showPods(app *App, path, labelSel, fieldSel string) { if err := app.Config.SetActiveNamespace(ns); err != nil { log.Error().Err(err).Msg("Config NS set failed!") } - if err := app.inject(v); err != nil { + if err := app.inject(v, false); err != nil { app.Flash().Err(err) } } diff --git a/internal/view/helpers_test.go b/internal/view/helpers_test.go index 63af0f8e..385cca50 100644 --- a/internal/view/helpers_test.go +++ b/internal/view/helpers_test.go @@ -9,7 +9,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/render" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog" "github.com/stretchr/testify/assert" "k8s.io/cli-runtime/pkg/genericclioptions" diff --git a/internal/view/image_extender.go b/internal/view/image_extender.go index 787ba2ba..64f953a9 100644 --- a/internal/view/image_extender.go +++ b/internal/view/image_extender.go @@ -7,8 +7,8 @@ import ( "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" corev1 "k8s.io/api/core/v1" ) diff --git a/internal/view/live_view.go b/internal/view/live_view.go index 9528e736..35d1730b 100644 --- a/internal/view/live_view.go +++ b/internal/view/live_view.go @@ -5,13 +5,14 @@ import ( "fmt" "strconv" "strings" + "time" "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" "github.com/sahilm/fuzzy" ) @@ -94,13 +95,22 @@ func (v *LiveView) ResourceFailed(err error) { // ResourceChanged notifies when the filter changes. func (v *LiveView) ResourceChanged(lines []string, matches fuzzy.Matches) { v.app.QueueUpdateDraw(func() { + defer func(t time.Time) { + log.Debug().Msgf("Live view render time: %v", time.Since(t)) + }(time.Now()) + v.text.SetTextAlign(tview.AlignLeft) v.maxRegions = len(matches) - ll := make([]string, len(lines)) - copy(ll, lines) - for i, m := range matches { - loc, line := m.MatchedIndexes, ll[m.Index] - ll[m.Index] = line[:loc[0]] + `<<<"search_` + strconv.Itoa(i) + `">>>` + line[loc[0]:loc[1]] + `<<<"">>>` + line[loc[1]:] + var ll []string + if len(matches) == 0 { + ll = lines + } else { + ll = make([]string, len(lines)) + copy(ll, lines) + for i, m := range matches { + loc, line := m.MatchedIndexes, ll[m.Index] + ll[m.Index] = line[:loc[0]] + `<<<"search_` + strconv.Itoa(i) + `">>>` + line[loc[0]:loc[1]] + `<<<"">>>` + line[loc[1]:] + } } if v.text.GetText(true) == "" { diff --git a/internal/view/log.go b/internal/view/log.go index 7565e1cf..bf22e5b3 100644 --- a/internal/view/log.go +++ b/internal/view/log.go @@ -16,8 +16,8 @@ import ( "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/view/logger.go b/internal/view/logger.go index 8e950f60..19446dea 100644 --- a/internal/view/logger.go +++ b/internal/view/logger.go @@ -6,8 +6,8 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) // Logger represents a generic log viewer. diff --git a/internal/view/logs_extender.go b/internal/view/logs_extender.go index d7260cc3..d390c365 100644 --- a/internal/view/logs_extender.go +++ b/internal/view/logs_extender.go @@ -4,7 +4,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // LogsExtender adds log actions to a given viewer. @@ -67,7 +67,7 @@ func (l *LogsExtender) showLogs(path string, prev bool) { return } } - if err := l.App().inject(NewLog(l.GVR(), opts)); err != nil { + if err := l.App().inject(NewLog(l.GVR(), opts), false); err != nil { l.App().Flash().Err(err) } } diff --git a/internal/view/node.go b/internal/view/node.go index 08f06e0d..6039fd8a 100644 --- a/internal/view/node.go +++ b/internal/view/node.go @@ -11,7 +11,7 @@ import ( "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/ui/dialog" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -189,7 +189,7 @@ func (n *Node) yamlCmd(evt *tcell.EventKey) *tcell.EventKey { } details := NewDetails(n.App(), "YAML", sel, true).Update(raw) - if err := n.App().inject(details); err != nil { + if err := n.App().inject(details, false); err != nil { n.App().Flash().Err(err) } diff --git a/internal/view/ns.go b/internal/view/ns.go index e3a7c466..0b99de0e 100644 --- a/internal/view/ns.go +++ b/internal/view/ns.go @@ -5,7 +5,7 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/view/pf.go b/internal/view/pf.go index 8ad61d29..85b452c0 100644 --- a/internal/view/pf.go +++ b/internal/view/pf.go @@ -12,8 +12,8 @@ import ( "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/perf" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" ) @@ -57,7 +57,7 @@ func (p *PortForward) bindKeys(aa ui.KeyActions) { func (p *PortForward) showBenchCmd(evt *tcell.EventKey) *tcell.EventKey { b := NewBenchmark(client.NewGVR("benchmarks")) b.SetContextFn(p.getContext) - if err := p.App().inject(b); err != nil { + if err := p.App().inject(b, false); err != nil { p.App().Flash().Err(err) } diff --git a/internal/view/pf_extender.go b/internal/view/pf_extender.go index d8570b20..4347c743 100644 --- a/internal/view/pf_extender.go +++ b/internal/view/pf_extender.go @@ -8,7 +8,7 @@ import ( "github.com/derailed/k9s/internal/port" "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/watch" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" diff --git a/internal/view/picker.go b/internal/view/picker.go index de846a35..4ead1fca 100644 --- a/internal/view/picker.go +++ b/internal/view/picker.go @@ -5,8 +5,8 @@ import ( "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) // Picker represents a container picker. diff --git a/internal/view/pod.go b/internal/view/pod.go index 7f6f9a78..58aa6667 100644 --- a/internal/view/pod.go +++ b/internal/view/pod.go @@ -11,8 +11,8 @@ import ( "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/fatih/color" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -118,7 +118,7 @@ func (p *Pod) logOptions(prev bool) (*dao.LogOptions, error) { func (p *Pod) showContainers(app *App, model ui.Tabular, gvr, path string) { co := NewContainer(client.NewGVR("containers")) co.SetContextFn(p.coContext) - if err := app.inject(co); err != nil { + if err := app.inject(co, false); err != nil { app.Flash().Err(err) } } @@ -146,7 +146,7 @@ func (p *Pod) showNode(evt *tcell.EventKey) *tcell.EventKey { no := NewNode(client.NewGVR("v1/nodes")) no.SetInstance(pod.Spec.NodeName) //no.SetContextFn(nodeContext(pod.Spec.NodeName)) - if err := p.App().inject(no); err != nil { + if err := p.App().inject(no, false); err != nil { p.App().Flash().Err(err) } @@ -165,7 +165,7 @@ func (p *Pod) showPFCmd(evt *tcell.EventKey) *tcell.EventKey { } pf := NewPortForward(client.NewGVR("portforwards")) pf.SetContextFn(p.portForwardContext) - if err := p.App().inject(pf); err != nil { + if err := p.App().inject(pf, false); err != nil { p.App().Flash().Err(err) } @@ -272,7 +272,7 @@ func containerShellin(a *App, comp model.Component, path, co string) error { resumeShellIn(a, comp, path, co) }) - return a.inject(picker) + return a.inject(picker, false) } func resumeShellIn(a *App, c model.Component, path, co string) { @@ -315,7 +315,7 @@ func containerAttachIn(a *App, comp model.Component, path, co string) error { picker.SetSelectedFunc(func(_ int, co, _ string, _ rune) { resumeAttachIn(a, comp, path, co) }) - if err := a.inject(picker); err != nil { + if err := a.inject(picker, false); err != nil { return err } diff --git a/internal/view/policy.go b/internal/view/policy.go index 3f6078a6..7b5c8b04 100644 --- a/internal/view/policy.go +++ b/internal/view/policy.go @@ -6,7 +6,7 @@ import ( "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) const ( diff --git a/internal/view/popeye.go b/internal/view/popeye.go index 34cf7eae..8a92eb6d 100644 --- a/internal/view/popeye.go +++ b/internal/view/popeye.go @@ -10,7 +10,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // Popeye represents a sanitizer view. @@ -79,7 +79,7 @@ func (p *Popeye) gotoCmd(evt *tcell.EventKey) *tcell.EventKey { } v := NewSanitizer(client.NewGVR("sanitizer")) v.SetContextFn(sanitizerCtx(path)) - if err := p.App().inject(v); err != nil { + if err := p.App().inject(v, false); err != nil { p.App().Flash().Err(err) } diff --git a/internal/view/priorityclass.go b/internal/view/priorityclass.go index 611ed0d5..4325bca8 100644 --- a/internal/view/priorityclass.go +++ b/internal/view/priorityclass.go @@ -3,7 +3,7 @@ package view import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // PriorityClass presents a priority class viewer. diff --git a/internal/view/pulse.go b/internal/view/pulse.go index 6edfaa0a..1f060142 100644 --- a/internal/view/pulse.go +++ b/internal/view/pulse.go @@ -5,8 +5,8 @@ import ( "fmt" "image" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "golang.org/x/text/cases" "golang.org/x/text/language" diff --git a/internal/view/pvc.go b/internal/view/pvc.go index 927ad71c..ca82465c 100644 --- a/internal/view/pvc.go +++ b/internal/view/pvc.go @@ -3,7 +3,7 @@ package view import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // PersistentVolumeClaim represents a PVC custom viewer. diff --git a/internal/view/rbac.go b/internal/view/rbac.go index c4c9b0b9..d3b4e8af 100644 --- a/internal/view/rbac.go +++ b/internal/view/rbac.go @@ -6,7 +6,7 @@ import ( "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // Rbac presents an RBAC policy viewer. @@ -37,7 +37,7 @@ func showRules(app *App, _ ui.Tabular, gvr, path string) { v := NewRbac(client.NewGVR("rbac")) v.SetContextFn(rbacCtx(gvr, path)) - if err := app.inject(v); err != nil { + if err := app.inject(v, false); err != nil { app.Flash().Err(err) } } diff --git a/internal/view/reference.go b/internal/view/reference.go index 483e39cf..b8ed13bd 100644 --- a/internal/view/reference.go +++ b/internal/view/reference.go @@ -5,7 +5,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // Reference represents resource references. diff --git a/internal/view/restart_extender.go b/internal/view/restart_extender.go index aa153780..18f25e7a 100644 --- a/internal/view/restart_extender.go +++ b/internal/view/restart_extender.go @@ -9,7 +9,7 @@ import ( "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/ui/dialog" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // RestartExtender represents a restartable resource. diff --git a/internal/view/rs.go b/internal/view/rs.go index 589f669f..14fd11ef 100644 --- a/internal/view/rs.go +++ b/internal/view/rs.go @@ -6,8 +6,8 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" ) // ReplicaSet presents a replicaset viewer. diff --git a/internal/view/sa.go b/internal/view/sa.go index 4bd5237c..622fccf5 100644 --- a/internal/view/sa.go +++ b/internal/view/sa.go @@ -7,7 +7,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // ServiceAccount represents a serviceaccount viewer. @@ -46,7 +46,7 @@ func (s *ServiceAccount) policyCmd(evt *tcell.EventKey) *tcell.EventKey { if path == "" { return evt } - if err := s.App().inject(NewPolicy(s.App(), sa, path)); err != nil { + if err := s.App().inject(NewPolicy(s.App(), sa, path), false); err != nil { s.App().Flash().Err(err) } @@ -72,7 +72,7 @@ func scanSARefs(evt *tcell.EventKey, a *App, t *Table, gvr string) *tcell.EventK a.Flash().Infof("Viewing references for %s::%s", gvr, path) view := NewReference(client.NewGVR("references")) view.SetContextFn(refContext(gvr, path, false)) - if err := a.inject(view); err != nil { + if err := a.inject(view, false); err != nil { a.Flash().Err(err) } diff --git a/internal/view/sanitizer.go b/internal/view/sanitizer.go index c0799604..2a63d47e 100644 --- a/internal/view/sanitizer.go +++ b/internal/view/sanitizer.go @@ -11,8 +11,8 @@ import ( "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/xray" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" "golang.org/x/text/cases" "golang.org/x/text/language" diff --git a/internal/view/scale_extender.go b/internal/view/scale_extender.go index 383f5656..15754d1c 100644 --- a/internal/view/scale_extender.go +++ b/internal/view/scale_extender.go @@ -8,8 +8,8 @@ import ( "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/view/screen_dump.go b/internal/view/screen_dump.go index 41ec6077..940588cb 100644 --- a/internal/view/screen_dump.go +++ b/internal/view/screen_dump.go @@ -9,7 +9,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/view/secret.go b/internal/view/secret.go index 6924aa64..bec084d0 100644 --- a/internal/view/secret.go +++ b/internal/view/secret.go @@ -3,7 +3,7 @@ package view import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/labels" @@ -67,7 +67,7 @@ func (s *Secret) decodeCmd(evt *tcell.EventKey) *tcell.EventKey { } details := NewDetails(s.App(), "Secret Decoder", path, true).Update(string(raw)) - if err := s.App().inject(details); err != nil { + if err := s.App().inject(details, false); err != nil { s.App().Flash().Err(err) } diff --git a/internal/view/svc.go b/internal/view/svc.go index 64b8ede4..292bee97 100644 --- a/internal/view/svc.go +++ b/internal/view/svc.go @@ -13,7 +13,7 @@ import ( "github.com/derailed/k9s/internal/perf" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" diff --git a/internal/view/table.go b/internal/view/table.go index 121f5f64..ab45e5fe 100644 --- a/internal/view/table.go +++ b/internal/view/table.go @@ -9,7 +9,7 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" "github.com/rs/zerolog/log" ) diff --git a/internal/view/user.go b/internal/view/user.go index 3857f01e..aaa06a32 100644 --- a/internal/view/user.go +++ b/internal/view/user.go @@ -6,7 +6,7 @@ import ( "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/gdamore/tcell/v2" + "github.com/derailed/tcell/v2" ) // User presents a user viewer. @@ -40,7 +40,7 @@ func (u *User) policyCmd(evt *tcell.EventKey) *tcell.EventKey { if path == "" { return evt } - if err := u.App().inject(NewPolicy(u.App(), "User", path)); err != nil { + if err := u.App().inject(NewPolicy(u.App(), "User", path), false); err != nil { u.App().Flash().Err(err) } diff --git a/internal/view/xray.go b/internal/view/xray.go index c4586464..ea86e377 100644 --- a/internal/view/xray.go +++ b/internal/view/xray.go @@ -16,8 +16,8 @@ import ( "github.com/derailed/k9s/internal/ui" "github.com/derailed/k9s/internal/ui/dialog" "github.com/derailed/k9s/internal/xray" + "github.com/derailed/tcell/v2" "github.com/derailed/tview" - "github.com/gdamore/tcell/v2" "github.com/rs/zerolog/log" "github.com/sahilm/fuzzy" "golang.org/x/text/cases" @@ -274,7 +274,7 @@ func (x *Xray) showLogs(spec *xray.NodeSpec, prev bool) { Container: co, Previous: prev, } - if err := x.app.inject(NewLog(client.NewGVR("v1/pods"), &opts)); err != nil { + if err := x.app.inject(NewLog(client.NewGVR("v1/pods"), &opts), false); err != nil { x.app.Flash().Err(err) } } @@ -340,7 +340,7 @@ func (x *Xray) viewCmd(evt *tcell.EventKey) *tcell.EventKey { } details := NewDetails(x.app, "YAML", spec.Path(), true).Update(raw) - if err := x.app.inject(details); err != nil { + if err := x.app.inject(details, false); err != nil { x.app.Flash().Err(err) } @@ -390,7 +390,7 @@ func (x *Xray) describe(gvr, path string) { } details := NewDetails(x.app, "Describe", path, true).Update(yaml) - if err := x.app.inject(details); err != nil { + if err := x.app.inject(details, false); err != nil { x.app.Flash().Err(err) } }