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.
-
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.
-
Segui l'esercitazione per creare cluster singoli e multizona con Terraform.
-
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.
-
Nella tua directory Terraform crea un file di configurazione denominato
iam.tf. Nel tuo fileiam.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 ilibm_iam_user_policye 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_idL'ID o l'indirizzo email di IBM Cloud dell'utente per cui vuoi creare la politica di accesso IAM. rolesUn elenco separato da virgole dei ruoli di accesso che vuoi assegnare all'utente. serviceIl 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, eseguireibmcloud oc catalog service-marketplace.resource_instance_idL'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" } } -
Inizializza la CLI Terraform.
terraform init -
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
Plandell'output. L'output di esempio indicaPlan: 1 to add, 0 to change, 0 to destroyperché 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. -
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 applyOutput 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] -
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.comOutput di esempio:
Policy ID: f81b161f-e1db-4084-8b28-cfcbe88fec72 Roles: Viewer, Editor, Administrator Resources: Service Name containers-kubernetes Service Instance my-cluster