Assegnazione dell'accesso al cluster utilizzando Terraform per Red Hat OpenShift on IBM Cloud

Terraform su IBM Cloud® consente un provisioning prevedibile e coerente dei servizi IBM Cloud in modo da poter costruire rapidamente ambienti cloud complessi e multilivello seguendo i principi di Infrastructure as Code ( IaC ). Analogamente all'uso della CLI o dell'API e degli SDK di IBM Cloud, è possibile automatizzare il provisioning, l'aggiornamento e l'eliminazione delle risorse di Red Hat OpenShift on IBM Cloud utilizzando HashiCorp Configuration Language (HCL).

Cercate una soluzione Terraform gestita su IBM Cloud®? Prova IBM Cloud® Schematics. Con Schematics si può usare il linguaggio di scripting Terraform che si conosce, ma non ci si deve preoccupare di configurare e mantenere la riga di comando di Terraform o il plug-in IBM Cloud® Provider. Schematics fornisce anche modelli Terraform predefiniti che si possono installare facilmente dal catalogo IBM Cloud®.

Creazione di un cluster Red Hat OpenShift utilizzando Terraform

Prima di poter assegnare l'accesso al cluster usando Terraform, seguire i passi per creare un cluster Red Hat OpenShift usando Terraform. Se hai già un cluster, vedi Assegnazione dell'accesso utente IAM.

Prima di iniziare, assicurati di disporre dell'accesso richiesto per creare e utilizzare le risorse Red Hat OpenShift on IBM Cloud.

  1. Segui l'esercitazione introduttiva di Terraform on IBM Cloud® per installare la CLI Terraform e configurare il plug-in Provider IBM Cloud® per Terraform. Il plug-in astrae le API IBM Cloud® utilizzate per eseguire il provisioning, l'aggiornamento o l'eliminazione delle risorse e delle istanze del servizio Red Hat OpenShift.

  2. Segui l'esercitazione per creare cluster singoli e multizona con Terraform.

  3. Facoltativo: utilizza Terraform per configurare le politiche di accesso utente IAM per il tuo cluster Red Hat OpenShift.

Assegnazione dell'accesso utente IAM ai cluster Red Hat OpenShift

Si può usare Terraform per assegnare l'accesso utente IAM ai cluster Red Hat OpenShift in un account IBM Cloud. Per ulteriori informazioni sull'uso di Terraform con le politiche IAM, consultare la documentazione del provider Terraform di IBM Cloud.

  1. Nella tua directory Terraform crea un file di configurazione denominato iam.tf. Nel tuo file iam.tf, aggiungi i parametri di configurazione per creare una politica di accesso utente IAM per un cluster Red Hat OpenShift utilizzando l'HCL (Configuration Language) HashiCorp. La seguente configurazione di esempio crea il ibm_iam_user_policy e quindi assegna la politica a un cluster specificato. Per ulteriori informazioni, vedi la documentazione 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>"
    }
    }
    
    Configurazione delle politiche di accesso IAM con Terraform
    Risorsa Descrizione
    ibm_id L'ID o l'indirizzo email di IBM Cloud dell'utente per cui vuoi creare la politica di accesso IAM.
    roles Un elenco separato da virgole dei ruoli di accesso che vuoi assegnare all'utente.
    service Il tipo di servizio a cui si applica il criterio di accesso. Immetti "openshift" per Red Hat OpenShift cluster. Per un elenco completo dei tipi di servizio applicabili, eseguire ibmcloud oc catalog service-marketplace.
    resource_instance_id L'ID o il nome del cluster.

    File di configurazione di esempi:

    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. Inizializza la CLI Terraform.

    terraform init
    
  3. Creare un piano di esecuzione Terraform ed esaminare l'output. Il piano di esecuzione Terraform riepiloga tutte le azioni che vengono eseguite per creare il cluster Red Hat OpenShift nell'account. Notare la sezione Plan dell'output. L'output di esempio indica Plan: 1 to add, 0 to change, 0 to destroy perché il file di configurazione crea una politica di accesso utente 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. Applicare il file di configurazione per creare la politica di accesso. Il completamento dell'operazione potrebbe richiedere alcuni secondi. Nell'output, prendi nota del numero ID della politica dopo l'email IBM dell'utente.

    terraform apply
    

    Output di esempio:

    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. Verifica che la politica di accesso IAM sia stata creata con esito positivo eseguendo il comando e ricercando l'ID della politica di cui hai precedentemente preso nota.

    ibmcloud iam user-policies ibm_id@ibm.com
    

    Output di esempio:

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