Commit Graph

44 Commits

Author SHA1 Message Date
rob salmond
3369d42e2d add unset flag (#187)
* add unset flag

* test unsetting selected context

* update readme with new unset flag

* testdata notes

* set a current context

* cleanup

* omit fixture changes
2020-02-04 09:39:47 -08:00
Ahmet Alp Balkan
56e30d2b43 Detect invocation style only in usage() (#183)
- removes global SELF variable
- fixes #181

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2019-11-11 11:15:48 -08:00
Ahmet Alp Balkan
e2f7dc0de2 Print plugin-friendly usage string
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2019-11-09 16:46:27 -08:00
Oliver Ford
00a1e12bfb Disable preview when fuzzy-finding (#163)
The user may have global settings that enable the preview pane in fzf.

Whatever the preview command is set as, it probably doesn't render
anything meaningful for kubens - I can't think what would be.

For kubectx, the context yaml itself would _maybe_ be helpful, but it
likely contains secrets, so I don't personally think I'd find it useful
enough to get into.

This commit thus disables the preview, so that if the user did have it
enabled, there's now no pane where there would previously have probably
been an error, such as:

    [bat error]: '<namespace>': No such file or directory (os error 2)
2019-10-11 12:14:32 -04:00
Ahmet Alp Balkan
28e7c12f51 Introduce -c/--current options for kubectx/kubens (#171)
Per #127 the user community wants to have this feature, primarily as
-c and --current flags.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2019-08-30 11:49:49 -07:00
Ahmet Alp Balkan
b9614bd2e0 kubectx rename check if old_name is a valid ctx (#139)
Without this safeguard, when user runs `kubectx NEW_NAME=OLD_NAME` where
NEW_NAME is an existing context but OLD_NAME isn't, we end up deleting NEW_NAME
and not doing any renames (because OLD_NAME is not found).

Fixes #136.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2019-04-04 08:59:51 -07:00
Tariq Ibrahim
a1bce92cc8 Fix alignment of kubectx help in USAGE text. (#129) 2019-02-04 14:21:45 -08:00
Ahmet Alp Balkan
b584d14f90 Show color in interactive mode (#109)
This patch introduces an internal _KUBECTX_FORCE_COLOR environment variable
that overrides color output decision.

With this, fzf output shows the color indicators for ctx/ns and choosing the
option with the color works without any extra handling.

Fixes #89.
Fixes #98.
2018-12-29 11:05:00 -08:00
Rafael Bodill
407a84ce9e Support XDG_CACHE_HOME environment variable (#93) 2018-11-26 12:21:43 -08:00
Chad Metcalf
ec994aff89 Check for kubectl.exe on Windows (#96)
On the various flavors of bash for Windows kubectl won't resolve as the binary is kubectl.exe.
Simple aliasing doesn't seem to work. So test for both otherwise fail with a not found error.
2018-11-26 12:21:21 -08:00
Robert James Hernandez
3aeb4e76d2 fix subshell error handling (#95)
fixes #5
2018-11-07 09:27:34 -08:00
Robert James Hernandez
6c94248e98 Ensure kubectl in PATH for kubectx 2018-10-19 22:20:03 -07:00
Oliver
ccc077b6c5 allow disabling interactive mode with fzf (#82)
Introduce KUBECTX_IGNORE_FZF for both kubectx/kubens to force-disable
attempt to enable interactive mode and lookup for fzf(1).
2018-08-31 15:39:43 -07:00
Ahmet Alp Balkan
f01719a5a6 fix: --with-short-names not compatible with fzf (#79)
When kubectx is installed as kctx, FZF_DEFAULT_COMMAND=kubectx won't work.

Fixes #78.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2018-08-24 09:28:00 -07:00
Ahmet Alp Balkan
595c27ada7 fix: ignored args while deleting multiple clusters (#76)
Fixes #75.
2018-08-23 10:17:42 -07:00
Ahmet Alp Balkan
8df92316d6 add support for interactive selection with fzf (#74)
Present a fuzzy search choice in "kubectx" and "kubens" commands without
arguments.

![demo2](https://user-images.githubusercontent.com/159209/44478683-40f16d00-a5f3-11e8-99e2-f32f2a3539c1.gif)

Fixes #71.
2018-08-22 10:08:13 -07:00
Ahmet Alp Balkan
7b23263fc2 ignore errors from tput (to fix TERM=vt100) (#73)
Currently TERM=vt100 is causing kubectx failure since tput is returning
exitcode=1. vt100 does not have colors. Ignoring tput exit code.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2018-08-22 09:50:34 -07:00
Vít Listík
e368d13eea help exit status 0 (#72) 2018-08-19 16:40:47 -07:00
Ahmet Alp Balkan
c606382a62 Respect $NO_COLOR
Fixes #54.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2018-06-10 14:16:05 -07:00
Prabhu Jayakumar
9beb1a1587 Configure highlight color for current context & namespace using environment variable 2018-06-05 23:29:08 +05:30
Prabhu Jayakumar
c23c2a9e29 Revert "Use * to indicate current context & current namespace"
This reverts commit dad48e5397.
2018-05-30 00:32:23 +05:30
Prabhu Jayakumar
dad48e5397 Use * to indicate current context & current namespace 2018-05-28 23:03:03 +05:30
Ahmet Alp Balkan
e9fbafc923 Merge pull request #46 from uesteibar/delete-multiple-contexts
Allow deleting multiple contexts at once
2018-05-25 11:06:09 -07:00
Xavier Naveira
bcb89389c6 Make the scripts portable 2018-05-23 17:09:54 +02:00
uesteibar
4a1d73d5fe Allow deleting multiple contexts at once
fixes #39

Example: `kubectx -d ctx1 ctx2`
2018-05-18 23:20:49 +02:00
Ahmet Alp Balkan
4520d3f54b Do not print colors if stdout isn't tty
This is previously offered in #18, #22, and #27 and I previously rejected
these PRs. My rationale was to prevent scripting around kubectx as it is
meant to be used as an interactive tool.

But clearly that will be a problem, when you're doing operations like:

    kubectx -d $(kubectx)

which I proposed in #39. Plus this change is harmless. I think this
implementation does a better check than the previous ones.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2018-04-10 21:53:14 -07:00
Ahmet Alp Balkan
7b6528a4ae Prototype context deletion (kubectx -d)
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2018-04-04 12:40:23 -07:00
Ahmet Alp Balkan
0141d66224 Support "kubectx NAME=." to rename current-context
Fixes #24.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2018-04-02 23:52:18 -07:00
Ahmet Alp Balkan
fbce3de6b9 Add overwriting to rename
rename now deletes the context (soft-delete, as in does not delete user or
cluster of the context) if the specified name exists.

Fixes #25.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2018-04-02 23:27:51 -07:00
Ahmet Alp Balkan
6610d70ca8 separate local declarations and function calls
Suggested by SC2155 (https://github.com/koalaman/shellcheck/wiki/SC2155).

It captures some of the errors from kubectl that were previously described
in #5. However, this doesn't completely address that.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2018-04-02 22:20:35 -07:00
Jon Mosco
b188f4da88 Incorporate utils.bash into each executable to help simplify packaging
for Linux and other platforms.  This adds to PR #32

remove unused functions
2018-03-15 12:34:18 -04:00
Bhargav Nookala
9ed6690978 🔧 use rename-context in place of set-context 2017-11-03 12:49:03 -07:00
Ahmet Alp Balkan
8e413fc8ac Fallback to readlink -f on macOS
BSD coreutils readlink doesn't have -f option, so
adding a Python one-liner feedback to eval symlinks/homedir.
Fixes #8.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-05-17 09:37:57 -07:00
Ahmet Alp Balkan
d441505348 Add kubens tool for namespace switching
Fixes #1. Now kubectx also ships with kubens.

Extracted utility functions to a utils.bash file, loaded
from ../include/utils.bash.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-05-16 19:06:58 -07:00
Simon Westcott
8c6cf84801 Unified context discovery 2017-05-12 09:05:02 +01:00
Ahmet Alp Balkan
32814d88e1 Add IFS to script, help wanted in README
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-29 10:05:33 -07:00
Ahmet Alp Balkan
6de838135f Add {README,CONTRIBUTING}.md
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-29 00:30:12 -07:00
Ahmet Alp Balkan
c849ef0083 Better if organization in main()
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-29 00:12:58 -07:00
Ahmet Alp Balkan
aca0536725 Fix unrecognized flag handling
If the values in a=b format matches -(.*), unrecognized
flag error is triggeed, using ^pattern to handle this.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-28 21:59:53 -07:00
Ahmet Alp Balkan
f865312fb5 Better logic to keep history of context switches
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-28 21:58:07 -07:00
Ahmet Alp Balkan
98847e0649 Styling fixes
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-28 21:38:12 -07:00
Ahmet Alp Balkan
231f170968 Add support to create aliases
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-28 18:04:07 -07:00
Ahmet Alp Balkan
7ac1963235 Show current context with colors
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-28 17:36:51 -07:00
Ahmet Alp Balkan
43f2aec038 Initial import
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-28 17:24:14 -07:00