https://github.com/basedosdados/iac
:cloud: Código para gerência e configuração da infraestrutura em nuvem
https://github.com/basedosdados/iac
gcp kubernetes terraform
Last synced: 10 days ago
JSON representation
:cloud: Código para gerência e configuração da infraestrutura em nuvem
- Host: GitHub
- URL: https://github.com/basedosdados/iac
- Owner: basedosdados
- Created: 2022-05-30T22:19:33.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-04T00:14:16.000Z (11 months ago)
- Last Synced: 2024-06-04T02:11:14.703Z (11 months ago)
- Topics: gcp, kubernetes, terraform
- Language: HCL
- Homepage: https://info.basedosdados.org/links
- Size: 1010 KB
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# ☁️ iac
[![Contributors][Contributors-shield]][Contributors-url]
[![Forks][Forks-shield]][Forks-url]
[![Stargazers][Stars-shield]][Stars-url]
[![Issues][Issues-shield]][Issues-url]
[![MIT License][License-shield]][License-url]Sumário
## 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.
### Construído com
[![GCP][GCP-shield]][GCP-url]
[![GitHub Actions][Github-Actions-shield]][GitHub-Actions-url]
[![Kubernetes][Kubernetes-shield]][Kubernetes-url]
[![Terraform][Terraform-shield]][Terraform-url]## Desenvolvimento local
### Requisitos
- [Docker](https://docs.docker.com/get-docker/)
- [Docker Compose](https://docs.docker.com/compose/install/)
- [kubectl](https://kubernetes.io/docs/tasks/tools/install-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"### Procedimentos
1. Clone o repositório e acesse a pasta do projeto
```sh
git clone https://github.com/basedosdados/iac.git && cd iac
```2. Execute o comando abaixo para iniciar o ambiente de desenvolvimento
```sh
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.```sh
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.```sh
source terraform/.env
```
4. Execute o comando abaixo para criar o container docker e validar as configurações do Terraform.```sh
make docker-up
```Caso a saída seja semelhante ao exemplo abaixo, a configuração foi realizada com sucesso.
```sh
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.
```#### **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](https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl#gcloud).
## Uso
Para exemplos de utilização das ferramentas deste projeto, favor consultar a documentação
## Roadmap
Além das tarefas em aberto que podem ser consultadas em [issues][Issues-url], o projeto é baseado no planejamento de milestones que podem ser consultados em [milestones][Milestones-url].
## 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 💚!
## Licença
## Contato
Você pode entrar em contato com a equipe da Base dos Dados via diversos canais, sendo eles:
[![Discord][Discord-shield]][Discord-url]
[![LinkedIn][LinkedIn-shield]][LinkedIn-url]
[![Telegram][Telegram-shield]][Telegram-url]
[![Twitter][Twitter-shield]][Twitter-url]
[![WhatsApp][WhatsApp-shield]][WhatsApp-url][Contributors-shield]: https://img.shields.io/github/contributors/basedosdados/iac?style=for-the-badge
[Contributors-url]: https://github.com/basedosdados/iac/graphs/contributors
[Discord-shield]: https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white
[Discord-url]: https://discord.com/invite/huKWpsVYx4
[Forks-shield]: https://img.shields.io/github/forks/basedosdados/iac?style=for-the-badge
[Forks-url]: https://github.com/baseosdados/iac/network/members
[GCP-shield]: https://img.shields.io/badge/Google%20Cloud%20Platform-4285F4?style=for-the-badge&logo=google-cloud&logoColor=white
[GCP-url]: https://cloud.google.com/
[GitHub-Actions-shield]: https://img.shields.io/badge/GitHub%20Actions-000000?style=for-the-badge&logo=github-actions&logoColor=white
[GitHub-Actions-url]: https://github.com/features/actions
[Issues-shield]: https://img.shields.io/github/issues/basedosdados/iac?style=for-the-badge
[Issues-url]: https://github.com/basedosdados/iac/issues
[Kubernetes-shield]: https://img.shields.io/badge/Kubernetes-326CE5?style=for-the-badge&logo=kubernetes&logoColor=white
[Kubernetes-url]: https://kubernetes.io/
[License-shield]: https://img.shields.io/github/license/basedosdados/iac?style=for-the-badge
[License-url]: https://github.com/basedosdados/iac/blob/master/LICENSE
[LinkedIn-shield]: https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white
[LinkedIn-url]: https://www.linkedin.com/company/base-dos-dados/
[Milestones-shield]: https://img.shields.io/github/milestones/all/basedosdados/iac?style=for-the-badge
[Milestones-url]: https://github.com/basedosdados/iac/milestones
[Stars-shield]: https://img.shields.io/github/stars/basedosdados/iac?style=for-the-badge
[Stars-url]: https://github.com/basedosdados/iac/stargazers
[Telegram-shield]: https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white
[Telegram-url]: https://t.me/joinchat/OKWc3RnClXnq2hq-8o0h_w
[Terraform-shield]: https://img.shields.io/badge/Terraform-623CE4?style=for-the-badge&logo=terraform&logoColor=white
[Terraform-url]: https://www.terraform.io/
[Twitter-shield]: https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white
[Twitter-url]: https://twitter.com/basedosdados
[Whatsapp-shield]: https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white
[Whatsapp-url]: https://chat.whatsapp.com/CLLFXb1ogPPDomCM6tQT22