Este repositório contém um projeto simples de CRUD de usuários desenvolvido com Flask, documentado com Flasgger (Swagger UI) e preparado para ser executado em ambientes Kubernetes. Ele está sendo utilizado como base de estudos práticos para a certificação CKAD - Certified Kubernetes Application Developer.
- Criar uma API RESTful simples com Python e Flask.
- Documentar a API com Swagger usando Flasgger.
- Criar arquivos de manifesto Kubernetes para deployment, service, e testes com ConfigMap, Secrets, Volumes, Health Checks, etc.
- Aprimorar práticas DevOps e experiência com deploys em clusters K8s.
- Servir como base para estudo e prática para a prova da CKAD.
- 🐍 Python 3.12+
- 🔥 Flask
- 📘 Flasgger (Swagger UI para Flask)
- 🐋 Docker
- ☸️ Kubernetes (Kind) | Orquestração de containers e testes de deployment |
- 🧪 Thuder Client (para testes da API)
- 🗄️ PostgreSQL 17.4
- 🗄️ PgAdmin 9.3
POST /users– Cria um novo usuárioGET /users– Lista todos os usuáriosGET /users/<id>– Consulta um usuário por IDPUT /users/<id>– Atualiza os dados de um usuárioDELETE /users/<id>– Remove um usuário
A documentação interativa pode ser acessada via
/apidocs.
# Clonar o repositório
git clone https://github.com/doug2901/pycrud.git
cd pycrud
# Criar ambiente virtual
python -m venv venv
source venv/bin/activate
# Instalar dependências
pip install -r requirements.txt
# Rodar a aplicação
python app.pyINSERT INTO users (username, email)
SELECT
'user_' || i AS username,
'user_' || i || '@dnfcorp.com.br' AS email
FROM generate_series(1, 100) AS s(i);openssl genrsa -out doug.lab.corp.key 2048
openssl req -new -x509 -key doug.lab.corp.key -out doug.lab.corp.crt -days 365 -subj "/CN=doug.lab.corp/O=Lab"
kubectl create secret tls doug-lab-tls
--cert=doug.lab.corp.crt
--key=doug.lab.corp.key
-n dev