Outils CLI

Plate-forme de conteneurs OpenShift 4.12

Apprendre à utiliser les outils de ligne de commande pour OpenShift Container Platform

Red Hat OpenShift Documentation Team

Résumé

Ce document fournit des informations sur l'installation, la configuration et l'utilisation des outils de ligne de commande pour OpenShift Container Platform. Il contient également une référence des commandes CLI et des exemples d'utilisation.

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.

Important

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

  1. Naviguez jusqu'à la page de téléchargements OpenShift Container Platform sur le portail client Red Hat.
  2. Sélectionnez l'architecture dans la liste déroulante Product Variant.
  3. Sélectionnez la version appropriée dans la liste déroulante Version.
  4. Cliquez sur Download Now à côté de l'entrée OpenShift v4.12 Linux Client et enregistrez le fichier.
  5. Décompressez l'archive :

    tar xvf <file>
  6. Placez le fichier binaire oc dans un répertoire situé sur votre site PATH.

    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

  1. Naviguez jusqu'à la page de téléchargements OpenShift Container Platform sur le portail client Red Hat.
  2. Sélectionnez la version appropriée dans la liste déroulante Version.
  3. Cliquez sur Download Now à côté de l'entrée OpenShift v4.12 Windows Client et enregistrez le fichier.
  4. Décompressez l'archive à l'aide d'un programme ZIP.
  5. Déplacez le fichier binaire oc dans un répertoire situé sur votre site PATH.

    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

  1. Naviguez jusqu'à la page de téléchargements OpenShift Container Platform sur le portail client Red Hat.
  2. Sélectionnez la version appropriée dans la liste déroulante Version.
  3. Cliquez sur Download Now à côté de l'entrée OpenShift v4.12 macOS Client et enregistrez le fichier.

    Note

    Pour macOS arm64, choisissez l'entrée OpenShift v4.12 macOS arm64 Client.

  4. Décompressez l'archive.
  5. 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.

Important

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

  1. Dans la console web, cliquez sur ?.

    click question mark
  2. Cliquez sur Command Line Tools.

    CLI list
  3. Sélectionnez le binaire oc approprié pour votre plate-forme Linux, puis cliquez sur Download oc for Linux.
  4. Enregistrer le fichier.
  5. Décompressez l'archive.

    tar xvf <file>
  6. Déplacez le fichier binaire oc dans un répertoire situé sur votre site PATH.

    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

  1. Dans la console web, cliquez sur ?.

    click question mark
  2. Cliquez sur Command Line Tools.

    CLI list
  3. Sélectionnez le binaire oc pour la plate-forme Windows, puis cliquez sur Download oc for Windows for x86_64.
  4. Enregistrer le fichier.
  5. Décompressez l'archive à l'aide d'un programme ZIP.
  6. Déplacez le fichier binaire oc dans un répertoire situé sur votre site PATH.

    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

  1. Dans la console web, cliquez sur ?.

    click question mark
  2. Cliquez sur Command Line Tools.

    CLI list
  3. Sélectionnez le binaire oc pour la plate-forme macOS, puis cliquez sur Download oc for Mac for x86_64.

    Note

    Pour macOS arm64, cliquez sur Download oc for Mac for ARM 64.

  4. Enregistrer le fichier.
  5. Décompressez l'archive.
  6. 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

  1. S'inscrire auprès du gestionnaire d'abonnements Red Hat :

    # subscription-manager register
  2. Extraire les données d'abonnement les plus récentes :

    # subscription-manager refresh
  3. Liste des abonnements disponibles :

    # subscription-manager list --available --matches '*OpenShift*'
  4. 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>
  5. 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"
    Note

    Il 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.

  6. 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).
Note

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

  1. Entrez la commande oc login et indiquez un nom d'utilisateur :

    $ oc login -u user1
  2. 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.

    1
    Saisissez l'URL du serveur OpenShift Container Platform.
    2
    Indiquez si vous souhaitez utiliser des connexions non sécurisées.
    3
    Entrez le mot de passe de l'utilisateur.
Note

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.

Note

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

  1. Enregistrer le code d'achèvement de Bash dans un fichier :

    oc completion bash > oc_bash_completion
  2. 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, et ImageStreamTag sont spécifiques aux distributions OpenShift Container Platform, et s'appuient sur les primitives Kubernetes standard.

  • Authentication

    Le binaire oc offre une commande login 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émentaire oc new-project facilite le démarrage d'un projet que vous pouvez utiliser par défaut.

Important

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 (oc Client)

X.Y N footnote:versionpolicyn[où N est un nombre supérieur ou égal à 1.] (oc Client)

X.Y (Serveur)

cercle rouge 1

cercle rouge 3

X.Y N footnote:versionpolicyn[] (Serveur)

cercle rouge 2

cercle rouge 1

cercle rouge 1 Entièrement compatible.

redcircle 2 oc le client pourrait ne pas être en mesure d'accéder aux fonctions du serveur.

redcircle 3 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 autre openshift2.example.com:8443.
2
Cette section contexts définit deux contextes : l'un surnommé alice-project/openshift1.example.com:8443/alice, qui utilise le projet alice-project, le groupe openshift1.example.com:8443 et l'utilisateur alice, et l'autre surnommé joe-project/openshift1.example.com:8443/alice, qui utilise le projet joe-project, le groupe openshift1.example.com:8443 et l'utilisateur alice.
3
Le paramètre current-context indique que le contexte joe-project/openshift1.example.com:8443/alice est actuellement utilisé, ce qui permet à l'utilisateur alice de travailler dans le projet joe-project sur le cluster openshift1.example.com:8443.
4
La section users définit les informations d'identification de l'utilisateur. Dans cet exemple, le pseudo de l'utilisateur alice/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.

Note

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

Note

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-commandeUtilisation

set-cluster

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]

set-context

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>]

use-context

Définit le contexte actuel en utilisant le pseudonyme de contexte spécifié.

oc config use-context <context_nickname>

set

Définit une valeur individuelle dans le fichier de configuration CLI.

oc config set <property_name> <property_value> $ oc config set <property_name>

<property_name> est un nom délimité par des points où chaque jeton représente soit un nom d'attribut, soit une clé de carte. <property_value> est la nouvelle valeur à définir.

unset

Annule les valeurs individuelles dans le fichier de configuration CLI.

oc config unset <nom_de_la_propriété>

Le site <property_name> est un nom délimité par des points où chaque élément représente un nom d'attribut ou une clé de carte.

view

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.
  • 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.
  • 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.
  • 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.

  1. 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- ou kubectl- 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 commande oc 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 est oc-foo_bar peut être appelé par la commande oc foo-bar.
  2. 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

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- ou kubectl-.

Procédure

  1. Si nécessaire, mettez à jour le fichier du plugin pour qu'il soit exécutable.

    chmod x <plugin_file>
  2. Placez le fichier n'importe où dans votre PATH, par exemple /usr/local/bin/.

    $ sudo mv <plugin_file> /usr/local/bin/.
  3. 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- ou kubectl-, qu'il est exécutable et qu'il se trouve sur votre site PATH.

  4. 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 commande oc 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).

Important

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

Procédure

  1. Pour obtenir la liste de tous les plugins disponibles, exécutez la commande suivante :

    $ oc krew search
  2. Pour obtenir des informations sur un plugin, exécutez la commande suivante :

    oc krew info <nom_du_plugin>
  3. Pour installer un plugin, exécutez la commande suivante :

    oc krew install <nom_du_plugin>
  4. 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.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.

Important

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

Voir 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.

Important

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.

Note

Les archives et les RPM contiennent les exécutables suivants :

  • tkn
  • tkn-pac
  • opc
Important

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.

  1. Décompressez l'archive :

    tar xvzf <file>
  2. Ajoutez l'emplacement de vos fichiers tkn, tkn-pac et opc à votre variable d'environnement PATH.
  3. 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

  1. S'inscrire auprès du gestionnaire d'abonnements Red Hat :

    # subscription-manager register
  2. Extraire les données d'abonnement les plus récentes :

    # subscription-manager refresh
  3. Liste des abonnements disponibles :

    # subscription-manager list --available --matches '*pipelines*'
  4. 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>
  5. 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"
  6. 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

  1. Télécharger l'outil CLI.
  2. Extraire l'archive à l'aide d'un programme ZIP.
  3. Ajoutez l'emplacement de vos fichiers tkn, tkn-pac et opc à votre variable d'environnement PATH.
  4. 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

  1. Téléchargez l'outil CLI approprié.

  2. Décompressez et extrayez l'archive.
  3. Ajoutez l'emplacement de vos fichiers tkn, tkn-pac et opc à votre variable d'environnement PATH.
  4. 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.

  1. Enregistrer le code d'achèvement de Bash dans un fichier :

    $ tkn completion bash > tkn_bash_completion
  2. 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

Note

À 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

Important

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

Note

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.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

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

  1. Naviguez vers le site miroir d'OpenShift et téléchargez la dernière version de l'archive correspondant à votre système d'exploitation.
  2. Décompressez l'archive.

    • Pour Linux ou macOS :

      tar xvf <file>
    • Pour Windows, décompressez l'archive avec un programme ZIP.
  3. Placez le fichier n'importe où dans votre PATH.

    • Pour Linux ou macOS :

      1. Vérifiez votre PATH:

        $ echo $PATH
      2. Déplacer le fichier. Par exemple :

        $ sudo mv ./opm /usr/local/bin/
    • Pour Windows :

      1. Vérifiez votre PATH:

        C:\N> path
      2. 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

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

DrapeauDescription

-skip-tls-verify

Sauter la vérification des certificats TLS pour les registres d'images de conteneurs lors de l'extraction de paquets ou d'index.

--use-http

Lorsque vous tirez des paquets, utilisez le protocole HTTP pour les registres d'images de conteneurs.

Important

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

DrapeauDescription

-c, --default-channel (chaîne)

Le canal que les abonnements utiliseront par défaut s'il n'est pas spécifié.

-d, --description (chaîne)

Chemin d'accès au site de l'opérateur README.md ou à d'autres documents.

-i, --icon (chaîne)

Chemin d'accès à l'icône du paquet.

-o, --output (chaîne)

Format de sortie : json (valeur par défaut) ou yaml.

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

DrapeauDescription

-o, --output (chaîne)

Format de sortie : json (valeur par défaut) ou yaml.

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.

Note

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

DrapeauDescription

--cache-dir (chaîne)

Si ce drapeau est activé, il synchronise et conserve le répertoire du cache du serveur.

--cache-enforce-integrity

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 true lorsque l'indicateur --cache-dir est activé et que l'indicateur --cache-only est false. Sinon, la valeur par défaut est false.

--cache-only

Synchronise le cache de service et quitte sans servir.

--debug

Active la journalisation de débogage.

h, --help

Aide au service.

-p, --port (chaîne)

Le numéro de port du service. La valeur par défaut est 50051.

--pprof-addr (chaîne)

L'adresse du point final de profilage de démarrage. Le format est le suivant : Addr:Port.

-t, --termination-log (chaîne)

Chemin d'accès à un fichier journal de fin de conteneur. La valeur par défaut est /dev/termination-log.

Important

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

DrapeauDescription

-o, --output (chaîne)

Format de sortie : json (valeur par défaut) ou yaml.

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.

Important

À 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-commandeDescription

add

Ajouter des liasses d'opérateurs à un index.

prune

Élaguer un index de tous les paquets sauf ceux spécifiés.

prune-stranded

Élaguer un index de liasses non identifiées, c'est-à-dire de liasses qui ne sont pas associées à une image particulière.

rm

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

DrapeauDescription

-i, --binary-image

Image conteneur pour la commande on-image opm

-u, --build-tool (chaîne)

Outil de construction des images de conteneurs : podman (valeur par défaut) ou docker. Remplace une partie du drapeau --container-tool.

-b, --bundles (chaînes)

Liste de bundles séparés par des virgules à ajouter.

-c, --container-tool (chaîne)

Outil permettant d'interagir avec les images des conteneurs, notamment pour les sauvegarder et les construire : docker ou podman.

-f, --from-index (chaîne)

Index précédent à ajouter.

--generate

Si cette option est activée, elle crée uniquement le fichier Docker et l'enregistre sur le disque local.

--mode (chaîne)

Mode de mise à jour des graphiques qui définit la manière dont les graphiques des canaux sont mis à jour : replaces (valeur par défaut), semver ou semver-skippatch.

-d, --out-dockerfile (chaîne)

Facultatif : si vous générez un fichier Docker, indiquez un nom de fichier.

--permissive

Autoriser les erreurs de chargement du registre.

-p, --pull-tool (chaîne)

Outil pour extraire les images des conteneurs : none (valeur par défaut), docker, ou podman. Remplace une partie de l'indicateur --container-tool.

-t, --tag (chaîne)

É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

DrapeauDescription

-i, --binary-image

Image conteneur pour la commande on-image opm

-c, --container-tool (chaîne)

Outil permettant d'interagir avec les images des conteneurs, notamment pour les sauvegarder et les construire : docker ou podman.

-f, --from-index (chaîne)

Index pour la taille.

--generate

Si cette option est activée, elle crée uniquement le fichier Docker et l'enregistre sur le disque local.

-d, --out-dockerfile (chaîne)

Facultatif : si vous générez un fichier Docker, indiquez un nom de fichier.

-p, --packages (chaînes)

Liste de paquets à conserver, séparés par des virgules.

--permissive

Autoriser les erreurs de chargement du registre.

-t, --tag (chaîne)

É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

DrapeauDescription

-i, --binary-image

Image conteneur pour la commande on-image opm

-c, --container-tool (chaîne)

Outil permettant d'interagir avec les images des conteneurs, notamment pour les sauvegarder et les construire : docker ou podman.

-f, --from-index (chaîne)

Index pour la taille.

--generate

Si cette option est activée, elle crée uniquement le fichier Docker et l'enregistre sur le disque local.

-d, --out-dockerfile (chaîne)

Facultatif : si vous générez un fichier Docker, indiquez un nom de fichier.

-p, --packages (chaînes)

Liste de paquets à conserver, séparés par des virgules.

--permissive

Autoriser les erreurs de chargement du registre.

-t, --tag (chaîne)

É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

DrapeauDescription

-i, --binary-image

Image conteneur pour la commande on-image opm

-u, --build-tool (chaîne)

Outil de construction des images de conteneurs : podman (valeur par défaut) ou docker. Remplace une partie du drapeau --container-tool.

-c, --container-tool (chaîne)

Outil permettant d'interagir avec les images des conteneurs, notamment pour les sauvegarder et les construire : docker ou podman.

-f, --from-index (chaîne)

Index précédent à supprimer.

--generate

Si cette option est activée, elle crée uniquement le fichier Docker et l'enregistre sur le disque local.

-o, --operators (chaînes)

Liste d'opérateurs à supprimer, séparés par des virgules.

-d, --out-dockerfile (chaîne)

Facultatif : si vous générez un fichier Docker, indiquez un nom de fichier.

-p, --packages (chaînes)

Liste de paquets à conserver, séparés par des virgules.

--permissive

Autoriser les erreurs de chargement du registre.

-p, --pull-tool (chaîne)

Outil pour extraire les images des conteneurs : none (valeur par défaut), docker, ou podman. Remplace une partie de l'indicateur --container-tool.

