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.
-
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.
-
Siga o tutorial para criar clusters únicos e multizona com o Terraform.
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.
-
Em seu diretório do Terraform, crie um arquivo de configuração denominado
iam.tf. Em seu arquivoiam.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 oibm_iam_user_policye, 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_idO 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 rolesUma lista separada por vírgula das funções de acesso que você deseja designar ao usuário. serviceO 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, executeibmcloud oc catalog service-marketplaceresource_instance_idO 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" } } -
Inicialize a CLI do Terraform.
terraform init -
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
Planda saída A saída de exemplo indicaPlan: 1 to add, 0 to change, 0 to destroyporque o arquivo de configuração cria uma política de acesso de usuário do IAMTerraform 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 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 applySaí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] -
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.comSaída de exemplo:
Policy ID: f81b161f-e1db-4084-8b28-cfcbe88fec72 Roles: Viewer, Editor, Administrator Resources: Service Name containers-kubernetes Service Instance my-cluster