Asignación de acceso de clúster utilizando Terraform para Red Hat OpenShift on IBM Cloud
Terraform en IBM Cloud® permite un suministro predecible y coherente de servicios de IBM Cloud para que pueda crear rápidamente entornos de nube complejos y de varios niveles siguiendo los principios de Infraestructura como Código (IaC). Al igual que con la CLI o la API y los SDK de IBM Cloud, puede automatizar el aprovisionamiento, la actualización y la eliminación de sus recursos de Red Hat OpenShift on IBM Cloud utilizando HashiCorp Configuration Language (HCL).
¿Está buscando un Terraform gestionado en la solución DE IBM Cloud® ? Pruebe IBM Cloud® Schematics. Con Schematics, puede utilizar el lenguaje de scripting de Terraform con el que esté familiarizado, pero no tiene que preocuparse de configurar y mantener la línea de comando de Terraform o el complemento IBM Cloud® Provider. Schematics también proporciona plantillas predefinidas de Terraform que puede instalar fácilmente desde el catálogo IBM Cloud®.
Creación de un clúster de Red Hat OpenShift utilizando Terraform
Antes de poder asignar el acceso al clúster mediante Terraform, siga los pasos para crear un clúster Red Hat OpenShift mediante Terraform. Si ya tiene un clúster, consulte Asignación de acceso de usuario de IAM.
Antes de comenzar, asegúrese de que tiene el acceso necesario para crear y trabajar con recursos de Red Hat OpenShift on IBM Cloud.
-
Siga la Guía de aprendizaje de iniciación de Terraform en IBM Cloud® para instalar la CLI de Terraform y configurar el plug-in de proveedor de IBM Cloud® para Terraform. El plugin sintetiza las API de IBM Cloud® que se utilizan para suministrar, actualizar o suprimir instancias de servicio y recursos de Red Hat OpenShift.
-
Siga la guía de aprendizaje para crear clústeres de una sola zona y multizona con Terraform.
Asignación de acceso de usuario de IAM a clústeres de Red Hat OpenShift
Puede utilizar Terraform para asignar acceso de usuario IAM para clústeres Red Hat OpenShift en una cuenta IBM Cloud. Para obtener más información sobre el uso de Terraform con políticas de IAM, consulte la documentación del proveedor Terraform en IBM Cloud.
-
En el directorio de Terraform, cree un archivo de configuración denominado
iam.tf. En el archivoiam.tf, añada los parámetros de configuración para crear una política de acceso de usuario de IAM para un clúster Red Hat OpenShift utilizando el lenguaje de configuración (HCL) HashiCorp. La siguiente configuración de ejemplo crea elibm_iam_user_policyy, a continuación, asigna la política a un clúster especificado. Para más información, consulte la documentación 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>" } }Configuración de políticas de acceso de IAM con Terraform Recurso Descripción ibm_idEl ID o la dirección de correo electrónico de IBM Cloud del usuario para el que desea crear la política de acceso de IAM. rolesUna lista separada por comas de los roles de acceso que desea asignar al usuario. serviceTipo de servicio al que se aplica la política de acceso. Especifique "openshift"para los clústeres de Red Hat OpenShift. Para obtener una lista completa de los tipos de servicio aplicables, ejecuteibmcloud oc catalog service-marketplace.resource_instance_idEl ID o nombre del clúster. Ejemplo de fichero de configuración:
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" } } -
Inicialice la CLI de Terraform.
terraform init -
Cree un plan de ejecución de Terraform y revise la salida. El plan de ejecución de Terraform resume todas las acciones que se ejecutan para crear el clúster Red Hat OpenShift en su cuenta. Anote la sección
Plande la salida. La salida de ejemplo indicaPlan: 1 to add, 0 to change, 0 to destroyporque el archivo de configuración crea una política de acceso de usuario de 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. -
Aplique el archivo de configuración para crear la política de acceso. Puede tardar unos segundos en completarse. En la salida, anote el número de ID de política después del correo electrónico de IBM del usuario.
terraform applySalida de ejemplo:
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] -
Verifique que la política de acceso de IAM se ha creado correctamente ejecutando el mandato y buscando el ID de política que ha anotado anteriormente.
ibmcloud iam user-policies ibm_id@ibm.comSalida de ejemplo:
Policy ID: f81b161f-e1db-4084-8b28-cfcbe88fec72 Roles: Viewer, Editor, Administrator Resources: Service Name containers-kubernetes Service Instance my-cluster