Skip to content

Commit 7e3696b

Browse files
committed
Fix ReadModel migration for PostgreSQL and update credentials
1 parent 0b544f4 commit 7e3696b

154 files changed

Lines changed: 19559 additions & 23026 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docker-compose.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
version: "3.9"
2+
3+
services:
4+
db:
5+
image: postgres:16-alpine
6+
container_name: ums_postgres
7+
environment:
8+
POSTGRES_USER: postgres
9+
POSTGRES_PASSWORD: root # password set to 'root'
10+
POSTGRES_DB: UmsReadModel
11+
ports:
12+
- "5433:5432"
13+
healthcheck:
14+
test: ["CMD", "pg_isready", "-U", "postgres"]
15+
interval: 5s
16+
timeout: 5s
17+
retries: 5
18+
19+
admin:
20+
image: dpage/pgadmin4:8
21+
container_name: ums_pgadmin
22+
environment:
23+
PGADMIN_DEFAULT_EMAIL: admin@ums.local
24+
PGADMIN_DEFAULT_PASSWORD: root # same password for convenience
25+
ports:
26+
- "5051:80"
27+
depends_on:
28+
db:
29+
condition: service_healthy

infra/Makefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.PHONY: build helm-up helm-down compose-up compose-down clean
2+
3+
build:
4+
cd ../src && docker build -t ums-api:latest -f apps/ums.api/Ums.Presentation/Dockerfile .
5+
cd ../src && docker build -t ums-web:latest -f apps/ums.web-app/Dockerfile .
6+
7+
helm-up:
8+
helm upgrade --install ums ./local/kubernetes/helm/ums
9+
10+
helm-down:
11+
helm uninstall ums || true
12+
13+
compose-up:
14+
docker compose -f local/compose/docker-compose.yml up -d
15+
16+
compose-down:
17+
docker compose -f local/compose/docker-compose.yml down -v
18+
19+
clean: helm-down compose-down
20+
docker images | grep ums | awk '{print $$3}' | xargs -r docker rmi -f

infra/accesos_local.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Accesos al Entorno Local (Kubernetes)
2+
3+
Este documento detalla todas las URLs, comandos y credenciales necesarias para acceder a los distintos componentes del proyecto UMS desplegado localmente usando Helm en Docker Desktop.
4+
5+
## 1. Configuración Previa Obligatoria
6+
7+
Para que el *Ingress Controller* local pueda enrutar el tráfico a tus aplicaciones usando nombres de dominio limpios, debes asegurarte de que tu archivo `/etc/hosts` tenga mapeados los dominios a `localhost` (`127.0.0.1`).
8+
9+
Ejecuta en tu terminal:
10+
```bash
11+
sudo sh -c 'echo "127.0.0.1 ums.local grafana.ums.local" >> /etc/hosts'
12+
```
13+
14+
> **IMPORTANTE PARA USUARIOS MAC / DOCKER DESKTOP:**
15+
> A veces Docker Desktop no vincula automáticamente el puerto 80 del Ingress al `localhost` de tu Mac. Si no puedes acceder a la web, debes abrir una terminal y dejar corriendo este comando para forzar el puente:
16+
> ```bash
17+
> sudo kubectl port-forward -n ingress-nginx svc/ingress-nginx-controller 80:80
18+
> ```
19+
20+
---
21+
22+
## 2. Aplicaciones Web (vía Ingress)
23+
24+
Estos servicios están expuestos automáticamente en los puertos 80/443 de tu máquina anfitriona. Solo debes abrir tu navegador en los siguientes enlaces:
25+
26+
| Componente | URL Local | Descripción |
27+
| :--- | :--- | :--- |
28+
| **Portal Web (Frontend)** | [http://ums.local](http://ums.local) | Aplicación principal en React. |
29+
| **API Backend (Swagger)** | [http://ums.local/api/swagger](http://ums.local/api/swagger) | (O la ruta base de Swagger configurada) Documentación interactiva de la API. |
30+
| **Grafana** | [http://grafana.ums.local](http://grafana.ums.local) | Panel de observabilidad (Log in anónimo automático habilitado para modo dev). |
31+
32+
---
33+
34+
## 3. Servicios Internos y Bases de Datos (Port Forwarding)
35+
36+
Los componentes de infraestructura pesada como bases de datos o colectores de métricas corren aislados dentro del clúster (tipo `ClusterIP`). Para conectar clientes externos (como Azure Data Studio, SSMS, o Redis Insight), debes crear un puente o "Port-Forward" abriendo una terminal dedicada.
37+
38+
### SQL Server (Base de Datos)
39+
* **Comando:** `kubectl port-forward svc/sqlserver-lite 1433:1433`
40+
* **Conexión:** `localhost,1433` o `127.0.0.1,1433`
41+
* **Usuario:** `sa`
42+
* **Contraseña:** `Your_password123`
43+
44+
### Redis (Caché)
45+
* **Comando:** `kubectl port-forward svc/redis 6379:6379`
46+
* **Conexión:** `localhost:6379`
47+
48+
### Prometheus (Métricas Crudas)
49+
* **Comando:** `kubectl port-forward svc/prometheus 9090:9090`
50+
* **Acceso Web:** [http://localhost:9090](http://localhost:9090)
51+
52+
### Loki (Logs)
53+
* **Comando:** `kubectl port-forward svc/loki 3100:3100`
54+
* **Uso:** Generalmente se explora directamente desde Grafana, pero este es el puerto de la API directa de Loki.
55+
56+
### Tempo (Trazas Distribuidas)
57+
* **Comando:** `kubectl port-forward svc/tempo 3200:3200`
58+
* **Uso:** Generalmente explorado a través de Grafana, pero expone interfaces de API directas.
59+
60+
---
61+
62+
## 4. Notas de Administración
63+
64+
Si necesitas gestionar los pods directamente o acceder a la terminal de alguno de ellos, usa las etiquetas del Helm chart:
65+
66+
* **Listar todos los pods:** `kubectl get pods`
67+
* **Ver logs de la API:** `kubectl logs -l app=ums-api -f`
68+
* **Ver logs del Web:** `kubectl logs -l app=ums-web -f`
69+
* **Reiniciar el backend:** `kubectl rollout restart deployment ums-api`
Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,35 @@
11
services:
2-
sqlserver-lite:
3-
image: mcr.microsoft.com/azure-sql-edge:latest
4-
container_name: ums-sqlserver-lite
2+
postgres:
3+
image: postgres:15-alpine
4+
container_name: ums-postgres
55
environment:
6-
ACCEPT_EULA: "Y"
7-
MSSQL_SA_PASSWORD: "Your_password123"
8-
MSSQL_PID: "Developer"
6+
POSTGRES_USER: "postgres"
7+
POSTGRES_PASSWORD: "Your_password123"
8+
POSTGRES_DB: "UmsDev"
99
ports:
10-
- "1433:1433"
10+
- "5432:5432"
1111
volumes:
12-
- sqlserver_data:/var/opt/mssql
12+
- postgres_data:/var/lib/postgresql/data
1313
healthcheck:
14-
test:
15-
[
16-
"CMD-SHELL",
17-
"/opt/mssql-tools18/bin/sqlcmd -C -S localhost -U sa -P \"$${MSSQL_SA_PASSWORD}\" -Q \"SELECT 1\" || /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P \"$${MSSQL_SA_PASSWORD}\" -Q \"SELECT 1\"",
18-
]
14+
test: ["CMD-SHELL", "pg_isready -U postgres -d UmsDev"]
1915
interval: 15s
2016
timeout: 10s
2117
retries: 10
22-
start_period: 45s
18+
start_period: 15s
19+
networks:
20+
- ums-network
21+
22+
pgadmin:
23+
image: dpage/pgadmin4:latest
24+
container_name: ums-pgadmin
25+
environment:
26+
PGADMIN_DEFAULT_EMAIL: "admin@ums.com"
27+
PGADMIN_DEFAULT_PASSWORD: "Your_password123"
28+
ports:
29+
- "5050:80"
30+
depends_on:
31+
postgres:
32+
condition: service_healthy
2333
networks:
2434
- ums-network
2535

@@ -180,12 +190,12 @@ services:
180190
ASPNETCORE_ENVIRONMENT: Development
181191
ASPNETCORE_URLS: http://+:8080
182192
AllowedOrigins: http://localhost:5173,http://localhost:3000
183-
ConnectionStrings__DefaultConnection: Server=sqlserver-lite,1433;Database=UmsDev;User Id=sa;Password=Your_password123;TrustServerCertificate=True;Encrypt=False;
184-
Persistence__Provider: SqlServer
185-
Persistence__AggregateStoreMode: SqlServer
186-
Persistence__UseSqlServerIdentityStores: "true"
187-
Persistence__UseSqlServerAuthorizationStores: "true"
188-
Persistence__UseSqlServerConfigurationStores: "true"
193+
ConnectionStrings__DefaultConnection: Host=postgres;Port=5432;Database=UmsDev;Username=postgres;Password=Your_password123;
194+
Persistence__Provider: PostgreSql
195+
Persistence__AggregateStoreMode: PostgreSql
196+
Persistence__UsePostgreSqlIdentityStores: "true"
197+
Persistence__UsePostgreSqlAuthorizationStores: "true"
198+
Persistence__UsePostgreSqlConfigurationStores: "true"
189199
Persistence__SeedDevData: "true"
190200
Persistence__EnableOutbox: "true"
191201
Persistence__InitializePlatformStoreOnStartup: "true"
@@ -197,7 +207,7 @@ services:
197207
ports:
198208
- "5293:8080"
199209
depends_on:
200-
sqlserver-lite:
210+
postgres:
201211
condition: service_healthy
202212
redis:
203213
condition: service_healthy
@@ -236,7 +246,7 @@ networks:
236246
driver: bridge
237247

238248
volumes:
239-
sqlserver_data:
249+
postgres_data:
240250
tempo_data:
241251
loki_data:
242252
prometheus_data:

src/docker/observability/grafana/provisioning/datasources/datasources.yml renamed to infra/local/compose/docker/observability/grafana/provisioning/datasources/datasources.yml

File renamed without changes.
File renamed without changes.

src/docker/observability/otel/otel-collector-config.yml renamed to infra/local/compose/docker/observability/otel/otel-collector-config.yml

File renamed without changes.

src/docker/observability/prometheus/prometheus.yml renamed to infra/local/compose/docker/observability/prometheus/prometheus.yml

File renamed without changes.

src/docker/observability/promtail/promtail-config.yml renamed to infra/local/compose/docker/observability/promtail/promtail-config.yml

File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)