Skip to content

A modern IaC platform built with Python, CDKTF, and Streamlit to provision and manage Docker and Kubernetes environments through an intuitive web interface

License

Notifications You must be signed in to change notification settings

ricardoandreh/cloudforge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌩️ CloudForge

Uma plataforma moderna de IaC (Infrastructure as Code) desenvolvida em Python com CDKTF e Streamlit, permitindo o provisionamento e gerenciamento de ambientes Docker e Kubernetes por meio de uma interface web intuitiva.


Visão Geral

O CloudForge demonstra como integrar CDKTF (Cloud Development Kit for Terraform) com uma interface interativa feita em Streamlit, tornando o uso de IaC mais acessível e visual.

A aplicação permite criar e gerenciar stacks de infraestrutura baseadas em:

  • Docker (containers e imagens)
  • Kubernetes (via Kind local)

Tudo isso de forma interativa, sem necessidade de rodar comandos Terraform manualmente.


Tecnologias Utilizadas

  • Python 3.13
  • Streamlit — Interface web interativa
  • CDKTF — Infraestrutura como código com Python
  • Kind — Kubernetes local em containers
  • Docker — Ambiente de containers
  • UV — Gerenciador de pacotes rápido e leve

Instalação e Execução

Clone o repositório

git clone https://github.com/seuusuario/cloudforge.git
cd cloudforge

Configure o ambiente com UV

O UV é uma alternativa moderna ao pip/venv. Caso ainda não tenha instalado:

pip install uv

Crie o ambiente virtual e instale as dependências:

uv sync

Verifique se o Kind está configurado

kind get clusters
kubectl config current-context

O contexto ativo deve ser algo como:

kind-platform

Nesse caso, o config_path usado será ~/.kube/config.

Execute o aplicativo

uv run streamlit run app.py

Acesse em:

http://localhost:8501

Como Funciona

  1. O usuário seleciona o tipo de ambiente (Docker ou Kind/Kubernetes).
  2. O CDKTF é utilizado para gerar o código Terraform e aplicar a infraestrutura.
  3. O Streamlit exibe o progresso e os logs em tempo real.
  4. A infraestrutura é criada localmente, seja como container Docker ou pod no cluster Kind.

Exemplo de Uso

Criar um container NGINX com Docker

  • Provider: docker
  • Nome: api-demo
  • Imagem: nginx:latest
  • Porta interna: 80
  • Porta externa: 8080

Criar um serviço no Kind

  • Provider: kind
  • Nome: service-demo
  • Imagem: nginx:alpine
  • Porta interna: 80
  • Porta externa: 30080

Licença

Este projeto é distribuído sob a licença MIT. Sinta-se à vontade para usar, modificar e contribuir.

About

A modern IaC platform built with Python, CDKTF, and Streamlit to provision and manage Docker and Kubernetes environments through an intuitive web interface

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages