basedosdados / iac

:cloud: Código para gerência e configuração da infraestrutura em nuvem
https://info.basedosdados.org/links
4 stars 0 forks source link
gcp kubernetes terraform

☁️ 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

(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)