33 lines
1.9 KiB
Markdown
33 lines
1.9 KiB
Markdown
# **Challenge de Infraestructura y OpenShift**
|
|
|
|
## **Descripción**
|
|
Este challenge está diseñado para evaluar habilidades en **infraestructura en la nube (AWS), automatización con Terraform y despliegue en OpenShift (OCP)**. El objetivo es implementar un clúster de OpenShift y desplegar una solución basada en **3scale API Management** con bases de datos externas.
|
|
|
|
## **Requisitos**
|
|
- **AWS**: Se utilizará una cuenta provista por **Semperti**.
|
|
- **Terraform**: Para la creación de infraestructura.
|
|
- **OpenShift (OCP)**: Instalación de un clúster en AWS (**No ROSA / ARO**, **IPI Cluster**).
|
|
- **3scale API Management**: Instalación con bases de datos externas.
|
|
- **Ingress & Routing**: Configuración de **sharding** y exposición de rutas.
|
|
- **Aplicaciones en OpenShift**:
|
|
- **NGINX**: Desplegar un pod con NGINX. Solo levantar la web estática de ejemplo, y exponer una ruta de ingreso.
|
|
- **API**: Implementar una API y exponerla a través de **3scale**.
|
|
|
|
## **Objetivos**
|
|
1. **Provisionar** infraestructura en AWS con **Terraform**.
|
|
2. **Instalar y configurar** OpenShift (OCP) en AWS (**IPI Cluster**).
|
|
3. **Desplegar 3scale** con bases de datos externas.
|
|
4. **Configurar un Ingress de sharding** para exponer rutas.
|
|
5. **Levantar un NGINX** dentro del clúster de OpenShift.
|
|
6. **Desplegar una API** y exponerla mediante **3scale**.
|
|
|
|
## **Entregables**
|
|
- Código Terraform para la infraestructura en AWS.
|
|
- Configuración y scripts de despliegue de OpenShift y 3scale.
|
|
- Definiciones de recursos en Kubernetes/OpenShift (`Deployment`, `Service`, `Ingress`, `Route`, etc.).
|
|
- Documentación con pasos seguidos y decisiones tomadas.
|
|
|
|
## **Consideraciones**
|
|
- Se valorará **automatización**, **buenas prácticas de infraestructura como código**, **seguridad** y **claridad en la documentación**.
|
|
- Se recomienda utilizar herramientas como **Helm**, **Operators**, y seguir principios de **GitOps** si es aplicable.
|