2.4. Gestion des profils CLI
Un fichier de configuration CLI vous permet de configurer différents profils, ou contextes, pour l'utilisation de la vue d'ensemble des outils CLI. Un contexte se compose de l'authentification de l'utilisateur et des informations du serveur OpenShift Container Platform associées à un nickname.
2.4.1. À propos des commutations entre profils CLI
Les contextes vous permettent de passer facilement d'un utilisateur à l'autre sur plusieurs serveurs OpenShift Container Platform, ou clusters, lorsque vous utilisez des opérations CLI. Les surnoms facilitent la gestion des configurations de la CLI en fournissant des références abrégées aux contextes, aux informations d'identification de l'utilisateur et aux détails du cluster. Après la première connexion à la CLI, OpenShift Container Platform crée un fichier ~/.kube/config
s'il n'en existe pas déjà un. Au fur et à mesure que des détails d'authentification et de connexion sont fournis à la CLI, soit automatiquement au cours d'une opération oc login
, soit en configurant manuellement les profils de la CLI, les informations mises à jour sont stockées dans le fichier de configuration :
Fichier de configuration CLI
apiVersion: v1 clusters: 1 - cluster: insecure-skip-tls-verify: true server: https://openshift1.example.com:8443 name: openshift1.example.com:8443 - cluster: insecure-skip-tls-verify: true server: https://openshift2.example.com:8443 name: openshift2.example.com:8443 contexts: 2 - context: cluster: openshift1.example.com:8443 namespace: alice-project user: alice/openshift1.example.com:8443 name: alice-project/openshift1.example.com:8443/alice - context: cluster: openshift1.example.com:8443 namespace: joe-project user: alice/openshift1.example.com:8443 name: joe-project/openshift1/alice current-context: joe-project/openshift1.example.com:8443/alice 3 kind: Config preferences: {} users: 4 - name: alice/openshift1.example.com:8443 user: token: xZHd2piv5_9vQrg-SKXRJ2Dsl9SceNJdhNTljEKTb8k
- 1
- La section
clusters
définit les détails de connexion pour les clusters OpenShift Container Platform, y compris l'adresse de leur serveur principal. Dans cet exemple, un cluster est surnomméopenshift1.example.com:8443
et un autreopenshift2.example.com:8443
. - 2
- Cette section
contexts
définit deux contextes : l'un surnomméalice-project/openshift1.example.com:8443/alice
, qui utilise le projetalice-project
, le groupeopenshift1.example.com:8443
et l'utilisateuralice
, et l'autre surnomméjoe-project/openshift1.example.com:8443/alice
, qui utilise le projetjoe-project
, le groupeopenshift1.example.com:8443
et l'utilisateuralice
. - 3
- Le paramètre
current-context
indique que le contextejoe-project/openshift1.example.com:8443/alice
est actuellement utilisé, ce qui permet à l'utilisateuralice
de travailler dans le projetjoe-project
sur le clusteropenshift1.example.com:8443
. - 4
- La section
users
définit les informations d'identification de l'utilisateur. Dans cet exemple, le pseudo de l'utilisateuralice/openshift1.example.com:8443
utilise un jeton d'accès.
L'interface de programmation peut prendre en charge plusieurs fichiers de configuration qui sont chargés au moment de l'exécution et fusionnés avec toutes les options de remplacement spécifiées dans la ligne de commande. Une fois connecté, vous pouvez utiliser la commande oc status
ou oc project
pour vérifier votre environnement de travail actuel :
Vérifier l'environnement de travail actuel
$ oc status
Exemple de sortie
oc status In project Joe's Project (joe-project) service database (172.30.43.12:5434 -> 3306) database deploys docker.io/openshift/mysql-55-centos7:latest #1 deployed 25 minutes ago - 1 pod service frontend (172.30.159.137:5432 -> 8080) frontend deploys origin-ruby-sample:latest <- builds https://github.com/openshift/ruby-hello-world with joe-project/ruby-20-centos7:latest #1 deployed 22 minutes ago - 2 pods To see more information about a service or deployment, use 'oc describe service <name>' or 'oc describe dc <name>'. You can use 'oc get all' to see lists of each of the types described in this example.
Liste du projet en cours
$ oc project
Exemple de sortie
Using project "joe-project" from context named "joe-project/openshift1.example.com:8443/alice" on server "https://openshift1.example.com:8443".
Vous pouvez exécuter à nouveau la commande oc login
et fournir les informations requises au cours du processus interactif, afin de vous connecter en utilisant toute autre combinaison d'informations d'identification de l'utilisateur et de détails sur le cluster. Un contexte est créé sur la base des informations fournies s'il n'en existe pas déjà un. Si vous êtes déjà connecté et que vous souhaitez passer à un autre projet auquel l'utilisateur actuel a déjà accès, utilisez la commande oc project
et entrez le nom du projet :
$ oc project alice-project
Exemple de sortie
Now using project "alice-project" on server "https://openshift1.example.com:8443".
À tout moment, vous pouvez utiliser la commande oc config view
pour afficher votre configuration CLI actuelle, comme le montre la sortie. D'autres commandes de configuration de l'ITC sont également disponibles pour une utilisation plus avancée.
Si vous avez accès aux informations d'identification de l'administrateur mais que vous n'êtes plus connecté en tant qu'utilisateur du système par défaut system:admin
, vous pouvez vous reconnecter à tout moment en tant qu'utilisateur, à condition que les informations d'identification soient toujours présentes dans le fichier de configuration de l'interface de programmation. La commande suivante permet de se connecter et de passer au projet par défaut :
$ oc login -u system:admin -n default
2.4.2. Configuration manuelle des profils CLI
Cette section traite de l'utilisation plus avancée des configurations de l'interface de programmation. Dans la plupart des cas, vous pouvez utiliser les commandes oc login
et oc project
pour vous connecter et passer d'un contexte à l'autre et d'un projet à l'autre.
Si vous souhaitez configurer manuellement vos fichiers de configuration CLI, vous pouvez utiliser la commande oc config
au lieu de modifier directement les fichiers. La commande oc config
comprend un certain nombre de sous-commandes utiles à cette fin :
Sous-commande | Utilisation |
---|---|
| Définit une entrée de cluster dans le fichier de configuration CLI. Si le pseudonyme de cluster référencé existe déjà, les informations spécifiées sont fusionnées. $ oc config set-cluster <cluster_nickname> [--server=<master_ip_or_fqdn>] [--certificate-authority=<path/to/certificate/authority>] [--api-version=<apiversion>] [--insecure-skip-tls-verify=true] |
| Définit une entrée de contexte dans le fichier de configuration de la CLI. Si le pseudonyme de contexte référencé existe déjà, les informations spécifiées sont fusionnées. $ oc config set-context <context_nickname> [--cluster=<cluster_nickname>] [--user=<user_nickname>] [--namespace=<namespace>] |
| Définit le contexte actuel en utilisant le pseudonyme de contexte spécifié. oc config use-context <context_nickname> |
| Définit une valeur individuelle dans le fichier de configuration CLI. oc config set <property_name> <property_value> $ oc config set <property_name>
|
| Annule les valeurs individuelles dans le fichier de configuration CLI. oc config unset <nom_de_la_propriété>
Le site |
| Affiche la configuration CLI fusionnée en cours d'utilisation. $ oc config view Affiche le résultat du fichier de configuration CLI spécifié. oc config view --config=<specific_filename> $ oc config view --config=<specific_filename> |
Exemple d'utilisation
-
Connectez-vous en tant qu'utilisateur utilisant un jeton d'accès. Ce jeton est utilisé par l'utilisateur
alice
:
$ oc login https://openshift1.example.com --token=ns7yVhuRNpDM9cgzfhhxQ7bM5s7N2ZVrkZepSRf4LC0
- Affichez l'entrée de la grappe créée automatiquement :
$ oc config view
Exemple de sortie
apiVersion: v1 clusters: - cluster: insecure-skip-tls-verify: true server: https://openshift1.example.com name: openshift1-example-com contexts: - context: cluster: openshift1-example-com namespace: default user: alice/openshift1-example-com name: default/openshift1-example-com/alice current-context: default/openshift1-example-com/alice kind: Config preferences: {} users: - name: alice/openshift1.example.com user: token: ns7yVhuRNpDM9cgzfhhxQ7bM5s7N2ZVrkZepSRf4LC0
- Mettre à jour le contexte actuel pour que les utilisateurs se connectent à l'espace de noms souhaité :
$ oc config set-context `oc config current-context` --namespace=<project_name>
- Examiner le contexte actuel pour confirmer que les changements sont mis en œuvre :
$ oc whoami -c
Toutes les opérations CLI suivantes utilisent le nouveau contexte, sauf indication contraire dans les options CLI ou jusqu'à ce que le contexte soit modifié.
2.4.3. Charger et fusionner des règles
Vous pouvez suivre ces règles lorsque vous effectuez des opérations CLI pour l'ordre de chargement et de fusion de la configuration CLI :
Les fichiers de configuration CLI sont récupérés à partir de votre poste de travail, en utilisant la hiérarchie et les règles de fusion suivantes :
-
Si l'option
--config
est activée, seul ce fichier est chargé. L'indicateur n'est activé qu'une seule fois et aucune fusion n'a lieu. -
Si la variable d'environnement
$KUBECONFIG
est définie, elle est utilisée. La variable peut être une liste de chemins, et si c'est le cas, les chemins sont fusionnés. Lorsqu'une valeur est modifiée, elle l'est dans le fichier qui définit la strophe. Lorsqu'une valeur est créée, elle l'est dans le premier fichier existant. Si aucun fichier de la chaîne n'existe, le dernier fichier de la liste est créé. -
Dans le cas contraire, le fichier
~/.kube/config
est utilisé et aucune fusion n'a lieu.
-
Si l'option
Le contexte à utiliser est déterminé en fonction de la première correspondance dans le flux suivant :
-
La valeur de l'option
--context
. -
La valeur
current-context
du fichier de configuration CLI. - Une valeur vide est autorisée à ce stade.
-
La valeur de l'option
L'utilisateur et la grappe à utiliser sont déterminés. À ce stade, vous pouvez avoir ou non un contexte ; ils sont construits sur la base de la première correspondance dans le flux suivant, qui est exécuté une fois pour l'utilisateur et une fois pour la grappe :
-
La valeur de l'option
--user
pour le nom de l'utilisateur et--cluster
pour le nom de la grappe. -
Si l'option
--context
est présente, la valeur du contexte est utilisée. - Une valeur vide est autorisée à ce stade.
-
La valeur de l'option
Les informations sur les clusters à utiliser sont déterminées. À ce stade, vous pouvez disposer ou non d'informations sur les grappes. Chaque élément de l'information sur la grappe est construit sur la base de la première correspondance dans le flux suivant :
Les valeurs de l'une des options de ligne de commande suivantes :
-
--server
, -
--api-version
-
--certificate-authority
-
--insecure-skip-tls-verify
-
- Si des informations sur le cluster et une valeur pour l'attribut sont présentes, utilisez-les.
- Si vous n'avez pas d'emplacement de serveur, il y a une erreur.
Les informations sur l'utilisateur à utiliser sont déterminées. Les utilisateurs sont construits selon les mêmes règles que les clusters, sauf qu'il ne peut y avoir qu'une seule technique d'authentification par utilisateur ; des techniques contradictoires entraînent l'échec de l'opération. Les options de la ligne de commande sont prioritaires sur les valeurs du fichier de configuration. Les options de ligne de commande valides sont les suivantes :
-
--auth-path
-
--client-certificate
-
--client-key
-
--token
-
- Pour toute information manquante, des valeurs par défaut sont utilisées et des invites sont données pour obtenir des informations supplémentaires.