Skip to content

Recolectando Configuraciones y Secretos para el Ecosistema

En el artículo anterior, presentamos el ecosistema de microservicios que estamos a punto de desplegar. Ahora, antes de poder dar vida a nuestro primer servicio, necesitamos las “llaves del reino”: las credenciales y configuraciones para conectarse a todos los servicios que hemos preparado.

Este artículo es un checklist de preparación. Te guiaremos paso a paso para recolectar toda la información crítica que necesitaremos en los próximos despliegues. Al final de esta guía, tendrás una lista completa de todos los valores que luego almacenaremos en HashiCorp Vault.

Un Vistazo al Ecosistema que Vamos a Potenciar

Section titled “Un Vistazo al Ecosistema que Vamos a Potenciar”

Recordemos brevemente el ecosistema. Cada uno de estos componentes necesitará algunos de los secretos que vamos a reunir para comunicarse de forma segura entre sí y con el mundo exterior.

Diagrama del Ecosistema de Microservicios CodeDesignPlus
  • MongoDB Atlas: Necesitarás una cuenta y un clúster (la versión gratuita es suficiente) creado en MongoDB Atlas.
  • Infraestructura Desplegada: Debes tener todos los componentes de la fase anterior funcionando: Kubernetes, Vault, RabbitMQ, etc.

Parte 1: Recolectando los Secretos y Configuraciones

Section titled “Parte 1: Recolectando los Secretos y Configuraciones”
  1. Obtener Datos de Microsoft Entra ID Nuestros microservicios necesitan validar los tokens JWT emitidos por Entra ID. Para ello, requieren tres piezas de información.

    • Paso 1.1: Obtener el ClientId y Audience Ve al registro de tu aplicación InventoryApp en Entra ID. El valor que necesitas es el Application (client) ID. Anótalo; lo usaremos tanto para el ClientId como para la ValidAudience.

      Obteniendo el Client ID de la App Registration en Entra ID
    • Paso 1.2: Obtener el Issuer (Emisor) En la misma pantalla, haz clic en la pestaña “Endpoints”. La URL que necesitas es la del OpenID Connect metadata document. Cópiala y anótala como ValidIssuer.

      Obteniendo la URL del Issuer desde los Endpoints
  2. Obtener Credenciales de RabbitMQ El Operator de RabbitMQ crea un usuario por defecto y almacena sus credenciales en un secreto de Kubernetes.

    • Usando Lens, navega a Config > Secrets y selecciona el namespace srv-rabbitmq.
    • Abre el secreto rabbitmq-cluster-default-user.
    • Lens te mostrará los valores decodificados. Copia y anota los valores de username y password.
    Obteniendo las credenciales de RabbitMQ desde un secreto en Lens
  3. Obtener la Cadena de Conexión de MongoDB Atlas Inicia sesión en tu panel de MongoDB Atlas.

    • Navega a tu clúster y haz clic en “Connect”.
    • Selecciona “Drivers” y sigue los pasos para obtener tu cadena de conexión (Connection String).
    • ¡Importante! Asegúrate de reemplazar <password> con la contraseña real de tu usuario de base de datos. Para este entorno de desarrollo, también deberás configurar el acceso a la red (“Network Access”) para permitir conexiones desde cualquier lugar, añadiendo la IP 0.0.0.0/0.

¡Excelente trabajo! Has completado la fase de recolección. En este punto, deberías tener anotados y listos los siguientes valores en un lugar seguro (como un gestor de contraseñas).

ConfiguraciónValor de EjemploOrigen
Security:ValidIssuerhttps://devcodedesignplus.ciamlogin.com/.../v2.0/Endpoints de Entra ID
Security:ClientId305f759d-d1d2-467b-9eab-4a61389c7329App Registration de Entra ID
Security:ValidAudiences:0305f759d-d1d2-467b-9eab-4a61389c7329App Registration de Entra ID
RabbitMQ:UserNamedefault_user_...Secreto de Kubernetes (RabbitMQ)
RabbitMQ:PasswordbHdldUhMZl...Secreto de Kubernetes (RabbitMQ)
Mongo:ConnectionStringmongodb+srv://user:pass@cluster...Panel de MongoDB Atlas

Estos valores son fijos para nuestra arquitectura y los usaremos para la comunicación entre servicios.

ConfiguraciónValor Fijo para Nuestro Entorno
Resources:Serverhttp://ms-services-grpc.inventory.svc.cluster.local:5001
RabbitMQ:Hostrabbitmq-cluster.srv-rabbitmq.svc.cluster.local
Redis:Instances:Core:ConnectionStringredis-standalone-headless.srv-redis.svc.cluster.local:6379
Observability:ServerOtelhttp://inventory-opentelemetry-collector.otel-collector.svc.cluster.local:4317

Has completado la preparación final. Con esta lista de configuraciones y secretos en mano, estás perfectamente equipado para el siguiente y emocionante paso.

En el próximo artículo, desplegaremos nuestro primer microservicio, ms-services. Tomaremos toda esta información que hemos recolectado, la almacenaremos de forma segura en Vault, y lanzaremos el servicio, viendo por primera vez cómo un componente de CodeDesignPlus se integra y cobra vida dentro de la plataforma que hemos construido.