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.
-
Crie um projeto Code Engine usando o argumento de recurso
code_engine_projectem seu arquivomain.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 } -
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 -
Provisione o projeto a partir do arquivo
main.tfPara obter mais informações, consulte Provisioning Infrastructure with Terraform.-
Execute o
terraform planpara gerar um plano de execução do Terraform para visualizar as ações propostasterraform plandata.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. -
Execute
terraform applypara criar os recursos definidos no plano.terraform applydata.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 */ }
-
-
É 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
Containerse 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
ibm_code_engine_allowed_outbound_destinationibm_code_engine_appibm_code_engine_bindingibm_code_engine_buildibm_code_engine_config_mapibm_code_engine_domain_mappingibm_code_engine_functionibm_code_engine_jobibm_code_engine_projectibm_code_engine_secret
Para obter mais informações sobre o IBM Cloud e o Terraform, consulte IBM Cloud.