Last active
March 26, 2025 22:57
-
-
Save nicolaballotta/cab3e389e5fb541222677e5b4ec90c7f to your computer and use it in GitHub Desktop.
Add Kubernetes context to your zsh prompt (for Agnoster theme, but can easily be adapted to different themes)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# INSTALLATION | |
# - Add the following function to your .oh-my-zsh/themes/agnoster.zsh-theme | |
# - Call prompt_kubecontext from build_prompt() as showed in the example below | |
# | |
# | |
# build_prompt() { | |
# prompt_kubecontext | |
# } | |
prompt_kubecontext() { | |
if [[ $(kubectl config current-context) == *"testing"* ]]; then | |
prompt_segment green black "(`kubectl config current-context`)" | |
elif [[ $(kubectl config current-context) == *"staging"* ]]; then | |
prompt_segment yellow black "(`kubectl config current-context`)" | |
elif [[ $(kubectl config current-context) == *"production"* ]]; then | |
prompt_segment red yellow "(`kubectl config current-context`)" | |
fi | |
} |
FWIW I said that because the code you got above will likely add 300-500 ms to each of your prompts because you're calling
kubectl
so many times and not caching the result. kubectl is very slow and ideally you shouldn't run it on each prompt. kube-ps1 directly reads the config file and therefore is pretty darn fast.
That might be outdated ...
~ » time kubectl config current-context
aks1
kubectl config current-context 0.13s user 0.05s system 137% cpu 0.129 total
EDIT: Ah. I see it now ... the many conditionals in this particular example from OP definitely will benefit from running kubectl
only ONCE
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
but if you have to modify the prompt kube-ps1 is not useful, you can use below :