docs(aula-10): documentar storage S3 como opção (default permanece disco local)

This commit is contained in:
ArgoCD Setup
2026-03-14 02:56:32 -03:00
parent 2904628bef
commit 2441bf4541

View File

@@ -329,6 +329,81 @@ helm upgrade gitea gitea-charts/gitea -n gitea \
| LoadBalancer (compartilhado) | ~$1.80 (1/3) | | LoadBalancer (compartilhado) | ~$1.80 (1/3) |
| **Total** | **~$7.65** | | **Total** | **~$7.65** |
## Storage: Disco Local vs S3 (Object Storage)
Por padrão, o Gitea armazena tudo em **disco local** (PVC). Isso é simples e funciona pro workshop. Mas em produção com muitas imagens Docker, o PVC de 10Gi enche rápido.
O Gitea suporta **S3-compatible storage** (MinIO, AWS S3, Hetzner Object Storage, etc.) como backend para **tudo**: container images, LFS, avatars, attachments, actions artifacts.
### O que usamos (default)
```
Gitea Pod → PVC 10Gi (hcloud-volumes)
├── /data/git/repositories (código)
├── /data/gitea/packages (container images)
├── /data/gitea/lfs (large files)
└── /data/gitea/avatars (fotos)
```
Simples, sem dependências externas. Suficiente pra clusters pequenos.
### Quando migrar pra S3
- PVC passando de 80% (o pvc-autoresizer da aula-12 ajuda, mas tem limite)
- Muitas imagens Docker grandes (container registry crescendo)
- Precisa de storage "ilimitado" sem gerenciar volumes
### Como configurar S3 (Hetzner Object Storage)
1. Criar bucket no [Hetzner Cloud Console](https://console.hetzner.cloud) → Object Storage
2. Gerar Access Key + Secret Key
3. Adicionar no `gitea-values.yaml`:
```yaml
gitea:
config:
storage:
STORAGE_TYPE: minio
MINIO_ENDPOINT: nbg1.your-objectstorage.com
MINIO_ACCESS_KEY_ID: "sua-access-key"
MINIO_SECRET_ACCESS_KEY: "sua-secret-key"
MINIO_BUCKET: gitea
MINIO_LOCATION: nbg1
MINIO_USE_SSL: "true"
SERVE_DIRECT: "true"
```
4. `helm upgrade` pra aplicar
Com `SERVE_DIRECT: true`, o Gitea redireciona `docker pull` direto pro S3 — menos carga na CPU, downloads mais rápidos.
### Ou só pra packages (container images)
Se quiser manter repos git em disco local mas imagens no S3:
```yaml
gitea:
config:
storage.packages:
STORAGE_TYPE: minio
MINIO_ENDPOINT: nbg1.your-objectstorage.com
MINIO_ACCESS_KEY_ID: "sua-access-key"
MINIO_SECRET_ACCESS_KEY: "sua-secret-key"
MINIO_BUCKET: gitea
MINIO_USE_SSL: "true"
MINIO_BASE_PATH: "packages/"
SERVE_DIRECT: "true"
```
### Custo S3 vs PVC
| Storage | Custo | Limite |
|---------|-------|--------|
| PVC (Hetzner Volume) | ~$0.048/GB/mês | 10TB max |
| Hetzner Object Storage | ~€0.006/GB/mês (~8x mais barato) | Ilimitado |
**Para o workshop usamos PVC** — zero configuração extra, zero secrets de S3.
## Lições do Workshop ## Lições do Workshop
1. **Nem sempre precisa da ferramenta "enterprise"** — Gitea substitui GitLab + Harbor + parcialmente Tekton com 10x menos recursos 1. **Nem sempre precisa da ferramenta "enterprise"** — Gitea substitui GitLab + Harbor + parcialmente Tekton com 10x menos recursos