8000 GitHub - kubecolor/kubecolor at v0.2.1
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

kubecolor/kubecolor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kubecolor logo

kubecolor

KubeColor is a kubectl replacement used to add colors to your kubectl output.

test Go Report Card

Preview screenshots
  • You can also change color theme for light-backgrounded environment

    image

What's this?

kubecolor colorizes your kubectl command output and does nothing else. kubecolor internally calls kubectl command and try to colorizes the output so you can use kubecolor as a complete alternative of kubectl. It means you can write this in your .bash_profile:

alias kubectl="kubecolor"

If you use your .bash_profile on more than one computer (e.g. synced via git) that might not all have kubecolor installed, you can avoid breaking kubectl like so:

command -v kubecolor >/dev/null 2>&1 && alias kubectl="kubecolor"

For now, not all subcommands are supported and some of them might be in the future. If you want something to be supported by kubecolor, you can open an issue in this GitHub repo. Even if what you want to do is not supported by kubecolor right now, kubecolor still can just show kubectl output without any decorations, so you don't need to switch kubecolor and kubectl but you always can use kubecolor.

Additionally, if kubectl resulted an error, kubecolor just shows the error message in red or yellow.

Please keep in mind that kubecolor has runtime overhead compared to kubectl because it runs kubectl internally and parses the output, then colorizes it.

Installation

Download binary via GitHub release

Go to Release page then download the binary which fits your environment.

Mac and Linux users via Homebrew

brew install kubecolor/tap/kubecolor

Manually via Go command

Requires Go 1.21 (or later)

go install github.com/kubecolor/kubecolor@latest

Usage

kubecolor understands every subcommands and options which are available for kubectl. What you have to do is just using kubecolor instead of kubectl like:

kubecolor --context=your_context get pods -o json

If you want to make the colorized kubectl default on your shell, just add this line into your shell configuration file:

alias kubectl="kubecolor"

Dynamic tty support

When the kubecolor output tty is not standard output, it automatically disables the colorization. For example, if you are running kubecolor get pods > result.txt or kubecolor get pods | grep xxx, the output will be passed through to file or another command, so colorization is not applied. You can force kubecolor do colorization at such cases by passing --force-colors flag. See the upcoming section for more details.

Flags

Available flags for kubecolor. When you pass them, kubecolor will understand them but these flags won't be passed to kubectl.

  • --kubecolor-version

Prints the version of kubecolor (not kubectl one).

  • --light-background

When your terminal's background color is something light (e.g white), default color preset might look too bright and not readable. If so, specify --light-background as a command line argument. kubecolor will use a color preset for light-backgrounded environment.

  • --force-colors

By default, kubecolor never output the result in colors when the tty is not a terminal standard output. If you want to force kubecolor to show the result in colors for non-terminal tty, you can specify this flag. For example, when you want to pass kubecolor result to grep (kubecolor get pods | grep pod_name), this option is useful.

  • --plain

When you don't want to colorize output, you can specify --plain. Kubecolor understands this option and outputs the result without colorizing.

ENV Variables

  • KUBECOLOR_OBJ_FRESH

When setting the variable KUBECOLOR_OBJ_FRESH to a duration, you can change the color of the object depending on its creation time.

Please see Specify object fresh age threshold

  • KUBECOLOR_FORCE_COLORS

In addition to forcing colors with --force-colors, you can also do so by setting the environment variable KUBECOLOR_FORCE_COLORS=true. You can use this environment variable to colorize output when you invoke kubecolor in the watch command (e.g. watch kubecolor get pods). Set the following alias:

alias watch='KUBECOLOR_FORCE_COLORS=true watch --color '

Be sure to include the space at the end to enable alias expansion (without this additional space, the command watch kgp would fail, for example).

  • KUBECOLOR_LIGHT_BACKGROUND

In addition to use the light color preset with --light-background, you can also do so by setting the environment variable KUBECOLOR_LIGHT_BACKGROUND=true.

Autocompletion

kubectl provides autocompletion feature. If you are already using it, you might have to configure it for kubecolor. Please also refer to kubectl official doc for kubectl autocomplete.

Bash

For Bash, configuring autocompletion requires adding following line in your shell config file.

# autocomplete for kubecolor
complete -o default -F __start_kubectl kubecolor

If you are using an alias like k="kubecolor", then just change above like:

complete -o default -F __start_kubectl k

Zsh

For zsh make sure these lines are present in your zsh config file:

# get zsh complete kubectl
source <(kubectl completion zsh)
alias kubectl=kubecolor
# make completion work with kubecolor
compdef kubecolor=kubectl

fish

Fish completion is officially unsupported by kubectl, so it is unsupported by kubecolor as well.

However, there are 2 ways we can make them work. Please keep in mind these are a kind of "hack" and not officially supported.

  1. Use evanlucas/fish-kubectl-completions with kubecolor:

  2. Use awinecki/fish-kubecolor-completions

    The first way will override kubectl command. If you wish to preserve both kubectl and kubecolor with completions, you need to copy evanlucas/fish-kubectl-completions for the kubecolor command.

    For this purpose, you can use awinecki/fish-kubecolor-completions.

Specify what command to execute as kubectl

Sometimes, you may want to specify which command to use as kubectl internally in kubecolor. For example, when you want to use a versioned-kubectl kubectl.1.19, you can do that by an environment variable:

KUBECTL_COMMAND="kubectl.1.19" kubecolor get po

When you don't set KUBECTL_COMMAND, then kubectl is used by default.

Specify object fresh age threshold

When you want to figure out which object are recently created the fresh ones are colored green. It only works with get subcommand. You can customize threshold level by using environment variable KUBECOLOR_OBJ_FRESH with value format time.Duration.

KUBECOLOR_OBJ_FRESH="1m" kubecolor get po

Default value is 0s, it means is disabled.

Supported kubectl version

Because kubecolor internally calls kubectl command, if you are using unsupported kubectl version, it's also not supported by kubecolor. Kubernetes version support policy can be found in official doc.

kubectl plugins

Even if kubectl supports plugin feature, it is not supported by kubecolor, including Krew. It means you can use plugins from kubecolor (e.g. you can do kubecolor plugin_name xxx), but the result won't be colorized.

Contributions

Always welcome. Just opening an issue should be also greatful.

LICENSE

MIT

Author

This project is a heavily modified version of the original KubeColor maintained at https://github.com/hidetatz/kubecolor

@kubecolor

Sponsor this project

Packages

 
 
 

Languages

0