Affectation de l'accès au cluster à l'aide de Terraform pour Red Hat OpenShift on IBM Cloud

Terraform sur IBM Cloud® permet une mise à disposition prévisible et cohérente des services IBM Cloud afin que vous puissiez générer rapidement des environnements de cloud complexes et à plusieurs niveaux, à la suite des principes IaC (Infrastructure as Code). Comme pour l'utilisation de IBM Cloud CLI ou API et SDK, vous pouvez automatiser le provisionnement, la mise à jour et la suppression de vos ressources Red Hat OpenShift on IBM Cloud en utilisant HashiCorp Configuration Language (HCL).

Vous recherchez une solution Terraform on IBM Cloud® gérée ? Essayez IBM Cloud® Schematics. Avec Schematics, vous pouvez utiliser le langage de script Terraform qui vous est familier, mais vous n'avez pas à vous soucier de la configuration et de la maintenance de la ligne de commande Terraform ou du plug-in IBM Cloud® Provider. Schematics fournit également des modèles Terraform prédéfinis que vous pouvez facilement installer à partir du catalogue IBM Cloud®.

Création d'un cluster Red Hat OpenShift à l'aide de Terraform

Avant de pouvoir attribuer l'accès au cluster à l'aide de Terraform, suivez les étapes pour créer un cluster Red Hat OpenShift à l'aide de Terraform. Si vous disposez déjà d'un cluster, voir Affectation d'accès utilisateur IAM.

Avant de commencer, vérifiez que vous disposez de l'accès requis pour créer et utiliser des ressources Red Hat OpenShift on IBM Cloud.

  1. Suivez le tutoriel d'initiation à Terraform on IBM Cloud® pour installer l'interface de ligne de commande de Terraform et configurer le plug-in IBM Cloud® Provider pour Terraform. Le plug-in extrait les API IBM Cloud® utilisées pour la mise à disposition, la mise à jour ou la suppression des instances de service et des ressources Red Hat OpenShift.

  2. Suivez le tutoriel pour créer des clusters à zone unique et à zones multiples avec Terraform.

  3. Facultatif: utilisez Terraform pour configurer des règles d'accès utilisateur IAM pour votre cluster Red Hat OpenShift.

Affectation de l'accès utilisateur IAM aux clusters Red Hat OpenShift

Vous pouvez utiliser Terraform pour attribuer un accès utilisateur IAM aux clusters Red Hat OpenShift dans un compte IBM Cloud. Pour plus d'informations sur l'utilisation de Terraform avec les politiques IAM, voir la documentation Terraform du fournisseur IBM Cloud.

  1. Dans votre répertoire Terraform, créez un fichier de configuration nommé iam.tf. Dans votre fichier iam.tf, ajoutez les paramètres de configuration pour créer une règle d'accès utilisateur IAM pour un cluster Red Hat OpenShift à l'aide du langage HCL ( HashiCorp Configuration Language). L'exemple de configuration suivant crée le ibm_iam_user_policy, puis affecte la règle à un cluster spécifié. Pour plus d'informations, voir la documentation de Terraform.

    resource "ibm_iam_user_policy" "cluster" {
    ibm_id = "<ibm_id>"
    roles  = ["<access_role_1>, <access_role_2>"]
    
    resources {
        service = "containers-kubernetes"
        resource_instance_id  = "<cluster_name>"
    }
    }
    
    Configuration de règles d'accès IAM avec Terraform
    Ressource Description
    ibm_id L'ID ou l'adresse électronique IBM Cloud de l'utilisateur pour lequel vous souhaitez créer la règle d'accès IAM.
    roles Liste séparée par des virgules des rôles d'accès que vous souhaitez affecter à l'utilisateur.
    service Le type de service auquel s'applique la politique d'accès. Entrez "openshift" pour les clusters Red Hat OpenShift. Pour obtenir la liste complète des types de service applicables, exécutez ibmcloud oc catalog service-marketplace.
    resource_instance_id ID ou nom du cluster.

    Exemple de fichier de configuration:

    resource "ibm_iam_user_policy" "test_policy" {
        ibm_id = "ibm_id@ibm.com"
        roles  = ["Viewer", "Editor", "Administrator"]
    
        resources {
            service = "containers-kubernetes"
            resource_instance_id  = "my-cluster"
        }
    }
    
  2. Initialisez l'interface de ligne de commande de Terraform.

    terraform init
    
  3. Créez un plan d'exécution Terraform et examinez la sortie. Le plan d'exécution Terraform résume toutes les actions exécutées pour créer le cluster Red Hat OpenShift dans votre compte. Notez la section Plan de la sortie. L'exemple de sortie indique Plan: 1 to add, 0 to change, 0 to destroy car le fichier de configuration crée une règle d'accès utilisateur IAM.

    Terraform used the selected providers to generate the following execution plan. Resource actions are
    indicated with the following symbols:
    + create
    
    Terraform will perform the following actions:
    
    # ibm_iam_user_policy.test_policy will be created
    + resource "ibm_iam_user_policy" "test_policy" {
        + account_management = false
        + ibm_id             = "ibm_id@ibm.com"
        + id                 = (known after apply)
        + roles              = [
            + "Viewer",
            + "Editor",
            + "Administrator",
            ]
    
        + resources {
            + service = "containers-kubernetes"
            }
        }
    
    Plan: 1 to add, 0 to change, 0 to destroy.
    
  4. Appliquez le fichier de configuration pour créer la règle d'accès. L'opération peut prendre quelques secondes. Dans la sortie, notez le numéro d'ID de règle après l'adresse électronique IBM de l'utilisateur.

    terraform apply
    

    Exemple de sortie :

    ibm_iam_user_policy.test_policy: Creating...
    ibm_iam_user_policy.test_policy: Creation complete after 2s [id=ibm_id@ibm.com/f81b161f-e1db-4084-8b28-cfcbe88fec72]
    
  5. Vérifiez que la règle d'accès IAM a été créée en exécutant la commande et en recherchant l'ID de règle que vous avez précédemment noté.

    ibmcloud iam user-policies ibm_id@ibm.com
    

    Exemple de sortie :

    Policy ID:   f81b161f-e1db-4084-8b28-cfcbe88fec72   
    Roles:       Viewer, Editor, Administrator   
    Resources:                        
                Service Name       containers-kubernetes   
                Service Instance   my-cluster