Je voudrais voir les détails de 'config' comme indiqué par la commande de:

kubectl config view

Cependant, cela montre tous les détails de configuration de tous les contextes, comment puis-je le filtrer (ou peut-être y a-t-il une autre commande), pour afficher les détails de configuration du contexte ACTUEL?

2
Chris Stryczynski 21 nov. 2018 à 01:59

5 réponses

Meilleure réponse

kubectl config view --minify n'affiche que le contexte actuel

11
Jordan Liggitt 20 nov. 2018 à 23:41

Le bash / kubectl avec un peu de jq, pour tout contexte équivalent:

exec >/tmp/output &&
CONTEXT_NAME=kubernetes-admin@kubernetes \
CONTEXT_CLUSTER=$(kubectl config view -o=jsonpath="{.contexts[?(@.name==\"${CONTEXT_NAME}\")].context.cluster}") \
CONTEXT_USER=$(kubectl config view -o=jsonpath="{.contexts[?(@.name==\"${CONTEXT_NAME}\")].context.user}") && \
echo "[" && \
kubectl config view -o=json | jq  -j --arg CONTEXT_NAME "$CONTEXT_NAME" '.contexts[] | select(.name==$CONTEXT_NAME)' && \
echo "," && \
kubectl config view -o=json | jq  -j --arg CONTEXT_CLUSTER "$CONTEXT_CLUSTER" '.clusters[] | select(.name==$CONTEXT_CLUSTER)' && \
echo "," && \
kubectl config view -o=json | jq  -j --arg CONTEXT_USER "$CONTEXT_USER" '.users[] | select(.name==$CONTEXT_USER)' && \
echo -e "\n]\n" && \
exec >/dev/tty && \
cat /tmp/output | jq && \
rm -rf /tmp/output
1
Rico 21 nov. 2018 à 01:00

Vous pouvez utiliser la commande kubectl config view --minify pour obtenir uniquement le contexte actuel.

Il est pratique d'utiliser --help pour obtenir les options que vous pourriez avoir pour les opérations kubectl.

kubectl config view --help
1
marvelTracker 21 nov. 2018 à 01:01

Utilisez la commande ci-dessous pour obtenir la configuration complète, y compris les certificats

kubectl config view --minify --flatten
1
P Ekambaram 21 oct. 2019 à 09:14

La méthode native pour le cloud consiste à utiliser la sortie JSON de la commande, puis à la filtrer avec {{X0 }}:

kubectl config view -o json | jq '. as $o
    | ."current-context" as $current_context_name
    | $o.contexts[] | select(.name == $current_context_name) as $context
    | $o.clusters[] | select(.name == $context.context.cluster) as $cluster
    | $o.users[] | select(.name == $context.context.user) as $user
    | {"current-context-name": $current_context_name, context: $context, cluster: $cluster, user: $user}'

{
  "current-context-name": "docker-for-desktop",
  "context": {
    "name": "docker-for-desktop",
    "context": {
      "cluster": "docker-for-desktop-cluster",
      "user": "docker-for-desktop"
    }
  },
  "cluster": {
    "name": "docker-for-desktop-cluster",
    "cluster": {
      "server": "https://localhost:6443",
      "insecure-skip-tls-verify": true
    }
  },
  "user": {
    "name": "docker-for-desktop",
    "user": {
      "client-certificate-data": "REDACTED",
      "client-key-data": "REDACTED"
    }
  }
}

Cette réponse m'a aidé à comprendre certains des bits jq.

2
andrewdotn 20 nov. 2018 à 23:47