Sumário
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.
- 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"
-
Clone o repositório e acesse a pasta do projeto
git clone https://github.com/basedosdados/iac.git && cd iac
-
Execute o comando abaixo para iniciar o ambiente de desenvolvimento
make create-dev
Dica: Consulte o arquivo
Makefile
para mais comandos.
-
Adicione o
arquivo.json
de credencial no diretórioterraform/
. -
Note a existência do arquivo
.env.example
dentro do diretórioterraform
. 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. -
Carregue as variáveis de ambiente do arquivo
.env
no terminal atual.source terraform/.env
-
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.
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.
Para exemplos de utilização das ferramentas deste projeto, favor consultar a documentação
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.
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 💚!
Você pode entrar em contato com a equipe da Base dos Dados via diversos canais, sendo eles: