Configurando o Terraform para Code Engine

O Terraform em IBM Cloud® permite a criação previsível e consistente de serviços IBM Cloud para que você possa criar rapidamente ambientes de nuvem complexos e com várias camadas seguindo os princípios da Infraestrutura como Código ( IaC ). De modo semelhante ao uso da CLI ou da API e dos SDKs do IBM Cloud, você pode automatizar a criação, a atualização e a exclusão das cargas de trabalho do Code Engine usando a HCL ( HashiCorp Configuration Language).

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

Instalando o Terraform e configurando recursos para Code Engine

Antes de poder criar cargas de trabalho com o Terraform, certifique-se de ter concluído os pré-requisitos a seguir.

  • Certifique-se de que você tenha o acesso necessário para criar e trabalhar com os recursos do site Code Engine.
  • Instale a CLI do Terraform e configure o plug-in do provedor IBM Cloud para o Terraform. Para obter mais informações, veja o tutorial para Introdução ao Terraform no IBM Cloud®. O plug-in abstrai as APIs do IBM Cloud que são usadas para concluir esta tarefa.
  • Crie um arquivo de configuração do Terraform que seja denominado main.tf. Nesse arquivo, você define recursos usando o HashiCorp Configuration Language. Para obter mais informações, consulte a documentação do Terraform.
  1. Crie um projeto Code Engine usando o argumento de recurso code_engine_project em seu arquivo main.tf.

    data "ibm_resource_group" "resource_group" {
       name = "<your_resource_group_name>"
    }
    
    resource "ibm_code_engine_project" "code_engine_project_instance" {
       name = "<your_project_name>"
       resource_group_id = data.ibm_resource_group.resource_group.id
    }
    
  2. Após concluir a construção do arquivo de configuração, inicialize a CLI do Terraform. Para obter mais informações, consulte Inicializando diretórios de trabalho.

    terraform init
    
  3. Provisione o projeto a partir do arquivo main.tf Para obter mais informações, consulte Provisioning Infrastructure with Terraform.

    1. Execute o terraform plan para gerar um plano de execução do Terraform para visualizar as ações propostas

      terraform plan
      
      data.ibm_resource_group.resource_group: Reading...
      data.ibm_resource_group.resource_group: Read complete after 1s [id=<your_resource_group_id>]
      
      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_code_engine_project.code_engine_project_instance will be created
         + resource "ibm_code_engine_project" "code_engine_project_instance" {
            + account_id        = (known after apply)
            + created_at        = (known after apply)
            + crn               = (known after apply)
            + href              = (known after apply)
            + id                = (known after apply)
            + name              = "<your_project_name>"
            + project_id        = (known after apply)
            + region            = (known after apply)
            + resource_group_id = "<your_resource_group_id>"
            + resource_type     = (known after apply)
            + status            = (known after apply)
         }
      
      Plan: 1 to add, 0 to change, 0 to destroy.
      
    2. Execute terraform apply para criar os recursos definidos no plano.

      terraform apply
      
      data.ibm_resource_group.resource_group: Reading...
      data.ibm_resource_group.resource_group: Read complete after 1s [id=<your_resource_group_id>]
      
      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_code_engine_project.code_engine_project_instance will be created
         + resource "ibm_code_engine_project" "code_engine_project_instance" {
            + account_id        = (known after apply)
            + created_at        = (known after apply)
            + crn               = (known after apply)
            + href              = (known after apply)
            + id                = (known after apply)
            + name              = "my-project"
            + project_id        = (known after apply)
            + region            = (known after apply)
            + resource_group_id = "5218b5c8c749454b9fc8be28f32e458e"
            + resource_type     = (known after apply)
            + status            = (known after apply)
         }
      
      Plan: 1 to add, 0 to change, 0 to destroy.
      
      Changes to Outputs:
         + ibm_code_engine_project = {
            + account_id        = (known after apply)
            + created_at        = (known after apply)
            + crn               = (known after apply)
            + href              = (known after apply)
            + id                = (known after apply)
            + name              = "my-project"
            + project_id        = (known after apply)
            + region            = (known after apply)
            + resource_group_id = "5218b5c8c749454b9fc8be28f32e458e"
            + resource_type     = (known after apply)
            + status            = (known after apply)
            + timeouts          = null
         }
      
      Do you want to perform these actions?
         Terraform will perform the actions described above.
         Only 'yes' will be accepted to approve.
      
         Enter a value: yes
      
      ibm_code_engine_project.code_engine_project_instance: Creating...
      ibm_code_engine_project.code_engine_project_instance: Still creating... [10s elapsed]
      ibm_code_engine_project.code_engine_project_instance: Still creating... [20s elapsed]
      ibm_code_engine_project.code_engine_project_instance: Still creating... [30s elapsed]
      ibm_code_engine_project.code_engine_project_instance: Creation complete after 30s [id=13468527-84sa-619g-gr99-168fe364w98f]
      
      Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
      
      Outputs:
      
      ibm_code_engine_project = {
         "account_id" = "<your_account_id>"
         "created_at" = "2023-03-16T10:44:24.150838188Z"
         "crn" = "crn:v1:bluemix:public:codeengine:eu-de:a/dc5e6392e5d14021846031b83e95f190:13468527-84sa-619g-gr99-168fe364w98f::"
         "href" = "https://api.eu-de.codeengine.cloud.ibm.com/v2/projects/13468527-84sa-619g-gr99-168fe364w98f"
         "id" = "13468527-84sa-619g-gr99-168fe364w98f"
         "name" = "my-project"
         "project_id" = "<your_project_id>"
         "region" = "eu-de"
         "resource_group_id" = "<your_resource_group_id>"
         "resource_type" = "project_v2"
         "status" = "active"
         "timeouts" = null /* object */
      }
      
  4. É possível ver seu projeto na lista de projetos no Console do Code Engine.. Como alternativa, é possível ver seu projeto na IBM Cloud lista de recursos, expandindo a categoria Containers e procurando o nome do projeto.

O que vem a seguir?

Agora que você criou com sucesso seu primeiro projeto Code Engine com o Terraform no IBM Cloud, é possível criar recursos adicionais.

Recursos

Origens de dados

Para obter mais informações sobre o IBM Cloud e o Terraform, consulte IBM Cloud.