Files
scripts/create-commerce-secrets.sh
devops 9c0a111f82 create-commerce-secrets.sh: agregar MEILI_MASTER_KEY/MEILISEARCH_API_KEY
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.
2026-08-26 14:59:52 -05:00

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."