Chapitre 2. Création d’un cluster ROSA à l’aide de Terraform


Créez rapidement un cluster Red Hat OpenShift Service sur AWS (ROSA) en utilisant un modèle de cluster Terraform configuré avec les options de cluster par défaut.

Le processus de création de cluster décrit ci-dessous utilise une configuration Terraform qui prépare un ROSA avec le cluster HCP avec les ressources suivantes:

  • Fournisseur OIDC avec une configuration oidc-config gérée
  • Les rôles d’opérateur IAM avec les politiques associées à AWS Managed ROSA
  • Les rôles de compte IAM avec AWS Managed ROSA Policys associés
  • Les autres ressources AWS nécessaires pour créer un ROSA avec le cluster STS

2.1.1. Aperçu de Terraform

Le terraform est un outil d’infrastructure sous forme de code qui fournit un moyen de configurer vos ressources une fois et de les reproduire au besoin. Le terraform accomplit les tâches de création en utilisant un langage déclaratif. Indiquez ce que vous voulez que l’état final de la ressource d’infrastructure soit, et Terraform crée ces ressources selon vos spécifications.

Conditions préalables

Afin d’utiliser le fournisseur Red Hat Cloud Services dans votre configuration Terraform, vous devez répondre aux conditions préalables suivantes:

  • L’outil d’interface de ligne de commande (CLI) de Red Hat OpenShift Service (ROSA) a été installé.
  • Il y a votre jeton Red Hat OpenShift Cluster Manager hors ligne.
  • La version 1.4.6 ou plus récente de Terraform est installée.
  • « vous avez créé vos rôles IAM à l’échelle du compte AWS.

    Les rôles et politiques IAM spécifiques à l’ensemble du compte fournissent les autorisations STS requises pour le support ROSA, l’installation, le plan de contrôle et la fonctionnalité de calcul. Cela inclut les politiques de l’opérateur à l’échelle du compte. Consultez les ressources supplémentaires pour plus d’informations sur les rôles de compte AWS.

  • Il existe un compte AWS et des informations d’identification associées qui vous permettent de créer des ressources. Les informations d’identification sont configurées pour le fournisseur AWS. Consultez la section Authentification et configuration dans la documentation du fournisseur AWS Terraform.
  • Au minimum, vous disposez des autorisations suivantes dans votre politique de rôle AWS IAM qui exploite Terraform. Consultez ces autorisations dans la console AWS.

    Exemple 2.1. Autorisations AWS minimales pour Terraform

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "VisualEditor0",
          "Effect": "Allow",
          "Action": [
            "iam:GetPolicyVersion",
            "iam:DeletePolicyVersion",
            "iam:CreatePolicyVersion",
            "iam:UpdateAssumeRolePolicy",
            "secretsmanager:DescribeSecret",
            "iam:ListRoleTags",
            "secretsmanager:PutSecretValue",
            "secretsmanager:CreateSecret",
            "iam:TagRole",
            "secretsmanager:DeleteSecret",
            "iam:UpdateOpenIDConnectProviderThumbprint",
            "iam:DeletePolicy",
            "iam:CreateRole",
            "iam:AttachRolePolicy",
            "iam:ListInstanceProfilesForRole",
            "secretsmanager:GetSecretValue",
            "iam:DetachRolePolicy",
            "iam:ListAttachedRolePolicies",
            "iam:ListPolicyTags",
            "iam:ListRolePolicies",
            "iam:DeleteOpenIDConnectProvider",
            "iam:DeleteInstanceProfile",
            "iam:GetRole",
            "iam:GetPolicy",
            "iam:ListEntitiesForPolicy",
            "iam:DeleteRole",
            "iam:TagPolicy",
            "iam:CreateOpenIDConnectProvider",
            "iam:CreatePolicy",
            "secretsmanager:GetResourcePolicy",
            "iam:ListPolicyVersions",
            "iam:UpdateRole",
            "iam:GetOpenIDConnectProvider",
            "iam:TagOpenIDConnectProvider",
            "secretsmanager:TagResource",
            "sts:AssumeRoleWithWebIdentity",
            "iam:ListRoles"
          ],
          "Resource": [
            "arn:aws:secretsmanager:*:<ACCOUNT_ID>:secret:*",
            "arn:aws:iam::<ACCOUNT_ID>:instance-profile/*",
            "arn:aws:iam::<ACCOUNT_ID>:role/*",
            "arn:aws:iam::<ACCOUNT_ID>:oidc-provider/*",
            "arn:aws:iam::<ACCOUNT_ID>:policy/*"
          ]
        },
        {
          "Sid": "VisualEditor1",
          "Effect": "Allow",
          "Action": [
            "s3:*"
            ],
          "Resource": "*"
        }
      ]
    }
    Copy to Clipboard Toggle word wrap

