fix: Gitea Traefik routing and connection pool optimization
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
- Remove middleware reference from Gitea Traefik labels (caused routing issues) - Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s) - Add explicit service reference in Traefik labels - Fix intermittent 504 timeouts by improving PostgreSQL connection handling Fixes Gitea unreachability via git.michaelschiemer.de
This commit is contained in:
@@ -90,20 +90,35 @@ Die Logs zeigen einige Verbindungsfehler (connection refused, 502 Bad Gateway),
|
||||
|
||||
### 3. Ansible Vault Password Handling
|
||||
|
||||
**Status**: ⚠️ Workflow nutzt Vault, aber kein Secret dafür
|
||||
**Status**: ✅ Workflows verwenden ANSIBLE_VAULT_PASSWORD Secret
|
||||
|
||||
**Problem:**
|
||||
- Der Workflow `update-production-secrets.yml` benötigt ein Vault-Passwort
|
||||
- Aktuell wird es als Workflow-Input eingegeben (manuell)
|
||||
- Für automatisiertes Deployment sollte es als Secret vorliegen
|
||||
**Implementiert:**
|
||||
- ✅ `ANSIBLE_VAULT_PASSWORD` wird als Gitea Secret verwendet
|
||||
- ✅ Workflows erstellen automatisch Vault Password File aus Secret
|
||||
- ✅ Fallback: Leeres Password File wenn Secret nicht gesetzt ist
|
||||
|
||||
**Lösung:**
|
||||
- [ ] Optional: `ANSIBLE_VAULT_PASSWORD` als Secret hinzufügen (nur wenn automatisiert)
|
||||
- [ ] Oder: Manuelles Eingeben beim Workflow-Trigger ist ausreichend
|
||||
**Konfiguration:**
|
||||
- Secret Name: `ANSIBLE_VAULT_PASSWORD`
|
||||
- Verwendung: Workflows erstellen `/tmp/vault_pass` aus Secret
|
||||
- Optional: Falls Secret nicht gesetzt, wird leeres Password File verwendet (für nicht-verschlüsselte Vaults)
|
||||
|
||||
---
|
||||
|
||||
### 4. Pipeline End-to-End testen
|
||||
### 4. Code-Deployment Integration
|
||||
|
||||
**Status**: ✅ Code-Deployment via Ansible in Workflows integriert
|
||||
|
||||
**Implementiert:**
|
||||
- ✅ `deploy-application-code.yml` wird in Workflows verwendet
|
||||
- ✅ `install-composer-dependencies.yml` wird nach Code-Deployment ausgeführt
|
||||
- ✅ `deploy-image.yml` wird für Image-Deployment verwendet
|
||||
- ✅ Production Deployment Workflow verwendet Ansible statt direkter SSH-Befehle
|
||||
|
||||
**Workflows aktualisiert:**
|
||||
- ✅ `.gitea/workflows/build-image.yml` - Staging & Production Auto-Deploy
|
||||
- ✅ `.gitea/workflows/manual-deploy.yml` - Manuelles Deployment
|
||||
|
||||
### 5. Pipeline End-to-End testen
|
||||
|
||||
**Status**: ⚠️ Pipeline ist definiert, aber noch nicht getestet
|
||||
|
||||
@@ -144,6 +159,7 @@ Die Logs zeigen einige Verbindungsfehler (connection refused, 502 Bad Gateway),
|
||||
- [x] `REGISTRY_USER` ✅
|
||||
- [x] `REGISTRY_PASSWORD` ✅
|
||||
- [x] `SSH_PRIVATE_KEY` ✅
|
||||
- [x] `ANSIBLE_VAULT_PASSWORD` ✅ (für automatisiertes Deployment)
|
||||
- [ ] `GITEA_TOKEN` (optional)
|
||||
|
||||
### Gitea Runner
|
||||
@@ -153,14 +169,22 @@ Die Logs zeigen einige Verbindungsfehler (connection refused, 502 Bad Gateway),
|
||||
- [x] Runner läuft (`docker compose up -d`) ✅
|
||||
- [ ] Runner sichtbar in Gitea UI als "Idle" oder "Active" (bitte manuell prüfen)
|
||||
|
||||
### Code-Deployment Integration
|
||||
- [x] `deploy-application-code.yml` in Workflows integriert ✅
|
||||
- [x] `install-composer-dependencies.yml` in Workflows integriert ✅
|
||||
- [x] `deploy-image.yml` in Workflows integriert ✅
|
||||
- [x] Production Deployment Workflow auf Ansible umgestellt ✅
|
||||
|
||||
### Pipeline-Test
|
||||
- [ ] Test-Commit gepusht oder Workflow manuell getriggert
|
||||
- [ ] Alle Jobs erfolgreich:
|
||||
- [ ] Tests
|
||||
- [ ] Build
|
||||
- [ ] Deploy
|
||||
- [ ] Code-Deployment (Git)
|
||||
- [ ] Composer Dependencies
|
||||
- [ ] Image-Deployment
|
||||
- [ ] Health-Check
|
||||
- [ ] Deployment erfolgreich auf Production
|
||||
- [ ] Health-Check erfolgreich
|
||||
- [ ] Application läuft korrekt
|
||||
|
||||
### Dokumentation
|
||||
@@ -180,7 +204,13 @@ Die Logs zeigen einige Verbindungsfehler (connection refused, 502 Bad Gateway),
|
||||
**Status:** ✅ Abgeschlossen
|
||||
- Runner läuft und ist registriert
|
||||
|
||||
### Phase 3: Pipeline-Test (NÄCHSTER SCHRITT)
|
||||
### Phase 3: Code-Deployment Integration
|
||||
**Status:** ✅ Abgeschlossen
|
||||
- Code-Deployment via Ansible in Workflows integriert
|
||||
- Production Deployment Workflow auf Ansible umgestellt
|
||||
- Ansible Vault Password Handling implementiert
|
||||
|
||||
### Phase 4: Pipeline-Test (NÄCHSTER SCHRITT)
|
||||
**Status:** ⚠️ Ausstehend
|
||||
1. Test-Workflow ausführen
|
||||
2. Fehler beheben falls notwendig
|
||||
@@ -205,14 +235,25 @@ cp .env.example .env
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Pipeline manuell triggern (NÄCHSTER SCHRITT)
|
||||
### Pipeline testen (NÄCHSTER SCHRITT)
|
||||
|
||||
**Vorbereitung:**
|
||||
```bash
|
||||
# Prüfe alle Voraussetzungen
|
||||
./deployment/scripts/test-pipeline-prerequisites.sh
|
||||
```
|
||||
|
||||
**Detaillierte Test-Anleitung:**
|
||||
Siehe [Pipeline Test Checklist](../guides/pipeline-test-checklist.md) für Schritt-für-Schritt Anleitung.
|
||||
|
||||
**Pipeline manuell triggern:**
|
||||
```
|
||||
1. Gehe zu: https://git.michaelschiemer.de/michael/michaelschiemer/actions
|
||||
2. Wähle: "Production Deployment Pipeline"
|
||||
2. Wähle: "Build & Deploy Image"
|
||||
3. Klicke: "Run workflow"
|
||||
4. Wähle Branch: main
|
||||
4. Wähle Branch: staging (für Staging-Test) oder main (für Production-Test)
|
||||
5. Optionale Einstellungen:
|
||||
- skip_tests: false (Tests sollen laufen)
|
||||
- force_build: false (nur bei Bedarf)
|
||||
6. Klicke: "Run workflow"
|
||||
7. Beobachte Logs und prüfe jeden Schritt
|
||||
```
|
||||
@@ -228,12 +269,15 @@ https://git.michaelschiemer.de/admin/actions/runners
|
||||
|
||||
## ✅ Aktueller Status
|
||||
|
||||
**CI/CD Pipeline ist vollständig konfiguriert!**
|
||||
**CI/CD Pipeline ist vollständig konfiguriert und integriert!**
|
||||
|
||||
- ✅ Secrets konfiguriert
|
||||
- ✅ Runner läuft und ist registriert
|
||||
- ✅ Workflows sind vorhanden
|
||||
- ⚠️ **Nächster Schritt:** Pipeline testen!
|
||||
- ✅ Code-Deployment via Ansible integriert
|
||||
- ✅ Production Deployment Workflow auf Ansible umgestellt
|
||||
- ✅ Ansible Vault Password Handling implementiert
|
||||
- ⚠️ **Nächster Schritt:** Pipeline testen! (siehe [Pipeline Testing Guide](../guides/pipeline-testing-guide.md))
|
||||
|
||||
**Ready to Deploy:** Die Pipeline kann jetzt getestet werden. Alle Voraussetzungen sind erfüllt.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user