Kube-ps1
Un script qui vous permet d'ajouter le contexte et l'espace de noms de Kubernetes configuré sur kubectl vers vos chaînes d'invites Bash/Zsh (c'est-à-dire le...
Choisir une liste...
kube-ps1: Kubernetes invite pour bash et zsh
Un script qui vous permet d'ajouter le contexte et l'espace de noms de Kubernetes
configuré surkubectlà vos chaînes Bash/Zsh$PS1).
Inspiré par plusieurs outils utilisés pour simplifier l'utilisation dekubectl.

Installation
Emballages
Ports MacOS Brew
Gestionnaire de paquets Homebrew:
brew update
brew install kube-ps1
Arche Linux
Paquet AUR disponible àhttps://aur.archlinux.org/packages/kube-ps1/.
Oh mon Zsh
https://github.com/ohmyzsh/ohmyzsh
kube-ps1 est inclus comme un plugin dans le projet oh-my-zsh. Pour l'activer, modifiez votre~/.zshrcet
ajouter le plugin & #160;:
plugins=(
kube-ps1
)
PROMPT='$(kube_ps1)'$PROMPT # or RPROMPT='$(kube_ps1)'
Plugin Zsh zinit
Utilisationzinit
Mise à jour.zshrcavec:
zinit light jonmosco/kube-ps1
PROMPT='$(kube_ps1)'$PROMPT # or RPROMPT='$(kube_ps1)'
Graphique
Installerkube-ps1en zsh, bash ou poisson avec un seul clic.
Source (clone-git)
- Clone ce dépôt
- Source le kube-ps1.sh dans votre
~/.zshrcou votre~/.bashrc
Zsh
source /path/to/kube-ps1.sh
PROMPT='$(kube_ps1)'$PROMPT # or RPROMPT='$(kube_ps1)'
Bash
source /path/to/kube-ps1.sh
PS1='[\u@\h \W $(kube_ps1)]\$ '
Exigences
L'invite par défaut suppose que vous avezkubectlutilitaire en ligne de commande installé.
Les instructions officielles d'installation et les binaires sont disponibles:
Si vous utilisez ceci avec OpenShiftocles besoins d'outils installés. Il peut être obtenu
des ports de brasserie:
brew install openshift-cli
ou la source peut être téléchargée:
Définit le binaire àocavec la variable suivante:
KUBE_PS1_BINARY=oc
Si aucun binaire n'est disponible, l'invite va imprimer ce qui suit:
(<symbol>|BINARY-N/A:N/A)
Utilitaires d'aide
Il ya plusieurs grands outils qui rendent l'utilisation de kubectl très agréable:
kubectxandkubenssont parfaits pour commutation rapide entre les clusters et les espaces de noms.
Port de Tmux
J'ai commencé à porter kube-ps1 à tmux en tant que plugin de ligne de statut. Si vous préférez tmux, et comme la fonctionnalité fournie par kube-ps1, kube-tmuxprojet
Structure rapide
La mise en page par défaut est :
(<symbol>|<context>:<namespace>)
Si le contexte actuel n'est pas défini, kube-ps1 retournera ce qui suit :
(<symbol>|N/A:N/A)
Permettre/désactiver
Si vous voulez arrêter d'afficher temporairement le statut de Kubernetes sur votre chaîne de caractères
lancerkubeoff. Pour désactiver l'invite pour toutes les sessions shell, lancezkubeoff -g.
Vous pouvez l'activer à nouveau dans le shell actuel en exécutantkubeon, et mondial
aveckubeon -g.
kubeon : turn on kube-ps1 status for this shell. Takes precedence over
global setting for current session
kubeon -g : turn on kube-ps1 status globally
kubeoff : turn off kube-ps1 status for this shell. Takes precedence over
global setting for current session
kubeoff -g : turn off kube-ps1 status globally
Symbole
Les symboles par défaut sont UTF8 et devraient fonctionner avec la plupart des polices. Si vous voulez utiliser les Kubernetes et OpenShift glyphs, vous devez installer une police patchée qui contient le glyph.Nerd Fontsfournit les deux glyphes. Suivez les instructions d'installation pour installer la police corrigée.
KUBE_PS1_SYMBOL_CUSTOMoptions
Options Symbole Description
Il n'y a pas de différence entre les deux.
Par défaut (chaîne vide)\u2388)
Symbole souvent utilisé pour représenter Kubernetes (Unicode\u2638)
oc
Symbole représentant OpenShift (Unicode)\ue7b7)
- oui
Symbole représentant Kubernetes (Unicode)\ue7b7)
Pour définir le symbole à l'un des glyphes personnalisés, ajoutez ce qui suit à votre~/.bashrcou~/.zshrc:
KUBE_PS1_SYMBOL_CUSTOM=img
Pour définir le symbole par défaut, définissez leKUBE_PS1_SYMBOLà une corde vide.
Voici une démonstration des symboles en action:

