Fără Descriere

Tino a249cd24b0 Ip fija para el contenedor y credenciales por robot en harbor 1 lună în urmă
explorer 9764643fa0 Logo de reymota 1 lună în urmă
k8s a249cd24b0 Ip fija para el contenedor y credenciales por robot en harbor 1 lună în urmă
regbrowser 9764643fa0 Logo de reymota 1 lună în urmă
.dockerignore ee13fd5eb8 first commit 1 lună în urmă
.gitignore 0095b65910 Añado .gitignore 1 lună în urmă
Dockerfile ee13fd5eb8 first commit 1 lună în urmă
HARBOR-ROBOT.md a249cd24b0 Ip fija para el contenedor y credenciales por robot en harbor 1 lună în urmă
README.md 751d662d8d Instrucciones para cambiar contraseña 1 lună în urmă
db.sqlite3 ee13fd5eb8 first commit 1 lună în urmă
manage.py ee13fd5eb8 first commit 1 lună în urmă
requirements.txt ee13fd5eb8 first commit 1 lună în urmă
run.sh 9764643fa0 Logo de reymota 1 lună în urmă

README.md

Registry Browser

Aplicación Django para explorar registries Docker privados con API v2.

Inicio Rápido (local)

# Crear entorno virtual (si no existe)
python3 -m venv venv

# Activar entorno virtual
source venv/bin/activate

# Instalar dependencias
pip install -r requirements.txt

# Ejecutar migraciones
python manage.py migrate

# Crear usuario administrador
python manage.py createsuperuser

# Iniciar servidor
python manage.py runserver

Despliegue en Kubernetes

La app corre en el cluster como deployment regbrowser en el namespace regbrowser, accesible vía Ingress en http://regbrowser.reymota.lab (Nginx Proxy Manager → ClusterIP del Service).

Componentes:

Recurso Descripción
k8s/namespace.yaml Namespace regbrowser
k8s/secrets.yaml SECRET_KEY de Django
k8s/pvc.yaml PVC de 100Mi para la BD SQLite (/data/db.sqlite3)
k8s/deployment.yaml Deployment con gunicorn (estrategia Recreate, 1 réplica)
k8s/service-ingress.yaml Service ClusterIP + Ingress nginx

Variables de entorno soportadas: SECRET_KEY, DEBUG, ALLOWED_HOSTS, SQLITE_PATH.

Construir y desplegar una nueva versión

# Construir y subir la imagen a Harbor
docker build -t harbor.reymota.es/reymota/regbrowser:latest .
docker push harbor.reymota.es/reymota/regbrowser:latest

# Reiniciar el deployment para que haga pull de la nueva imagen
kubectl rollout restart deploy/regbrowser -n regbrowser

# Ver el estado del rollout y los logs
kubectl rollout status deploy/regbrowser -n regbrowser
kubectl logs -f deploy/regbrowser -n regbrowser

Las migraciones se ejecutan automáticamente al arrancar el contenedor.

Pull secret de Harbor

El deployment usa el secret myregistrykey (tipo kubernetes.io/dockerconfigjson) para descargar la imagen. Para renovarlo con otras credenciales:

kubectl delete secret myregistrykey -n regbrowser
kubectl create secret docker-registry myregistrykey \
  --docker-server=harbor.reymota.es \
  --docker-username='robot$regbrowser+ci' \
  --docker-password='<token>' \
  -n regbrowser

Cambiar contraseña de la app

Cambiar la contraseña del usuario existente

kubectl exec -it deploy/regbrowser -n regbrowser -- python manage.py changepassword admin

Crear otro superusuario

kubectl exec -it deploy/regbrowser -n regbrowser -- python manage.py createsuperuser

Uso

  1. Accede a http://localhost:8000 (local) o http://regbrowser.reymota.lab (cluster)
  2. Inicia sesión con las credenciales
  3. Agrega un registry Docker privado
  4. Explora repositorios, tags y detalles de imágenes

Funcionalidades

  • ✅ Exploración de repositorios
  • ✅ Visualización de tags
  • ✅ Detalles de imágenes (layers, tamaño, OS, arquitectura)
  • ✅ Soporte para registries multi-arch
  • ✅ Autenticación básica y token bearer
  • ✅ Búsqueda de repositorios y tags
  • ✅ Eliminación de imágenes (si el registry lo permite)

Nota: los manifests se eliminan por digest y quedan marcados como pendientes; ejecuta periódicamente registry garbage-collect en el registry para liberar el espacio en disco.