Considérations lors de l’utilisation de Terraform

En général, utiliser Terraform pour gérer les ressources cloud devrait être fait avec l’espoir que tout changement devrait être effectué à l’aide de la méthodologie Terraform. Faites preuve de prudence lors de l’utilisation d’outils en dehors de Terraform, tels que la console AWS ou la console Red Hat, pour modifier les ressources cloud créées par Terraform. En utilisant des outils en dehors de Terraform pour gérer les ressources cloud qui sont déjà gérées par Terraform introduit la dérive de configuration de votre configuration Terraform déclarée.

Ainsi, si vous mettez à niveau votre cluster créé par Terraform en utilisant la console de cloud hybride Red Hat, vous devez réconcilier votre état Terraform avant d’appliquer les modifications de configuration à venir. Consultez Gérer les ressources dans l’état Terraform dans la documentation HashiCorp Developer.

2.1.2. Aperçu des spécifications du cluster par défaut

Expand
Tableau 2.1. Défaut ROSA avec les spécifications du cluster STS
ComposanteCaractéristiques par défaut

Comptes et rôles

  • IAM préfixe par défaut: rosa-&lt;6-digit-alphanumeric-string&gt;
  • Aucun rôle d’administrateur de cluster créé

Configurations du cluster

  • La version par défaut du cluster: 4.14
  • Cluster name: rosa-&lt;6-digit-alphanumeric-string&gt;
  • La région AWS par défaut pour les installations utilisant le Red Hat OpenShift Cluster Manager Hybrid Cloud Console: us-east-2 (US East, Ohio)
  • Disponibilité: Multizone pour le plan de données
  • EC2 Instance Metadata Service (IMDS) est activé et permet l’utilisation de IMDSv1 ou IMDSv2 (jeton facultatif)
  • Contrôle pour les projets définis par l’utilisateur: activé

Chiffrement

  • Le stockage en nuage est crypté au repos
  • Le chiffrement supplémentaire etcd n’est pas activé
  • La clé AWS Key Management Service (KMS) par défaut est utilisée comme clé de chiffrement pour les données persistantes
  • Le cryptage des clés AWS Key Management Service (KMS) n’est pas activé par défaut

Configuration des nœuds de plan de contrôle

  • Contrôle type d’instance de nœud de plan: m5.2xlarge (8 vCPU, 32 GAB RAM)
  • Comptage des nœuds de plan de contrôle: 3

Configuration des nœuds d’infrastructure

  • Infrastructure Node type d’instance: r5.xlarge (4 vCPU, 32 GAB RAM)
  • Comptage des nœuds d’infrastructure: 2

Calculez la piscine de la machine de nœud

  • Calculer le type d’instance du nœud: m5.xlarge (4 vCPU 16, RAM GiB)
  • Calcul du nombre de nœuds: 3
  • Autoscaling: Non activé
  • Aucune étiquette de nœud supplémentaire

Configuration du réseau

  • La confidentialité des clusters : publique ou privée
  • Lors du processus de création du cluster Terraform, vous pouvez choisir de créer un nouveau VPC.
  • Il faut avoir configuré votre propre Cloud privé virtuel (VPC)
  • Aucun proxy à l’échelle du cluster n’est configuré

Gammes de routage interdomain sans classe (CIDR)

  • CIDR machine: 10.0.0.0/16
  • CIDR de service: 172.30.0.0/16
  • Dose CIDR: 10.128.0.0/14
  • Hôte préfixe: /23

Les rôles et les politiques des clusters

  • Le mode utilisé pour créer les rôles d’opérateur et le fournisseur OpenID Connect (OIDC) : auto

    Note

    Dans le cas des installations utilisant OpenShift Cluster Manager sur la console hybride Cloud, le mode automatique nécessite un rôle de gestionnaire de cluster OpenShift privilégié par l’administrateur.

  • Défaut de préfixe de rôle opérateur: rosa-&lt;6-digit-alphanumeric-string&gt;

La stratégie de mise à jour des clusters

  • Des mises à jour individuelles
  • Délai de grâce de 1 heure pour drainer les nœuds

Le processus de création de cluster décrit ci-dessous montre comment utiliser Terraform pour créer vos rôles IAM à l’échelle du compte et un cluster ROSA avec une configuration OIDC gérée.

2.1.3.1. La préparation de votre environnement pour Terraform

Avant de pouvoir créer votre service Red Hat OpenShift sur AWS cluster en utilisant Terraform, vous devez exporter votre jeton Red Hat OpenShift Cluster Manager hors ligne.

Procédure

  1. Facultatif: Parce que les fichiers Terraform sont créés dans votre répertoire actuel au cours de cette procédure, vous pouvez créer un nouveau répertoire pour stocker ces fichiers et y naviguer en exécutant la commande suivante:

    $ mkdir terraform-cluster && cd terraform-cluster
    Copy to Clipboard Toggle word wrap
  2. Accordez des autorisations à votre compte en utilisant un jeton Red Hat OpenShift Cluster Manager hors ligne.
  3. Copiez votre jeton hors ligne et définissez le jeton comme variable environnementale en exécutant la commande suivante:

    $ export RHCS_TOKEN=<your_offline_token>
    Copy to Clipboard Toggle word wrap
    Note

    Cette variable environnementale réinitialise à la fin de chaque session, comme le redémarrage de votre machine ou la fermeture du terminal.

La vérification

  • Après avoir exporté votre jeton, vérifiez la valeur en exécutant la commande suivante:

    $ echo $RHCS_TOKEN
    Copy to Clipboard Toggle word wrap

2.1.3.2. Créer vos fichiers Terraform localement

Après avoir configuré votre jeton Red Hat OpenShift Cluster Manager hors ligne, vous devez créer les fichiers Terraform localement pour construire votre cluster. Il est possible de créer ces fichiers en utilisant les modèles de code suivants.

Procédure

  1. Créez le fichier main.tf en exécutant la commande suivante:

    $ cat<<-EOF>main.tf
    #
    # Copyright (c) 2023 Red Hat, Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #   http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    terraform {
      required_providers {
        aws = {
          source  = "hashicorp/aws"
          version = ">= 4.20.0"
        }
        rhcs = {
          version = ">= 1.6.3"
          source  = "terraform-redhat/rhcs"
        }
      }
    }
    
    # Export token using the RHCS_TOKEN environment variable
    provider "rhcs" {}
    
    provider "aws" {
      region = var.aws_region
      ignore_tags {
        key_prefixes = ["kubernetes.io/"]
      }
      default_tags {
        tags = var.default_aws_tags
      }
    }
    
    data "aws_availability_zones" "available" {}
    
    locals {
      # Extract availability zone names for the specified region, limit it to 3 if multi az or 1 if single
      region_azs = var.multi_az ? slice([for zone in data.aws_availability_zones.available.names : format("%s", zone)], 0, 3) : slice([for zone in data.aws_availability_zones.available.names : format("%s", zone)], 0, 1)
    }
    
    resource "random_string" "random_name" {
      length  = 6
      special = false
      upper   = false
    }
    
    locals {
      worker_node_replicas = var.multi_az ? 3 : 2
      # If cluster_name is not null, use that, otherwise generate a random cluster name
      cluster_name = coalesce(var.cluster_name, "rosa-\${random_string.random_name.result}")
    }
    
    # The network validator requires an additional 60 seconds to validate Terraform clusters.
    resource "time_sleep" "wait_60_seconds" {
      count = var.create_vpc ? 1 : 0
      depends_on = [module.vpc]
      create_duration = "60s"
    }
    
    module "rosa-hcp" {
      source                 = "terraform-redhat/rosa-hcp/rhcs"
      version                = "1.6.3"
      cluster_name           = local.cluster_name
      openshift_version      = var.openshift_version
      account_role_prefix    = local.cluster_name
      operator_role_prefix   = local.cluster_name
      replicas               = local.worker_node_replicas
      aws_availability_zones = local.region_azs
      create_oidc            = true
      private                = var.private_cluster
      aws_subnet_ids         = var.create_vpc ? var.private_cluster ? module.vpc[0].private_subnets : concat(module.vpc[0].public_subnets, module.vpc[0].private_subnets) : var.aws_subnet_ids
      create_account_roles   = true
      create_operator_roles  = true
    # Optional: Configure a cluster administrator user <.>
    #
    # Option 1: Default cluster-admin user
    # Create an administrator user (cluster-admin) and automatically
    # generate a password by uncommenting the following parameter:
    #  create_admin_user = true
    # Generated administrator credentials are displayed in terminal output.
    #
    # Option 2: Specify administrator username and password
    # Create an administrator user and define your own password
    # by uncommenting and editing the values of the following parameters:
    #  admin_credentials_username = <username>
    #  admin_credentials_password = <password>
    
      depends_on = [time_sleep.wait_60_seconds]
    }
    EOF
    Copy to Clipboard Toggle word wrap

    &Lt;.&gt; facultatif: Créez un utilisateur administrateur lors de la création de cluster en décommentant les paramètres appropriés et en modifiant leurs valeurs si nécessaire.

  2. Créez le fichier variables.tf en exécutant la commande suivante:

    Note

    Copiez et modifiez ce fichier avant d’exécuter la commande pour construire votre cluster.

    $ cat<<-EOF>variables.tf
    #
    # Copyright (c) 2023 Red Hat, Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #   http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    variable "openshift_version" {
      type        = string
      default     = "4.14.20"
      description = "Desired version of OpenShift for the cluster, for example '4.14.20'. If version is greater than the currently running version, an upgrade will be scheduled."
    }
    
    variable "create_vpc" {
      type        = bool
      description = "If you would like to create a new VPC, set this value to 'true'. If you do not want to create a new VPC, set this value to 'false'."
    }
    
    # ROSA Cluster info
    variable "cluster_name" {
      default     = null
      type        = string
      description = "The name of the ROSA cluster to create"
    }
    
    variable "additional_tags" {
      default = {
        Terraform   = "true"
        Environment = "dev"
      }
      description = "Additional AWS resource tags"
      type        = map(string)
    }
    
    variable "multi_az" {
      type        = bool
      description = "Multi AZ Cluster for High Availability"
      default     = true
    }
    
    variable "worker_node_replicas" {
      default     = 3
      description = "Number of worker nodes to provision. Single zone clusters need at least 2 nodes, multizone clusters need at least 3 nodes"
      type        = number
    }
    
    variable "aws_subnet_ids" {
      type        = list(any)
      description = "A list of either the public or public + private subnet IDs to use for the cluster blocks to use for the cluster"
      default     = ["subnet-01234567890abcdef", "subnet-01234567890abcdef", "subnet-01234567890abcdef"]
    }
    
    variable "private_cluster" {
      type        = bool
      description = "If you want to create a private cluster, set this value to 'true'. If you want a publicly available cluster, set this value to 'false'."
    }
    
    #VPC Info
    variable "vpc_name" {
      type        = string
      description = "VPC Name"
      default     = "tf-qs-vpc"
    }
    
    variable "vpc_cidr_block" {
      type        = string
      description = "value of the CIDR block to use for the VPC"
      default     = "10.0.0.0/16"
    }
    
    variable "private_subnet_cidrs" {
      type        = list(any)
      description = "The CIDR blocks to use for the private subnets"
      default     = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
    }
    
    variable "public_subnet_cidrs" {
      type        = list(any)
      description = "The CIDR blocks to use for the public subnets"
      default     = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
    }
    
    variable "single_nat_gateway" {
      type        = bool
      description = "Single NAT or per NAT for subnet"
      default     = false
    }
    
    #AWS Info
    variable "aws_region" {
      type    = string
      default = "us-east-2"
    }
    
    variable "default_aws_tags" {
      type        = map(string)
      description = "Default tags for AWS"
      default     = {}
    }
    EOF
    Copy to Clipboard Toggle word wrap
  3. Créez le fichier vpc.tf en exécutant la commande suivante:

    $ cat<<-EOF>vpc.tf
    #
    # Copyright (c) 2023 Red Hat, Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #   http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    module "vpc" {
      source  = "terraform-aws-modules/vpc/aws"
      version = "5.1.2"
    
      count = var.create_vpc ? 1 : 0
      name  = var.vpc_name
      cidr  = var.vpc_cidr_block
    
      azs             = local.region_azs
      private_subnets = var.multi_az ? var.private_subnet_cidrs : [var.private_subnet_cidrs[0]]
      public_subnets  = var.multi_az ? var.public_subnet_cidrs : [var.public_subnet_cidrs[0]]
    
      enable_nat_gateway   = true
      single_nat_gateway   = var.single_nat_gateway
      enable_dns_hostnames = true
      enable_dns_support   = true
    
      tags = var.additional_tags
    }
    EOF
    Copy to Clipboard Toggle word wrap

    « vous êtes prêt à initier Terraform.