-t, --tag (chaîne)

É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

DrapeauxDescription

-h, --help

Aide à la génération.

Syntaxe de la commande

$ opm generate <subcommand> [<flags>]

Tableau 6.12. generate sous-commandes

Sous-commandeDescription

dockerfile

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.

Important

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

DrapeauDescription

-i, --binary-image (chaîne)

Image dans laquelle le catalogue doit être construit. La valeur par défaut est quay.io/operator-framework/opm:latest.

-l, --extra-labels (chaîne)

Étiquettes supplémentaires à inclure dans le fichier Docker généré. Les étiquettes ont la forme key=value.

-h, --help

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.

Note

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 , ou buildah v1.7

Procédure

  1. Naviguez vers le site miroir d'OpenShift.
  2. A partir du dernier répertoire 4.12, téléchargez la dernière version de l'archive pour Linux.
  3. Décompressez l'archive :

    $ tar xvf operator-sdk-v1.25.4-ocp-linux-x86_64.tar.gz
  4. Rendre le fichier exécutable :

    $ chmod +x operator-sdk
  5. Déplacez le fichier binaire operator-sdk extrait dans un répertoire qui se trouve sur votre site PATH.

    Astuce

    Pour 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 , ou buildah v1.7

Procédure

  1. Pour les architectures amd64 et arm64, naviguez vers le site miroir OpenShift pour l'architecture amd64 et le site miroir OpenShift pour l'architecture arm64 respectivement.
  2. A partir du dernier répertoire 4.12, téléchargez la dernière version de l'archive pour macOS.
  3. 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
  4. 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
  5. Rendez le fichier exécutable en exécutant la commande suivante :

    $ chmod +x operator-sdk
  6. Déplacez le binaire operator-sdk extrait dans un répertoire qui se trouve sur votre PATH en exécutant la commande suivante :

    Astuce

    Vé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

DrapeauDescription

-h, --help

Aide pour la sous-commande bundle validate.

--index-builder (chaîne)

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 docker, qui est l'option par défaut, podman, ou none.

--list-optional

Liste de tous les validateurs optionnels disponibles. Lorsqu'il est défini, aucun validateur n'est exécuté.

--select-optional (chaîne)

Sélecteur d'étiquettes pour sélectionner les validateurs optionnels à exécuter. Lorsqu'il est exécuté avec l'option --list-optional, il dresse la liste des validateurs optionnels disponibles.

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

DrapeauDescription

-h, --help

Aide pour la sous-commande run bundle.

--kubeconfig (chaîne)

Chemin d'accès au fichier kubeconfig à utiliser pour les requêtes CLI.

-n, --namespace (chaîne)

S'il est présent, l'espace de noms dans lequel la requête CLI doit être exécutée.

--timeout <duration>

Temps d'attente pour que la commande se termine avant d'échouer. La valeur par défaut est 2m0s.

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-commandeDescription

bash

Générer des complétions bash.

zsh

Générer des complétions zsh.

Tableau 7.4. completion drapeaux

DrapeauDescription

-h, --help

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

DrapeauDescription

-h, --help

Aide pour la sous-commande run bundle.

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.

Note

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

DrapeauDescription

--channels (chaîne)

Liste séparée par des virgules des canaux auxquels le paquet appartient. La valeur par défaut est alpha.

--crds-dir (chaîne)

Répertoire racine pour les manifestes CustomResoureDefinition.

--default-channel (chaîne)

Le canal par défaut de la liasse.

--deploy-dir (chaîne)

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 --input-dir.

-h, --help

Aide pour generate bundle

--input-dir (chaîne)

Répertoire à partir duquel lire une offre groupée existante. Ce répertoire est le parent du répertoire manifests et est différent du répertoire --deploy-dir.

--kustomize-dir (chaîne)

Répertoire contenant les bases de Kustomize et un fichier kustomization.yaml pour les manifestes de bundle. Le chemin par défaut est config/manifests.

