Skip to content

basedosdados/iac

Repository files navigation

☁️ iac

Contributors Forks Stargazers Issues MIT License

Sumário
  1. Sobre o projeto
  2. Desenvolvimento local
  3. Uso
  4. Roadmap
  5. Contribuição
  6. Licença
  7. Contato

Sobre o projeto

Gerenciamento da infraestrutura dos serviços utilizados do Google Cloud Platform e das aplicações desenvolvidas/implantadas em nosso cluster Kubernetes, bem como as suas respectivas configurações.

(voltar ao início)

Construído com

GCP GitHub Actions Kubernetes Terraform

(voltar ao início)

Desenvolvimento local

Requisitos

  • Docker
  • Docker Compose
  • kubectl
  • Credenciais:
    • Terraform: Uma conta de serviço do ambiente GCP com o papel de "Editor"
    • Kubernetes: Uma conta de serviço do ambiente GCP com o papel de "Kubernetes Engine Admin"

(voltar ao início)

Procedimentos

  1. Clone o repositório e acesse a pasta do projeto

     git clone https://github.com/basedosdados/iac.git && cd iac
  2. Execute o comando abaixo para iniciar o ambiente de desenvolvimento

     make create-dev

    Dica: Consulte o arquivo Makefile para mais comandos.

Terraform

  1. Adicione o arquivo.json de credencial no diretório terraform/.

  2. Note a existência do arquivo .env.example dentro do diretório terraform. Faça uma cópia do mesmo para um novo arquivo, nomeado .env e preencha as variáveis de ambiente com os valores correspondentes.

    cp terraform/.env.example terraform/.env

    Obs.: No caso do desenvolvimento local é criado um container docker, baseado na imagem do Terraform que faz uso do arquivo .env para definir as variáveis de ambiente necessárias para a execução do Terraform. Extinguindo a necessidade de instalar o Terraform localmente.

  3. Carregue as variáveis de ambiente do arquivo .env no terminal atual.

    source terraform/.env
  4. Execute o comando abaixo para criar o container docker e validar as configurações do Terraform.

    make docker-up

Caso a saída seja semelhante ao exemplo abaixo, a configuração foi realizada com sucesso.

bdd_terraform    | Initializing modules...
bdd_terraform    |
bdd_terraform    | Initializing the backend...
bdd_terraform    |
bdd_terraform    | Initializing provider plugins...
bdd_terraform    | - terraform.io/builtin/terraform is built in to Terraform
bdd_terraform    | - Reusing previous version of hashicorp/google from the dependency lock file
bdd_terraform    | - Using previously-installed hashicorp/google v3.89.0
bdd_terraform    |
bdd_terraform    | Terraform has been successfully initialized!
bdd_terraform    |
bdd_terraform    | You may now begin working with Terraform. Try running "terraform plan" to see
bdd_terraform    | any changes that are required for your infrastructure. All Terraform commands
bdd_terraform    | should now work.
bdd_terraform    |
bdd_terraform    | If you ever set or change modules or backend configuration for Terraform,
bdd_terraform    | rerun this command to reinitialize your working directory. If you forget, other
bdd_terraform    | commands will detect it and remind you to do so if necessary.

(voltar ao início)

Kubernetes

Para interagir com o cluster k8s em questão, além das permissões necessárias, é necessário ter o kubectl instalado. Siga os passos conforme a documentação oficial do Google.

(voltar ao início)

Uso

Para exemplos de utilização das ferramentas deste projeto, favor consultar a documentação

(voltar ao início)

Roadmap

Além das tarefas em aberto que podem ser consultadas em issues, o projeto é baseado no planejamento de milestones que podem ser consultados em milestones.

(voltar ao início)

Contribuição

As contribuições são o que tornam a comunidade de código aberto um lugar incrível para aprender, inspirar e criar. Quaisquer contribuições que você fizer são muito apreciadas.

Se você tiver uma sugestão de melhoria, faça um fork do repositório e crie um pull request. Você também pode simplesmente abrir uma tarefa.

Não se esqueça de dar uma estrela ao projeto! Agradecemos o apoio 💚!

(voltar ao início)

Licença

(voltar ao início)

Contato

Você pode entrar em contato com a equipe da Base dos Dados via diversos canais, sendo eles:

Discord LinkedIn Telegram Twitter WhatsApp

(voltar ao início)