Si la police n'est pas correctement installée et que le glyphe n'est pas disponible, elle affichera un ensemble vide de crochets ou similaires:
echo -n "\ue7b7"
Personnalisation
Les paramètres par défaut peuvent être dépassés dans~/.bashrcou~/.zshrcpar réglage
les variables suivantes:
Valeur par défaut
Il n'y a pas de différence entre les deux.
AutresKUBE_PS1_BINARYAutreskubectlPar défaut Kubernetes binaire
AutresKUBE_PS1_NS_ENABLEAutrestrueAfficher l'espace de noms. Si défini àfalse, cela va également désactiverKUBE_PS1_DIVIDERAutres
AutresKUBE_PS1_PREFIXAutres(caractère d'ouverture rapide
AutresKUBE_PS1_SYMBOL_ENABLEAutrestrueAfficher le symbole de l'invite. Si défini àfalse, cela va également désactiverKUBE_PS1_SEPARATORAutres
AutresKUBE_PS1_SYMBOL_PADDINGAutresfalseAjoute un espace (padding) après le symbole pour empêcher le grabage des caractères de l'invite.
AutresKUBE_PS1_SYMBOL_CUSTOMAutres⎈Modifier le symbole de l'invite par défaut. Unicode\u2388. Les options sontk8s,img,ocAutres
AutresKUBE_PS1_SYMBOL_COLORAutresblueModifier la couleur du symbole par défaut.
AutresKUBE_PS1_SEPARATORSéparateur entre le symbole et le nom du contexte
AutresKUBE_PS1_DIVIDERAutres:Séparateur entre contexte et espace de noms
AutresKUBE_PS1_SUFFIXAutres)caractère de fermeture rapide
AutresKUBE_PS1_CLUSTER_FUNCTIONAucun défaut, doit être fourni par l'utilisateur.
AutresKUBE_PS1_NAMESPACE_FUNCTIONAucun défaut, doit être fourni par l'utilisateur.
AutresKUBE_PS1_CTX_COLOR_FUNCTIONAucun défaut, doit être fourni par l'utilisateur.
AutresKUBE_PS1_HIDE_IF_NOCONTEXTAutresfalseCacher l'invite kube-ps1 si aucun contexte n'est défini
Pour désactiver une fonctionnalité, définissez-la à une chaîne vide :
KUBE_PS1_SEPARATOR=''
Couleurs
Les couleurs par défaut sont définies avec les variables suivantes :
Valeur par défaut
Il n'y a pas de différence entre les deux.
AutresKUBE_PS1_PREFIX_COLORAutresnullDéfinir la couleur par défaut du préfixe de l'invite
AutresKUBE_PS1_SYMBOL_COLORAutresblueDéfinir la couleur par défaut du symbole Kubernetes
AutresKUBE_PS1_CTX_COLORAutresredDéfinir la couleur par défaut du contexte
AutresKUBE_PS1_SUFFIX_COLORAutresnullDéfinir la couleur par défaut du suffixe d'invite
AutresKUBE_PS1_NS_COLORAutrescyanDéfinir la couleur par défaut de l'espace de noms
AutresKUBE_PS1_BG_COLORAutresnullDéfinir la couleur par défaut de l'arrière-plan de l'invite
Bleu a été utilisé pour le symbole par défaut pour correspondre à la couleur Kubernetes aussi étroitement autant que possible. Rouge a été choisi comme le nom de contexte pour se démarquer, et cyan pour le Espace de noms.
Définissez la variable à une chaîne vide si vous ne voulez pas de couleur pour chaque section rapide:
KUBE_PS1_CTX_COLOR=''
Les noms sont utilisables pour les couleurs suivantes:
black, red, green, yellow, blue, magenta, cyan
256 couleurs sont disponibles en spécifiant la valeur numérique comme variable c'est un argument.
Personnaliser l'affichage du nom du groupe et de l'espace de noms
Vous pouvez modifier la façon dont le nom du groupe et l'espace de noms sont affichés en utilisant le
KUBE_PS1_CLUSTER_FUNCTIONetKUBE_PS1_NAMESPACE_FUNCTIONvariables
respectivement.
Pour les exemples suivants, supposons :
nom du groupe & #160;:sandbox.k8s.example.comespace de noms & #160;:alpha
Si vous utilisez des noms de grappes de style de domaine, votre invite sera assez longue
Très vite. Disons que vous voulez seulement afficher la première partie du
Nom du groupe (sandbox), vous pouvez le faire en ajoutant ce qui suit:
function get_cluster_short() {
echo "$1" | cut -d . -f1
}
KUBE_PS1_CLUSTER_FUNCTION=get_cluster_short
Le même motif peut être suivi pour personnaliser l'affichage de l'espace de noms.
Disons que vous préféreriez que l'espace de noms soit affiché dans toutes les majuscules
(ALPHA), voici une façon de faire:
function get_namespace_upper() {
echo "$1" | tr '[:lower:]' '[:upper:]'
}
export KUBE_PS1_NAMESPACE_FUNCTION=get_namespace_upper
Dans les deux cas, la variable est définie au nom de la fonction, et vous devez avoir défini la fonction dans votre configuration shell avant que kube ps1 ne soit appelé. La fonction doit accepter un paramètre unique et faire écho à la valeur finale.
Couleurs du contexte dynamique
Vous pouvez définir différentes couleurs pour différents contextes en utilisant le
KUBE_PS1_CTX_COLOR_FUNCTIONvariable. Ceci est utile pour le codage des couleurs
contextes pour faire ressortir visuellement les environnements de production.
Par exemple, pour rendre les contextes de production rouges et les contextes de développement verts :
function kube_ps1_ctx_color() {
local context="$1"
case "$context" in
*prod*)
echo "red"
;;
*dev*)
echo "green"
;;
*staging*|*stg*)
echo "yellow"
;;
*)
echo "cyan" # default color for other contexts
;;
esac
}
export KUBE_PS1_CTX_COLOR_FUNCTION=kube_ps1_ctx_color
La fonction reçoit le nom du contexte comme premier paramètre et doit faire écho
le nom de couleur souhaité. Toutes les options de couleur prises en charge parKUBE_PS1_CTX_COLORsont
disponibles, y compris les couleurs nommées (noir, rouge, vert, jaune, bleu, magenta,
codes cyan, blanc) et 256 couleurs (0-256).
SiKUBE_PS1_CTX_COLOR_FUNCTIONn'est pas défini, kube-ps1 utilisera la valeur de
KUBE_PS1_CTX_COLOR(par défaut : rouge).
Rapports de bogue et configuration du shell
En raison des nombreuses façons de personnaliser le shell, veuillez essayer l'invite avec un configuration minimale avant de soumettre un rapport de bogue.
Ceci peut être fait comme suit pour chaque coque avant de charger kube-ps1:
C'est vrai
bash --norc
- Oui
zsh -f
or
zsh --no-rcs
Pour le symbole invite, une police patchée contenant les glyphes doit être installée. .Nerd Fonts Downloadsfournit patché polices contenant les glyphes. Veuillez consulter leur documentation pour cela, support est hors de portée pour ce projet.
Contributeurs
Merci à tous les membres de la communauté pour leur contribution à kube-ps1!