2.1.3.3. En utilisant Terraform pour créer votre cluster ROSA

Après avoir créé les fichiers Terraform, vous devez initier Terraform pour fournir toutes les dépendances requises. Ensuite, appliquez le plan Terraform.

Important

Il ne faut pas modifier les fichiers d’état Terraform. Consultez Considérations lors de l’utilisation de Terraform

Procédure

  1. Configurez Terraform pour créer vos ressources en fonction de vos fichiers Terraform, exécutez la commande suivante:

    $ terraform init
    Copy to Clipboard Toggle word wrap
  2. Facultatif : Vérifiez que le Terraform que vous avez copié est correct en exécutant la commande suivante:

    $ terraform validate
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Success! The configuration is valid.
    Copy to Clipboard Toggle word wrap

  3. Créez votre cluster avec Terraform en exécutant la commande suivante:

    $ terraform apply
    Copy to Clipboard Toggle word wrap

    L’interface Terraform pose deux questions pour créer votre cluster, similaire à ce qui suit:

    Exemple de sortie

    var.create_vpc
      If you would like to create a new VPC, set this value to 'true'. If you do not want to create a new VPC, set this value to 'false'.
    
      Enter a value:
    
    var.private_cluster
      If you want to create a private cluster, set this value to 'true'. If you want a publicly available cluster, set this value to 'false'.
    
      Enter a value:
    Copy to Clipboard Toggle word wrap

  4. Entrez oui pour procéder ou non pour annuler lorsque l’interface Terraform répertorie les ressources à créer ou à modifier et invite à la confirmation:

    Exemple de sortie

    Plan: 63 to add, 0 to change, 0 to destroy.
    
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    Copy to Clipboard Toggle word wrap

    Dans l’affirmative, votre plan Terraform démarre, créant vos rôles de compte AWS, vos rôles d’opérateur et votre cluster ROSA Classic.

La vérification

  1. Assurez-vous que votre cluster a été créé en exécutant la commande suivante:

    $ rosa list clusters
    Copy to Clipboard Toggle word wrap

    Exemple de sortie montrant l’ID, le nom et l’état d’un cluster

    ID                                NAME          STATE  TOPOLOGY
    27c3snjsupa9obua74ba8se5kcj11269  rosa-tf-demo  ready  Classic (STS)
    Copy to Clipboard Toggle word wrap

  2. Assurez-vous que vos rôles de compte ont été créés en exécutant la commande suivante:

    $ rosa list account-roles
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    I: Fetching account roles
    ROLE NAME                                   ROLE TYPE      ROLE ARN                                                           OPENSHIFT VERSION  AWS Managed
    ROSA-demo-Installer-Role                    Installer      arn:aws:iam::<ID>:role/ROSA-demo-Installer-Role                    4.14               No
    ROSA-demo-Support-Role                      Support        arn:aws:iam::<ID>:role/ROSA-demo-Support-Role                      4.14               No
    ROSA-demo-Worker-Role                       Worker         arn:aws:iam::<ID>:role/ROSA-demo-Worker-Role                       4.14               No
    Copy to Clipboard Toggle word wrap

  3. Assurez-vous que vos rôles d’opérateur ont été créés en exécutant la commande suivante:

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    Exemple de sortie montrant les rôles d’opérateur créés par Terraform

    I: Fetching operator roles
    ROLE PREFIX    AMOUNT IN BUNDLE
    rosa-demo      8
    Copy to Clipboard Toggle word wrap

2.1.3.4. La suppression de votre cluster ROSA avec Terraform

La commande terraform destroy permet de supprimer toutes les ressources créées avec la commande terraform application.

Note

Il ne faut pas modifier vos fichiers Terraform .tf avant de détruire vos ressources. Ces variables sont appariées aux ressources à supprimer.

Procédure

  1. Dans le répertoire où vous avez exécuté la commande d’application terraform pour créer votre cluster, exécutez la commande suivante pour supprimer le cluster:

    $ terraform destroy
    Copy to Clipboard Toggle word wrap

    L’interface Terraform vous invite pour deux variables. Celles-ci doivent correspondre aux réponses que vous avez fournies lors de la création d’un cluster:

    var.create_vpc
      If you would like to create a new VPC, set this value to 'true.' If you do not want to create a new VPC, set this value to 'false.'
    
      Enter a value:
    
    var.private_cluster
      If you want to create a private cluster, set this value to 'true.' If you want a publicly available cluster, set this value to 'false.'
    
      Enter a value:
    Copy to Clipboard Toggle word wrap
  2. Entrez oui pour démarrer la suppression du rôle et du cluster:

    Exemple de sortie

    Plan: 0 to add, 0 to change, 63 to destroy.
    
    Do you really want to destroy all resources?
      Terraform will destroy all your managed infrastructure, as shown above.
      There is no undo. Only 'yes' will be accepted to confirm.
    
      Enter a value: yes
    Copy to Clipboard Toggle word wrap

La vérification

  1. Assurez-vous que votre cluster a été détruit en exécutant la commande suivante:

    $ rosa list clusters
    Copy to Clipboard Toggle word wrap

    Exemple de sortie montrant aucun cluster

    I: No clusters available
    Copy to Clipboard Toggle word wrap

  2. Assurez-vous que les rôles de compte ont été détruits en exécutant la commande suivante:

    $ rosa list account-roles
    Copy to Clipboard Toggle word wrap

    Exemple de sortie montrant aucun rôle de compte créé par Terraform

    I: Fetching account roles
    I: No account roles available
    Copy to Clipboard Toggle word wrap

  3. Assurez-vous que les rôles de l’opérateur ont été détruits en exécutant la commande suivante:

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    Exemple de sortie montrant aucun rôle d’opérateur créé par Terraform

    I: Fetching operator roles
    I: No operator roles available
    Copy to Clipboard Toggle word wrap

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat