Files
scripts/create-commerce-secrets.sh
T
devops 4078c66e1f fix(medusa): agregar sslmode=disable al DATABASE_URL generado
Postgres corre sin SSL configurado (imagen postgres:17-alpine estandar,
sin certificados). El cliente pg de Medusa intenta negociar SSL por
defecto al no encontrar sslmode explicito en la URL, lo que cuelga 10s
y hace fallar el initContainer migrations con CrashLoopBackOff.

Verificado con un pod efimero usando la imagen real de la app: con
sslmode=disable la migracion conecta al instante y corre exitosamente.
2026-08-09 02:04:06 -05:00

57 lines
1.9 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)"
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}" \
--dry-run=client \
-o yaml |
kubectl apply -f -
echo
echo "Secret commerce-secrets configurado en namespace ${NAMESPACE}."
echo "No se imprimieron las credenciales."