Fase 1 de la Etapa 2 del ADR 0006 (apps-registry): el StatefulSet de Meilisearch lee MEILI_MASTER_KEY del secret commerce-secrets, y el plugin de Medusa leera MEILISEARCH_API_KEY con el mismo valor (Fase 2, distinto nombre de env var por cada lado, mismo secret). Nota operativa: este script regenera el secret completo en cada corrida (JWT_SECRET/COOKIE_SECRET/REVALIDATE_SECRET siempre nuevos). Para aplicar SOLO estas dos claves nuevas al secret ya en uso en el cluster real, no correr el script completo -- rotaria credenciales de postgres/redis/minio ya activas. Se aplico via patch puntual al Secret en vivo, fuera de este script, para esta vez.
71 lines
2.6 KiB
Bash
71 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
NAMESPACE="${NAMESPACE:-ecommerce}"
|
|
|
|
random_secret() {
|
|
openssl rand -hex 32
|
|
}
|
|
|
|
read -rp "Usuario PostgreSQL [medusa]: " POSTGRES_USER
|
|
POSTGRES_USER="${POSTGRES_USER:-medusa}"
|
|
|
|
read -rp "Base de datos PostgreSQL [medusa]: " POSTGRES_DB
|
|
POSTGRES_DB="${POSTGRES_DB:-medusa}"
|
|
|
|
read -rsp "Contraseña PostgreSQL (vacío = generar): " POSTGRES_PASSWORD
|
|
echo
|
|
POSTGRES_PASSWORD="${POSTGRES_PASSWORD:-$(random_secret)}"
|
|
|
|
read -rsp "Contraseña Redis (vacío = generar): " REDIS_PASSWORD
|
|
echo
|
|
REDIS_PASSWORD="${REDIS_PASSWORD:-$(random_secret)}"
|
|
|
|
read -rp "Usuario MinIO [ari-minio]: " MINIO_ROOT_USER
|
|
MINIO_ROOT_USER="${MINIO_ROOT_USER:-ari-minio}"
|
|
|
|
read -rsp "Contraseña MinIO (vacío = generar): " MINIO_ROOT_PASSWORD
|
|
echo
|
|
MINIO_ROOT_PASSWORD="${MINIO_ROOT_PASSWORD:-$(random_secret)}"
|
|
|
|
JWT_SECRET="$(random_secret)"
|
|
COOKIE_SECRET="$(random_secret)"
|
|
REVALIDATE_SECRET="$(random_secret)"
|
|
|
|
# Mismo valor para las dos claves: MEILI_MASTER_KEY la lee el propio
|
|
# contenedor getmeili/meilisearch (servidor), MEILISEARCH_API_KEY la lee
|
|
# el plugin @rokmohar/medusa-plugin-meilisearch en Medusa (cliente) --
|
|
# cada lado usa su propia convencion de nombre de env var.
|
|
MEILI_MASTER_KEY="$(random_secret)"
|
|
|
|
DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres-svc:5432/${POSTGRES_DB}?sslmode=disable"
|
|
REDIS_URL="redis://:${REDIS_PASSWORD}@redis-svc:6379"
|
|
|
|
kubectl -n "${NAMESPACE}" create secret generic commerce-secrets \
|
|
--from-literal=POSTGRES_USER="${POSTGRES_USER}" \
|
|
--from-literal=POSTGRES_PASSWORD="${POSTGRES_PASSWORD}" \
|
|
--from-literal=POSTGRES_DB="${POSTGRES_DB}" \
|
|
--from-literal=DATABASE_URL="${DATABASE_URL}" \
|
|
--from-literal=REDIS_PASSWORD="${REDIS_PASSWORD}" \
|
|
--from-literal=REDIS_URL="${REDIS_URL}" \
|
|
--from-literal=MINIO_ROOT_USER="${MINIO_ROOT_USER}" \
|
|
--from-literal=MINIO_ROOT_PASSWORD="${MINIO_ROOT_PASSWORD}" \
|
|
--from-literal=S3_ACCESS_KEY_ID="${MINIO_ROOT_USER}" \
|
|
--from-literal=S3_SECRET_ACCESS_KEY="${MINIO_ROOT_PASSWORD}" \
|
|
--from-literal=JWT_SECRET="${JWT_SECRET}" \
|
|
--from-literal=COOKIE_SECRET="${COOKIE_SECRET}" \
|
|
--from-literal=REVALIDATE_SECRET="${REVALIDATE_SECRET}" \
|
|
--from-literal=MEILI_MASTER_KEY="${MEILI_MASTER_KEY}" \
|
|
--from-literal=MEILISEARCH_API_KEY="${MEILI_MASTER_KEY}" \
|
|
--dry-run=client \
|
|
-o yaml |
|
|
kubectl apply -f -
|
|
|
|
echo
|
|
echo "Secret commerce-secrets configurado en namespace ${NAMESPACE}."
|
|
echo "No se imprimieron el resto de las credenciales."
|
|
echo
|
|
echo "REVALIDATE_SECRET generado: ${REVALIDATE_SECRET}"
|
|
echo "Se imprime porque hay que pegarlo tal cual en create-storefront-secret.sh:"
|
|
echo "ambos secrets necesitan el mismo valor."
|