--manifests

Générer des manifestes de paquets.

--metadata

Générer les métadonnées du bundle et le fichier Docker.

--output-dir (chaîne)

Répertoire dans lequel écrire le bundle.

--overwrite

Remplacer les métadonnées du bundle et le fichier Docker s'ils existent. La valeur par défaut est true.

--package (chaîne)

Nom du paquet pour la liasse.

-q, --quiet

Fonctionne en mode silencieux.

--stdout

Rédiger un manifeste de liasse pour la sortie standard.

--version (chaîne)

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

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

DrapeauDescription

--apis-dir (chaîne)

Répertoire racine pour les définitions des types d'API.

-h, --help

Aide pour generate kustomize manifests.

--input-dir (chaîne)

Répertoire contenant les fichiers Kustomize existants.

--interactive

Lorsque la valeur est false, si aucune base Kustomize n'existe, une invite de commande interactive est présentée pour accepter les métadonnées personnalisées.

--output-dir (chaîne)

Répertoire où écrire les fichiers Kustomize.

--package (chaîne)

Nom du paquet.

-q, --quiet

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

DrapeauDescription

--help, -h

Aide pour la commande init.

--plugins (chaîne)

Nom et éventuellement version du plugin avec lequel le projet doit être initialisé. Les plugins disponibles sont ansible.sdk.operatorframework.io/v1, go.kubebuilder.io/v2, go.kubebuilder.io/v3, et helm.sdk.operatorframework.io/v1.

--project-version

Version du projet. Les valeurs disponibles sont 2 et 3-alpha, qui est la valeur par défaut.

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

DrapeauDescription

--index-image (chaîne)

Image d'index dans laquelle injecter un bundle. L'image par défaut est quay.io/operator-framework/upstream-opm-builder:latest.

--install-mode <install_mode_value>

Mode d'installation pris en charge par la version du service de cluster (CSV) de l'opérateur, par exemple AllNamespaces ou SingleNamespace.

--timeout <duration>

Délai d'installation. La valeur par défaut est 2m0s.

--kubeconfig (chaîne)

Chemin d'accès au fichier kubeconfig à utiliser pour les requêtes CLI.

-n, --namespace (chaîne)

S'il est présent, l'espace de noms dans lequel la requête CLI doit être exécutée.

-h, --help

Aide pour la sous-commande run bundle.

Ressources complémentaires

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

DrapeauDescription

--timeout <duration>

Délai de mise à niveau. La valeur par défaut est 2m0s.

--kubeconfig (chaîne)

Chemin d'accès au fichier kubeconfig à utiliser pour les requêtes CLI.

-n, --namespace (chaîne)

S'il est présent, l'espace de noms dans lequel la requête CLI doit être exécutée.

-h, --help

Aide pour la sous-commande run bundle.

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

DrapeauDescription

-c, --config (chaîne)

Chemin d'accès au fichier de configuration de la carte de score. Le chemin par défaut est bundle/tests/scorecard/config.yaml.

-h, --help

Aide pour la commande scorecard.

--kubeconfig (chaîne)

Chemin d'accès au fichier kubeconfig.

-L, --list

Liste des tests disponibles pour exécution.

-n, --namespace (chaîne)

Espace de noms dans lequel les images de test doivent être exécutées.

-o, --output (chaîne)

Format de sortie des résultats. Les valeurs disponibles sont text, qui est la valeur par défaut, et json.

-l, --selector (chaîne)

Sélecteur d'étiquettes pour déterminer les tests à effectuer.

-s, --service-account (chaîne)

Compte de service à utiliser pour les tests. La valeur par défaut est default.

-x, --skip-cleanup

Désactiver le nettoyage des ressources après l'exécution des tests.

-w, --wait-time <duration>

Nombre de secondes à attendre pour que les tests soient terminés, par exemple 35s. La valeur par défaut est 30s.

Ressources complémentaires

Note légale

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.