Designando acesso ao cluster usando o Terraform para Red Hat OpenShift on IBM Cloud

O Terraform na IBM Cloud® permite o provisionamento previsível e consistente de serviços IBM Cloud para que você possa criar rapidamente ambientes de nuvem complexos e multicamadas seguindo os princípios de infraestrutura como código (IaC). De modo semelhante ao uso da CLI ou da API e dos SDKs do IBM Cloud, você pode automatizar o provisionamento, a atualização e a exclusão dos recursos do Red Hat OpenShift on IBM Cloud usando a HCL ( HashiCorp Configuration Language).

Procurando por uma solução Terraform gerenciada no IBM Cloud®? Experimente o IBM Cloud® Schematics. Com o Schematics, você pode usar a linguagem de script do Terraform com a qual está familiarizado, mas não precisa se preocupar em configurar e manter a linha de comando do Terraform ou o plug-in do provedor IBM Cloud®. O Schematics também fornece modelos pré-definidos do Terraform que podem ser facilmente instalados a partir do catálogo IBM Cloud®.

Criando um cluster do Red Hat OpenShift usando o Terraform

Antes de atribuir acesso ao cluster usando o Terraform, siga as etapas para criar um cluster Red Hat OpenShift usando o Terraform. Se você já tiver um cluster, consulte Designando o acesso de usuário do IAM

Antes de começar, certifique-se de que você tenha o acesso necessário para criar e trabalhar com recursos do Red Hat OpenShift on IBM Cloud.

  1. Siga o tutorial de informações iniciar do Terraform no IBM Cloud® para instalar a CLI do Terraform e configurar o plug-in do IBM Cloud® Provider para Terraform. O plug-in abstrai as APIs do IBM Cloud® que são usadas para provisionar, atualizar ou excluir instâncias de serviços e recursos do Red Hat OpenShift.

  2. Siga o tutorial para criar clusters únicos e multizona com o Terraform.

  3. Opcional: use o Terraform para configurar políticas de acesso de usuário do IAM para seu cluster do Red Hat OpenShift.

Designando acesso de usuário do IAM a clusters do Red Hat OpenShift

Você pode usar o Terraform para atribuir acesso de usuário IAM para clusters Red Hat OpenShift em uma conta IBM Cloud. Para obter mais informações sobre o uso do Terraform com políticas de IAM, consulte a documentação do Terraform do provedor IBM Cloud.

  1. Em seu diretório do Terraform, crie um arquivo de configuração denominado iam.tf. Em seu arquivo iam.tf, inclua os parâmetros de configuração para criar uma política de acesso de usuário do IAM para um cluster Red Hat OpenShift usando o HashiCorp Configuration Language (HCL). A configuração de exemplo a seguir cria o ibm_iam_user_policy e, em seguida, designa a política a um cluster especificado Para obter mais informações, consulte a documentação do 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>"
    }
    }
    
    Configurando políticas de acesso do IAM com o Terraform
    Recurso Descrição
    ibm_id O ID do IBM Cloud ou o endereço de e-mail do usuário para o qual você deseja criar a política de acesso do IAM
    roles Uma lista separada por vírgula das funções de acesso que você deseja designar ao usuário.
    service O tipo de serviço ao qual a política de acesso se aplica. Insira "openshift" para clusters do Red Hat OpenShift. Para obter uma lista completa de tipos de serviço aplicáveis, execute ibmcloud oc catalog service-marketplace
    resource_instance_id O ID ou nome do cluster.

    Exemplo de arquivo de configuração:

    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. Inicialize a CLI do Terraform.

    terraform init
    
  3. Crie um plano de execução Terraform e revise a saída. O plano de execução do Terraform resume todas as ações executadas para criar o cluster Red Hat OpenShift em sua conta. Anote a seção Plan da saída A saída de exemplo indica Plan: 1 to add, 0 to change, 0 to destroy porque o arquivo de configuração cria uma política de acesso de usuário do 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 o arquivo de configuração para criar a política de acesso Isso pode levar alguns segundos para ser concluído. Na saída, observe o número do ID da política após o e-mail IBM do usuário.

    terraform apply
    

    Saída de exemplo:

    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 se a política de acesso do IAM foi criada com sucesso executando o comando e procurando o ID de política anotado anteriormente.

    ibmcloud iam user-policies ibm_id@ibm.com
    

    Saída de exemplo:

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