Skip to content

GitHub Actions para gerenciamento de clusters OKE com Terraform.

Notifications You must be signed in to change notification settings

Rapha-Borges/oke-action

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraform OKE Action

Esse repositório contém três Action do GitHub responsáveis pelo plan, apply e destroy de um cluster OKE na Oracle Cloud utilizando Terraform. O projeto de exemplo do Terraform foi criado no repositório OKE-FREE

Pré-requisitos

  • Fork desse repositório e permissão para executar Actions. Na aba Settings -> Actions -> General -> Allow all actions and reusable workflows.

  • Informações de login e API Key da Oracle Cloud, um par de chaves SSH e um bucket no OCI.

  • Terraform ou OpenTofu instalado.

  • OCI CLI instalado e configurado com as credenciais da sua conta Oracle Cloud.

Obtendo as informações de login e API Key da Oracle Cloud

  1. Acesse o console da Oracle Cloud e vá para a página API Keys nos detalhes do usuário.

  2. Clique em "Add API Key" e faça o download da Private Key.

  3. Clique em Add e copie as informações de Tenancy OCID, User OCID, Fingerprint e Region.

Criando um par de chaves SSH

  1. Execute o comando ssh-keygen -t rsa -b 4096 -f {path/to/save/key} para criar um par de chaves SSH.

Criando um bucket no OCI

  1. Em Compartments, clique em Create Compartment e crie um compartimento, diferente do que vamos utilizar para o cluster OKE.

  2. em Object Storage & Archive Storage, selecione o compartimento criado e clique em Create Bucket e então Create para criar um bucket com as configurações padrão.

  3. Em Pre-authenticated Requests, clique em Create Pre-authenticated Request.

  4. Selecione Object como Pre-authenticated Request Target e passe o nome terraform.tfstate.

  5. Marque a opção Permit object read and writes e clique em Create.

  6. Copie o link gerado no campo Pre-Authenticated Request URL e salve, ele será utilizado como variável de ambiente.

Configuração

Agora que você tem todas as informações necessárias, será necessário configurar o repositório para utilizar as variáveis de ambiente.

  1. Em Settings do repositório, clique em Secrets and Variables, após isso clique em Actions.

  2. Clique em New repository secret e adicione as seguintes variáveis de ambiente:

  • OCI_REGION: Região da Oracle Cloud onde o cluster será criado.

  • OCI_TENANCY_OCID: OCID do tenancy.

  • OCI_USER_OCID: OCID do usuário.

  • OCI_FINGERPRINT: Fingerprint da chave API.

  • OCI_KEY_FILE: Conteúdo da chave .pem privada obtida no download da API Key.

  • SSH_PUBLIC_KEY: Conteúdo da chave ssh pública (.pub).

  • TF_BUCKET: Link do bucket no OCI.

Utilizando o Terraform Plan

Toda vez que for feito um push no repositório, nas branches main e feature, a Action de plan será executada automaticamentem, sendo possível visualizar o plano de execução no console.

O Plan pode ser executado manualmente na aba Actions do repositório a qualquer momento. Isso é útil para validar as mudanças antes de aplicá-las, sem a necessidade de fazer um push.

  • Atenção: Sempre aguarde o fim do Plan e valide o plano de execução antes de aplicar as mudanças.

Utilizando o Terraform Apply

A Action de apply é manual e pode ser executada na aba Actions do repositório. Ela irá criar automaticamente, após o início da execução, o cluster OKE na Oracle Cloud, conforme o Plan gerado no último push.

  • Atenção: Antes de executar o Apply, valide que nenhuma outra Action está em execução, pois isso pode "quebrar" o arquivo de estado do Terraform.

Utilizando o Terraform Destroy

A Action de destroy é manual e pode ser executada na aba Actions do repositório. Ela irá destruir automaticamente, após o início da execução, o cluster OKE na Oracle Cloud.

  • Atenção: Antes de executar o Destroy, valide que nenhuma outra Action está em execução, pois isso pode "quebrar" o arquivo de estado do Terraform.

Configurando o OCI CLI

Para configurar o OCI CLI, execute o comando oci setup config e siga as instruções.

Criando o Kubeconfig

Após a execução do Apply, será necessário criar o arquivo kubeconfig para acessar o cluster OKE.

  1. Acesse o console da Oracle Cloud e vá para a página Clusters.

  2. Selecione o Compartment onde o cluster foi criado e clique no nome do cluster.

  3. Clique em Access Cluster -> Local Access e siga as instruções para criar o arquivo kubeconfig de um um public endpoint.

Observações sobre o Terraform

  • O projeto está configurado para ser executado na região sa-saopaulo-1 da Oracle Cloud.

  • O cluster OKE será criado com 1 node pool e 2 nodes.

  • Cada node possui 2 CPU e 12GB de memória e utilizam a arquitetura arch64 (ARM).

  • A versão do Kubernetes é a v1.29.1.

  • Qualquer alteração nas configurações do cluster OKE pode ser feita no arquivo variables.tf.

About

GitHub Actions para gerenciamento de clusters OKE com Terraform.

Topics

Resources

Stars

Watchers

Forks

Languages