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.

  1. 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.

  2. Siga la guía de aprendizaje para crear clústeres de una sola zona y multizona con Terraform.

  3. Opcional: Utilice Terraform para configurar las políticas de acceso de usuario de IAM para el clúster de Red Hat OpenShift.

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.

  1. En el directorio de Terraform, cree un archivo de configuración denominado iam.tf. En el archivo iam.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 el ibm_iam_user_policy y, 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_id El 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.
    roles Una lista separada por comas de los roles de acceso que desea asignar al usuario.
    service Tipo 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, ejecute ibmcloud oc catalog service-marketplace.
    resource_instance_id El 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"
        }
    }
    
  2. Inicialice la CLI de Terraform.

    terraform init
    
  3. 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 Plan de la salida. La salida de ejemplo indica Plan: 1 to add, 0 to change, 0 to destroy porque 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.
    
  4. 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 apply
    

    Salida 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]
    
  5. 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.com
    

    Salida de ejemplo:

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