docs(aula-10): documentar storage S3 como opção (default permanece disco local)
This commit is contained in:
@@ -329,6 +329,81 @@ helm upgrade gitea gitea-charts/gitea -n gitea \
|
||||
| LoadBalancer (compartilhado) | ~$1.80 (1/3) |
|
||||
| **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
|
||||
|
||||
1. **Nem sempre precisa da ferramenta "enterprise"** — Gitea substitui GitLab + Harbor + parcialmente Tekton com 10x menos recursos
|
||||
|
||||
Reference in New Issue
Block a user