Skip to content

yclicourt/deploy-gitOps-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 

Repository files navigation

🚀 TaskApp - GitOps Infrastructure

Este repositorio contiene los manifiestos de Kubernetes y la configuración de GitOps utilizando ArgoCD para el despliegue automatizado de la aplicación de tareas (TodoApp).

🗺️ Arquitectura del Proyecto

El proyecto está dividido en tres componentes principales:

  • 🖥️ Frontend (React): Cliente web para interactuar con las tareas.
  • ⚙️ Backend (Django DRF): API REST que maneja la lógica de negocio y persistencia.
  • ☸️ GitOps (ArgoCD): Estructura en formato Helm Chart que orquesta el despliegue de todos los servicios mediante ArgoCD.

📁 Estructura del Repositorio

.
├── my-stack/                  # Helm Chart principal de la aplicación
│   ├── templates/             # Plantillas de los manifiestos de Kubernetes
│   │   ├── backend/           # Deployment, Service y ConfigMaps de la API Django
│   │   ├── db/                # Manifiestos para la Base de Datos (PostgreSQL/SQLite)
│   │   └── frontend/          # Deployment, Service e Ingress del Cliente React
│   ├── Chart.yaml             # Metadatos e información del Helm Chart
│   └── values.yaml            # Variables de configuración globales del entorno
└── README.md

🐳 Gestión de Imágenes y Container Registry

Las plantillas de Kubernetes en este Helm Chart están diseñadas para ser completamente agnósticas al registro de contenedores. Por defecto, el proyecto apunta a un registro local (registry.local:5443), pero puedes utilizar cualquier Registry compatible (Docker Hub, Harbor privado, GitHub Packages, GitLab, etc.).

Para cambiar el origen de las imágenes por las tuyas, solo debes abrir el archivo my-stack/values.yaml y actualizar la propiedad repository de cada componente:

# my-stack/values.yaml

frontend_tasks_app:
  # ... otras configuraciones
  image:
    repository: [tu-registry.com/tu-usuario/frontend-react-tasks](https://tu-registry.com/tu-usuario/frontend-react-tasks) # 👈 Cambia esto
    tag: latest

backend_tasks_app:
  # ... otras configuraciones
  image:
    repository: [tu-registry.com/tu-usuario/backend-django-tasks](https://tu-registry.com/tu-usuario/backend-django-tasks)  # 👈 Cambia esto
    tag: latest

tasks_db:
  # ... otras configuraciones
  image:
    repository: [tu-registry.com/oficial-images/postgres](https://tu-registry.com/oficial-images/postgres)          # 👈 O usa 'postgres' directo de Docker Hub
    tag: alpine

🔑 Uso de Registries Privados con Autenticación

Si tu Harbor o el registro que decidas usar requiere credenciales para descargar (pull) las imágenes, recuerda que debes hacer dos cosas:

  1. Crear el secreto en tu clúster dentro del namespace tasks-app:
kubectl create secret docker-registry mi-registry-secret \
--docker-server=[https://tu-registry.com](https://tu-registry.com) \
--docker-username=tu_usuario \
--docker-password=tu_contraseña \
--namespace=tasks-app

  1. Vincular el secreto en tus manifiestos de Kubernetes (asegúrate de que tus plantillas en templates/ lean el secretName o añade la propiedad imagePullSecrets según tengas estructurado tu despliegue).

🗺️ Diagrama de infraestructura de aplicación

En este diagrama se muestra como se usa la conexion entre las diferentes herramientas en la app, el uso de los diferentes componentes de kubernetes, para un mejor manejo del cluster y el uso del paradigma de GitOps para un mejor experiencia de DevOps

Diagrama de Arquitectura Gitops

  • Uso de practicas de GitOps con ArgoCD Despliegue de Arquitectura GitOps en ArgoCD

  • Usando Registry Local con Harbor Uso de Registry Privado con Harbor

  • App desplegada usando k3s como cluster de k8s App Desplegada en el Cluster(K3S)

About

Repo to deploy all manifests files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors