Configurando o Terraform para Continuous Delivery

Continuous Delivery será descontinuado nas seguintes regiões em 12 de fevereiro de 2027: au-syd, ca-tor, us-east. O Code Risk Analyzer também será descontinuado em todas as regiões nessa data. Se uma região não apresentar uso ativo desses recursos, os recursos nessa região poderão ser descontinuados mais cedo e deixar de aceitar novas instâncias. Saiba mais

O Terraform no IBM Cloud® permite a criação previsível e consistente de serviços IBM Cloud, para que você possa construir rapidamente ambientes complexos de nuvem em várias camadas, seguindo os princípios da Infraestrutura como Código ( IaC ). Da mesma forma que ao usar a CLI do IBM Cloud ou a API e os SDKs, você pode automatizar a criação, a atualização e a exclusão de suas instâncias do IBM Cloud® Continuous Delivery usando a Linguagem de Configuração do HashiCorp (HCL).

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 já está familiarizado, sem precisar se preocupar com a configuração e a manutenção da linha de comando do Terraform e do plug-in do provedor IBM Cloud®. O Schematics também oferece modelos pré-definidos do Terraform que você pode instalar facilmente a partir do catálogo IBM Cloud®.

Instalando o Terraform e configurando recursos para Continuous Delivery

Antes de iniciar, certifique-se de ter o acesso necessário para criar e trabalhar com recursos do continuous-delivery e o acesso necessário para criar e trabalhar com recursos do toolchain.

  1. Siga o tutorial de introdução do Terraform on IBM Cloud para instalar a CLI do Terraform e configurar o plug-in do IBM Cloud Provedor para Terraform. O plug-in abstrai as APIs do IBM Cloud utilizadas para criar, atualizar ou excluir instâncias do serviço continuous-delivery e recursos toolchain.

  2. Crie um arquivo de configuração do Terraform que seja denominado main.tf. Neste arquivo, adicione a configuração para criar uma instância do serviço Continuous Delivery e para atribuir a um usuário uma política de acesso no Identity and Access Management (IAM) para essa instância, utilizando HCL. Você também inclui a configuração para criar um recurso de cadeia de ferramentas básico no mesmo grupo de recursos e região que a instância de serviço do Continuous Delivery e para designar a um usuário uma política de acesso no IAM para esse recurso. A cadeia de ferramentas e a instância de serviço do Continuous Delivery que governa o uso da cadeia de ferramentas estão no mesmo grupo de recursos e região. Para obter mais informações sobre como trabalhar com o arquivo de configuração do Terraform, consulte a Documentação do Terraform

    A instância de serviço Continuous Delivery no exemplo a seguir é denominada my_cd. Ele é criado com o plano de precificação profissional no grupo de recursos default e na região us-south. O usuário user1@ibm.com é designado à função Gerenciador na política de acesso do IAM para a instância de serviço.

    O recurso da cadeia de ferramentas é denominado my_toolchain Ele é criado no grupo de recursos default e na região especificada no bloco provider "ibm" em seu arquivo provider.tf. Para este exemplo, o region em provider.tf é configurado como us-south O usuário user2@ibm.com é designado à função de Editor na política de acesso do IAM para o recurso da cadeia de ferramentas

    data "ibm_resource_group" "default_rg" {
      name = "default"
    }
    resource "ibm_resource_instance" "cd_instance" {
      name              = "my_cd"
      service           = "continuous-delivery"
      plan              = "professional"
      location          = "us-south"
      resource_group_id = data.ibm_resource_group.default_rg.id
    }
    resource "ibm_iam_user_policy" "cd_policy" {
      ibm_id = "user1@ibm.com"
      roles  = ["Manager"]
      resources {
        service              = "continuous-delivery"
        resource_instance_id = element(split(":", ibm_resource_instance.cd_instance.id), 7)
      }
    }
    resource "ibm_cd_toolchain" "toolchain_instance" {
      name              = "my_toolchain"
      resource_group_id = data.ibm_resource_group.default_rg.id
    }
    resource "ibm_iam_user_policy" "toolchain_policy" {
      ibm_id = "user2@ibm.com"
      roles  = ["Editor"]
      resources {
        service              = "toolchain"
        resource_instance_id = ibm_cd_toolchain.toolchain_instance.id
      }
    }
    
  3. Inicialize a CLI do Terraform.

    terraform init
    
  4. Crie um plano de execução do Terraform. O plano de execução do Terraform resume todas as ações que devem ser executadas para criar a instância de serviço, o recurso da cadeia de ferramentas e as políticas de acesso do IAM associadas do Continuous Delivery em sua conta.

    terraform plan
    
  5. Crie a instância de serviço Continuous Delivery, o recurso da cadeia de ferramentas e as políticas de acesso do IAM associadas em sua conta no IBM Cloud.

    terraform apply
    
  6. No Lista de recursos IBM Cloud, expanda a seção Ferramentas do desenvolvedor e, em seguida, selecione a instância de serviço do Continuous Delivery que você criou e anote o ID da instância.

  7. Verifique se a política de acesso foi atribuída com sucesso. Para obter mais informações sobre como designar políticas de acesso, consulte Revisando acesso designado no console.

  8. No Lista de recursos IBM Cloud, expanda a seção Ferramentas do desenvolvedor, em seguida, selecione o recurso da cadeia de ferramentas que você criou e anote o ID da instância.

  9. Verifique se a política de acesso foi atribuída com sucesso.

Ativação de logs da plataforma para uma instância de serviço Continuous Delivery com o Terraform

O serviço Continuous Delivery oferece suporte à capacidade de enviar os registros do Tekton PipelineRun como registros da plataforma. Isso permite receber em sua conta todos os registros do Tekton PipelineRun da região e do grupo de recursos atuais, e você pode configurar sua conta para encaminhar esses registros recebidos para um destino, como IBM Cloud Logs.

  1. Em seu arquivo de configuração do Terraform, ajuste a configuração para incluir o parâmetro platform_logging_pipelineruns_enabled com um valor de true.

    data "ibm_resource_group" "group" {
      name = "default"
    }
    resource "ibm_resource_instance" "cd_instance" {
      name              = "my_cd"
      service           = "continuous-delivery"
      plan              = "professional"
      location          = "us-south"
      resource_group_id = data.ibm_resource_group.default_rg.id
      parameters = {
        platform_logging_pipelineruns_enabled = "true"
      }
    }
    

O que vem a seguir?

Agora que você criou com sucesso sua primeira instância do serviço “ Continuous Delivery ” e o recurso “toolchain” usando o Terraform em IBM Cloud, você pode escolher entre as seguintes tarefas:

Para obter mais informações sobre os recursos e origens de dados do provedor IBM Cloud, consulte a documentação do Terraform Registry.