# Plan: Add luminarrh app to Kubernetes cluster

## Context
Agregar la app LuminarRH (ASP.NET Core 9 + Angular) de un amigo al cluster. La DB Postgres ya está corriendo en el host <<INTERNAL_IP_1>>:5436. La imagen está en Docker Hub privado (`luminarsystems/luminarrh:1.0.0`).

## Archivos a crear

### 1. `apps/luminarrh/00-ns-and-sa.yaml`
Namespace `luminarrh` + ServiceAccount `luminarrh`.

### 2. `apps/luminarrh/00-pullsecret.yaml`
Docker registry secret (`kubernetes.io/dockerconfigjson`) para `luminarsystems/luminarrh:1.0.0`.
- **Pendiente**: token de Docker Hub (username: `luminarsystems`, read-only token que pasa Lester).
- El `.dockerconfigjson` se genera con `echo '{"auths":{"https://index.docker.io/v1/":{"username":"luminarsystems","password":"<TOKEN>","email":"<EMAIL>","auth":"<base64>"}}}' | base64 -w0`

### 3. `apps/luminarrh/01-luminarrh-deployment.yaml`
Deployment con:
- `image: luminarsystems/luminarrh:1.0.0`
- `imagePullPolicy: IfNotPresent`
- `imagePullSecrets: [{name: regcred}]`
- containerPort: 8080
- envFrom con configMap + secret (como en el handoff)
- Probes contra `/health` en puerto 8080
- Resources: requests 250m CPU / 256Mi, limits 1 CPU / 512Mi
- **Pendiente**: `Jwt__Key` (generar con `openssl rand -base64 64`)
- **Pendiente**: `ConnectionStrings__SarhConnection` con password real

### 4. `apps/luminarrh/02-luminarrh-svc.yaml`
Service ClusterIP, port 80 → targetPort 8080.

### 5. `apps/luminarrh/03-ingress.yaml`
Ingress Traefik — **pendiente dominio**. Placeholder con `luminarrh.<dominio>` hasta que me pases el dominio.

### 6. `clusters/cluster/apps-kustomization/luminarrh-kustomization.yaml`
Kustomization estándar siguiendo el patrón de las otras apps.

## Archivos a modificar
- `clusters/cluster/apps-kustomization/luminarrh-kustomization.yaml` — crear nuevo
- `apps/luminarrh/` — crear directorio y archivos

## Pendientes (espero tus datos)
1. **Docker Hub token** (read-only) para el pull secret
2. **Dominio/URL pública** para el ingress y Jwt__Issuer/Jwt__Audience
3. **Jwt__Key** — lo genero con `openssl rand -base64 64`
4. **Password de conexión** a la DB — en el handoff dice `<<DB_PASSWORD_1>>` pero confirmá si es el correcto para k8s

## Verificación
- `git diff` para revisar los cambios
- `git push` triggera Flux CD que aplica los manifests
