Outils CLI
Apprendre à utiliser les outils de ligne de commande pour OpenShift Container Platform
Résumé
Chapitre 1. Vue d'ensemble des outils CLI de OpenShift Container Platform
Un utilisateur effectue une série d'opérations lorsqu'il travaille sur OpenShift Container Platform, telles que les suivantes :
- Gestion des clusters
- Construire, déployer et gérer des applications
- Gestion des processus de déploiement
- Développer les opérateurs
- Création et mise à jour des catalogues d'opérateurs
OpenShift Container Platform offre un ensemble d'outils d'interface de ligne de commande (CLI) qui simplifient ces tâches en permettant aux utilisateurs d'effectuer diverses opérations d'administration et de développement à partir du terminal. Ces outils exposent des commandes simples pour gérer les applications, ainsi que pour interagir avec chaque composant du système.
1.1. Liste des outils CLI
Les outils CLI suivants sont disponibles dans OpenShift Container Platform :
- OpenShift CLI (oc) : Il s'agit de l'outil CLI le plus couramment utilisé par les utilisateurs d'OpenShift Container Platform. Il aide les administrateurs de clusters et les développeurs à effectuer des opérations de bout en bout sur OpenShift Container Platform à l'aide du terminal. Contrairement à la console web, il permet à l'utilisateur de travailler directement avec le code source du projet à l'aide de scripts de commande.
-
CLI Knative (kn) : L'outil CLI de Knative (
kn
) fournit des commandes de terminal simples et intuitives qui peuvent être utilisées pour interagir avec les composants OpenShift Serverless, tels que Knative Serving et Eventing. -
Pipelines CLI (tkn): OpenShift Pipelines est une solution d'intégration et de livraison continues (CI/CD) dans OpenShift Container Platform, qui utilise Tekton en interne. L'outil
tkn
CLI fournit des commandes simples et intuitives pour interagir avec OpenShift Pipelines en utilisant le terminal. -
opm CLI: L'outil
opm
CLI aide les développeurs d'opérateurs et les administrateurs de clusters à créer et à maintenir les catalogues d'opérateurs à partir du terminal. - SDK de l'opérateur: L'Operator SDK, un composant de l'Operator Framework, fournit un outil CLI que les développeurs d'opérateurs peuvent utiliser pour construire, tester et déployer un opérateur à partir du terminal. Il simplifie le processus de construction d'applications natives de Kubernetes, qui peut nécessiter des connaissances opérationnelles approfondies et spécifiques à l'application.
Chapitre 2. OpenShift CLI (oc)
2.1. Démarrer avec le CLI d'OpenShift
2.1.1. À propos de la CLI d'OpenShift
Avec l'interface de ligne de commande (CLI) OpenShift, la commande oc
, vous pouvez créer des applications et gérer des projets OpenShift Container Platform à partir d'un terminal. L'interface de ligne de commande OpenShift est idéale dans les situations suivantes :
- Travailler directement avec le code source du projet
- Scripting des opérations de OpenShift Container Platform
- Gérer des projets lorsque les ressources en bande passante sont limitées et que la console web n'est pas disponible
2.1.2. Installation du CLI OpenShift
Vous pouvez installer l'OpenShift CLI (oc
) soit en téléchargeant le binaire, soit en utilisant un RPM.
2.1.2.1. Installer le CLI OpenShift en téléchargeant le binaire
Vous pouvez installer l'OpenShift CLI (oc
) pour interagir avec OpenShift Container Platform à partir d'une interface de ligne de commande. Vous pouvez installer oc
sur Linux, Windows ou macOS.
Si vous avez installé une version antérieure de oc
, vous ne pouvez pas l'utiliser pour exécuter toutes les commandes dans OpenShift Container Platform 4.12. Téléchargez et installez la nouvelle version de oc
.
Installation de la CLI OpenShift sur Linux
Vous pouvez installer le binaire OpenShift CLI (oc
) sur Linux en utilisant la procédure suivante.
Procédure
- Naviguez jusqu'à la page de téléchargements OpenShift Container Platform sur le portail client Red Hat.
- Sélectionnez l'architecture dans la liste déroulante Product Variant.
- Sélectionnez la version appropriée dans la liste déroulante Version.
- Cliquez sur Download Now à côté de l'entrée OpenShift v4.12 Linux Client et enregistrez le fichier.
Décompressez l'archive :
tar xvf <file>
Placez le fichier binaire
oc
dans un répertoire situé sur votre sitePATH
.Pour vérifier votre
PATH
, exécutez la commande suivante :$ echo $PATH
Après l'installation de la CLI OpenShift, elle est disponible à l'aide de la commande oc
:
oc <command>
Installation de la CLI OpenShift sur Windows
Vous pouvez installer le binaire OpenShift CLI (oc
) sur Windows en utilisant la procédure suivante.
Procédure
- Naviguez jusqu'à la page de téléchargements OpenShift Container Platform sur le portail client Red Hat.
- Sélectionnez la version appropriée dans la liste déroulante Version.
- Cliquez sur Download Now à côté de l'entrée OpenShift v4.12 Windows Client et enregistrez le fichier.
- Décompressez l'archive à l'aide d'un programme ZIP.
Déplacez le fichier binaire
oc
dans un répertoire situé sur votre sitePATH
.Pour vérifier votre
PATH
, ouvrez l'invite de commande et exécutez la commande suivante :C:\N> path
Après l'installation de la CLI OpenShift, elle est disponible à l'aide de la commande oc
:
C:\N> oc <command>
Installation de la CLI OpenShift sur macOS
Vous pouvez installer le binaire OpenShift CLI (oc
) sur macOS en utilisant la procédure suivante.
Procédure
- Naviguez jusqu'à la page de téléchargements OpenShift Container Platform sur le portail client Red Hat.
- Sélectionnez la version appropriée dans la liste déroulante Version.
Cliquez sur Download Now à côté de l'entrée OpenShift v4.12 macOS Client et enregistrez le fichier.
NotePour macOS arm64, choisissez l'entrée OpenShift v4.12 macOS arm64 Client.
- Décompressez l'archive.
Déplacez le binaire
oc
dans un répertoire de votre PATH.Pour vérifier votre
PATH
, ouvrez un terminal et exécutez la commande suivante :$ echo $PATH
Après l'installation de la CLI OpenShift, elle est disponible à l'aide de la commande oc
:
oc <command>
2.1.2.2. Installer le CLI OpenShift en utilisant la console web
Vous pouvez installer l'OpenShift CLI (oc
) pour interagir avec OpenShift Container Platform à partir d'une console web. Vous pouvez installer oc
sur Linux, Windows ou macOS.
Si vous avez installé une version antérieure de oc
, vous ne pouvez pas l'utiliser pour exécuter toutes les commandes dans OpenShift Container Platform 4.12. Téléchargez et installez la nouvelle version de oc
.
2.1.2.2.1. Installer le CLI OpenShift sur Linux à l'aide de la console web
Vous pouvez installer le binaire OpenShift CLI (oc
) sur Linux en utilisant la procédure suivante.
Procédure
Dans la console web, cliquez sur ?.
Cliquez sur Command Line Tools.
-
Sélectionnez le binaire
oc
approprié pour votre plate-forme Linux, puis cliquez sur Download oc for Linux. - Enregistrer le fichier.
Décompressez l'archive.
tar xvf <file>
Déplacez le fichier binaire
oc
dans un répertoire situé sur votre sitePATH
.Pour vérifier votre
PATH
, exécutez la commande suivante :$ echo $PATH
Après l'installation de la CLI OpenShift, elle est disponible à l'aide de la commande oc
:
oc <command>
2.1.2.2.2. Installer le CLI OpenShift sur Windows à l'aide de la console web
Vous pouvez installer le binaire OpenShift CLI (oc
) sur Windows en utilisant la procédure suivante.
Procédure
Dans la console web, cliquez sur ?.
Cliquez sur Command Line Tools.
-
Sélectionnez le binaire
oc
pour la plate-forme Windows, puis cliquez sur Download oc for Windows for x86_64. - Enregistrer le fichier.
- Décompressez l'archive à l'aide d'un programme ZIP.
Déplacez le fichier binaire
oc
dans un répertoire situé sur votre sitePATH
.Pour vérifier votre
PATH
, ouvrez l'invite de commande et exécutez la commande suivante :C:\N> path
Après l'installation de la CLI OpenShift, elle est disponible à l'aide de la commande oc
:
C:\N> oc <command>
2.1.2.2.3. Installer la CLI OpenShift sur macOS à l'aide de la console web
Vous pouvez installer le binaire OpenShift CLI (oc
) sur macOS en utilisant la procédure suivante.
Procédure
Dans la console web, cliquez sur ?.
Cliquez sur Command Line Tools.
Sélectionnez le binaire
oc
pour la plate-forme macOS, puis cliquez sur Download oc for Mac for x86_64.NotePour macOS arm64, cliquez sur Download oc for Mac for ARM 64.
- Enregistrer le fichier.
- Décompressez l'archive.
Déplacez le binaire
oc
dans un répertoire de votre PATH.Pour vérifier votre
PATH
, ouvrez un terminal et exécutez la commande suivante :$ echo $PATH
Après l'installation de la CLI OpenShift, elle est disponible à l'aide de la commande oc
:
oc <command>
2.1.2.3. Installer le CLI OpenShift à l'aide d'un RPM
Pour Red Hat Enterprise Linux (RHEL), vous pouvez installer l'OpenShift CLI (oc
) sous forme de RPM si vous avez un abonnement actif à OpenShift Container Platform sur votre compte Red Hat.
Conditions préalables
- Doit avoir les privilèges root ou sudo.
Procédure
S'inscrire auprès du gestionnaire d'abonnements Red Hat :
# subscription-manager register
Extraire les données d'abonnement les plus récentes :
# subscription-manager refresh
Liste des abonnements disponibles :
# subscription-manager list --available --matches '*OpenShift*'
Dans la sortie de la commande précédente, trouvez l'ID du pool pour un abonnement OpenShift Container Platform et attachez l'abonnement au système enregistré :
# subscription-manager attach --pool=<pool_id>
Activer les dépôts requis par OpenShift Container Platform 4.12.
# subscription-manager repos --enable="rhocp-4.12-for-rhel-8-x86_64-rpms"
NoteIl n'est pas possible d'installer l'OpenShift CLI (
oc
) en tant que RPM pour Red Hat Enterprise Linux (RHEL) 9. Vous devez installer OpenShift CLI pour RHEL 9 en téléchargeant le binaire.Installez le paquetage
openshift-clients
:# yum install openshift-clients
Une fois installé, le CLI est disponible à l'aide de la commande oc
:
oc <command>
2.1.2.4. Installer le CLI OpenShift en utilisant Homebrew
Pour macOS, vous pouvez installer l'OpenShift CLI (oc
) en utilisant le gestionnaire de paquets Homebrew.
Conditions préalables
-
Vous devez avoir installé Homebrew (
brew
).
Procédure
Exécutez la commande suivante pour installer le paquet openshift-cli:
$ brew install openshift-cli
2.1.3. Se connecter à l'interface de commande OpenShift
Vous pouvez vous connecter à l'OpenShift CLI (oc
) pour accéder et gérer votre cluster.
Conditions préalables
- Vous devez avoir accès à un cluster OpenShift Container Platform.
-
Vous devez avoir installé l'OpenShift CLI (
oc
).
Pour accéder à un cluster qui n'est accessible que via un serveur proxy HTTP, vous pouvez définir les variables HTTP_PROXY
, HTTPS_PROXY
et NO_PROXY
. Ces variables d'environnement sont respectées par le CLI oc
de sorte que toutes les communications avec le cluster passent par le proxy HTTP.
Les en-têtes d'authentification ne sont envoyés que lors de l'utilisation du transport HTTPS.
Procédure
Entrez la commande
oc login
et indiquez un nom d'utilisateur :$ oc login -u user1
Lorsque vous y êtes invité, saisissez les informations requises :
Exemple de sortie
Server [https://localhost:8443]: https://openshift.example.com:6443 1 The server uses a certificate signed by an unknown authority. You can bypass the certificate check, but any data you send to the server could be intercepted by others. Use insecure connections? (y/n): y 2 Authentication required for https://openshift.example.com:6443 (openshift) Username: user1 Password: 3 Login successful. You don't have any projects. You can try to create a new project, by running oc new-project <projectname> Welcome! See 'oc help' to get started.
Si vous êtes connecté à la console Web, vous pouvez générer une commande oc login
qui inclut votre jeton et les informations relatives au serveur. Vous pouvez utiliser cette commande pour vous connecter à la CLI d'OpenShift Container Platform sans les invites interactives. Pour générer la commande, sélectionnez Copy login command dans le menu déroulant du nom d'utilisateur en haut à droite de la console Web.
Vous pouvez maintenant créer un projet ou lancer d'autres commandes pour gérer votre cluster.
2.1.4. Utiliser le CLI d'OpenShift
Les sections suivantes expliquent comment effectuer des tâches courantes à l'aide de l'interface CLI.
2.1.4.1. Création d'un projet
Utilisez la commande oc new-project
pour créer un nouveau projet.
$ oc new-project my-project
Exemple de sortie
Now using project "my-project" on server "https://openshift.example.com:6443".
2.1.4.2. Créer une nouvelle application
Utilisez la commande oc new-app
pour créer une nouvelle application.
$ oc new-app https://github.com/sclorg/cakephp-ex
Exemple de sortie
--> Found image 40de956 (9 days old) in imagestream "openshift/php" under tag "7.2" for "php" ... Run 'oc status' to view your app.
2.1.4.3. Visualisation des nacelles
La commande oc get pods
permet de visualiser les pods du projet en cours.
Lorsque vous exécutez oc
à l'intérieur d'un pod et que vous ne spécifiez pas d'espace de noms, l'espace de noms du pod est utilisé par défaut.
$ oc get pods -o wide
Exemple de sortie
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE cakephp-ex-1-build 0/1 Completed 0 5m45s 10.131.0.10 ip-10-0-141-74.ec2.internal <none> cakephp-ex-1-deploy 0/1 Completed 0 3m44s 10.129.2.9 ip-10-0-147-65.ec2.internal <none> cakephp-ex-1-ktz97 1/1 Running 0 3m33s 10.128.2.11 ip-10-0-168-105.ec2.internal <none>
2.1.4.4. Visualisation des journaux de pods
Utilisez la commande oc logs
pour afficher les journaux d'un module particulier.
$ oc logs cakephp-ex-1-deploy
Exemple de sortie
--> Scaling cakephp-ex-1 to 1 --> Success
2.1.4.5. Visualisation du projet en cours
La commande oc project
permet de visualiser le projet en cours.
$ oc project
Exemple de sortie
Using project "my-project" on server "https://openshift.example.com:6443".
2.1.4.6. Visualisation de l'état du projet en cours
La commande oc status
permet d'afficher des informations sur le projet en cours, telles que les services, les déploiements et les configurations de construction.
$ oc status
Exemple de sortie
In project my-project on server https://openshift.example.com:6443 svc/cakephp-ex - 172.30.236.80 ports 8080, 8443 dc/cakephp-ex deploys istag/cakephp-ex:latest <- bc/cakephp-ex source builds https://github.com/sclorg/cakephp-ex on openshift/php:7.2 deployment #1 deployed 2 minutes ago - 1 pod 3 infos identified, use 'oc status --suggest' to see details.
2.1.4.7. Liste des ressources API prises en charge
Utilisez la commande oc api-resources
pour afficher la liste des ressources API prises en charge sur le serveur.
$ oc api-resources
Exemple de sortie
NAME SHORTNAMES APIGROUP NAMESPACED KIND bindings true Binding componentstatuses cs false ComponentStatus configmaps cm true ConfigMap ...
2.1.5. Obtenir de l'aide
Vous pouvez obtenir de l'aide sur les commandes CLI et les ressources OpenShift Container Platform de la manière suivante.
Utilisez
oc help
pour obtenir une liste et une description de toutes les commandes CLI disponibles :Exemple : Obtenir de l'aide générale pour le CLI
$ oc help
Exemple de sortie
OpenShift Client This client helps you develop, build, deploy, and run your applications on any OpenShift or Kubernetes compatible platform. It also includes the administrative commands for managing a cluster under the 'adm' subcommand. Usage: oc [flags] Basic Commands: login Log in to a server new-project Request a new project new-app Create a new application ...
Utilisez l'option
--help
pour obtenir de l'aide sur une commande CLI spécifique :Exemple : Obtenir de l'aide pour la commande
oc create
$ oc create --help
Exemple de sortie
Create a resource by filename or stdin JSON and YAML formats are accepted. Usage: oc create -f FILENAME [flags] ...
Utilisez la commande
oc explain
pour afficher la description et les champs d'une ressource particulière :Exemple : Consulter la documentation de la ressource
Pod
$ oc explain pods
Exemple de sortie
KIND: Pod VERSION: v1 DESCRIPTION: Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts. FIELDS: apiVersion <string> APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources ...
2.1.6. Se déconnecter de l'interface de commande OpenShift
Vous pouvez vous déconnecter de l'OpenShift CLI pour mettre fin à votre session en cours.
Utilisez la commande
oc logout
.$ oc logout
Exemple de sortie
Logged "user1" out on "https://openshift.example.com"
Cette opération supprime le jeton d'authentification enregistré sur le serveur et le supprime de votre fichier de configuration.
2.2. Configuration de la CLI d'OpenShift
2.2.1. Activation de l'achèvement des onglets
Vous pouvez activer la complétion de tabulation pour les interpréteurs de commandes Bash ou Zsh.
2.2.1.1. Activation de la complétion des tabulations pour Bash
Après avoir installé l'OpenShift CLI (oc
), vous pouvez activer la complétion de tabulation pour compléter automatiquement les commandes oc
ou suggérer des options lorsque vous appuyez sur Tab. La procédure suivante permet d'activer la complétion de tabulation pour l'interpréteur de commandes Bash.
Conditions préalables
-
Vous devez avoir installé OpenShift CLI (
oc
). -
Le paquet
bash-completion
doit être installé.
Procédure
Enregistrer le code d'achèvement de Bash dans un fichier :
oc completion bash > oc_bash_completion
Copiez le fichier sur
/etc/bash_completion.d/
:$ sudo cp oc_bash_completion /etc/bash_completion.d/
Vous pouvez également enregistrer le fichier dans un répertoire local et l'extraire de votre fichier
.bashrc
.
La complétion des tabulations est activée lorsque vous ouvrez un nouveau terminal.
2.2.1.2. Activation de la complétion des tabulations pour Zsh
Après avoir installé l'OpenShift CLI (oc
), vous pouvez activer la complétion de tabulation pour compléter automatiquement les commandes oc
ou suggérer des options lorsque vous appuyez sur Tab. La procédure suivante permet d'activer la complétion de tabulation pour l'interpréteur de commandes Zsh.
Conditions préalables
-
Vous devez avoir installé OpenShift CLI (
oc
).
Procédure
Pour ajouter la complétion de tabulation pour
oc
à votre fichier.zshrc
, exécutez la commande suivante :$ cat >>~/.zshrc<<EOF if [ $commands[oc] ]; then source <(oc completion zsh) compdef _oc oc fi EOF
La complétion des tabulations est activée lorsque vous ouvrez un nouveau terminal.
2.3. Utilisation des commandes oc et kubectl
L'interface de ligne de commande (CLI) de Kubernetes, kubectl
, peut être utilisée pour exécuter des commandes sur un cluster Kubernetes. OpenShift Container Platform étant une distribution Kubernetes certifiée, vous pouvez utiliser les binaires kubectl
pris en charge qui sont livrés avec OpenShift Container Platform, ou vous pouvez obtenir des fonctionnalités étendues en utilisant le binaire oc
.
2.3.1. Le binaire oc
Le binaire oc
offre les mêmes capacités que le binaire kubectl
, mais il s'étend pour prendre en charge nativement des fonctionnalités supplémentaires d'OpenShift Container Platform, notamment :
Full support for OpenShift Container Platform resources
Les ressources telles que les objets
DeploymentConfig
,BuildConfig
,Route
,ImageStream
, etImageStreamTag
sont spécifiques aux distributions OpenShift Container Platform, et s'appuient sur les primitives Kubernetes standard.Authentication
Le binaire
oc
offre une commandelogin
intégrée pour l'authentification et vous permet de travailler avec des projets OpenShift Container Platform, qui mappent les espaces de noms Kubernetes aux utilisateurs authentifiés. Pour plus d'informations, consultez la section Comprendre l'authentification.Additional commands
La commande supplémentaire
oc new-app
, par exemple, facilite le démarrage de nouvelles applications en utilisant le code source existant ou des images préconstruites. De même, la commande supplémentaireoc new-project
facilite le démarrage d'un projet que vous pouvez utiliser par défaut.
Si vous avez installé une version antérieure du binaire oc
, vous ne pouvez pas l'utiliser pour exécuter toutes les commandes d'OpenShift Container Platform 4.12. Si vous souhaitez bénéficier des dernières fonctionnalités, vous devez télécharger et installer la dernière version du binaire oc
correspondant à la version de votre serveur OpenShift Container Platform.
Les modifications de l'API non liées à la sécurité impliqueront, au minimum, deux versions mineures (4.1 à 4.2 à 4.3, par exemple) pour permettre la mise à jour des anciens fichiers binaires oc
. L'utilisation de nouvelles fonctionnalités peut nécessiter des binaires oc
plus récents. Un serveur 4.3 peut avoir des capacités supplémentaires qu'un binaire oc
4.2 ne peut pas utiliser et un binaire oc
4.3 peut avoir des capacités supplémentaires qui ne sont pas prises en charge par un serveur 4.2.
Tableau 2.1. Matrice de compatibilité
X.Y ( |
X.Y N footnote:versionpolicyn[où N est un nombre supérieur ou égal à 1.] ( | |
X.Y (Serveur) |
|
|
X.Y N footnote:versionpolicyn[] (Serveur) |
|
|
Entièrement compatible.
oc
le client pourrait ne pas être en mesure d'accéder aux fonctions du serveur.
oc
le client peut offrir des options et des fonctionnalités qui ne sont pas compatibles avec le serveur auquel on accède.
2.3.2. Le binaire kubectl
Le binaire kubectl
est fourni comme un moyen de prendre en charge les flux de travail et les scripts existants pour les nouveaux utilisateurs d'OpenShift Container Platform venant d'un environnement Kubernetes standard, ou pour ceux qui préfèrent utiliser le CLI kubectl
. Les utilisateurs existants de kubectl
peuvent continuer à utiliser le binaire pour interagir avec les primitives Kubernetes, sans qu'aucun changement ne soit nécessaire dans le cluster OpenShift Container Platform.
Vous pouvez installer le binaire kubectl
pris en charge en suivant les étapes de l'installation de l'OpenShift CLI. Le binaire kubectl
est inclus dans l'archive si vous téléchargez le binaire, ou est installé lorsque vous installez le CLI à l'aide d'un RPM.
Pour plus d'informations, voir la documentation kubectl.
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 :
Tableau 2.2. Sous-commandes de configuration du CLI
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.
2.5. Extension de la CLI d'OpenShift avec des plugins
Vous pouvez écrire et installer des plugins pour développer les commandes par défaut de oc
, ce qui vous permet d'effectuer des tâches nouvelles et plus complexes avec la CLI d'OpenShift Container Platform.
2.5.1. Écrire des plugins CLI
Vous pouvez écrire un plugin pour la CLI d'OpenShift Container Platform dans n'importe quel langage de programmation ou script qui vous permet d'écrire des commandes en ligne de commande. Notez que vous ne pouvez pas utiliser un plugin pour écraser une commande oc
existante.
Procédure
Cette procédure permet de créer un plugin Bash simple qui imprime un message dans le terminal lorsque la commande oc foo
est lancée.
Créez un fichier appelé
oc-foo
.Lorsque vous nommez votre fichier de plugin, gardez à l'esprit les points suivants :
-
Le fichier doit commencer par
oc-
oukubectl-
pour être reconnu comme un plugin. -
Le nom du fichier détermine la commande qui invoque le plugin. Par exemple, un plugin dont le nom de fichier est
oc-foo-bar
peut être appelé par la commandeoc foo bar
. Vous pouvez également utiliser des traits de soulignement si vous souhaitez que la commande contienne des tirets. Par exemple, un plugin dont le nom de fichier estoc-foo_bar
peut être appelé par la commandeoc foo-bar
.
-
Le fichier doit commencer par
Ajoutez le contenu suivant au fichier.
#!/bin/bash # optional argument handling if [[ "$1" == "version" ]] then echo "1.0.0" exit 0 fi # optional argument handling if [[ "$1" == "config" ]] then echo $KUBECONFIG exit 0 fi echo "I am a plugin named kubectl-foo"
Après avoir installé ce plugin pour le CLI de OpenShift Container Platform, il peut être invoqué à l'aide de la commande oc foo
.
Ressources complémentaires
- Consultez le référentiel de plugin Sample pour un exemple de plugin écrit en Go.
- Consultez le référentiel d'exécution CLI pour obtenir un ensemble d'utilitaires qui vous aideront à écrire des plugins en Go.
2.5.2. Installation et utilisation des plugins CLI
Après avoir écrit un plugin personnalisé pour la CLI d'OpenShift Container Platform, vous devez l'installer pour utiliser les fonctionnalités qu'il fournit.
Conditions préalables
-
L'outil CLI
oc
doit être installé. -
Vous devez avoir un fichier de plugin CLI qui commence par
oc-
oukubectl-
.
Procédure
Si nécessaire, mettez à jour le fichier du plugin pour qu'il soit exécutable.
chmod x <plugin_file>
Placez le fichier n'importe où dans votre
PATH
, par exemple/usr/local/bin/
.$ sudo mv <plugin_file> /usr/local/bin/.
Exécutez
oc plugin list
pour vous assurer que le plugin est répertorié.$ oc plugin list
Exemple de sortie
The following compatible plugins are available: /usr/local/bin/<plugin_file>
Si votre plugin ne figure pas dans cette liste, vérifiez que le fichier commence par
oc-
oukubectl-
, qu'il est exécutable et qu'il se trouve sur votre sitePATH
.Invoquer la nouvelle commande ou option introduite par le plugin.
Par exemple, si vous avez créé et installé le plugin
kubectl-ns
à partir du dépôt de plugins Sample, vous pouvez utiliser la commande suivante pour afficher l'espace de noms actuel.$ oc ns
Notez que la commande permettant d'invoquer le plugin dépend du nom du fichier du plugin. Par exemple, un plugin dont le nom de fichier est
oc-foo-bar
est appelé par la commandeoc foo bar
.
2.6. Gérer les plugins CLI avec Krew
Vous pouvez utiliser Krew pour installer et gérer des plugins pour l'OpenShift CLI (oc
).
L'utilisation de Krew pour installer et gérer des plugins pour OpenShift CLI est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir des commentaires pendant le processus de développement.
Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.
2.6.1. Installer un plugin CLI avec Krew
Vous pouvez installer un plugin pour l'OpenShift CLI (oc
) avec Krew.
Conditions préalables
- Vous avez installé Krew en suivant la procédure d'installation décrite dans la documentation de Krew.
Procédure
Pour obtenir la liste de tous les plugins disponibles, exécutez la commande suivante :
$ oc krew search
Pour obtenir des informations sur un plugin, exécutez la commande suivante :
oc krew info <nom_du_plugin>
Pour installer un plugin, exécutez la commande suivante :
oc krew install <nom_du_plugin>
Pour obtenir la liste de tous les plugins installés par Krew, exécutez la commande suivante :
$ oc krew list
2.6.2. Mise à jour d'un plugin CLI avec Krew
Vous pouvez mettre à jour un plugin qui a été installé pour l'OpenShift CLI (oc
) avec Krew.
Conditions préalables
- Vous avez installé Krew en suivant la procédure d'installation décrite dans la documentation de Krew.
- Vous avez installé un plugin pour la CLI d'OpenShift avec Krew.
Procédure
Pour mettre à jour un seul plugin, exécutez la commande suivante :
oc krew upgrade <nom_du_plugin>
Pour mettre à jour tous les plugins qui ont été installés par Krew, exécutez la commande suivante :
$ oc krew upgrade
2.6.3. Désinstallation d'un plugin CLI avec Krew
Vous pouvez désinstaller un plugin qui a été installé pour l'OpenShift CLI (oc
) avec Krew.
Conditions préalables
- Vous avez installé Krew en suivant la procédure d'installation décrite dans la documentation de Krew.
- Vous avez installé un plugin pour la CLI d'OpenShift avec Krew.
Procédure
Pour désinstaller un plugin, exécutez la commande suivante :
oc krew uninstall <nom_du_plugin>
2.6.4. Ressources complémentaires
2.7. Référence des commandes de développement de la CLI d'OpenShift
Cette référence fournit des descriptions et des exemples de commandes pour les commandes développeur de l'OpenShift CLI (oc
). Pour les commandes administrateur, voir la référence des commandes administrateur de l'OpenShift CLI.
Exécutez oc help
pour obtenir la liste de toutes les commandes ou exécutez oc <command> --help
pour obtenir des détails supplémentaires sur une commande spécifique.
2.7.1. Commandes du développeur OpenShift CLI (oc)
2.7.1.1. oc annotate
Mettre à jour les annotations d'une ressource
Exemple d'utilisation
# Update pod 'foo' with the annotation 'description' and the value 'my frontend' # If the same annotation is set multiple times, only the last value will be applied oc annotate pods foo description='my frontend' # Update a pod identified by type and name in "pod.json" oc annotate -f pod.json description='my frontend' # Update pod 'foo' with the annotation 'description' and the value 'my frontend running nginx', overwriting any existing value oc annotate --overwrite pods foo description='my frontend running nginx' # Update all pods in the namespace oc annotate pods --all description='my frontend running nginx' # Update pod 'foo' only if the resource is unchanged from version 1 oc annotate pods foo description='my frontend running nginx' --resource-version=1 # Update pod 'foo' by removing an annotation named 'description' if it exists # Does not require the --overwrite flag oc annotate pods foo description-
2.7.1.2. oc api-resources
Imprimer les ressources API prises en charge sur le serveur
Exemple d'utilisation
# Print the supported API resources oc api-resources # Print the supported API resources with more information oc api-resources -o wide # Print the supported API resources sorted by a column oc api-resources --sort-by=name # Print the supported namespaced resources oc api-resources --namespaced=true # Print the supported non-namespaced resources oc api-resources --namespaced=false # Print the supported API resources with a specific APIGroup oc api-resources --api-group=rbac.authorization.k8s.io
2.7.1.3. oc api-versions
Imprimer les versions d'API prises en charge sur le serveur, sous la forme de "group/version"
Exemple d'utilisation
# Print the supported API versions oc api-versions
2.7.1.4. oc appliquer
Appliquer une configuration à une ressource par nom de fichier ou stdin
Exemple d'utilisation
# Apply the configuration in pod.json to a pod oc apply -f ./pod.json # Apply resources from a directory containing kustomization.yaml - e.g. dir/kustomization.yaml oc apply -k dir/ # Apply the JSON passed into stdin to a pod cat pod.json | oc apply -f - # Apply the configuration from all files that end with '.json' - i.e. expand wildcard characters in file names oc apply -f '*.json' # Note: --prune is still in Alpha # Apply the configuration in manifest.yaml that matches label app=nginx and delete all other resources that are not in the file and match label app=nginx oc apply --prune -f manifest.yaml -l app=nginx # Apply the configuration in manifest.yaml and delete all the other config maps that are not in the file oc apply --prune -f manifest.yaml --all --prune-whitelist=core/v1/ConfigMap
2.7.1.5. oc apply edit-last-applied
Modifier les dernières annotations de configuration d'une ressource ou d'un objet
Exemple d'utilisation
# Edit the last-applied-configuration annotations by type/name in YAML oc apply edit-last-applied deployment/nginx # Edit the last-applied-configuration annotations by file in JSON oc apply edit-last-applied -f deploy.yaml -o json
2.7.1.6. oc apply set-last-applied
Définir la dernière annotation de configuration appliquée sur un objet vivant pour qu'elle corresponde au contenu d'un fichier
Exemple d'utilisation
# Set the last-applied-configuration of a resource to match the contents of a file oc apply set-last-applied -f deploy.yaml # Execute set-last-applied against each configuration file in a directory oc apply set-last-applied -f path/ # Set the last-applied-configuration of a resource to match the contents of a file; will create the annotation if it does not already exist oc apply set-last-applied -f deploy.yaml --create-annotation=true
2.7.1.7. oc apply view-last-applied
Afficher les dernières annotations de configuration d'une ressource ou d'un objet
Exemple d'utilisation
# View the last-applied-configuration annotations by type/name in YAML oc apply view-last-applied deployment/nginx # View the last-applied-configuration annotations by file in JSON oc apply view-last-applied -f deploy.yaml -o json
2.7.1.8. attachement oc
S'attacher à un conteneur en cours d'exécution
Exemple d'utilisation
# Get output from running pod mypod; use the 'oc.kubernetes.io/default-container' annotation # for selecting the container to be attached or the first container in the pod will be chosen oc attach mypod # Get output from ruby-container from pod mypod oc attach mypod -c ruby-container # Switch to raw terminal mode; sends stdin to 'bash' in ruby-container from pod mypod # and sends stdout/stderr from 'bash' back to the client oc attach mypod -c ruby-container -i -t # Get output from the first pod of a replica set named nginx oc attach rs/nginx
2.7.1.9. oc auth can-i
Vérifier si une action est autorisée
Exemple d'utilisation
# Check to see if I can create pods in any namespace oc auth can-i create pods --all-namespaces # Check to see if I can list deployments in my current namespace oc auth can-i list deployments.apps # Check to see if I can do everything in my current namespace ("*" means all) oc auth can-i '*' '*' # Check to see if I can get the job named "bar" in namespace "foo" oc auth can-i list jobs.batch/bar -n foo # Check to see if I can read pod logs oc auth can-i get pods --subresource=log # Check to see if I can access the URL /logs/ oc auth can-i get /logs/ # List all allowed actions in namespace "foo" oc auth can-i --list --namespace=foo
2.7.1.10. oc auth reconcile
Réconcilie les règles pour les objets RBAC de rôle, de liaison de rôle, de rôle de cluster et de liaison de rôle de cluster
Exemple d'utilisation
# Reconcile RBAC resources from a file oc auth reconcile -f my-rbac-rules.yaml
2.7.1.11. oc autoscale
Mise à l'échelle automatique d'une configuration de déploiement, d'un déploiement, d'un ensemble de répliques, d'un ensemble avec état ou d'un contrôleur de réplication
Exemple d'utilisation
# Auto scale a deployment "foo", with the number of pods between 2 and 10, no target CPU utilization specified so a default autoscaling policy will be used oc autoscale deployment foo --min=2 --max=10 # Auto scale a replication controller "foo", with the number of pods between 1 and 5, target CPU utilization at 80% oc autoscale rc foo --max=5 --cpu-percent=80
2.7.1.12. oc cancel-build
Annuler les constructions en cours, en attente ou nouvelles
Exemple d'utilisation
# Cancel the build with the given name oc cancel-build ruby-build-2 # Cancel the named build and print the build logs oc cancel-build ruby-build-2 --dump-logs # Cancel the named build and create a new one with the same parameters oc cancel-build ruby-build-2 --restart # Cancel multiple builds oc cancel-build ruby-build-1 ruby-build-2 ruby-build-3 # Cancel all builds created from the 'ruby-build' build config that are in the 'new' state oc cancel-build bc/ruby-build --state=new
2.7.1.13. oc cluster-info
Affichage des informations sur le cluster
Exemple d'utilisation
# Print the address of the control plane and cluster services oc cluster-info
2.7.1.14. oc cluster-info dump
Dépose des informations pertinentes pour le débogage et le diagnostic
Exemple d'utilisation
# Dump current cluster state to stdout oc cluster-info dump # Dump current cluster state to /path/to/cluster-state oc cluster-info dump --output-directory=/path/to/cluster-state # Dump all namespaces to stdout oc cluster-info dump --all-namespaces # Dump a set of namespaces to /path/to/cluster-state oc cluster-info dump --namespaces default,kube-system --output-directory=/path/to/cluster-state
2.7.1.15. achèvement de l'oc
Sortie du code de complétion de l'interpréteur de commandes pour l'interpréteur de commandes spécifié (bash, zsh, fish ou powershell)
Exemple d'utilisation
# Installing bash completion on macOS using homebrew ## If running Bash 3.2 included with macOS brew install bash-completion ## or, if running Bash 4.1+ brew install bash-completion@2 ## If oc is installed via homebrew, this should start working immediately ## If you've installed via other means, you may need add the completion to your completion directory oc completion bash > $(brew --prefix)/etc/bash_completion.d/oc # Installing bash completion on Linux ## If bash-completion is not installed on Linux, install the 'bash-completion' package ## via your distribution's package manager. ## Load the oc completion code for bash into the current shell source <(oc completion bash) ## Write bash completion code to a file and source it from .bash_profile oc completion bash > ~/.kube/completion.bash.inc printf " # Kubectl shell completion source '$HOME/.kube/completion.bash.inc' " >> $HOME/.bash_profile source $HOME/.bash_profile # Load the oc completion code for zsh[1] into the current shell source <(oc completion zsh) # Set the oc completion code for zsh[1] to autoload on startup oc completion zsh > "${fpath[1]}/_oc" # Load the oc completion code for fish[2] into the current shell oc completion fish | source # To load completions for each session, execute once: oc completion fish > ~/.config/fish/completions/oc.fish # Load the oc completion code for powershell into the current shell oc completion powershell | Out-String | Invoke-Expression # Set oc completion code for powershell to run on startup ## Save completion code to a script and execute in the profile oc completion powershell > $HOME\.kube\completion.ps1 Add-Content $PROFILE "$HOME\.kube\completion.ps1" ## Execute completion code in the profile Add-Content $PROFILE "if (Get-Command oc -ErrorAction SilentlyContinue) { oc completion powershell | Out-String | Invoke-Expression }" ## Add completion code directly to the $PROFILE script oc completion powershell >> $PROFILE
2.7.1.16. oc config current-context
Afficher le contexte actuel
Exemple d'utilisation
# Display the current-context oc config current-context
2.7.1.17. oc config delete-cluster
Supprimer le cluster spécifié de kubeconfig
Exemple d'utilisation
# Delete the minikube cluster oc config delete-cluster minikube
2.7.1.18. oc config delete-context
Supprimer le contexte spécifié du kubeconfig
Exemple d'utilisation
# Delete the context for the minikube cluster oc config delete-context minikube
2.7.1.19. oc config delete-user
Supprimer l'utilisateur spécifié de kubeconfig
Exemple d'utilisation
# Delete the minikube user oc config delete-user minikube
2.7.1.20. oc config get-clusters
Afficher les clusters définis dans kubeconfig
Exemple d'utilisation
# List the clusters that oc knows about oc config get-clusters
2.7.1.21. oc config get-contexts
Décrire un ou plusieurs contextes
Exemple d'utilisation
# List all the contexts in your kubeconfig file oc config get-contexts # Describe one context in your kubeconfig file oc config get-contexts my-context
2.7.1.22. oc config get-users
Afficher les utilisateurs définis dans le kubeconfig
Exemple d'utilisation
# List the users that oc knows about oc config get-users
2.7.1.23. oc config rename-context
Renommer un contexte à partir du fichier kubeconfig
Exemple d'utilisation
# Rename the context 'old-name' to 'new-name' in your kubeconfig file oc config rename-context old-name new-name
2.7.1.24. oc config set
Définir une valeur individuelle dans un fichier kubeconfig
Exemple d'utilisation
# Set the server field on the my-cluster cluster to https://1.2.3.4 oc config set clusters.my-cluster.server https://1.2.3.4 # Set the certificate-authority-data field on the my-cluster cluster oc config set clusters.my-cluster.certificate-authority-data $(echo "cert_data_here" | base64 -i -) # Set the cluster field in the my-context context to my-cluster oc config set contexts.my-context.cluster my-cluster # Set the client-key-data field in the cluster-admin user using --set-raw-bytes option oc config set users.cluster-admin.client-key-data cert_data_here --set-raw-bytes=true
2.7.1.25. oc config set-cluster
Définir une entrée de cluster dans kubeconfig
Exemple d'utilisation
# Set only the server field on the e2e cluster entry without touching other values oc config set-cluster e2e --server=https://1.2.3.4 # Embed certificate authority data for the e2e cluster entry oc config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt # Disable cert checking for the e2e cluster entry oc config set-cluster e2e --insecure-skip-tls-verify=true # Set custom TLS server name to use for validation for the e2e cluster entry oc config set-cluster e2e --tls-server-name=my-cluster-name # Set proxy url for the e2e cluster entry oc config set-cluster e2e --proxy-url=https://1.2.3.4
2.7.1.26. oc config set-context
Définir une entrée de contexte dans kubeconfig
Exemple d'utilisation
# Set the user field on the gce context entry without touching other values oc config set-context gce --user=cluster-admin
2.7.1.27. oc config set-credentials
Définir une entrée utilisateur dans kubeconfig
Exemple d'utilisation
# Set only the "client-key" field on the "cluster-admin" # entry, without touching other values oc config set-credentials cluster-admin --client-key=~/.kube/admin.key # Set basic auth for the "cluster-admin" entry oc config set-credentials cluster-admin --username=admin --password=uXFGweU9l35qcif # Embed client certificate data in the "cluster-admin" entry oc config set-credentials cluster-admin --client-certificate=~/.kube/admin.crt --embed-certs=true # Enable the Google Compute Platform auth provider for the "cluster-admin" entry oc config set-credentials cluster-admin --auth-provider=gcp # Enable the OpenID Connect auth provider for the "cluster-admin" entry with additional args oc config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-id=foo --auth-provider-arg=client-secret=bar # Remove the "client-secret" config value for the OpenID Connect auth provider for the "cluster-admin" entry oc config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-secret- # Enable new exec auth plugin for the "cluster-admin" entry oc config set-credentials cluster-admin --exec-command=/path/to/the/executable --exec-api-version=client.authentication.k8s.io/v1beta1 # Define new exec auth plugin args for the "cluster-admin" entry oc config set-credentials cluster-admin --exec-arg=arg1 --exec-arg=arg2 # Create or update exec auth plugin environment variables for the "cluster-admin" entry oc config set-credentials cluster-admin --exec-env=key1=val1 --exec-env=key2=val2 # Remove exec auth plugin environment variables for the "cluster-admin" entry oc config set-credentials cluster-admin --exec-env=var-to-remove-
2.7.1.28. oc config unset
Annuler une valeur individuelle dans un fichier kubeconfig
Exemple d'utilisation
# Unset the current-context oc config unset current-context # Unset namespace in foo context oc config unset contexts.foo.namespace
2.7.1.29. oc config use-context
Définir le contexte actuel dans un fichier kubeconfig
Exemple d'utilisation
# Use the context for the minikube cluster oc config use-context minikube
2.7.1.30. vue de la configuration de l'oc
Afficher les paramètres kubeconfig fusionnés ou un fichier kubeconfig spécifié
Exemple d'utilisation
# Show merged kubeconfig settings oc config view # Show merged kubeconfig settings and raw certificate data oc config view --raw # Get the password for the e2e user oc config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'
2.7.1.31. oc cp
Copier des fichiers et des répertoires vers et depuis des conteneurs
Exemple d'utilisation
# !!!Important Note!!! # Requires that the 'tar' binary is present in your container # image. If 'tar' is not present, 'oc cp' will fail. # # For advanced use cases, such as symlinks, wildcard expansion or # file mode preservation, consider using 'oc exec'. # Copy /tmp/foo local file to /tmp/bar in a remote pod in namespace <some-namespace> tar cf - /tmp/foo | oc exec -i -n <some-namespace> <some-pod> -- tar xf - -C /tmp/bar # Copy /tmp/foo from a remote pod to /tmp/bar locally oc exec -n <some-namespace> <some-pod> -- tar cf - /tmp/foo | tar xf - -C /tmp/bar # Copy /tmp/foo_dir local directory to /tmp/bar_dir in a remote pod in the default namespace oc cp /tmp/foo_dir <some-pod>:/tmp/bar_dir # Copy /tmp/foo local file to /tmp/bar in a remote pod in a specific container oc cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container> # Copy /tmp/foo local file to /tmp/bar in a remote pod in namespace <some-namespace> oc cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar # Copy /tmp/foo from a remote pod to /tmp/bar locally oc cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar
2.7.1.32. oc créer
Créer une ressource à partir d'un fichier ou de stdin
Exemple d'utilisation
# Create a pod using the data in pod.json oc create -f ./pod.json # Create a pod based on the JSON passed into stdin cat pod.json | oc create -f - # Edit the data in registry.yaml in JSON then create the resource using the edited data oc create -f registry.yaml --edit -o json
2.7.1.33. oc create build
Créer une nouvelle construction
Exemple d'utilisation
# Create a new build oc create build myapp
2.7.1.34. oc create clusterresourcequota
Créer un quota de ressources pour le cluster
Exemple d'utilisation
# Create a cluster resource quota limited to 10 pods oc create clusterresourcequota limit-bob --project-annotation-selector=openshift.io/requester=user-bob --hard=pods=10
2.7.1.35. oc create clusterrole
Créer un rôle de cluster
Exemple d'utilisation
# Create a cluster role named "pod-reader" that allows user to perform "get", "watch" and "list" on pods oc create clusterrole pod-reader --verb=get,list,watch --resource=pods # Create a cluster role named "pod-reader" with ResourceName specified oc create clusterrole pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod # Create a cluster role named "foo" with API Group specified oc create clusterrole foo --verb=get,list,watch --resource=rs.apps # Create a cluster role named "foo" with SubResource specified oc create clusterrole foo --verb=get,list,watch --resource=pods,pods/status # Create a cluster role name "foo" with NonResourceURL specified oc create clusterrole "foo" --verb=get --non-resource-url=/logs/* # Create a cluster role name "monitoring" with AggregationRule specified oc create clusterrole monitoring --aggregation-rule="rbac.example.com/aggregate-to-monitoring=true"
2.7.1.36. oc create clusterrolebinding
Créer une liaison de rôle de cluster pour un rôle de cluster particulier
Exemple d'utilisation
# Create a cluster role binding for user1, user2, and group1 using the cluster-admin cluster role oc create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --user=user2 --group=group1
2.7.1.37. oc create configmap
Créer une carte de configuration à partir d'un fichier local, d'un répertoire ou d'une valeur littérale
Exemple d'utilisation
# Create a new config map named my-config based on folder bar oc create configmap my-config --from-file=path/to/bar # Create a new config map named my-config with specified keys instead of file basenames on disk oc create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt # Create a new config map named my-config with key1=config1 and key2=config2 oc create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2 # Create a new config map named my-config from the key=value pairs in the file oc create configmap my-config --from-file=path/to/bar # Create a new config map named my-config from an env file oc create configmap my-config --from-env-file=path/to/foo.env --from-env-file=path/to/bar.env
2.7.1.38. oc create cronjob
Créer une tâche cron avec le nom spécifié
Exemple d'utilisation
# Create a cron job oc create cronjob my-job --image=busybox --schedule="*/1 * * * *" # Create a cron job with a command oc create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date
2.7.1.39. oc create deployment
Créer un déploiement avec le nom spécifié
Exemple d'utilisation
# Create a deployment named my-dep that runs the busybox image oc create deployment my-dep --image=busybox # Create a deployment with a command oc create deployment my-dep --image=busybox -- date # Create a deployment named my-dep that runs the nginx image with 3 replicas oc create deployment my-dep --image=nginx --replicas=3 # Create a deployment named my-dep that runs the busybox image and expose port 5701 oc create deployment my-dep --image=busybox --port=5701
2.7.1.40. oc create deploymentconfig
Créer une configuration de déploiement avec des options par défaut qui utilise une image donnée
Exemple d'utilisation
# Create an nginx deployment config named my-nginx oc create deploymentconfig my-nginx --image=nginx
2.7.1.41. oc créer une identité
Créer manuellement une identité (nécessaire uniquement si la création automatique est désactivée)
Exemple d'utilisation
# Create an identity with identity provider "acme_ldap" and the identity provider username "adamjones" oc create identity acme_ldap:adamjones
2.7.1.42. oc create imagestream
Créer un nouveau flux d'images vide
Exemple d'utilisation
# Create a new image stream oc create imagestream mysql
2.7.1.43. oc create imagestreamtag
Créer une nouvelle balise de flux d'images
Exemple d'utilisation
# Create a new image stream tag based on an image in a remote registry oc create imagestreamtag mysql:latest --from-image=myregistry.local/mysql/mysql:5.0
2.7.1.44. oc create ingress
Créer une entrée avec le nom spécifié
Exemple d'utilisation
# Create a single ingress called 'simple' that directs requests to foo.com/bar to svc # svc1:8080 with a tls secret "my-cert" oc create ingress simple --rule="foo.com/bar=svc1:8080,tls=my-cert" # Create a catch all ingress of "/path" pointing to service svc:port and Ingress Class as "otheringress" oc create ingress catch-all --class=otheringress --rule="/path=svc:port" # Create an ingress with two annotations: ingress.annotation1 and ingress.annotations2 oc create ingress annotated --class=default --rule="foo.com/bar=svc:port" \ --annotation ingress.annotation1=foo \ --annotation ingress.annotation2=bla # Create an ingress with the same host and multiple paths oc create ingress multipath --class=default \ --rule="foo.com/=svc:port" \ --rule="foo.com/admin/=svcadmin:portadmin" # Create an ingress with multiple hosts and the pathType as Prefix oc create ingress ingress1 --class=default \ --rule="foo.com/path*=svc:8080" \ --rule="bar.com/admin*=svc2:http" # Create an ingress with TLS enabled using the default ingress certificate and different path types oc create ingress ingtls --class=default \ --rule="foo.com/=svc:https,tls" \ --rule="foo.com/path/subpath*=othersvc:8080" # Create an ingress with TLS enabled using a specific secret and pathType as Prefix oc create ingress ingsecret --class=default \ --rule="foo.com/*=svc:8080,tls=secret1" # Create an ingress with a default backend oc create ingress ingdefault --class=default \ --default-backend=defaultsvc:http \ --rule="foo.com/*=svc:8080,tls=secret1"
2.7.1.45. oc créer un emploi
Créer un travail avec le nom spécifié
Exemple d'utilisation
# Create a job oc create job my-job --image=busybox # Create a job with a command oc create job my-job --image=busybox -- date # Create a job from a cron job named "a-cronjob" oc create job test-job --from=cronjob/a-cronjob
2.7.1.46. oc create namespace
Créer un espace de noms avec le nom spécifié
Exemple d'utilisation
# Create a new namespace named my-namespace oc create namespace my-namespace
2.7.1.47. oc create poddisruptionbudget
Créer un budget d'interruption de pods avec le nom spécifié
Exemple d'utilisation
# Create a pod disruption budget named my-pdb that will select all pods with the app=rails label # and require at least one of them being available at any point in time oc create poddisruptionbudget my-pdb --selector=app=rails --min-available=1 # Create a pod disruption budget named my-pdb that will select all pods with the app=nginx label # and require at least half of the pods selected to be available at any point in time oc create pdb my-pdb --selector=app=nginx --min-available=50%
2.7.1.48. oc create priorityclass
Créer une classe de priorité avec le nom spécifié
Exemple d'utilisation
# Create a priority class named high-priority oc create priorityclass high-priority --value=1000 --description="high priority" # Create a priority class named default-priority that is considered as the global default priority oc create priorityclass default-priority --value=1000 --global-default=true --description="default priority" # Create a priority class named high-priority that cannot preempt pods with lower priority oc create priorityclass high-priority --value=1000 --description="high priority" --preemption-policy="Never"
2.7.1.49. oc create quota
Créer un quota avec le nom spécifié
Exemple d'utilisation
# Create a new resource quota named my-quota oc create quota my-quota --hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10 # Create a new resource quota named best-effort oc create quota best-effort --hard=pods=100 --scopes=BestEffort
2.7.1.50. oc create role
Créer un rôle avec une seule règle
Exemple d'utilisation
# Create a role named "pod-reader" that allows user to perform "get", "watch" and "list" on pods oc create role pod-reader --verb=get --verb=list --verb=watch --resource=pods # Create a role named "pod-reader" with ResourceName specified oc create role pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod # Create a role named "foo" with API Group specified oc create role foo --verb=get,list,watch --resource=rs.apps # Create a role named "foo" with SubResource specified oc create role foo --verb=get,list,watch --resource=pods,pods/status
2.7.1.51. oc create rolebinding
Créer un lien de rôle pour un rôle particulier ou un rôle de cluster
Exemple d'utilisation
# Create a role binding for user1, user2, and group1 using the admin cluster role oc create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1
2.7.1.52. oc create route edge
Créer une route qui utilise la terminaison TLS en périphérie
Exemple d'utilisation
# Create an edge route named "my-route" that exposes the frontend service oc create route edge my-route --service=frontend # Create an edge route that exposes the frontend service and specify a path # If the route name is omitted, the service name will be used oc create route edge --service=frontend --path /assets
2.7.1.53. oc create route passthrough
Créer une route qui utilise la terminaison TLS passthrough
Exemple d'utilisation
# Create a passthrough route named "my-route" that exposes the frontend service oc create route passthrough my-route --service=frontend # Create a passthrough route that exposes the frontend service and specify # a host name. If the route name is omitted, the service name will be used oc create route passthrough --service=frontend --hostname=www.example.com
2.7.1.54. oc create route reencrypt
Créer une route qui utilise la terminaison TLS reencrypt
Exemple d'utilisation
# Create a route named "my-route" that exposes the frontend service oc create route reencrypt my-route --service=frontend --dest-ca-cert cert.cert # Create a reencrypt route that exposes the frontend service, letting the # route name default to the service name and the destination CA certificate # default to the service CA oc create route reencrypt --service=frontend
2.7.1.55. oc create secret docker-registry
Créer un secret à utiliser avec un registre Docker
Exemple d'utilisation
# If you don't already have a .dockercfg file, you can create a dockercfg secret directly by using: oc create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL # Create a new secret named my-secret from ~/.docker/config.json oc create secret docker-registry my-secret --from-file=.dockerconfigjson=path/to/.docker/config.json
2.7.1.56. oc create secret generic
Créer un secret à partir d'un fichier local, d'un répertoire ou d'une valeur littérale
Exemple d'utilisation
# Create a new secret named my-secret with keys for each file in folder bar oc create secret generic my-secret --from-file=path/to/bar # Create a new secret named my-secret with specified keys instead of names on disk oc create secret generic my-secret --from-file=ssh-privatekey=path/to/id_rsa --from-file=ssh-publickey=path/to/id_rsa.pub # Create a new secret named my-secret with key1=supersecret and key2=topsecret oc create secret generic my-secret --from-literal=key1=supersecret --from-literal=key2=topsecret # Create a new secret named my-secret using a combination of a file and a literal oc create secret generic my-secret --from-file=ssh-privatekey=path/to/id_rsa --from-literal=passphrase=topsecret # Create a new secret named my-secret from env files oc create secret generic my-secret --from-env-file=path/to/foo.env --from-env-file=path/to/bar.env
2.7.1.57. oc create secret tls
Créer un secret TLS
Exemple d'utilisation
# Create a new TLS secret named tls-secret with the given key pair oc create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key
2.7.1.58. oc create service clusterip
Créer un service ClusterIP
Exemple d'utilisation
# Create a new ClusterIP service named my-cs oc create service clusterip my-cs --tcp=5678:8080 # Create a new ClusterIP service named my-cs (in headless mode) oc create service clusterip my-cs --clusterip="None"
2.7.1.59. oc create service externalname
Créer un service ExternalName
Exemple d'utilisation
# Create a new ExternalName service named my-ns oc create service externalname my-ns --external-name bar.com
2.7.1.60. oc create service loadbalancer
Créer un service LoadBalancer
Exemple d'utilisation
# Create a new LoadBalancer service named my-lbs oc create service loadbalancer my-lbs --tcp=5678:8080
2.7.1.61. oc create service nodeport
Créer un service NodePort
Exemple d'utilisation
# Create a new NodePort service named my-ns oc create service nodeport my-ns --tcp=5678:8080
2.7.1.62. oc create serviceaccount
Créer un compte de service avec le nom spécifié
Exemple d'utilisation
# Create a new service account named my-service-account oc create serviceaccount my-service-account
2.7.1.63. oc create token
Demander un jeton de compte de service
Exemple d'utilisation
# Request a token to authenticate to the kube-apiserver as the service account "myapp" in the current namespace oc create token myapp # Request a token for a service account in a custom namespace oc create token myapp --namespace myns # Request a token with a custom expiration oc create token myapp --duration 10m # Request a token with a custom audience oc create token myapp --audience https://example.com # Request a token bound to an instance of a Secret object oc create token myapp --bound-object-kind Secret --bound-object-name mysecret # Request a token bound to an instance of a Secret object with a specific uid oc create token myapp --bound-object-kind Secret --bound-object-name mysecret --bound-object-uid 0d4691ed-659b-4935-a832-355f77ee47cc
2.7.1.64. oc create user
Créer manuellement un utilisateur (nécessaire uniquement si la création automatique est désactivée)
Exemple d'utilisation
# Create a user with the username "ajones" and the display name "Adam Jones" oc create user ajones --full-name="Adam Jones"
2.7.1.65. oc create useridentitymapping
Associer manuellement une identité à un utilisateur
Exemple d'utilisation
# Map the identity "acme_ldap:adamjones" to the user "ajones" oc create useridentitymapping acme_ldap:adamjones ajones
2.7.1.66. oc debug
Lancer une nouvelle instance d'un pod pour le débogage
Exemple d'utilisation
# Start a shell session into a pod using the OpenShift tools image oc debug # Debug a currently running deployment by creating a new pod oc debug deploy/test # Debug a node as an administrator oc debug node/master-1 # Launch a shell in a pod using the provided image stream tag oc debug istag/mysql:latest -n openshift # Test running a job as a non-root user oc debug job/test --as-user=1000000 # Debug a specific failing container by running the env command in the 'second' container oc debug daemonset/test -c second -- /bin/env # See the pod that would be created to debug oc debug mypod-9xbc -o yaml # Debug a resource but launch the debug pod in another namespace # Note: Not all resources can be debugged using --to-namespace without modification. For example, # volumes and service accounts are namespace-dependent. Add '-o yaml' to output the debug pod definition # to disk. If necessary, edit the definition then run 'oc debug -f -' or run without --to-namespace oc debug mypod-9xbc --to-namespace testns
2.7.1.67. oc supprimer
Supprimer les ressources par nom de fichier, stdin, ressources et noms, ou par ressources et sélecteur d'étiquette
Exemple d'utilisation
# Delete a pod using the type and name specified in pod.json oc delete -f ./pod.json # Delete resources from a directory containing kustomization.yaml - e.g. dir/kustomization.yaml oc delete -k dir # Delete resources from all files that end with '.json' - i.e. expand wildcard characters in file names oc delete -f '*.json' # Delete a pod based on the type and name in the JSON passed into stdin cat pod.json | oc delete -f - # Delete pods and services with same names "baz" and "foo" oc delete pod,service baz foo # Delete pods and services with label name=myLabel oc delete pods,services -l name=myLabel # Delete a pod with minimal delay oc delete pod foo --now # Force delete a pod on a dead node oc delete pod foo --force # Delete all pods oc delete pods --all
2.7.1.68. oc décrire
Afficher les détails d'une ressource spécifique ou d'un groupe de ressources
Exemple d'utilisation
# Describe a node oc describe nodes kubernetes-node-emt8.c.myproject.internal # Describe a pod oc describe pods/nginx # Describe a pod identified by type and name in "pod.json" oc describe -f pod.json # Describe all pods oc describe pods # Describe pods by label name=myLabel oc describe po -l name=myLabel # Describe all pods managed by the 'frontend' replication controller # (rc-created pods get the name of the rc as a prefix in the pod name) oc describe pods frontend
2.7.1.69. oc diff
Comparer la version en direct avec une version appliquée potentielle
Exemple d'utilisation
# Diff resources included in pod.json oc diff -f pod.json # Diff file read from stdin cat service.yaml | oc diff -f -
2.7.1.70. oc edit
Modifier une ressource sur le serveur
Exemple d'utilisation
# Edit the service named 'registry' oc edit svc/registry # Use an alternative editor KUBE_EDITOR="nano" oc edit svc/registry # Edit the job 'myjob' in JSON using the v1 API format oc edit job.v1.batch/myjob -o json # Edit the deployment 'mydeployment' in YAML and save the modified config in its annotation oc edit deployment/mydeployment -o yaml --save-config # Edit the deployment/mydeployment's status subresource oc edit deployment mydeployment --subresource='status'
2.7.1.71. oc exec
Exécuter une commande dans un conteneur
Exemple d'utilisation
# Get output from running the 'date' command from pod mypod, using the first container by default oc exec mypod -- date # Get output from running the 'date' command in ruby-container from pod mypod oc exec mypod -c ruby-container -- date # Switch to raw terminal mode; sends stdin to 'bash' in ruby-container from pod mypod # and sends stdout/stderr from 'bash' back to the client oc exec mypod -c ruby-container -i -t -- bash -il # List contents of /usr from the first container of pod mypod and sort by modification time # If the command you want to execute in the pod has any flags in common (e.g. -i), # you must use two dashes (--) to separate your command's flags/arguments # Also note, do not surround your command and its flags/arguments with quotes # unless that is how you would execute it normally (i.e., do ls -t /usr, not "ls -t /usr") oc exec mypod -i -t -- ls -t /usr # Get output from running 'date' command from the first pod of the deployment mydeployment, using the first container by default oc exec deploy/mydeployment -- date # Get output from running 'date' command from the first pod of the service myservice, using the first container by default oc exec svc/myservice -- date
2.7.1.72. oc expliquer
Obtenir la documentation d'une ressource
Exemple d'utilisation
# Get the documentation of the resource and its fields oc explain pods # Get the documentation of a specific field of a resource oc explain pods.spec.containers
2.7.1.73. oc exposer
Exposer une application répliquée en tant que service ou route
Exemple d'utilisation
# Create a route based on service nginx. The new route will reuse nginx's labels oc expose service nginx # Create a route and specify your own label and route name oc expose service nginx -l name=myroute --name=fromdowntown # Create a route and specify a host name oc expose service nginx --hostname=www.example.com # Create a route with a wildcard oc expose service nginx --hostname=x.example.com --wildcard-policy=Subdomain # This would be equivalent to *.example.com. NOTE: only hosts are matched by the wildcard; subdomains would not be included # Expose a deployment configuration as a service and use the specified port oc expose dc ruby-hello-world --port=8080 # Expose a service as a route in the specified path oc expose service nginx --path=/nginx
2.7.1.74. extrait d'oc
Extraction de secrets ou de cartes de configuration sur disque
Exemple d'utilisation
# Extract the secret "test" to the current directory oc extract secret/test # Extract the config map "nginx" to the /tmp directory oc extract configmap/nginx --to=/tmp # Extract the config map "nginx" to STDOUT oc extract configmap/nginx --to=- # Extract only the key "nginx.conf" from config map "nginx" to the /tmp directory oc extract configmap/nginx --to=/tmp --keys=nginx.conf
2.7.1.75. oc obtenir
Afficher une ou plusieurs ressources
Exemple d'utilisation
# List all pods in ps output format oc get pods # List all pods in ps output format with more information (such as node name) oc get pods -o wide # List a single replication controller with specified NAME in ps output format oc get replicationcontroller web # List deployments in JSON output format, in the "v1" version of the "apps" API group oc get deployments.v1.apps -o json # List a single pod in JSON output format oc get -o json pod web-pod-13je7 # List a pod identified by type and name specified in "pod.yaml" in JSON output format oc get -f pod.yaml -o json # List resources from a directory with kustomization.yaml - e.g. dir/kustomization.yaml oc get -k dir/ # Return only the phase value of the specified pod oc get -o template pod/web-pod-13je7 --template={{.status.phase}} # List resource information in custom columns oc get pod test-pod -o custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image # List all replication controllers and services together in ps output format oc get rc,services # List one or more resources by their type and names oc get rc/web service/frontend pods/web-pod-13je7 # List status subresource for a single pod. oc get pod web-pod-13je7 --subresource status
2.7.1.76. oc oisif
Ressources modulables inactives
Exemple d'utilisation
# Idle the scalable controllers associated with the services listed in to-idle.txt $ oc idle --resource-names-file to-idle.txt
2.7.1.77. oc image append
Ajouter des calques aux images et les transférer dans un registre
Exemple d'utilisation
# Remove the entrypoint on the mysql:latest image oc image append --from mysql:latest --to myregistry.com/myimage:latest --image '{"Entrypoint":null}' # Add a new layer to the image oc image append --from mysql:latest --to myregistry.com/myimage:latest layer.tar.gz # Add a new layer to the image and store the result on disk # This results in $(pwd)/v2/mysql/blobs,manifests oc image append --from mysql:latest --to file://mysql:local layer.tar.gz # Add a new layer to the image and store the result on disk in a designated directory # This will result in $(pwd)/mysql-local/v2/mysql/blobs,manifests oc image append --from mysql:latest --to file://mysql:local --dir mysql-local layer.tar.gz # Add a new layer to an image that is stored on disk (~/mysql-local/v2/image exists) oc image append --from-dir ~/mysql-local --to myregistry.com/myimage:latest layer.tar.gz # Add a new layer to an image that was mirrored to the current directory on disk ($(pwd)/v2/image exists) oc image append --from-dir v2 --to myregistry.com/myimage:latest layer.tar.gz # Add a new layer to a multi-architecture image for an os/arch that is different from the system's os/arch # Note: Wildcard filter is not supported with append. Pass a single os/arch to append oc image append --from docker.io/library/busybox:latest --filter-by-os=linux/s390x --to myregistry.com/myimage:latest layer.tar.gz
2.7.1.78. extraction d'images d'oc
Copier des fichiers d'une image vers le système de fichiers
Exemple d'utilisation
# Extract the busybox image into the current directory oc image extract docker.io/library/busybox:latest # Extract the busybox image into a designated directory (must exist) oc image extract docker.io/library/busybox:latest --path /:/tmp/busybox # Extract the busybox image into the current directory for linux/s390x platform # Note: Wildcard filter is not supported with extract. Pass a single os/arch to extract oc image extract docker.io/library/busybox:latest --filter-by-os=linux/s390x # Extract a single file from the image into the current directory oc image extract docker.io/library/centos:7 --path /bin/bash:. # Extract all .repo files from the image's /etc/yum.repos.d/ folder into the current directory oc image extract docker.io/library/centos:7 --path /etc/yum.repos.d/*.repo:. # Extract all .repo files from the image's /etc/yum.repos.d/ folder into a designated directory (must exist) # This results in /tmp/yum.repos.d/*.repo on local system oc image extract docker.io/library/centos:7 --path /etc/yum.repos.d/*.repo:/tmp/yum.repos.d # Extract an image stored on disk into the current directory ($(pwd)/v2/busybox/blobs,manifests exists) # --confirm is required because the current directory is not empty oc image extract file://busybox:local --confirm # Extract an image stored on disk in a directory other than $(pwd)/v2 into the current directory # --confirm is required because the current directory is not empty ($(pwd)/busybox-mirror-dir/v2/busybox exists) oc image extract file://busybox:local --dir busybox-mirror-dir --confirm # Extract an image stored on disk in a directory other than $(pwd)/v2 into a designated directory (must exist) oc image extract file://busybox:local --dir busybox-mirror-dir --path /:/tmp/busybox # Extract the last layer in the image oc image extract docker.io/library/centos:7[-1] # Extract the first three layers of the image oc image extract docker.io/library/centos:7[:3] # Extract the last three layers of the image oc image extract docker.io/library/centos:7[-3:]
2.7.1.79. oc image info
Afficher des informations sur une image
Exemple d'utilisation
# Show information about an image oc image info quay.io/openshift/cli:latest # Show information about images matching a wildcard oc image info quay.io/openshift/cli:4.* # Show information about a file mirrored to disk under DIR oc image info --dir=DIR file://library/busybox:latest # Select which image from a multi-OS image to show oc image info library/busybox:latest --filter-by-os=linux/arm64
2.7.1.80. oc image mirror
Images miroir d'un référentiel à l'autre
Exemple d'utilisation
# Copy image to another tag oc image mirror myregistry.com/myimage:latest myregistry.com/myimage:stable # Copy image to another registry oc image mirror myregistry.com/myimage:latest docker.io/myrepository/myimage:stable # Copy all tags starting with mysql to the destination repository oc image mirror myregistry.com/myimage:mysql* docker.io/myrepository/myimage # Copy image to disk, creating a directory structure that can be served as a registry oc image mirror myregistry.com/myimage:latest file://myrepository/myimage:latest # Copy image to S3 (pull from <bucket>.s3.amazonaws.com/image:latest) oc image mirror myregistry.com/myimage:latest s3://s3.amazonaws.com/<region>/<bucket>/image:latest # Copy image to S3 without setting a tag (pull via @<digest>) oc image mirror myregistry.com/myimage:latest s3://s3.amazonaws.com/<region>/<bucket>/image # Copy image to multiple locations oc image mirror myregistry.com/myimage:latest docker.io/myrepository/myimage:stable \ docker.io/myrepository/myimage:dev # Copy multiple images oc image mirror myregistry.com/myimage:latest=myregistry.com/other:test \ myregistry.com/myimage:new=myregistry.com/other:target # Copy manifest list of a multi-architecture image, even if only a single image is found oc image mirror myregistry.com/myimage:latest=myregistry.com/other:test \ --keep-manifest-list=true # Copy specific os/arch manifest of a multi-architecture image # Run 'oc image info myregistry.com/myimage:latest' to see available os/arch for multi-arch images # Note that with multi-arch images, this results in a new manifest list digest that includes only # the filtered manifests oc image mirror myregistry.com/myimage:latest=myregistry.com/other:test \ --filter-by-os=os/arch # Copy all os/arch manifests of a multi-architecture image # Run 'oc image info myregistry.com/myimage:latest' to see list of os/arch manifests that will be mirrored oc image mirror myregistry.com/myimage:latest=myregistry.com/other:test \ --keep-manifest-list=true # Note the above command is equivalent to oc image mirror myregistry.com/myimage:latest=myregistry.com/other:test \ --filter-by-os=.*
2.7.1.81. oc import-image
Importer des images à partir d'un registre d'images de conteneurs
Exemple d'utilisation
# Import tag latest into a new image stream oc import-image mystream --from=registry.io/repo/image:latest --confirm # Update imported data for tag latest in an already existing image stream oc import-image mystream # Update imported data for tag stable in an already existing image stream oc import-image mystream:stable # Update imported data for all tags in an existing image stream oc import-image mystream --all # Import all tags into a new image stream oc import-image mystream --from=registry.io/repo/image --all --confirm # Import all tags into a new image stream using a custom timeout oc --request-timeout=5m import-image mystream --from=registry.io/repo/image --all --confirm
2.7.1.82. oc kustomize
Construire une cible de personnalisation à partir d'un répertoire ou d'une URL.
Exemple d'utilisation
# Build the current working directory oc kustomize # Build some shared configuration directory oc kustomize /home/config/production # Build from github oc kustomize https://github.com/kubernetes-sigs/kustomize.git/examples/helloWorld?ref=v1.0.6
2.7.1.83. étiquette oc
Mettre à jour les étiquettes d'une ressource
Exemple d'utilisation
# Update pod 'foo' with the label 'unhealthy' and the value 'true' oc label pods foo unhealthy=true # Update pod 'foo' with the label 'status' and the value 'unhealthy', overwriting any existing value oc label --overwrite pods foo status=unhealthy # Update all pods in the namespace oc label pods --all status=unhealthy # Update a pod identified by the type and name in "pod.json" oc label -f pod.json status=unhealthy # Update pod 'foo' only if the resource is unchanged from version 1 oc label pods foo status=unhealthy --resource-version=1 # Update pod 'foo' by removing a label named 'bar' if it exists # Does not require the --overwrite flag oc label pods foo bar-
2.7.1.84. login oc
Se connecter à un serveur
Exemple d'utilisation
# Log in interactively oc login --username=myuser # Log in to the given server with the given certificate authority file oc login localhost:8443 --certificate-authority=/path/to/cert.crt # Log in to the given server with the given credentials (will not prompt interactively) oc login localhost:8443 --username=myuser --password=mypass
2.7.1.85. oc logout
Fin de la session serveur en cours
Exemple d'utilisation
# Log out oc logout
2.7.1.86. journaux d'oc
Imprimer les logs d'un conteneur dans un pod
Exemple d'utilisation
# Start streaming the logs of the most recent build of the openldap build config oc logs -f bc/openldap # Start streaming the logs of the latest deployment of the mysql deployment config oc logs -f dc/mysql # Get the logs of the first deployment for the mysql deployment config. Note that logs # from older deployments may not exist either because the deployment was successful # or due to deployment pruning or manual deletion of the deployment oc logs --version=1 dc/mysql # Return a snapshot of ruby-container logs from pod backend oc logs backend -c ruby-container # Start streaming of ruby-container logs from pod backend oc logs -f pod/backend -c ruby-container
2.7.1.87. oc new-app
Créer une nouvelle application
Exemple d'utilisation
# List all local templates and image streams that can be used to create an app oc new-app --list # Create an application based on the source code in the current git repository (with a public remote) and a container image oc new-app . --image=registry/repo/langimage # Create an application myapp with Docker based build strategy expecting binary input oc new-app --strategy=docker --binary --name myapp # Create a Ruby application based on the provided [image]~[source code] combination oc new-app centos/ruby-25-centos7~https://github.com/sclorg/ruby-ex.git # Use the public container registry MySQL image to create an app. Generated artifacts will be labeled with db=mysql oc new-app mysql MYSQL_USER=user MYSQL_PASSWORD=pass MYSQL_DATABASE=testdb -l db=mysql # Use a MySQL image in a private registry to create an app and override application artifacts' names oc new-app --image=myregistry.com/mycompany/mysql --name=private # Create an application from a remote repository using its beta4 branch oc new-app https://github.com/openshift/ruby-hello-world#beta4 # Create an application based on a stored template, explicitly setting a parameter value oc new-app --template=ruby-helloworld-sample --param=MYSQL_USER=admin # Create an application from a remote repository and specify a context directory oc new-app https://github.com/youruser/yourgitrepo --context-dir=src/build # Create an application from a remote private repository and specify which existing secret to use oc new-app https://github.com/youruser/yourgitrepo --source-secret=yoursecret # Create an application based on a template file, explicitly setting a parameter value oc new-app --file=./example/myapp/template.json --param=MYSQL_USER=admin # Search all templates, image streams, and container images for the ones that match "ruby" oc new-app --search ruby # Search for "ruby", but only in stored templates (--template, --image-stream and --image # can be used to filter search results) oc new-app --search --template=ruby # Search for "ruby" in stored templates and print the output as YAML oc new-app --search --template=ruby --output=yaml
2.7.1.88. oc nouvelle construction
Créer une nouvelle configuration de construction
Exemple d'utilisation
# Create a build config based on the source code in the current git repository (with a public # remote) and a container image oc new-build . --image=repo/langimage # Create a NodeJS build config based on the provided [image]~[source code] combination oc new-build centos/nodejs-8-centos7~https://github.com/sclorg/nodejs-ex.git # Create a build config from a remote repository using its beta2 branch oc new-build https://github.com/openshift/ruby-hello-world#beta2 # Create a build config using a Dockerfile specified as an argument oc new-build -D $'FROM centos:7\nRUN yum install -y httpd' # Create a build config from a remote repository and add custom environment variables oc new-build https://github.com/openshift/ruby-hello-world -e RACK_ENV=development # Create a build config from a remote private repository and specify which existing secret to use oc new-build https://github.com/youruser/yourgitrepo --source-secret=yoursecret # Create a build config from a remote repository and inject the npmrc into a build oc new-build https://github.com/openshift/ruby-hello-world --build-secret npmrc:.npmrc # Create a build config from a remote repository and inject environment data into a build oc new-build https://github.com/openshift/ruby-hello-world --build-config-map env:config # Create a build config that gets its input from a remote repository and another container image oc new-build https://github.com/openshift/ruby-hello-world --source-image=openshift/jenkins-1-centos7 --source-image-path=/var/lib/jenkins:tmp
2.7.1.89. oc new-project
Demander un nouveau projet
Exemple d'utilisation
# Create a new project with minimal information oc new-project web-team-dev # Create a new project with a display name and description oc new-project web-team-dev --display-name="Web Team Development" --description="Development project for the web team."
2.7.1.90. oc observer
Observer les changements dans les ressources et y réagir (expérimental)
Exemple d'utilisation
# Observe changes to services oc observe services # Observe changes to services, including the clusterIP and invoke a script for each oc observe services --template '{ .spec.clusterIP }' -- register_dns.sh # Observe changes to services filtered by a label selector oc observe namespaces -l regist-dns=true --template '{ .spec.clusterIP }' -- register_dns.sh
2.7.1.91. patch oc
Mise à jour des champs d'une ressource
Exemple d'utilisation
# Partially update a node using a strategic merge patch, specifying the patch as JSON oc patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}' # Partially update a node using a strategic merge patch, specifying the patch as YAML oc patch node k8s-node-1 -p $'spec:\n unschedulable: true' # Partially update a node identified by the type and name specified in "node.json" using strategic merge patch oc patch -f node.json -p '{"spec":{"unschedulable":true}}' # Update a container's image; spec.containers[*].name is required because it's a merge key oc patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}' # Update a container's image using a JSON patch with positional arrays oc patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]' # Update a deployment's replicas through the scale subresource using a merge patch. oc patch deployment nginx-deployment --subresource='scale' --type='merge' -p '{"spec":{"replicas":2}}'
2.7.1.92. liste des plugins oc
Liste de tous les exécutables de plugins visibles dans le PATH d'un utilisateur
Exemple d'utilisation
# List all available plugins oc plugin list
2.7.1.93. oc policy add-role-to-user
Ajouter un rôle aux utilisateurs ou aux comptes de service pour le projet en cours
Exemple d'utilisation
# Add the 'view' role to user1 for the current project oc policy add-role-to-user view user1 # Add the 'edit' role to serviceaccount1 for the current project oc policy add-role-to-user edit -z serviceaccount1
2.7.1.94. politique de l'oc révision du csc
Vérifier quel compte de service peut créer un pod
Exemple d'utilisation
# Check whether service accounts sa1 and sa2 can admit a pod with a template pod spec specified in my_resource.yaml # Service Account specified in myresource.yaml file is ignored oc policy scc-review -z sa1,sa2 -f my_resource.yaml # Check whether service accounts system:serviceaccount:bob:default can admit a pod with a template pod spec specified in my_resource.yaml oc policy scc-review -z system:serviceaccount:bob:default -f my_resource.yaml # Check whether the service account specified in my_resource_with_sa.yaml can admit the pod oc policy scc-review -f my_resource_with_sa.yaml # Check whether the default service account can admit the pod; default is taken since no service account is defined in myresource_with_no_sa.yaml oc policy scc-review -f myresource_with_no_sa.yaml
2.7.1.95. politique de l'oc scc-subject-review
Vérifier si un utilisateur ou un compte de service peut créer un pod
Exemple d'utilisation
# Check whether user bob can create a pod specified in myresource.yaml oc policy scc-subject-review -u bob -f myresource.yaml # Check whether user bob who belongs to projectAdmin group can create a pod specified in myresource.yaml oc policy scc-subject-review -u bob -g projectAdmin -f myresource.yaml # Check whether a service account specified in the pod template spec in myresourcewithsa.yaml can create the pod oc policy scc-subject-review -f myresourcewithsa.yaml
2.7.1.96. oc port-forward
Transférer un ou plusieurs ports locaux vers un pod
Exemple d'utilisation
# Listen on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in the pod oc port-forward pod/mypod 5000 6000 # Listen on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in a pod selected by the deployment oc port-forward deployment/mydeployment 5000 6000 # Listen on port 8443 locally, forwarding to the targetPort of the service's port named "https" in a pod selected by the service oc port-forward service/myservice 8443:https # Listen on port 8888 locally, forwarding to 5000 in the pod oc port-forward pod/mypod 8888:5000 # Listen on port 8888 on all addresses, forwarding to 5000 in the pod oc port-forward --address 0.0.0.0 pod/mypod 8888:5000 # Listen on port 8888 on localhost and selected IP, forwarding to 5000 in the pod oc port-forward --address localhost,10.19.21.23 pod/mypod 8888:5000 # Listen on a random port locally, forwarding to 5000 in the pod oc port-forward pod/mypod :5000
2.7.1.97. processus d'oc
Transformer un modèle en liste de ressources
Exemple d'utilisation
# Convert the template.json file into a resource list and pass to create oc process -f template.json | oc create -f - # Process a file locally instead of contacting the server oc process -f template.json --local -o yaml # Process template while passing a user-defined label oc process -f template.json -l name=mytemplate # Convert a stored template into a resource list oc process foo # Convert a stored template into a resource list by setting/overriding parameter values oc process foo PARM1=VALUE1 PARM2=VALUE2 # Convert a template stored in different namespace into a resource list oc process openshift//foo # Convert template.json into a resource list cat template.json | oc process -f -
2.7.1.98. projet oc
Passer à un autre projet
Exemple d'utilisation
# Switch to the 'myapp' project oc project myapp # Display the project currently in use oc project
2.7.1.99. projets d'oc
Afficher les projets existants
Exemple d'utilisation
# List all projects oc projects
2.7.1.100. proxy oc
Exécuter un proxy vers le serveur API Kubernetes
Exemple d'utilisation
# To proxy all of the Kubernetes API and nothing else oc proxy --api-prefix=/ # To proxy only part of the Kubernetes API and also some static files # You can get pods info with 'curl localhost:8001/api/v1/pods' oc proxy --www=/my/files --www-prefix=/static/ --api-prefix=/api/ # To proxy the entire Kubernetes API at a different root # You can get pods info with 'curl localhost:8001/custom/api/v1/pods' oc proxy --api-prefix=/custom/ # Run a proxy to the Kubernetes API server on port 8011, serving static content from ./local/www/ oc proxy --port=8011 --www=./local/www/ # Run a proxy to the Kubernetes API server on an arbitrary local port # The chosen port for the server will be output to stdout oc proxy --port=0 # Run a proxy to the Kubernetes API server, changing the API prefix to k8s-api # This makes e.g. the pods API available at localhost:8001/k8s-api/v1/pods/ oc proxy --api-prefix=/k8s-api
2.7.1.101. infos sur le registre des oc
Imprimer des informations sur le registre intégré
Exemple d'utilisation
# Display information about the integrated registry oc registry info
2.7.1.102. oc registry login
Se connecter au registre intégré
Exemple d'utilisation
# Log in to the integrated registry oc registry login # Log in to different registry using BASIC auth credentials oc registry login --registry quay.io/myregistry --auth-basic=USER:PASS
2.7.1.103. oc remplacer
Remplacer une ressource par un nom de fichier ou par stdin
Exemple d'utilisation
# Replace a pod using the data in pod.json oc replace -f ./pod.json # Replace a pod based on the JSON passed into stdin cat pod.json | oc replace -f - # Update a single-container pod's image version (tag) to v4 oc get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | oc replace -f - # Force replace, delete and then re-create the resource oc replace --force -f ./pod.json
2.7.1.104. oc rollback
Revenir à un déploiement antérieur d'une partie de l'application
Exemple d'utilisation
# Perform a rollback to the last successfully completed deployment for a deployment config oc rollback frontend # See what a rollback to version 3 will look like, but do not perform the rollback oc rollback frontend --to-version=3 --dry-run # Perform a rollback to a specific deployment oc rollback frontend-2 # Perform the rollback manually by piping the JSON of the new config back to oc oc rollback frontend -o json | oc replace dc/frontend -f - # Print the updated deployment configuration in JSON format instead of performing the rollback oc rollback frontend -o json
2.7.1.105. annulation de la mise en œuvre de l'oc
Annuler le déploiement en cours
Exemple d'utilisation
# Cancel the in-progress deployment based on 'nginx' oc rollout cancel dc/nginx
2.7.1.106. historique du déploiement des oc
Voir l'historique des déploiements
Exemple d'utilisation
# View the rollout history of a deployment oc rollout history dc/nginx # View the details of deployment revision 3 oc rollout history dc/nginx --revision=3
2.7.1.107. dernier déploiement d'oc
Démarrer un nouveau déploiement pour une configuration de déploiement avec le dernier état de ses déclencheurs
Exemple d'utilisation
# Start a new rollout based on the latest images defined in the image change triggers oc rollout latest dc/nginx # Print the rolled out deployment config oc rollout latest dc/nginx -o json
2.7.1.108. pause dans le déploiement de l'oc
Marquer la ressource fournie comme interrompue
Exemple d'utilisation
# Mark the nginx deployment as paused. Any current state of # the deployment will continue its function, new updates to the deployment will not # have an effect as long as the deployment is paused oc rollout pause dc/nginx
2.7.1.109. redémarrage du déploiement d'oc
Redémarrer une ressource
Exemple d'utilisation
# Restart a deployment oc rollout restart deployment/nginx # Restart a daemon set oc rollout restart daemonset/abc # Restart deployments with the app=nginx label oc rollout restart deployment --selector=app=nginx
2.7.1.110. résumé de la mise en œuvre de l'oc
Reprendre une ressource en pause
Exemple d'utilisation
# Resume an already paused deployment oc rollout resume dc/nginx
2.7.1.111. oc rollout retry
Réessayer le dernier déploiement qui a échoué
Exemple d'utilisation
# Retry the latest failed deployment based on 'frontend' # The deployer pod and any hook pods are deleted for the latest failed deployment oc rollout retry dc/frontend
2.7.1.112. état d'avancement du déploiement des oc
Afficher l'état d'avancement du déploiement
Exemple d'utilisation
# Watch the status of the latest rollout oc rollout status dc/nginx
2.7.1.113. oc rollout undo
Annuler un déploiement précédent
Exemple d'utilisation
# Roll back to the previous deployment oc rollout undo dc/nginx # Roll back to deployment revision 3. The replication controller for that version must exist oc rollout undo dc/nginx --to-revision=3
2.7.1.114. oc rsh
Démarrer une session shell dans un conteneur
Exemple d'utilisation
# Open a shell session on the first container in pod 'foo' oc rsh foo # Open a shell session on the first container in pod 'foo' and namespace 'bar' # (Note that oc client specific arguments must come before the resource name and its arguments) oc rsh -n bar foo # Run the command 'cat /etc/resolv.conf' inside pod 'foo' oc rsh foo cat /etc/resolv.conf # See the configuration of your internal registry oc rsh dc/docker-registry cat config.yml # Open a shell session on the container named 'index' inside a pod of your job oc rsh -c index job/sheduled
2.7.1.115. oc rsync
Copier des fichiers entre un système de fichiers local et un pod
Exemple d'utilisation
# Synchronize a local directory with a pod directory oc rsync ./local/dir/ POD:/remote/dir # Synchronize a pod directory with a local directory oc rsync POD:/remote/dir/ ./local/dir
2.7.1.116. course d'oc
Exécuter une image particulière sur le cluster
Exemple d'utilisation
# Start a nginx pod oc run nginx --image=nginx # Start a hazelcast pod and let the container expose port 5701 oc run hazelcast --image=hazelcast/hazelcast --port=5701 # Start a hazelcast pod and set environment variables "DNS_DOMAIN=cluster" and "POD_NAMESPACE=default" in the container oc run hazelcast --image=hazelcast/hazelcast --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default" # Start a hazelcast pod and set labels "app=hazelcast" and "env=prod" in the container oc run hazelcast --image=hazelcast/hazelcast --labels="app=hazelcast,env=prod" # Dry run; print the corresponding API objects without creating them oc run nginx --image=nginx --dry-run=client # Start a nginx pod, but overload the spec with a partial set of values parsed from JSON oc run nginx --image=nginx --overrides='{ "apiVersion": "v1", "spec": { ... } }' # Start a busybox pod and keep it in the foreground, don't restart it if it exits oc run -i -t busybox --image=busybox --restart=Never # Start the nginx pod using the default command, but use custom arguments (arg1 .. argN) for that command oc run nginx --image=nginx -- <arg1> <arg2> ... <argN> # Start the nginx pod using a different command and custom arguments oc run nginx --image=nginx --command -- <cmd> <arg1> ... <argN>
2.7.1.117. échelle oc
Définir une nouvelle taille pour un déploiement, un ensemble de réplicas ou un contrôleur de réplication
Exemple d'utilisation
# Scale a replica set named 'foo' to 3 oc scale --replicas=3 rs/foo # Scale a resource identified by type and name specified in "foo.yaml" to 3 oc scale --replicas=3 -f foo.yaml # If the deployment named mysql's current size is 2, scale mysql to 3 oc scale --current-replicas=2 --replicas=3 deployment/mysql # Scale multiple replication controllers oc scale --replicas=5 rc/foo rc/bar rc/baz # Scale stateful set named 'web' to 3 oc scale --replicas=3 statefulset/web
2.7.1.118. oc secrets link
Lier les secrets à un compte de service
Exemple d'utilisation
# Add an image pull secret to a service account to automatically use it for pulling pod images oc secrets link serviceaccount-name pull-secret --for=pull # Add an image pull secret to a service account to automatically use it for both pulling and pushing build images oc secrets link builder builder-image-secret --for=pull,mount
2.7.1.119. oc secrets unlink
Détacher les secrets d'un compte de service
Exemple d'utilisation
# Unlink a secret currently associated with a service account oc secrets unlink serviceaccount-name secret-name another-secret-name ...
2.7.1.120. oc set build-hook
Mise à jour d'un crochet de construction sur une configuration de construction
Exemple d'utilisation
# Clear post-commit hook on a build config oc set build-hook bc/mybuild --post-commit --remove # Set the post-commit hook to execute a test suite using a new entrypoint oc set build-hook bc/mybuild --post-commit --command -- /bin/bash -c /var/lib/test-image.sh # Set the post-commit hook to execute a shell script oc set build-hook bc/mybuild --post-commit --script="/var/lib/test-image.sh param1 param2 && /var/lib/done.sh"
2.7.1.121. oc set build-secret
Mise à jour d'un secret de construction sur une configuration de construction
Exemple d'utilisation
# Clear the push secret on a build config oc set build-secret --push --remove bc/mybuild # Set the pull secret on a build config oc set build-secret --pull bc/mybuild mysecret # Set the push and pull secret on a build config oc set build-secret --push --pull bc/mybuild mysecret # Set the source secret on a set of build configs matching a selector oc set build-secret --source -l app=myapp gitsecret
2.7.1.122. oc set data
Mettre à jour les données d'une carte de configuration ou d'un secret
Exemple d'utilisation
# Set the 'password' key of a secret oc set data secret/foo password=this_is_secret # Remove the 'password' key from a secret oc set data secret/foo password- # Update the 'haproxy.conf' key of a config map from a file on disk oc set data configmap/bar --from-file=../haproxy.conf # Update a secret with the contents of a directory, one key per file oc set data secret/foo --from-file=secret-dir
2.7.1.123. oc set deployment-hook
Mise à jour d'un crochet de déploiement sur une configuration de déploiement
Exemple d'utilisation
# Clear pre and post hooks on a deployment config oc set deployment-hook dc/myapp --remove --pre --post # Set the pre deployment hook to execute a db migration command for an application # using the data volume from the application oc set deployment-hook dc/myapp --pre --volumes=data -- /var/lib/migrate-db.sh # Set a mid deployment hook along with additional environment variables oc set deployment-hook dc/myapp --mid --volumes=data -e VAR1=value1 -e VAR2=value2 -- /var/lib/prepare-deploy.sh
2.7.1.124. oc set env
Mise à jour des variables d'environnement sur un modèle de pod
Exemple d'utilisation
# Update deployment config 'myapp' with a new environment variable oc set env dc/myapp STORAGE_DIR=/local # List the environment variables defined on a build config 'sample-build' oc set env bc/sample-build --list # List the environment variables defined on all pods oc set env pods --all --list # Output modified build config in YAML oc set env bc/sample-build STORAGE_DIR=/data -o yaml # Update all containers in all replication controllers in the project to have ENV=prod oc set env rc --all ENV=prod # Import environment from a secret oc set env --from=secret/mysecret dc/myapp # Import environment from a config map with a prefix oc set env --from=configmap/myconfigmap --prefix=MYSQL_ dc/myapp # Remove the environment variable ENV from container 'c1' in all deployment configs oc set env dc --all --containers="c1" ENV- # Remove the environment variable ENV from a deployment config definition on disk and # update the deployment config on the server oc set env -f dc.json ENV- # Set some of the local shell environment into a deployment config on the server oc set env | grep RAILS_ | oc env -e - dc/myapp
2.7.1.125. oc set image
Mise à jour de l'image d'un modèle de pod
Exemple d'utilisation
# Set a deployment configs's nginx container image to 'nginx:1.9.1', and its busybox container image to 'busybox'. oc set image dc/nginx busybox=busybox nginx=nginx:1.9.1 # Set a deployment configs's app container image to the image referenced by the imagestream tag 'openshift/ruby:2.3'. oc set image dc/myapp app=openshift/ruby:2.3 --source=imagestreamtag # Update all deployments' and rc's nginx container's image to 'nginx:1.9.1' oc set image deployments,rc nginx=nginx:1.9.1 --all # Update image of all containers of daemonset abc to 'nginx:1.9.1' oc set image daemonset abc *=nginx:1.9.1 # Print result (in yaml format) of updating nginx container image from local file, without hitting the server oc set image -f path/to/file.yaml nginx=nginx:1.9.1 --local -o yaml
2.7.1.126. oc set image-lookup
Modifier la façon dont les images sont résolues lors du déploiement des applications
Exemple d'utilisation
# Print all of the image streams and whether they resolve local names oc set image-lookup # Use local name lookup on image stream mysql oc set image-lookup mysql # Force a deployment to use local name lookup oc set image-lookup deploy/mysql # Show the current status of the deployment lookup oc set image-lookup deploy/mysql --list # Disable local name lookup on image stream mysql oc set image-lookup mysql --enabled=false # Set local name lookup on all image streams oc set image-lookup --all
2.7.1.127. oc set probe
Mise à jour d'une sonde sur un modèle de pod
Exemple d'utilisation
# Clear both readiness and liveness probes off all containers oc set probe dc/myapp --remove --readiness --liveness # Set an exec action as a liveness probe to run 'echo ok' oc set probe dc/myapp --liveness -- echo ok # Set a readiness probe to try to open a TCP socket on 3306 oc set probe rc/mysql --readiness --open-tcp=3306 # Set an HTTP startup probe for port 8080 and path /healthz over HTTP on the pod IP oc set probe dc/webapp --startup --get-url=http://:8080/healthz # Set an HTTP readiness probe for port 8080 and path /healthz over HTTP on the pod IP oc set probe dc/webapp --readiness --get-url=http://:8080/healthz # Set an HTTP readiness probe over HTTPS on 127.0.0.1 for a hostNetwork pod oc set probe dc/router --readiness --get-url=https://127.0.0.1:1936/stats # Set only the initial-delay-seconds field on all deployments oc set probe dc --all --readiness --initial-delay-seconds=30
2.7.1.128. oc set resources
Mise à jour des demandes/limites de ressources sur les objets avec des modèles de pods
Exemple d'utilisation
# Set a deployments nginx container CPU limits to "200m and memory to 512Mi" oc set resources deployment nginx -c=nginx --limits=cpu=200m,memory=512Mi # Set the resource request and limits for all containers in nginx oc set resources deployment nginx --limits=cpu=200m,memory=512Mi --requests=cpu=100m,memory=256Mi # Remove the resource requests for resources on containers in nginx oc set resources deployment nginx --limits=cpu=0,memory=0 --requests=cpu=0,memory=0 # Print the result (in YAML format) of updating nginx container limits locally, without hitting the server oc set resources -f path/to/file.yaml --limits=cpu=200m,memory=512Mi --local -o yaml
2.7.1.129. oc set route-backends
Mettre à jour les backends d'une route
Exemple d'utilisation
# Print the backends on the route 'web' oc set route-backends web # Set two backend services on route 'web' with 2/3rds of traffic going to 'a' oc set route-backends web a=2 b=1 # Increase the traffic percentage going to b by 10%% relative to a oc set route-backends web --adjust b=+10%% # Set traffic percentage going to b to 10%% of the traffic going to a oc set route-backends web --adjust b=10%% # Set weight of b to 10 oc set route-backends web --adjust b=10 # Set the weight to all backends to zero oc set route-backends web --zero
2.7.1.130. sélecteur d'ensemble d'oc
Définir le sélecteur d'une ressource
Exemple d'utilisation
# Set the labels and selector before creating a deployment/service pair. oc create service clusterip my-svc --clusterip="None" -o yaml --dry-run | oc set selector --local -f - 'environment=qa' -o yaml | oc create -f - oc create deployment my-dep -o yaml --dry-run | oc label --local -f - environment=qa -o yaml | oc create -f -
2.7.1.131. oc set serviceaccount
Mettre à jour le compte de service d'une ressource
Exemple d'utilisation
# Set deployment nginx-deployment's service account to serviceaccount1 oc set serviceaccount deployment nginx-deployment serviceaccount1 # Print the result (in YAML format) of updated nginx deployment with service account from a local file, without hitting the API server oc set sa -f nginx-deployment.yaml serviceaccount1 --local --dry-run -o yaml
2.7.1.132. oc set subject
Mise à jour du compte de l'utilisateur, du groupe ou du service dans une liaison de rôles ou une liaison de rôles de cluster
Exemple d'utilisation
# Update a cluster role binding for serviceaccount1 oc set subject clusterrolebinding admin --serviceaccount=namespace:serviceaccount1 # Update a role binding for user1, user2, and group1 oc set subject rolebinding admin --user=user1 --user=user2 --group=group1 # Print the result (in YAML format) of updating role binding subjects locally, without hitting the server oc create rolebinding admin --role=admin --user=admin -o yaml --dry-run | oc set subject --local -f - --user=foo -o yaml
2.7.1.133. oc set triggers
Mise à jour des déclencheurs sur un ou plusieurs objets
Exemple d'utilisation
# Print the triggers on the deployment config 'myapp' oc set triggers dc/myapp # Set all triggers to manual oc set triggers dc/myapp --manual # Enable all automatic triggers oc set triggers dc/myapp --auto # Reset the GitHub webhook on a build to a new, generated secret oc set triggers bc/webapp --from-github oc set triggers bc/webapp --from-webhook # Remove all triggers oc set triggers bc/webapp --remove-all # Stop triggering on config change oc set triggers dc/myapp --from-config --remove # Add an image trigger to a build config oc set triggers bc/webapp --from-image=namespace1/image:latest # Add an image trigger to a stateful set on the main container oc set triggers statefulset/db --from-image=namespace1/image:latest -c main
2.7.1.134. oc set volumes
Mise à jour des volumes sur un modèle de pod
Exemple d'utilisation
# List volumes defined on all deployment configs in the current project oc set volume dc --all # Add a new empty dir volume to deployment config (dc) 'myapp' mounted under # /var/lib/myapp oc set volume dc/myapp --add --mount-path=/var/lib/myapp # Use an existing persistent volume claim (pvc) to overwrite an existing volume 'v1' oc set volume dc/myapp --add --name=v1 -t pvc --claim-name=pvc1 --overwrite # Remove volume 'v1' from deployment config 'myapp' oc set volume dc/myapp --remove --name=v1 # Create a new persistent volume claim that overwrites an existing volume 'v1' oc set volume dc/myapp --add --name=v1 -t pvc --claim-size=1G --overwrite # Change the mount point for volume 'v1' to /data oc set volume dc/myapp --add --name=v1 -m /data --overwrite # Modify the deployment config by removing volume mount "v1" from container "c1" # (and by removing the volume "v1" if no other containers have volume mounts that reference it) oc set volume dc/myapp --remove --name=v1 --containers=c1 # Add new volume based on a more complex volume source (AWS EBS, GCE PD, # Ceph, Gluster, NFS, ISCSI, ...) oc set volume dc/myapp --add -m /data --source=<json-string>
2.7.1.135. oc start-build
Commencer une nouvelle construction
Exemple d'utilisation
# Starts build from build config "hello-world" oc start-build hello-world # Starts build from a previous build "hello-world-1" oc start-build --from-build=hello-world-1 # Use the contents of a directory as build input oc start-build hello-world --from-dir=src/ # Send the contents of a Git repository to the server from tag 'v2' oc start-build hello-world --from-repo=../hello-world --commit=v2 # Start a new build for build config "hello-world" and watch the logs until the build # completes or fails oc start-build hello-world --follow # Start a new build for build config "hello-world" and wait until the build completes. It # exits with a non-zero return code if the build fails oc start-build hello-world --wait
2.7.1.136. statut de l'oc
Afficher une vue d'ensemble du projet en cours
Exemple d'utilisation
# See an overview of the current project oc status # Export the overview of the current project in an svg file oc status -o dot | dot -T svg -o project.svg # See an overview of the current project including details for any identified issues oc status --suggest
2.7.1.137. étiquette oc
Marquer des images existantes dans des flux d'images
Exemple d'utilisation
# Tag the current image for the image stream 'openshift/ruby' and tag '2.0' into the image stream 'yourproject/ruby with tag 'tip' oc tag openshift/ruby:2.0 yourproject/ruby:tip # Tag a specific image oc tag openshift/ruby@sha256:6b646fa6bf5e5e4c7fa41056c27910e679c03ebe7f93e361e6515a9da7e258cc yourproject/ruby:tip # Tag an external container image oc tag --source=docker openshift/origin-control-plane:latest yourproject/ruby:tip # Tag an external container image and request pullthrough for it oc tag --source=docker openshift/origin-control-plane:latest yourproject/ruby:tip --reference-policy=local # Remove the specified spec tag from an image stream oc tag openshift/origin-control-plane:latest -d
2.7.1.138. version oc
Imprimer les informations relatives à la version du client et du serveur
Exemple d'utilisation
# Print the OpenShift client, kube-apiserver, and openshift-apiserver version information for the current context oc version # Print the OpenShift client, kube-apiserver, and openshift-apiserver version numbers for the current context oc version --short # Print the OpenShift client version information for the current context oc version --client
2.7.1.139. oc attendre
Expérimental : Attente d'une condition spécifique sur une ou plusieurs ressources
Exemple d'utilisation
# Wait for the pod "busybox1" to contain the status condition of type "Ready" oc wait --for=condition=Ready pod/busybox1 # The default value of status condition is true; you can wait for other targets after an equal delimiter (compared after Unicode simple case folding, which is a more general form of case-insensitivity): oc wait --for=condition=Ready=false pod/busybox1 # Wait for the pod "busybox1" to contain the status phase to be "Running". oc wait --for=jsonpath='{.status.phase}'=Running pod/busybox1 # Wait for the pod "busybox1" to be deleted, with a timeout of 60s, after having issued the "delete" command oc delete pod/busybox1 oc wait --for=delete pod/busybox1 --timeout=60s
2.7.1.140. oc whoami
Renvoi d'informations sur la session en cours
Exemple d'utilisation
# Display the currently authenticated user oc whoami
2.7.2. Ressources complémentaires
2.8. Référence des commandes de l'administrateur de la CLI d'OpenShift
Cette référence fournit des descriptions et des exemples de commandes pour les commandes administrateur de l'OpenShift CLI (oc
). Vous devez disposer de cluster-admin
ou d'autorisations équivalentes pour utiliser ces commandes.
Pour les commandes de développeur, voir la référence des commandes de développeur de l'OpenShift CLI.
Exécutez oc adm -h
pour obtenir la liste de toutes les commandes de l'administrateur ou exécutez oc <command> --help
pour obtenir des détails supplémentaires sur une commande spécifique.
2.8.1. Commandes de l'administrateur OpenShift CLI (oc)
2.8.1.1. oc adm build-chain
Produire les entrées et les dépendances de vos constructions
Exemple d'utilisation
# Build the dependency tree for the 'latest' tag in <image-stream> oc adm build-chain <image-stream> # Build the dependency tree for the 'v2' tag in dot format and visualize it via the dot utility oc adm build-chain <image-stream>:v2 -o dot | dot -T svg -o deps.svg # Build the dependency tree across all namespaces for the specified image stream tag found in the 'test' namespace oc adm build-chain <image-stream> -n test --all
2.8.1.2. oc adm catalogue mirror
Miroir d'un catalogue de registres d'opérateurs
Exemple d'utilisation
# Mirror an operator-registry image and its contents to a registry oc adm catalog mirror quay.io/my/image:latest myregistry.com # Mirror an operator-registry image and its contents to a particular namespace in a registry oc adm catalog mirror quay.io/my/image:latest myregistry.com/my-namespace # Mirror to an airgapped registry by first mirroring to files oc adm catalog mirror quay.io/my/image:latest file:///local/index oc adm catalog mirror file:///local/index/my/image:latest my-airgapped-registry.com # Configure a cluster to use a mirrored registry oc apply -f manifests/imageContentSourcePolicy.yaml # Edit the mirroring mappings and mirror with "oc image mirror" manually oc adm catalog mirror --manifests-only quay.io/my/image:latest myregistry.com oc image mirror -f manifests/mapping.txt # Delete all ImageContentSourcePolicies generated by oc adm catalog mirror oc delete imagecontentsourcepolicy -l operators.openshift.org/catalog=true
2.8.1.3. certificat oc adm approuver
Approuver une demande de signature de certificat
Exemple d'utilisation
# Approve CSR 'csr-sqgzp' oc adm certificate approve csr-sqgzp
2.8.1.4. oc adm certificat deny
Refuser une demande de signature de certificat
Exemple d'utilisation
# Deny CSR 'csr-sqgzp' oc adm certificate deny csr-sqgzp
2.8.1.5. oc adm cordon
Marquer le nœud comme non maîtrisable
Exemple d'utilisation
# Mark node "foo" as unschedulable oc adm cordon foo
2.8.1.6. oc adm create-bootstrap-project-template
Créer un modèle de projet bootstrap
Exemple d'utilisation
# Output a bootstrap project template in YAML format to stdout oc adm create-bootstrap-project-template -o yaml
2.8.1.7. oc adm create-error-template
Créer un modèle de page d'erreur
Exemple d'utilisation
# Output a template for the error page to stdout oc adm create-error-template
2.8.1.8. oc adm create-login-template
Créer un modèle de connexion
Exemple d'utilisation
# Output a template for the login page to stdout oc adm create-login-template
2.8.1.9. oc adm create-provider-selection-template (modèle de sélection du fournisseur)
Créer un modèle de sélection des fournisseurs
Exemple d'utilisation
# Output a template for the provider selection page to stdout oc adm create-provider-selection-template
2.8.1.10. oc adm drain
Drainage du nœud en vue de l'entretien
Exemple d'utilisation
# Drain node "foo", even if there are pods not managed by a replication controller, replica set, job, daemon set or stateful set on it oc adm drain foo --force # As above, but abort if there are pods not managed by a replication controller, replica set, job, daemon set or stateful set, and use a grace period of 15 minutes oc adm drain foo --grace-period=900
2.8.1.11. oc adm groups add-users
Ajouter des utilisateurs à un groupe
Exemple d'utilisation
# Add user1 and user2 to my-group oc adm groups add-users my-group user1 user2
2.8.1.12. oc adm groups new
Créer un nouveau groupe
Exemple d'utilisation
# Add a group with no users oc adm groups new my-group # Add a group with two users oc adm groups new my-group user1 user2 # Add a group with one user and shorter output oc adm groups new my-group user1 -o name
2.8.1.13. oc adm groups prune
Supprimer d'anciens groupes OpenShift référençant des enregistrements manquants d'un fournisseur externe
Exemple d'utilisation
# Prune all orphaned groups oc adm groups prune --sync-config=/path/to/ldap-sync-config.yaml --confirm # Prune all orphaned groups except the ones from the blacklist file oc adm groups prune --blacklist=/path/to/blacklist.txt --sync-config=/path/to/ldap-sync-config.yaml --confirm # Prune all orphaned groups from a list of specific groups specified in a whitelist file oc adm groups prune --whitelist=/path/to/whitelist.txt --sync-config=/path/to/ldap-sync-config.yaml --confirm # Prune all orphaned groups from a list of specific groups specified in a whitelist oc adm groups prune groups/group_name groups/other_name --sync-config=/path/to/ldap-sync-config.yaml --confirm
2.8.1.14. oc adm groups remove-users
Supprimer des utilisateurs d'un groupe
Exemple d'utilisation
# Remove user1 and user2 from my-group oc adm groups remove-users my-group user1 user2
2.8.1.15. oc adm groups sync
Synchroniser les groupes OpenShift avec les enregistrements d'un fournisseur externe
Exemple d'utilisation
# Sync all groups with an LDAP server oc adm groups sync --sync-config=/path/to/ldap-sync-config.yaml --confirm # Sync all groups except the ones from the blacklist file with an LDAP server oc adm groups sync --blacklist=/path/to/blacklist.txt --sync-config=/path/to/ldap-sync-config.yaml --confirm # Sync specific groups specified in a whitelist file with an LDAP server oc adm groups sync --whitelist=/path/to/whitelist.txt --sync-config=/path/to/sync-config.yaml --confirm # Sync all OpenShift groups that have been synced previously with an LDAP server oc adm groups sync --type=openshift --sync-config=/path/to/ldap-sync-config.yaml --confirm # Sync specific OpenShift groups if they have been synced previously with an LDAP server oc adm groups sync groups/group1 groups/group2 groups/group3 --sync-config=/path/to/sync-config.yaml --confirm
2.8.1.16. oc adm inspect
Collecte des données de débogage pour une ressource donnée
Exemple d'utilisation
# Collect debugging data for the "openshift-apiserver" clusteroperator oc adm inspect clusteroperator/openshift-apiserver # Collect debugging data for the "openshift-apiserver" and "kube-apiserver" clusteroperators oc adm inspect clusteroperator/openshift-apiserver clusteroperator/kube-apiserver # Collect debugging data for all clusteroperators oc adm inspect clusteroperator # Collect debugging data for all clusteroperators and clusterversions oc adm inspect clusteroperators,clusterversions
2.8.1.17. oc adm migrate template-instances
Mettre à jour les instances de modèles pour qu'elles pointent vers les derniers types de versions de groupes
Exemple d'utilisation
# Perform a dry-run of updating all objects oc adm migrate template-instances # To actually perform the update, the confirm flag must be appended oc adm migrate template-instances --confirm
2.8.1.18. oc adm must-gather
Lancer une nouvelle instance d'un pod pour recueillir des informations de débogage
Exemple d'utilisation
# Gather information using the default plug-in image and command, writing into ./must-gather.local.<rand> oc adm must-gather # Gather information with a specific local folder to copy to oc adm must-gather --dest-dir=/local/directory # Gather audit information oc adm must-gather -- /usr/bin/gather_audit_logs # Gather information using multiple plug-in images oc adm must-gather --image=quay.io/kubevirt/must-gather --image=quay.io/openshift/origin-must-gather # Gather information using a specific image stream plug-in oc adm must-gather --image-stream=openshift/must-gather:latest # Gather information using a specific image, command, and pod-dir oc adm must-gather --image=my/image:tag --source-dir=/pod/directory -- myspecial-command.sh
2.8.1.19. oc adm new-project
Créer un nouveau projet
Exemple d'utilisation
# Create a new project using a node selector oc adm new-project myproject --node-selector='type=user-node,region=east'
2.8.1.20. oc adm node-logs
Afficher et filtrer les journaux des nœuds
Exemple d'utilisation
# Show kubelet logs from all masters oc adm node-logs --role master -u kubelet # See what logs are available in masters in /var/logs oc adm node-logs --role master --path=/ # Display cron log file from all masters oc adm node-logs --role master --path=cron
2.8.1.21. oc adm pod-network isolate-projects
Isoler le réseau de projets
Exemple d'utilisation
# Provide isolation for project p1 oc adm pod-network isolate-projects <p1> # Allow all projects with label name=top-secret to have their own isolated project network oc adm pod-network isolate-projects --selector='name=top-secret'
2.8.1.22. oc adm pod-network join-projects
Rejoindre le réseau de projets
Exemple d'utilisation
# Allow project p2 to use project p1 network oc adm pod-network join-projects --to=<p1> <p2> # Allow all projects with label name=top-secret to use project p1 network oc adm pod-network join-projects --to=<p1> --selector='name=top-secret'
2.8.1.23. oc adm pod-network make-projects-global
Faire du réseau de projets un réseau mondial
Exemple d'utilisation
# Allow project p1 to access all pods in the cluster and vice versa oc adm pod-network make-projects-global <p1> # Allow all projects with label name=share to access all pods in the cluster and vice versa oc adm pod-network make-projects-global --selector='name=share'
2.8.1.24. oc adm policy add-role-to-user
Ajouter un rôle aux utilisateurs ou aux comptes de service pour le projet en cours
Exemple d'utilisation
# Add the 'view' role to user1 for the current project oc adm policy add-role-to-user view user1 # Add the 'edit' role to serviceaccount1 for the current project oc adm policy add-role-to-user edit -z serviceaccount1
2.8.1.25. oc adm policy add-scc-to-group
Ajouter une contrainte de contexte de sécurité aux groupes
Exemple d'utilisation
# Add the 'restricted' security context constraint to group1 and group2 oc adm policy add-scc-to-group restricted group1 group2
2.8.1.26. oc adm policy add-scc-to-user
Ajouter une contrainte de contexte de sécurité aux utilisateurs ou à un compte de service
Exemple d'utilisation
# Add the 'restricted' security context constraint to user1 and user2 oc adm policy add-scc-to-user restricted user1 user2 # Add the 'privileged' security context constraint to serviceaccount1 in the current namespace oc adm policy add-scc-to-user privileged -z serviceaccount1
2.8.1.27. oc adm policy scc-review
Vérifier quel compte de service peut créer un pod
Exemple d'utilisation
# Check whether service accounts sa1 and sa2 can admit a pod with a template pod spec specified in my_resource.yaml # Service Account specified in myresource.yaml file is ignored oc adm policy scc-review -z sa1,sa2 -f my_resource.yaml # Check whether service accounts system:serviceaccount:bob:default can admit a pod with a template pod spec specified in my_resource.yaml oc adm policy scc-review -z system:serviceaccount:bob:default -f my_resource.yaml # Check whether the service account specified in my_resource_with_sa.yaml can admit the pod oc adm policy scc-review -f my_resource_with_sa.yaml # Check whether the default service account can admit the pod; default is taken since no service account is defined in myresource_with_no_sa.yaml oc adm policy scc-review -f myresource_with_no_sa.yaml
2.8.1.28. politique de l'oc adm scc-subject-review
Vérifier si un utilisateur ou un compte de service peut créer un pod
Exemple d'utilisation
# Check whether user bob can create a pod specified in myresource.yaml oc adm policy scc-subject-review -u bob -f myresource.yaml # Check whether user bob who belongs to projectAdmin group can create a pod specified in myresource.yaml oc adm policy scc-subject-review -u bob -g projectAdmin -f myresource.yaml # Check whether a service account specified in the pod template spec in myresourcewithsa.yaml can create the pod oc adm policy scc-subject-review -f myresourcewithsa.yaml
2.8.1.29. oc adm prune builds
Supprimer les anciennes constructions achevées et celles qui ont échoué
Exemple d'utilisation
# Dry run deleting older completed and failed builds and also including # all builds whose associated build config no longer exists oc adm prune builds --orphans # To actually perform the prune operation, the confirm flag must be appended oc adm prune builds --orphans --confirm
2.8.1.30. oc adm prune deployments
Suppression des anciennes configurations de déploiement terminées ou ayant échoué
Exemple d'utilisation
# Dry run deleting all but the last complete deployment for every deployment config oc adm prune deployments --keep-complete=1 # To actually perform the prune operation, the confirm flag must be appended oc adm prune deployments --keep-complete=1 --confirm
2.8.1.31. oc adm prune groups
Supprimer d'anciens groupes OpenShift référençant des enregistrements manquants d'un fournisseur externe
Exemple d'utilisation
# Prune all orphaned groups oc adm prune groups --sync-config=/path/to/ldap-sync-config.yaml --confirm # Prune all orphaned groups except the ones from the blacklist file oc adm prune groups --blacklist=/path/to/blacklist.txt --sync-config=/path/to/ldap-sync-config.yaml --confirm # Prune all orphaned groups from a list of specific groups specified in a whitelist file oc adm prune groups --whitelist=/path/to/whitelist.txt --sync-config=/path/to/ldap-sync-config.yaml --confirm # Prune all orphaned groups from a list of specific groups specified in a whitelist oc adm prune groups groups/group_name groups/other_name --sync-config=/path/to/ldap-sync-config.yaml --confirm
2.8.1.32. oc adm prune images
Supprimer les images non référencées
Exemple d'utilisation
# See what the prune command would delete if only images and their referrers were more than an hour old # and obsoleted by 3 newer revisions under the same tag were considered oc adm prune images --keep-tag-revisions=3 --keep-younger-than=60m # To actually perform the prune operation, the confirm flag must be appended oc adm prune images --keep-tag-revisions=3 --keep-younger-than=60m --confirm # See what the prune command would delete if we are interested in removing images # exceeding currently set limit ranges ('openshift.io/Image') oc adm prune images --prune-over-size-limit # To actually perform the prune operation, the confirm flag must be appended oc adm prune images --prune-over-size-limit --confirm # Force the insecure http protocol with the particular registry host name oc adm prune images --registry-url=http://registry.example.org --confirm # Force a secure connection with a custom certificate authority to the particular registry host name oc adm prune images --registry-url=registry.example.org --certificate-authority=/path/to/custom/ca.crt --confirm
2.8.1.33. oc adm release extract
Extraire le contenu d'une charge utile de mise à jour sur le disque
Exemple d'utilisation
# Use git to check out the source code for the current cluster release to DIR oc adm release extract --git=DIR # Extract cloud credential requests for AWS oc adm release extract --credentials-requests --cloud=aws # Use git to check out the source code for the current cluster release to DIR from linux/s390x image # Note: Wildcard filter is not supported. Pass a single os/arch to extract oc adm release extract --git=DIR quay.io/openshift-release-dev/ocp-release:4.2.2 --filter-by-os=linux/s390x
2.8.1.34. oc adm release info
Afficher des informations sur une version
Exemple d'utilisation
# Show information about the cluster's current release oc adm release info # Show the source code that comprises a release oc adm release info 4.2.2 --commit-urls # Show the source code difference between two releases oc adm release info 4.2.0 4.2.2 --commits # Show where the images referenced by the release are located oc adm release info quay.io/openshift-release-dev/ocp-release:4.2.2 --pullspecs # Show information about linux/s390x image # Note: Wildcard filter is not supported. Pass a single os/arch to extract oc adm release info quay.io/openshift-release-dev/ocp-release:4.2.2 --filter-by-os=linux/s390x
2.8.1.35. oc adm release mirror
Miroir d'une version vers un autre emplacement du registre d'images
Exemple d'utilisation
# Perform a dry run showing what would be mirrored, including the mirror objects oc adm release mirror 4.3.0 --to myregistry.local/openshift/release \ --release-image-signature-to-dir /tmp/releases --dry-run # Mirror a release into the current directory oc adm release mirror 4.3.0 --to file://openshift/release \ --release-image-signature-to-dir /tmp/releases # Mirror a release to another directory in the default location oc adm release mirror 4.3.0 --to-dir /tmp/releases # Upload a release from the current directory to another server oc adm release mirror --from file://openshift/release --to myregistry.com/openshift/release \ --release-image-signature-to-dir /tmp/releases # Mirror the 4.3.0 release to repository registry.example.com and apply signatures to connected cluster oc adm release mirror --from=quay.io/openshift-release-dev/ocp-release:4.3.0-x86_64 \ --to=registry.example.com/your/repository --apply-release-image-signature
2.8.1.36. oc adm release new
Créer une nouvelle version d'OpenShift
Exemple d'utilisation
# Create a release from the latest origin images and push to a DockerHub repo oc adm release new --from-image-stream=4.1 -n origin --to-image docker.io/mycompany/myrepo:latest # Create a new release with updated metadata from a previous release oc adm release new --from-release registry.svc.ci.openshift.org/origin/release:v4.1 --name 4.1.1 \ --previous 4.1.0 --metadata ... --to-image docker.io/mycompany/myrepo:latest # Create a new release and override a single image oc adm release new --from-release registry.svc.ci.openshift.org/origin/release:v4.1 \ cli=docker.io/mycompany/cli:latest --to-image docker.io/mycompany/myrepo:latest # Run a verification pass to ensure the release can be reproduced oc adm release new --from-release registry.svc.ci.openshift.org/origin/release:v4.1
2.8.1.37. oc adm taint
Mise à jour des taches sur un ou plusieurs nœuds
Exemple d'utilisation
# Update node 'foo' with a taint with key 'dedicated' and value 'special-user' and effect 'NoSchedule' # If a taint with that key and effect already exists, its value is replaced as specified oc adm taint nodes foo dedicated=special-user:NoSchedule # Remove from node 'foo' the taint with key 'dedicated' and effect 'NoSchedule' if one exists oc adm taint nodes foo dedicated:NoSchedule- # Remove from node 'foo' all the taints with key 'dedicated' oc adm taint nodes foo dedicated- # Add a taint with key 'dedicated' on nodes having label mylabel=X oc adm taint node -l myLabel=X dedicated=foo:PreferNoSchedule # Add to node 'foo' a taint with key 'bar' and no value oc adm taint nodes foo bar:NoSchedule
2.8.1.38. oc adm top images
Afficher les statistiques d'utilisation des images
Exemple d'utilisation
# Show usage statistics for images oc adm top images
2.8.1.39. oc adm top imagestreams
Afficher les statistiques d'utilisation des flux d'images
Exemple d'utilisation
# Show usage statistics for image streams oc adm top imagestreams
2.8.1.40. oc adm top node
Affichage de l'utilisation des ressources (CPU/mémoire) des nœuds
Exemple d'utilisation
# Show metrics for all nodes oc adm top node # Show metrics for a given node oc adm top node NODE_NAME
2.8.1.41. oc adm top pod
Afficher l'utilisation des ressources (CPU/mémoire) des pods
Exemple d'utilisation
# Show metrics for all pods in the default namespace oc adm top pod # Show metrics for all pods in the given namespace oc adm top pod --namespace=NAMESPACE # Show metrics for a given pod and its containers oc adm top pod POD_NAME --containers # Show metrics for the pods defined by label name=myLabel oc adm top pod -l name=myLabel
2.8.1.42. oc adm uncordon
Marquer le nœud comme planifiable
Exemple d'utilisation
# Mark node "foo" as schedulable oc adm uncordon foo
2.8.1.43. oc adm upgrade
Mettre à niveau un cluster ou ajuster le canal de mise à niveau
Exemple d'utilisation
# Review the available cluster updates oc adm upgrade # Update to the latest version oc adm upgrade --to-latest=true
2.8.1.44. oc adm verify-image-signature
Vérifier l'identité de l'image contenue dans la signature de l'image
Exemple d'utilisation
# Verify the image signature and identity using the local GPG keychain oc adm verify-image-signature sha256:c841e9b64e4579bd56c794bdd7c36e1c257110fd2404bebbb8b613e4935228c4 \ --expected-identity=registry.local:5000/foo/bar:v1 # Verify the image signature and identity using the local GPG keychain and save the status oc adm verify-image-signature sha256:c841e9b64e4579bd56c794bdd7c36e1c257110fd2404bebbb8b613e4935228c4 \ --expected-identity=registry.local:5000/foo/bar:v1 --save # Verify the image signature and identity via exposed registry route oc adm verify-image-signature sha256:c841e9b64e4579bd56c794bdd7c36e1c257110fd2404bebbb8b613e4935228c4 \ --expected-identity=registry.local:5000/foo/bar:v1 \ --registry-url=docker-registry.foo.com # Remove all signature verifications from the image oc adm verify-image-signature sha256:c841e9b64e4579bd56c794bdd7c36e1c257110fd2404bebbb8b613e4935228c4 --remove-all
2.8.2. Ressources complémentaires
Chapitre 3. Mise à jour importante sur odo
Red Hat ne fournit pas d'informations sur odo
sur le site de documentation d'OpenShift Container Platform. Consultez la documentation maintenue par Red Hat et la communauté en amont pour obtenir des informations sur la documentation relative à odo
.
Pour les matériaux maintenus par la communauté en amont, Red Hat fournit une assistance sous Cooperative Community Support.
Chapitre 4. CLI Knative pour utilisation avec OpenShift Serverless
Le CLI Knative (kn
) permet une interaction simple avec les composants Knative sur OpenShift Container Platform.
4.1. Caractéristiques principales
La CLI Knative (kn
) est conçue pour rendre les tâches informatiques sans serveur simples et concises. Les principales caractéristiques de la CLI Knative sont les suivantes :
- Déployer des applications sans serveur à partir de la ligne de commande.
- Gérer les fonctionnalités de Knative Serving, telles que les services, les révisions et la répartition du trafic.
- Créer et gérer des composants Knative Eventing, tels que des sources d'événements et des déclencheurs.
- Créer des sink bindings pour connecter les applications Kubernetes existantes et les services Knative.
-
Étendre la CLI Knative avec une architecture flexible de plugins, similaire à la CLI
kubectl
. - Configurer les paramètres d'autoscaling pour les services Knative.
- L'utilisation de scripts, comme l'attente des résultats d'une opération, ou le déploiement de stratégies personnalisées de déploiement et de retour en arrière.
4.2. Installation du CLI Knative
Chapitre 5. CLI Pipelines (tkn)
5.1. Installation de tkn
Utilisez l'outil CLI pour gérer Red Hat OpenShift Pipelines à partir d'un terminal. La section suivante décrit comment installer l'outil CLI sur différentes plateformes.
Vous pouvez également trouver l'URL des derniers binaires à partir de la console web d'OpenShift Container Platform en cliquant sur l'icône ? dans le coin supérieur droit et en sélectionnant Command Line Tools.
L'exécution de Red Hat OpenShift Pipelines sur du matériel ARM est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.
Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.
Les archives et les RPM contiennent les exécutables suivants :
- tkn
- tkn-pac
- opc
L'exécution de Red Hat OpenShift Pipelines avec l'outil opc
CLI est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas leur utilisation en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.
Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.
5.1.1. Installation de la CLI Red Hat OpenShift Pipelines sur Linux
Pour les distributions Linux, vous pouvez télécharger le CLI sous la forme d'une archive tar.gz
.
Procédure
Téléchargez l'outil CLI approprié.
Décompressez l'archive :
tar xvzf <file>
-
Ajoutez l'emplacement de vos fichiers
tkn
,tkn-pac
etopc
à votre variable d'environnementPATH
. Pour vérifier votre
PATH
, exécutez la commande suivante :$ echo $PATH
5.1.2. Installation de Red Hat OpenShift Pipelines CLI sur Linux à l'aide d'un RPM
Pour Red Hat Enterprise Linux (RHEL) version 8, vous pouvez installer Red Hat OpenShift Pipelines CLI en tant que RPM.
Conditions préalables
- Vous disposez d'un abonnement OpenShift Container Platform actif sur votre compte Red Hat.
- Vous disposez des privilèges root ou sudo sur votre système local.
Procédure
S'inscrire auprès du gestionnaire d'abonnements Red Hat :
# subscription-manager register
Extraire les données d'abonnement les plus récentes :
# subscription-manager refresh
Liste des abonnements disponibles :
# subscription-manager list --available --matches '*pipelines*'
Dans la sortie de la commande précédente, trouvez l'ID du pool pour votre abonnement OpenShift Container Platform et attachez l'abonnement au système enregistré :
# subscription-manager attach --pool=<pool_id>
Activez les dépôts requis par Red Hat OpenShift Pipelines :
Linux (x86_64, amd64)
# subscription-manager repos --enable="pipelines-1.10-for-rhel-8-x86_64-rpms"
Linux sur IBM zSystems et IBM® LinuxONE (s390x)
# subscription-manager repos --enable="pipelines-1.10-for-rhel-8-s390x-rpms"
Linux sur IBM Power (ppc64le)
# subscription-manager repos --enable="pipelines-1.10-for-rhel-8-ppc64le-rpms"
Linux sur ARM (arm64)
# subscription-manager repos --enable="pipelines-1.10-for-rhel-8-arm64-rpms"
Installez le paquetage
openshift-pipelines-client
:# yum install openshift-pipelines-client
Une fois installé, le CLI est disponible à l'aide de la commande tkn
:
$ tkn version
5.1.3. Installation de Red Hat OpenShift Pipelines CLI sur Windows
Pour Windows, vous pouvez télécharger le CLI sous la forme d'une archive zip
.
Procédure
- Télécharger l'outil CLI.
- Extraire l'archive à l'aide d'un programme ZIP.
-
Ajoutez l'emplacement de vos fichiers
tkn
,tkn-pac
etopc
à votre variable d'environnementPATH
. Pour vérifier votre
PATH
, exécutez la commande suivante :C:\N> path
5.1.4. Installer le CLI de Red Hat OpenShift Pipelines sur macOS
Pour macOS, vous pouvez télécharger le CLI sous forme d'archive tar.gz
.
Procédure
Téléchargez l'outil CLI approprié.
- Décompressez et extrayez l'archive.
-
Ajoutez l'emplacement de vos fichiers
tkn
,tkn-pac
etopc
à votre variable d'environnementPATH
. Pour vérifier votre
PATH
, exécutez la commande suivante :$ echo $PATH
5.2. Configuration de l'interface de commande OpenShift Pipelines tkn
Configurez la CLI de Red Hat OpenShift Pipelines tkn
pour activer l'achèvement des tabulations.
5.2.1. Activation de l'achèvement des onglets
Après avoir installé le CLI tkn
, vous pouvez activer la complétion de tabulation pour compléter automatiquement les commandes tkn
ou suggérer des options lorsque vous appuyez sur Tab.
Conditions préalables
-
L'outil CLI
tkn
doit être installé. -
Vous devez avoir installé
bash-completion
sur votre système local.
Procédure
La procédure suivante permet de compléter les tabulations pour Bash.
Enregistrer le code d'achèvement de Bash dans un fichier :
$ tkn completion bash > tkn_bash_completion
Copiez le fichier sur
/etc/bash_completion.d/
:$ sudo cp tkn_bash_completion /etc/bash_completion.d/
Vous pouvez également enregistrer le fichier dans un répertoire local et l'extraire de votre fichier
.bashrc
.
La complétion des tabulations est activée lorsque vous ouvrez un nouveau terminal.
5.3. Référence pour OpenShift Pipelines
Cette section énumère les commandes CLI de base de tkn
.
5.3.1. Syntaxe de base
tkn [command or options] [arguments…]
5.3.2. Options globales
--help, -h
5.3.3. Commandes d'utilitaires
5.3.3.1. tkn
Commande parente de tkn
CLI.
Exemple : Afficher toutes les options
$ tkn
5.3.3.2. achèvement [shell]
Imprime le code d'achèvement de l'interpréteur de commandes qui doit être évalué pour fournir un achèvement interactif. Les shells supportés sont bash
et zsh
.
Exemple : Code d'achèvement pour bash
shell
$ tkn completion bash
5.3.3.3. version
Imprimer les informations relatives à la version de l'interface CLI de tkn
.
Exemple : Vérifier la version de tkn
$ tkn version
5.3.4. Commandes de gestion des pipelines
5.3.4.1. canalisation
Gérer les pipelines.
Exemple : Afficher l'aide
$ tkn pipeline --help
5.3.4.2. suppression du pipeline
Supprimer une canalisation.
Exemple : Supprimer le pipeline mypipeline
d'un espace de noms
$ tkn pipeline delete mypipeline -n myspace
5.3.4.3. description du pipeline
Décrire un pipeline.
Exemple : Décrire la filière mypipeline
$ tkn pipeline describe mypipeline
5.3.4.4. liste des pipelines
Affiche une liste de pipelines.
Exemple : Afficher une liste de pipelines
$ tkn pipeline list
5.3.4.5. journaux de bord des pipelines
Affiche les journaux d'un pipeline spécifique.
Exemple : Diffusion en continu des journaux en direct de la canalisation mypipeline
$ tkn pipeline logs -f mypipeline
5.3.4.6. démarrage du pipeline
Lancer un pipeline.
Exemple : Démarrer le pipeline mypipeline
$ tkn pipeline start mypipeline
5.3.5. Commandes d'exécution du pipeline
5.3.5.1. pipelinerun
Gérer l'exécution du pipeline.
Exemple : Afficher l'aide
$ tkn pipelinerun -h
5.3.5.2. pipelinerun annuler
Annule le passage d'un pipeline.
Exemple : Annuler l'exécution du pipeline mypipelinerun
à partir d'un espace de noms
$ tkn pipelinerun cancel mypipelinerun -n myspace
5.3.5.3. pipelinerun supprimer
Supprimer un pipeline.
Exemple : Suppression de l'exécution d'un pipeline à partir d'un espace de noms
$ tkn pipelinerun delete mypipelinerun1 mypipelinerun2 -n myspace
Exemple : Supprimer toutes les exécutions de pipeline d'un espace de noms, à l'exception des cinq exécutions les plus récentes
$ tkn pipelinerun delete -n myspace --keep 5 1
- 1
- Remplacez
5
par le nombre d'exécutions les plus récentes du pipeline que vous souhaitez conserver.
Exemple : Supprimer tous les pipelines
$ tkn pipelinerun delete --all
À partir de Red Hat OpenShift Pipelines 1.6, la commande tkn pipelinerun delete --all
ne supprime pas les ressources qui sont en cours d'exécution.
5.3.5.4. pipelinerun décrire
Décrire un parcours de canalisation.
Exemple : Décrire le pipeline mypipelinerun
exécuté dans un espace de noms
$ tkn pipelinerun describe mypipelinerun -n myspace
5.3.5.5. liste des pipelines
Liste de l'exécution des pipelines.
Exemple : Afficher une liste d'exécutions de pipeline dans un espace de noms
$ tkn pipelinerun list -n myspace
5.3.5.6. journaux de bord pipelinerun
Affiche les journaux d'un pipeline.
Exemple : Afficher les journaux du pipeline mypipelinerun
exécuté avec toutes les tâches et étapes d'un espace de noms
$ tkn pipelinerun logs mypipelinerun -a -n myspace
5.3.6. Commandes de gestion des tâches
5.3.6.1. tâche
Gérer les tâches.
Exemple : Afficher l'aide
$ tkn task -h
5.3.6.2. suppression d'une tâche
Supprimer une tâche.
Exemple : Supprimer les tâches mytask1
et mytask2
d'un espace de noms
$ tkn task delete mytask1 mytask2 -n myspace
5.3.6.3. description de la tâche
Décrire une tâche.
Exemple : Décrire la tâche mytask
dans un espace de noms
$ tkn task describe mytask -n myspace
5.3.6.4. liste de tâches
Dresser la liste des tâches.
Exemple : Liste de toutes les tâches d'un espace de noms
$ tkn task list -n myspace
5.3.6.5. journaux des tâches
Afficher les journaux des tâches.
Exemple : Afficher les journaux de l'exécution de la tâche mytaskrun
de la tâche mytask
$ tkn task logs mytask mytaskrun -n myspace
5.3.6.6. début de la tâche
Démarrer une tâche.
Exemple : Démarrer la tâche mytask
dans un espace de noms
$ tkn task start mytask -s <ServiceAccountName> -n myspace
5.3.7. Commandes d'exécution des tâches
5.3.7.1. course à pied
Gérer l'exécution des tâches.
Exemple : Afficher l'aide
$ tkn taskrun -h
5.3.7.2. annulation de la course à pied
Annuler l'exécution d'une tâche.
Exemple : Annuler la tâche mytaskrun
exécutée à partir d'un espace de noms
$ tkn taskrun cancel mytaskrun -n myspace
5.3.7.3. taskrun supprimer
Supprimer une TaskRun.
Exemple : Supprimer les tâches mytaskrun1
et mytaskrun2
d'un espace de noms
$ tkn taskrun delete mytaskrun1 mytaskrun2 -n myspace
Exemple : Supprimer d'un espace de noms toutes les tâches exécutées, à l'exception des cinq dernières
$ tkn taskrun delete -n myspace --keep 5 1
- 1
- Remplacez
5
par le nombre d'exécutions de tâches les plus récentes que vous souhaitez conserver.
5.3.7.4. description de la course
Décrire l'exécution d'une tâche.
Exemple : Décrire la tâche mytaskrun
exécutée dans un espace de noms
$ tkn taskrun describe mytaskrun -n myspace
5.3.7.5. liste des courses
Liste des tâches exécutées.
Exemple : Liste de toutes les tâches exécutées dans un espace de noms
$ tkn taskrun list -n myspace
5.3.7.6. carnets de route
Afficher les journaux d'exécution des tâches.
Exemple : Afficher les journaux en direct de la tâche mytaskrun
exécutée dans un espace de noms
$ tkn taskrun logs -f mytaskrun -n myspace
5.3.8. Commandes de gestion des conditions
5.3.8.1. condition
Gérer les conditions.
Exemple : Afficher l'aide
$ tkn condition --help
5.3.8.2. condition supprimer
Supprimer une condition.
Exemple : Supprimer la condition mycondition1
d'un espace de noms
$ tkn condition delete mycondition1 -n myspace
5.3.8.3. décrire l'état
Décrire une condition.
Exemple : Décrire la condition mycondition1
dans un espace de noms
$ tkn condition describe mycondition1 -n myspace
5.3.8.4. liste des conditions
Conditions de la liste.
Exemple : Liste des conditions dans un espace de noms
$ tkn condition list -n myspace
5.3.9. Pipeline Commandes de gestion des ressources
5.3.9.1. ressource
Gérer les ressources du pipeline.
Exemple : Afficher l'aide
$ tkn resource -h
5.3.9.2. créer des ressources
Créer une ressource de pipeline.
Exemple : Créer une ressource de pipeline dans un espace de noms
$ tkn resource create -n myspace
Il s'agit d'une commande interactive qui demande des informations sur le nom de la ressource, son type et les valeurs basées sur le type de la ressource.
5.3.9.3. suppression des ressources
Supprimer une ressource du pipeline.
Exemple : Supprimer la ressource myresource
Pipeline d'un espace de noms
$ tkn resource delete myresource -n myspace
5.3.9.4. description des ressources
Décrire une ressource du pipeline.
Exemple : Décrire la ressource myresource
Pipeline
$ tkn resource describe myresource -n myspace
5.3.9.5. liste de ressources
Ressources pour le pipeline de la liste.
Exemple : Liste de toutes les ressources de pipeline d'un espace de noms
$ tkn resource list -n myspace
5.3.10. Commandes de gestion ClusterTask
Dans Red Hat OpenShift Pipelines 1.10, la fonctionnalité ClusterTask de l'utilitaire de ligne de commande tkn
est dépréciée et il est prévu de la supprimer dans une prochaine version.
5.3.10.1. tâche en grappe
Gérer les tâches de cluster.
Exemple : Afficher l'aide
$ tkn clustertask --help
5.3.10.2. clustertask delete
Supprimer une ressource ClusterTask dans un cluster.
Exemple : Supprimer mytask1
et mytask2
ClusterTasks
$ tkn clustertask delete mytask1 mytask2
5.3.10.3. description de la tâche en grappe
Décrire une ClusterTask.
Exemple : Décrire la tâche mytask
ClusterTask
$ tkn clustertask describe mytask1
5.3.10.4. liste de tâches en grappe
Liste des tâches de cluster.
Exemple : Liste des tâches de cluster
$ tkn clustertask list
5.3.10.5. clustertask start
Démarrer ClusterTasks.
Exemple : Démarrer la tâche mytask
ClusterTask
$ tkn clustertask start mytask
5.3.11. Déclencher des commandes de gestion
5.3.11.1. générateur d'événements
Gérer les écouteurs d'événements.
Exemple : Afficher l'aide
$ tkn eventlistener -h
5.3.11.2. eventlistener supprimer
Supprimer un EventListener.
Exemple : Supprimer les EventListeners mylistener1
et mylistener2
dans un espace de noms
$ tkn eventlistener delete mylistener1 mylistener2 -n myspace
5.3.11.3. eventlistener décrire
Décrire un écouteur d'événements.
Exemple : Décrire l'écouteur d'événements mylistener
dans un espace de noms
$ tkn eventlistener describe mylistener -n myspace
5.3.11.4. liste d'événements
Liste des écouteurs d'événements.
Exemple : Liste de tous les EventListeners d'un espace de noms
$ tkn eventlistener list -n myspace
5.3.11.5. journaux d'événements
Afficher les journaux d'un EventListener.
Exemple : Afficher les journaux de mylistener
EventListener dans un espace de noms
$ tkn eventlistener logs mylistener -n myspace
5.3.11.6. liaison de déclenchement
Gérer les TriggerBindings.
Exemple : Afficher l'aide sur les TriggerBindings
$ tkn triggerbinding -h
5.3.11.7. triggerbinding delete
Supprimer un TriggerBinding.
Exemple : Supprimer les TriggerBindings mybinding1
et mybinding2
dans un espace de noms
$ tkn triggerbinding delete mybinding1 mybinding2 -n myspace
5.3.11.8. description de l'obligation de déclenchement
Décrire un TriggerBinding.
Exemple : Décrire le lien mybinding
TriggerBinding dans un espace de noms
$ tkn triggerbinding describe mybinding -n myspace
5.3.11.9. liste des déclencheurs (triggerbinding)
Liste des TriggerBindings.
Exemple : Lister tous les TriggerBindings d'un espace de noms
$ tkn triggerbinding list -n myspace
5.3.11.10. modèle de déclenchement
Gérer les modèles de déclenchement.
Exemple : Afficher l'aide de TriggerTemplate
$ tkn triggertemplate -h
5.3.11.11. modèle de déclenchement supprimer
Supprimer un TriggerTemplate.
Exemple : Supprimer les TriggerTemplates mytemplate1
et mytemplate2
dans un espace de noms
$ tkn triggertemplate delete mytemplate1 mytemplate2 -n `myspace`
5.3.11.12. modèle de déclenchement décrire
Décrire un TriggerTemplate.
Exemple : Décrire le mytemplate
TriggerTemplate dans un espace de noms
$ tkn triggertemplate describe mytemplate -n `myspace`
5.3.11.13. liste de modèles de déclenchement
Liste des modèles de déclenchement.
Exemple : Liste de tous les TriggerTemplates d'un espace de noms
$ tkn triggertemplate list -n myspace
5.3.11.14. clustertriggerbinding (liaison de déclenchement de cluster)
Gérer les ClusterTriggerBindings.
Exemple : Afficher l'aide sur les ClusterTriggerBindings
$ tkn clustertriggerbinding -h
5.3.11.15. clustertriggerbinding delete
Supprimer un ClusterTriggerBinding.
Exemple : Supprimer myclusterbinding1
et myclusterbinding2
ClusterTriggerBindings
$ tkn clustertriggerbinding delete myclusterbinding1 myclusterbinding2
5.3.11.16. clustertriggerbinding describe
Décrire un ClusterTriggerBinding.
Exemple : Décrire le lien myclusterbinding
ClusterTriggerBinding
$ tkn clustertriggerbinding describe myclusterbinding
5.3.11.17. liste des déclencheurs de clusters
Liste des ClusterTriggerBindings.
Exemple : Liste de tous les ClusterTriggerBindings
$ tkn clustertriggerbinding list
5.3.12. Commandes d'interaction avec le Hub
Interagir avec Tekton Hub pour les ressources telles que les tâches et les pipelines.
5.3.12.1. plaque tournante
Interagir avec le hub.
Exemple : Afficher l'aide
$ tkn hub -h
Exemple : Interagir avec un serveur API hub
$ tkn hub --api-server https://api.hub.tekton.dev
Pour chaque exemple, pour obtenir les sous-commandes et les drapeaux correspondants, exécutez tkn hub <command> --help
.
5.3.12.2. rétrogradation de la plaque tournante
Rétrograder une ressource installée.
Exemple : Rétrograder la tâche mytask
dans l'espace de noms mynamespace
vers son ancienne version
$ tkn hub downgrade task mytask --to version -n mynamespace
5.3.12.3. hub get
Obtenir le manifeste d'une ressource par son nom, son type, son catalogue et sa version.
Exemple : Obtenir le manifeste d'une version spécifique du pipeline ou de la tâche myresource
dans le catalogue tekton
$ tkn hub get [pipeline | task] myresource --from tekton --version version
5.3.12.4. info sur le moyeu
Afficher des informations sur une ressource en fonction de son nom, de son type, de son catalogue et de sa version.
Exemple : Afficher des informations sur une version spécifique de la tâche mytask
à partir du catalogue tekton
$ tkn hub info task mytask --from tekton --version version
5.3.12.5. installation du moyeu
Installer une ressource à partir d'un catalogue en fonction de son type, de son nom et de sa version.
Exemple : Installer une version spécifique de la tâche mytask
à partir du catalogue tekton
dans l'espace de noms mynamespace
$ tkn hub install task mytask --from tekton --version version -n mynamespace
5.3.12.6. réinstallation du moyeu
Réinstaller une ressource en fonction de son type et de son nom.
Exemple : Réinstaller une version spécifique de la tâche mytask
à partir du catalogue tekton
dans l'espace de noms mynamespace
$ tkn hub reinstall task mytask --from tekton --version version -n mynamespace
5.3.12.7. recherche de moyeu
Recherche d'une ressource par une combinaison de nom, de type et d'étiquettes.
Exemple : Rechercher une ressource avec une étiquette cli
$ tkn hub search --tags cli
5.3.12.8. mise à niveau du moyeu
Mettre à jour une ressource installée.
Exemple : Mettre à jour la tâche mytask
installée dans l'espace de noms mynamespace
vers une nouvelle version
$ tkn hub upgrade task mytask --to version -n mynamespace
Chapitre 6. cLI opm
6.1. Installation de l'interface de programmation opm
6.1.1. À propos de l'interface de programmation opm
L'outil CLI opm
est fourni par Operator Framework pour être utilisé avec le format Operator bundle. Cet outil vous permet de créer et de maintenir des catalogues d'opérateurs à partir d'une liste de bundles d'opérateurs qui sont similaires à des dépôts de logiciels. Le résultat est une image de conteneur qui peut être stockée dans un registre de conteneurs et ensuite installée sur un cluster.
Un catalogue contient une base de données de pointeurs vers le contenu du manifeste de l'opérateur qui peut être interrogé par le biais d'une API incluse qui est servie lorsque l'image du conteneur est exécutée. Sur OpenShift Container Platform, Operator Lifecycle Manager (OLM) peut référencer l'image dans une source de catalogue, définie par un objet CatalogSource
, qui interroge l'image à intervalles réguliers pour permettre des mises à jour fréquentes des opérateurs installés sur le cluster.
Ressources complémentaires
- Voir Operator Framework packaging format pour plus d'informations sur le format des bundles.
- Pour créer une image de liasse à l'aide du SDK Operator, voir Travailler avec des images de liasse.
6.1.2. Installation de l'interface de programmation opm
Vous pouvez installer l'outil CLI opm
sur votre station de travail Linux, macOS ou Windows.
Conditions préalables
Pour Linux, vous devez fournir les paquets suivants. RHEL 8 répond à ces exigences :
-
podman
version 1.9.3 (version 2.0 recommandée) -
glibc
version 2.28
-
Procédure
- Naviguez vers le site miroir d'OpenShift et téléchargez la dernière version de l'archive correspondant à votre système d'exploitation.
Décompressez l'archive.
Pour Linux ou macOS :
tar xvf <file>
- Pour Windows, décompressez l'archive avec un programme ZIP.
Placez le fichier n'importe où dans votre
PATH
.Pour Linux ou macOS :
Vérifiez votre
PATH
:$ echo $PATH
Déplacer le fichier. Par exemple :
$ sudo mv ./opm /usr/local/bin/
Pour Windows :
Vérifiez votre
PATH
:C:\N> path
Déplacer le fichier :
C:\N> move opm.exe <directory>
Vérification
Après avoir installé le CLI
opm
, vérifiez qu'il est disponible :$ opm version
6.1.3. Ressources complémentaires
-
Voir Gestion des catalogues personnalisés pour les procédures
opm
, y compris la création, la mise à jour et l'élagage des catalogues.
6.2. référence CLI opm
L'interface de ligne de commande (CLI) opm
est un outil permettant de créer et de maintenir des catalogues d'opérateurs.
opm
Syntaxe du CLI
$ opm <command> [<subcommand>] [<argument>] [<flags>]
Tableau 6.1. Drapeaux mondiaux
Drapeau | Description |
---|---|
| Sauter la vérification des certificats TLS pour les registres d'images de conteneurs lors de l'extraction de paquets ou d'index. |
| Lorsque vous tirez des paquets, utilisez le protocole HTTP pour les registres d'images de conteneurs. |
Le format de catalogue basé sur SQLite, y compris les commandes CLI associées, est une fonctionnalité obsolète. La fonctionnalité dépréciée est toujours incluse dans OpenShift Container Platform et continue d'être prise en charge ; cependant, elle sera supprimée dans une prochaine version de ce produit et n'est pas recommandée pour les nouveaux déploiements.
Pour obtenir la liste la plus récente des fonctionnalités majeures qui ont été dépréciées ou supprimées dans OpenShift Container Platform, consultez la section Deprecated and removed features des notes de version d'OpenShift Container Platform.
6.2.1. init
Génère un blob de configuration déclaratif olm.package
.
Syntaxe de la commande
$ opm init <package_name> [<flags>]
Tableau 6.2. init
drapeaux
Drapeau | Description |
---|---|
| Le canal que les abonnements utiliseront par défaut s'il n'est pas spécifié. |
|
Chemin d'accès au site de l'opérateur |
| Chemin d'accès à l'icône du paquet. |
|
Format de sortie : |
6.2.2. rendre
Génère un blob de configuration déclaratif à partir des images d'index, des images de bundle et des fichiers de base de données SQLite fournis.
Syntaxe de la commande
$ opm render <index_image | bundle_image | sqlite_file> [<flags>]
Tableau 6.3. render
drapeaux
Drapeau | Description |
---|---|
|
Format de sortie : |
6.2.3. valider
Valide le(s) fichier(s) JSON de la configuration déclarative dans un répertoire donné.
Syntaxe de la commande
$ opm validate <directory> [<flags>]
6.2.4. servir
Servir des configurations déclaratives via un serveur GRPC.
Le répertoire declarative config est chargé par la commande serve
au démarrage. Les modifications apportées à la configuration déclarative après le lancement de cette commande ne sont pas répercutées dans le contenu servi.
Syntaxe de la commande
$ opm serve <source_path> [<flags>]
Tableau 6.4. serve
drapeaux
Drapeau | Description |
---|---|
| Si ce drapeau est activé, il synchronise et conserve le répertoire du cache du serveur. |
|
Il se termine par une erreur si le cache n'est pas présent ou s'il est invalidé. La valeur par défaut est |
| Synchronise le cache de service et quitte sans servir. |
| Active la journalisation de débogage. |
| Aide au service. |
|
Le numéro de port du service. La valeur par défaut est |
|
L'adresse du point final de profilage de démarrage. Le format est le suivant : |
|
Chemin d'accès à un fichier journal de fin de conteneur. La valeur par défaut est |
Le format de catalogue basé sur SQLite, y compris les commandes CLI associées, est une fonctionnalité obsolète. La fonctionnalité dépréciée est toujours incluse dans OpenShift Container Platform et continue d'être prise en charge ; cependant, elle sera supprimée dans une prochaine version de ce produit et n'est pas recommandée pour les nouveaux déploiements.
Pour obtenir la liste la plus récente des fonctionnalités majeures qui ont été dépréciées ou supprimées dans OpenShift Container Platform, consultez la section Deprecated and removed features des notes de version d'OpenShift Container Platform.
6.2.5. migrer
Migrer une image d'index ou un fichier de base de données au format SQLite vers un catalogue basé sur des fichiers.
Syntaxe de la commande
$ opm migrate <index_ref> <output_dir> [<flags>]
Tableau 6.5. migrate
drapeaux
Drapeau | Description |
---|---|
|
Format de sortie : |
6.2.6. index
Générer l'index de l'opérateur pour les images de conteneurs au format de base de données SQLite à partir de bundles d'opérateurs préexistants.
À partir d'OpenShift Container Platform 4.11, le catalogue Operator fourni par Red Hat par défaut est publié dans le format de catalogue basé sur des fichiers. Les catalogues Operator fournis par Red Hat par défaut pour OpenShift Container Platform 4.6 à 4.10 sont publiés dans le format de base de données SQLite déprécié.
Les sous-commandes, drapeaux et fonctionnalités de opm
liés au format de base de données SQLite sont également obsolètes et seront supprimés dans une prochaine version. Ces fonctionnalités sont toujours prises en charge et doivent être utilisées pour les catalogues qui utilisent le format de base de données SQLite obsolète.
La plupart des sous-commandes et des drapeaux de opm
pour travailler avec le format de base de données SQLite, comme opm index prune
, ne fonctionnent pas avec le format de catalogue basé sur des fichiers. Pour plus d'informations sur l'utilisation des catalogues basés sur des fichiers, voir "Ressources supplémentaires".
Syntaxe de la commande
$ opm index <subcommand> [<flags>]
Tableau 6.6. index
sous-commandes
Sous-commande | Description |
---|---|
| Ajouter des liasses d'opérateurs à un index. |
| Élaguer un index de tous les paquets sauf ceux spécifiés. |
| Élaguer un index de liasses non identifiées, c'est-à-dire de liasses qui ne sont pas associées à une image particulière. |
| Supprimer un opérateur entier d'un index. |
6.2.6.1. ajouter
Ajouter des liasses d'opérateurs à un index.
Syntaxe de la commande
$ opm index add [<flags>]
Tableau 6.7. index add
drapeaux
Drapeau | Description |
---|---|
|
Image conteneur pour la commande on-image |
|
Outil de construction des images de conteneurs : |
| Liste de bundles séparés par des virgules à ajouter. |
|
Outil permettant d'interagir avec les images des conteneurs, notamment pour les sauvegarder et les construire : |
| Index précédent à ajouter. |
| Si cette option est activée, elle crée uniquement le fichier Docker et l'enregistre sur le disque local. |
|
Mode de mise à jour des graphiques qui définit la manière dont les graphiques des canaux sont mis à jour : |
| Facultatif : si vous générez un fichier Docker, indiquez un nom de fichier. |
| Autoriser les erreurs de chargement du registre. |
|
Outil pour extraire les images des conteneurs : |
| Étiquette personnalisée pour l'image du conteneur en cours de construction. |
6.2.6.2. pruneau
Élaguer un index de tous les paquets sauf ceux spécifiés.
Syntaxe de la commande
$ opm index prune [<flags>]
Tableau 6.8. index prune
drapeaux
Drapeau | Description |
---|---|
|
Image conteneur pour la commande on-image |
|
Outil permettant d'interagir avec les images des conteneurs, notamment pour les sauvegarder et les construire : |
| Index pour la taille. |
| Si cette option est activée, elle crée uniquement le fichier Docker et l'enregistre sur le disque local. |
| Facultatif : si vous générez un fichier Docker, indiquez un nom de fichier. |
| Liste de paquets à conserver, séparés par des virgules. |
| Autoriser les erreurs de chargement du registre. |
| Étiquette personnalisée pour l'image du conteneur en cours de construction. |
6.2.6.3. brin élagué
Élaguer un index de liasses non identifiées, c'est-à-dire de liasses qui ne sont pas associées à une image particulière.
Syntaxe de la commande
$ opm index prune-stranded [<flags>]
Tableau 6.9. index prune-stranded
drapeaux
Drapeau | Description |
---|---|
|
Image conteneur pour la commande on-image |
|
Outil permettant d'interagir avec les images des conteneurs, notamment pour les sauvegarder et les construire : |
| Index pour la taille. |
| Si cette option est activée, elle crée uniquement le fichier Docker et l'enregistre sur le disque local. |
| Facultatif : si vous générez un fichier Docker, indiquez un nom de fichier. |
| Liste de paquets à conserver, séparés par des virgules. |
| Autoriser les erreurs de chargement du registre. |
| Étiquette personnalisée pour l'image du conteneur en cours de construction. |
6.2.6.4. rm
Supprimer un opérateur entier d'un index.
Syntaxe de la commande
$ opm index rm [<flags>]
Tableau 6.10. index rm
drapeaux
Drapeau | Description |
---|---|
|
Image conteneur pour la commande on-image |
|
Outil de construction des images de conteneurs : |
|
Outil permettant d'interagir avec les images des conteneurs, notamment pour les sauvegarder et les construire : |
| Index précédent à supprimer. |
| Si cette option est activée, elle crée uniquement le fichier Docker et l'enregistre sur le disque local. |
| Liste d'opérateurs à supprimer, séparés par des virgules. |
| Facultatif : si vous générez un fichier Docker, indiquez un nom de fichier. |
| Liste de paquets à conserver, séparés par des virgules. |
| Autoriser les erreurs de chargement du registre. |
|
Outil pour extraire les images des conteneurs : |
| Étiquette personnalisée pour l'image du conteneur en cours de construction. |
6.2.7. générer
Générer divers artefacts pour les index de configuration déclaratifs.
Syntaxe de la commande
$ opm generate [command]
Tableau 6.11. generate
drapeaux
Drapeaux | Description |
---|---|
| Aide à la génération. |
Syntaxe de la commande
$ opm generate <subcommand> [<flags>]
Tableau 6.12. generate
sous-commandes
Sous-commande | Description |
---|---|
| Générer un fichier Docker pour un index de configuration déclaratif. |
6.2.7.1. dockerfile
Générer un fichier Docker pour un index de configuration déclaratif.
Cette commande crée un fichier Docker dans le même répertoire que <dcRootDir> (nommé <dcDirName>.Dockerfile) qui est utilisé pour construire l'index. Si un fichier Docker portant le même nom existe déjà, cette commande échoue.
Lors de la spécification d'étiquettes supplémentaires, s'il existe des clés dupliquées, seule la dernière valeur de chaque clé dupliquée est ajoutée au fichier Dockerfile généré.
Syntaxe de la commande
$ opm generate dockerfile <dcRootDir> [flags] (drapeaux)
Tableau 6.13. generate dockerfile
drapeaux
Drapeau | Description |
---|---|
|
Image dans laquelle le catalogue doit être construit. La valeur par défaut est |
|
Étiquettes supplémentaires à inclure dans le fichier Docker généré. Les étiquettes ont la forme |
| Aide pour Dockerfile. |
Chapitre 7. SDK de l'opérateur
7.1. Installation du SDK CLI de l'opérateur
L'Operator SDK fournit une interface de ligne de commande (CLI) que les développeurs d'opérateurs peuvent utiliser pour créer, tester et déployer un opérateur. Vous pouvez installer l'interface CLI du SDK de l'opérateur sur votre poste de travail afin d'être prêt à créer vos propres opérateurs.
Les auteurs d'opérateurs disposant d'un accès d'administrateur de cluster à un cluster basé sur Kubernetes, tel que OpenShift Container Platform, peuvent utiliser l'interface de programmation Operator SDK pour développer leurs propres opérateurs basés sur Go, Ansible, Java ou Helm. Kubebuilder est intégré dans le SDK Operator en tant que solution d'échafaudage pour les opérateurs basés sur Go, ce qui signifie que les projets Kubebuilder existants peuvent être utilisés tels quels avec le SDK Operator et continuer à fonctionner.
Voir Développement d'opérateurs pour une documentation complète sur le SDK des opérateurs.
OpenShift Container Platform 4.12 supporte Operator SDK 1.25.4.
7.1.1. Installation de l'interface de programmation de l'opérateur sous Linux
Vous pouvez installer l'outil OpenShift SDK CLI sur Linux.
Conditions préalables
- Go v1.19
-
docker
v17.03 ,podman
v1.9.3 , oubuildah
v1.7
Procédure
- Naviguez vers le site miroir d'OpenShift.
- A partir du dernier répertoire 4.12, téléchargez la dernière version de l'archive pour Linux.
Décompressez l'archive :
$ tar xvf operator-sdk-v1.25.4-ocp-linux-x86_64.tar.gz
Rendre le fichier exécutable :
$ chmod +x operator-sdk
Déplacez le fichier binaire
operator-sdk
extrait dans un répertoire qui se trouve sur votre sitePATH
.AstucePour vérifier votre
PATH
:$ echo $PATH
$ sudo mv ./operator-sdk /usr/local/bin/operator-sdk
Vérification
Après avoir installé le SDK CLI de l'opérateur, vérifiez qu'il est disponible :
$ operator-sdk version
Exemple de sortie
operator-sdk version: "v1.25.4-ocp", ...
7.1.2. Installation du SDK CLI de l'opérateur sur macOS
Vous pouvez installer l'outil OpenShift SDK CLI sur macOS.
Conditions préalables
- Go v1.19
-
docker
v17.03 ,podman
v1.9.3 , oubuildah
v1.7
Procédure
-
Pour les architectures
amd64
etarm64
, naviguez vers le site miroir OpenShift pour l'architectureamd64
et le site miroir OpenShift pour l'architecturearm64
respectivement. - A partir du dernier répertoire 4.12, téléchargez la dernière version de l'archive pour macOS.
Décompressez l'archive Operator SDK pour l'architecture
amd64
en exécutant la commande suivante :$ tar xvf operator-sdk-v1.25.4-ocp-darwin-x86_64.tar.gz
Décompressez l'archive Operator SDK pour l'architecture
arm64
en exécutant la commande suivante :$ tar xvf operator-sdk-v1.25.4-ocp-darwin-aarch64.tar.gz
Rendez le fichier exécutable en exécutant la commande suivante :
$ chmod +x operator-sdk
Déplacez le binaire
operator-sdk
extrait dans un répertoire qui se trouve sur votrePATH
en exécutant la commande suivante :AstuceVérifiez votre
PATH
en exécutant la commande suivante :$ echo $PATH
$ sudo mv ./operator-sdk /usr/local/bin/operator-sdk
Vérification
Après avoir installé l'interface de programmation de l'opérateur, vérifiez qu'elle est disponible en exécutant la commande suivante: :
$ operator-sdk version
Exemple de sortie
operator-sdk version: "v1.25.4-ocp", ...
7.2. Référence CLI du SDK de l'opérateur
L'interface de ligne de commande (CLI) de l'Operator SDK est un kit de développement conçu pour faciliter l'écriture d'opérateurs.
Syntaxe du CLI du SDK de l'opérateur
$ operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
Voir Développement d'opérateurs pour une documentation complète sur le SDK des opérateurs.
7.2.1. liasse
La commande operator-sdk bundle
gère les métadonnées du faisceau d'opérateurs.
7.2.1.1. valider
La sous-commande bundle validate
valide une liasse d'opérateurs.
Tableau 7.1. bundle validate
drapeaux
Drapeau | Description |
---|---|
|
Aide pour la sous-commande |
|
Outil permettant d'extraire et de décompresser les images de la liasse. Il n'est utilisé que lors de la validation d'une image de paquet. Les options disponibles sont |
| Liste de tous les validateurs optionnels disponibles. Lorsqu'il est défini, aucun validateur n'est exécuté. |
|
Sélecteur d'étiquettes pour sélectionner les validateurs optionnels à exécuter. Lorsqu'il est exécuté avec l'option |
7.2.2. nettoyage
La commande operator-sdk cleanup
détruit et supprime les ressources créées pour un opérateur déployé avec la commande run
.
Tableau 7.2. cleanup
drapeaux
Drapeau | Description |
---|---|
|
Aide pour la sous-commande |
|
Chemin d'accès au fichier |
| S'il est présent, l'espace de noms dans lequel la requête CLI doit être exécutée. |
|
Temps d'attente pour que la commande se termine avant d'échouer. La valeur par défaut est |
7.2.3. achèvement
La commande operator-sdk completion
génère des compléments d'information sur l'interpréteur de commandes afin d'accélérer et de faciliter l'exécution des commandes de l'interface de programmation.
Tableau 7.3. completion
sous-commandes
Sous-commande | Description |
---|---|
| Générer des complétions bash. |
| Générer des complétions zsh. |
Tableau 7.4. completion
drapeaux
Drapeau | Description |
---|---|
| Utilisation help output. |
Par exemple :
$ operator-sdk completion bash
Exemple de sortie
# bash completion for operator-sdk -*- shell-script -*- ... # ex: ts=4 sw=4 et filetype=sh
7.2.4. créer
La commande operator-sdk create
est utilisée pour créer, ou scaffold, une API Kubernetes.
7.2.4.1. api
La sous-commande create api
permet d'échafauder une API Kubernetes. La sous-commande doit être exécutée dans un projet qui a été initialisé avec la commande init
.
Tableau 7.5. create api
drapeaux
Drapeau | Description |
---|---|
|
Aide pour la sous-commande |
7.2.5. générer
La commande operator-sdk generate
invoque un générateur spécifique pour générer du code ou des manifestes.
7.2.5.1. liasse
La sous-commande generate bundle
génère un ensemble de manifestes de bundle, de métadonnées et un fichier bundle.Dockerfile
pour votre projet Operator.
En règle générale, vous exécutez d'abord la sous-commande generate kustomize manifests
pour générer les bases Kustomize utilisées par la sous-commande generate bundle
. Cependant, vous pouvez utiliser la commande make bundle
dans un projet initialisé pour automatiser l'exécution de ces commandes dans l'ordre.
Tableau 7.6. generate bundle
drapeaux
Drapeau | Description |
---|---|
|
Liste séparée par des virgules des canaux auxquels le paquet appartient. La valeur par défaut est |
|
Répertoire racine pour les manifestes |
| Le canal par défaut de la liasse. |
|
Répertoire racine pour les manifestes de l'opérateur, tels que les déploiements et RBAC. Ce répertoire est différent du répertoire transmis à l'indicateur |
|
Aide pour |
|
Répertoire à partir duquel lire une offre groupée existante. Ce répertoire est le parent du répertoire |
|
Répertoire contenant les bases de Kustomize et un fichier |
| Générer des manifestes de paquets. |
| Générer les métadonnées du bundle et le fichier Docker. |
| Répertoire dans lequel écrire le bundle. |
|
Remplacer les métadonnées du bundle et le fichier Docker s'ils existent. La valeur par défaut est |
| Nom du paquet pour la liasse. |
| Fonctionne en mode silencieux. |
| Rédiger un manifeste de liasse pour la sortie standard. |
| Version sémantique de l'opérateur dans la liasse générée. À définir uniquement lors de la création d'une nouvelle liasse ou de la mise à niveau de l'opérateur. |
Ressources complémentaires
-
Voir Bundling an Operator and deploying with Operator Lifecycle Manager pour une procédure complète qui inclut l'utilisation de la commande
make bundle
pour appeler la sous-commandegenerate bundle
.
7.2.5.2. personnaliser
La sous-commande generate kustomize
contient des sous-commandes qui génèrent des données de personnalisation pour l'opérateur.
7.2.5.2.1. manifestes
La sous-commande generate kustomize manifests
génère ou régénère des bases Kustomize et un fichier kustomization.yaml
dans le répertoire config/manifests
, qui sont utilisés pour construire des manifestes de bundle par d'autres commandes Operator SDK. Cette commande demande interactivement les métadonnées de l'interface utilisateur, un composant important des bases de manifeste, par défaut, à moins qu'une base n'existe déjà ou que vous n'ayez activé l'option --interactive=false
.
Tableau 7.7. generate kustomize manifests
drapeaux
Drapeau | Description |
---|---|
| Répertoire racine pour les définitions des types d'API. |
|
Aide pour |
| Répertoire contenant les fichiers Kustomize existants. |
|
Lorsque la valeur est |
| Répertoire où écrire les fichiers Kustomize. |
| Nom du paquet. |
| Fonctionne en mode silencieux. |
7.2.6. init
La commande operator-sdk init
initialise un projet Operator et génère, ou scaffolds, un répertoire de projet par défaut pour le plugin donné.
Cette commande écrit les fichiers suivants :
- Fichier de licence type
-
PROJECT
avec le domaine et le référentiel -
Makefile
pour construire le projet -
go.mod
avec les dépendances du projet -
kustomization.yaml
fichier pour personnaliser les manifestes - Fichier correctif pour la personnalisation des images des manifestes des gestionnaires
- Fichier correctif pour l'activation des métriques Prometheus
-
main.go
pour exécuter
Tableau 7.8. init
drapeaux
Drapeau | Description |
---|---|
|
Aide pour la commande |
|
Nom et éventuellement version du plugin avec lequel le projet doit être initialisé. Les plugins disponibles sont |
|
Version du projet. Les valeurs disponibles sont |
7.2.7. courir
La commande operator-sdk run
propose des options qui permettent de lancer l'opérateur dans différents environnements.
7.2.7.1. liasse
La sous-commande run bundle
déploie un opérateur au format bundle avec Operator Lifecycle Manager (OLM).
Tableau 7.9. run bundle
drapeaux
Drapeau | Description |
---|---|
|
Image d'index dans laquelle injecter un bundle. L'image par défaut est |
|
Mode d'installation pris en charge par la version du service de cluster (CSV) de l'opérateur, par exemple |
|
Délai d'installation. La valeur par défaut est |
|
Chemin d'accès au fichier |
| S'il est présent, l'espace de noms dans lequel la requête CLI doit être exécutée. |
|
Aide pour la sous-commande |
Ressources complémentaires
- Pour plus de détails sur les modes d'installation possibles, voir Composition du groupe d'opérateurs.
7.2.7.2. mise à niveau groupée
La sous-commande run bundle-upgrade
met à niveau un opérateur précédemment installé au format bundle avec Operator Lifecycle Manager (OLM).
Tableau 7.10. run bundle-upgrade
drapeaux
Drapeau | Description |
---|---|
|
Délai de mise à niveau. La valeur par défaut est |
|
Chemin d'accès au fichier |
| S'il est présent, l'espace de noms dans lequel la requête CLI doit être exécutée. |
|
Aide pour la sous-commande |
7.2.8. carte de pointage
La commande operator-sdk scorecard
exécute l'outil scorecard pour valider un bundle Operator et fournir des suggestions d'amélioration. La commande prend un argument, soit une image de l'offre groupée, soit un répertoire contenant les manifestes et les métadonnées. Si l'argument contient une balise image, l'image doit être présente à distance.
Tableau 7.11. scorecard
drapeaux
Drapeau | Description |
---|---|
|
Chemin d'accès au fichier de configuration de la carte de score. Le chemin par défaut est |
|
Aide pour la commande |
|
Chemin d'accès au fichier |
| Liste des tests disponibles pour exécution. |
| Espace de noms dans lequel les images de test doivent être exécutées. |
|
Format de sortie des résultats. Les valeurs disponibles sont |
| Sélecteur d'étiquettes pour déterminer les tests à effectuer. |
|
Compte de service à utiliser pour les tests. La valeur par défaut est |
| Désactiver le nettoyage des ressources après l'exécution des tests. |
|
Nombre de secondes à attendre pour que les tests soient terminés, par exemple |
Ressources complémentaires
- Voir la section Validation des opérateurs à l'aide de l'outil de scorecard pour plus d'informations sur l'utilisation de l'outil de scorecard.