The repository ships all Kubernetes manifests needed to run the complete platform — storage, databases, application services, configuration, autoscaling, and ingress. This page describes each manifest file, its KubernetesDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Miguel-Rodriguez15/msvc/llms.txt
Use this file to discover all available pages before exploring further.
kind, and the role it plays in the deployment.
Manifest Files
| File | Kind | Purpose |
|---|---|---|
mysql-pv.yaml | PersistentVolume | 2Gi host-path volume for MySQL data at /data/mysql |
mysql-pvc.yaml | PersistentVolumeClaim | Claims the mysql-pv volume for the MySQL pod |
postgres-pv.yaml | PersistentVolume | 2Gi host-path volume for PostgreSQL data at /data/postgres |
postgres-pvc.yaml | PersistentVolumeClaim | Claims storage for the PostgreSQL pod |
deployment-mysql.yaml | Deployment | MySQL 8.0 pod — creates the msvc_usuarios database |
svc-mysql.yaml | Service | ClusterIP service mysql8 on port 3306 |
deployment-postgres.yaml | Deployment | PostgreSQL 14-alpine pod — creates the msvc_cursos database |
svc-postgres.yaml | Service | ClusterIP service postgres14 on port 5432 |
auth.yml | Deployment + Service | msvc-auth OAuth2 Authorization Server on port 9000 (LoadBalancer) |
deployment-usuarios.yaml | Deployment | msvc-usuarios business service on port 8001 |
svc-usuarios.yaml | Service | LoadBalancer service for msvc-usuarios on port 8001 (ClientIP session affinity) |
deployment-cursos.yaml | Deployment | msvc-cursos business service on port 8002 |
svc-cursos.yaml | Service | LoadBalancer service for msvc-cursos on port 8002 |
gateway.yaml | Deployment + Service | msvc-gateway API Gateway on port 8090 (LoadBalancer) |
configmap.yaml | ConfigMap | Environment variables for msvc-usuarios, msvc-usuarios-config, and msvc-cursos |
secret.yaml | Secret | Base64-encoded database credentials for msvc-usuarios and msvc-cursos |
hpa-usuarios.yaml | HorizontalPodAutoscaler | Scales msvc-usuarios between 1–5 replicas at 50% average CPU |
hpa-cursos.yaml | HorizontalPodAutoscaler | Scales msvc-cursos between 1–5 replicas at 50% average CPU |
ingress.yaml | Ingress | NGINX Ingress at microservicios.local with rate limiting |
ConfigMap
configmap.yaml defines three ConfigMap resources. The msvc-usuarios and msvc-cursos ConfigMaps supply per-service environment variables. The msvc-usuarios-config ConfigMap carries an embedded application.yaml that Spring Cloud Kubernetes mounts as profile-aware configuration.
Key variables explained
| Variable | Service | Description |
|---|---|---|
LB_AUTH_ISSUER_URI | msvc-usuarios | OAuth2 issuer URL that msvc-usuarios uses to validate Bearer tokens |
LB_AUTH_REDIRECT_URI | msvc-usuarios, msvc-auth | OAuth2 redirect URI after authorization code flow completes |
LB_USUARIOS_URI | msvc-auth | URL of msvc-usuarios, used by msvc-auth to look up user credentials |
DB_HOT | msvc-usuarios | MySQL host and port in host:port format (mysql8:3306) |
CURSOS_URL | msvc-usuarios | In-cluster address of msvc-cursos used by OpenFeign (msvc-cursos:8002) |
DB_HOST | msvc-cursos | PostgreSQL host and port (postgres14:5432) |
USUARIOS_URL | msvc-cursos | In-cluster address of msvc-usuarios used by OpenFeign (msvc-usuarios:8001) |
config.texto | msvc-usuarios | Demo value injected from msvc-usuarios-config; changes per active Spring profile |
The
LB_AUTH_ISSUER_URI and redirect URI values contain the Minikube node IP (192.168.49.2) and NodePort numbers. Update these values to match your cluster’s actual IP and port assignments before applying.Secret
secret.yaml contains two Opaque Secrets with base64-encoded database credentials:
Resource Requests and Limits
Bothdeployment-usuarios.yaml and deployment-cursos.yaml define explicit resource constraints on their containers:
| Setting | msvc-usuarios | msvc-cursos |
|---|---|---|
| Memory request | 512 Mi | 512 Mi |
| Memory limit | 800 Mi | 800 Mi |
| CPU request | 400 m | 400 m |
| CPU limit | 500 m | 500 m |
400m and the HPA target is 50%, the autoscaler will begin scaling out when the pod consumes approximately 200m of CPU.
The database deployments (
deployment-mysql.yaml, deployment-postgres.yaml) and the auth.yml / gateway.yaml manifests do not currently define resource requests or limits. Add them before running in a shared or production cluster to prevent resource contention.RBAC
Spring Cloud Kubernetes reads ConfigMaps and Secrets from the Kubernetes API at runtime to refresh configuration without restarting pods. The pod’s service account must therefore have the necessary API permissions in thedefault namespace.
Create a Role and RoleBinding to grant the required access:
403 Forbidden errors when attempting to watch ConfigMaps, and dynamic configuration refresh will not function.