This commit is contained in:
2026-07-31 23:40:49 -05:00
parent 77780af646
commit 920b9517f2
4 changed files with 184 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
#!/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}"
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."
+22
View File
@@ -0,0 +1,22 @@
#!/usr/bin/env bash
set -Eeuo pipefail
NAMESPACE="${NAMESPACE:-ecommerce}"
read -rsp "Pega la Publishable API Key de Medusa: " MEDUSA_PUBLISHABLE_KEY
echo
if [[ -z "${MEDUSA_PUBLISHABLE_KEY}" ]]; then
echo "ERROR: la clave no puede estar vacía."
exit 1
fi
kubectl -n "${NAMESPACE}" create secret generic commerce-storefront \
--from-literal=MEDUSA_PUBLISHABLE_KEY="${MEDUSA_PUBLISHABLE_KEY}" \
--dry-run=client \
-o yaml |
kubectl apply -f -
unset MEDUSA_PUBLISHABLE_KEY
echo "Secret commerce-storefront configurado."
+70
View File
@@ -0,0 +1,70 @@
#!/usr/bin/env bash
set -Eeuo pipefail
PACKAGE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
REPO_ROOT="${1:-$PWD}"
if [[ ! -d "${REPO_ROOT}/.git" ]]; then
echo "ERROR: ${REPO_ROOT} no parece ser la raíz de apps-registry."
exit 1
fi
test -f "${REPO_ROOT}/workloads/ecommerce/kustomization.yaml"
BACKUP="${REPO_ROOT}/.phase1-backup-$(date +%Y%m%d-%H%M%S)"
mkdir -p "${BACKUP}"
cp -a \
"${REPO_ROOT}/workloads/ecommerce/kustomization.yaml" \
"${BACKUP}/kustomization.yaml"
for file in \
"workloads/ecommerce/lib/headless/providers/medusa.ts" \
"workloads/ecommerce/next.config.ts"; do
if [[ -f "${REPO_ROOT}/${file}" ]]; then
mkdir -p "${BACKUP}/$(dirname "${file}")"
cp -a "${REPO_ROOT}/${file}" "${BACKUP}/${file}"
fi
done
cp -a \
"${PACKAGE_ROOT}/apps-registry/." \
"${REPO_ROOT}/"
KUSTOMIZATION="${REPO_ROOT}/workloads/ecommerce/kustomization.yaml"
python3 - "${KUSTOMIZATION}" <<'PY'
from pathlib import Path
import sys
path = Path(sys.argv[1])
text = path.read_text(encoding="utf-8")
if " - commerce/" not in text:
marker = "resources:\n"
if marker not in text:
raise SystemExit("No se encontró el bloque resources en kustomization.yaml")
lines = text.splitlines()
out = []
inserted = False
for line in lines:
if not inserted and line.startswith("patches:"):
out.append(" - commerce/")
out.append("")
inserted = True
out.append(line)
if not inserted:
out.append(" - commerce/")
path.write_text("\n".join(out).rstrip() + "\n", encoding="utf-8")
PY
echo
echo "Fase 1 copiada en: ${REPO_ROOT}"
echo "Respaldo: ${BACKUP}"
echo
echo "El frontend NO fue cambiado a Medusa todavía."
echo "Revisa los cambios con: git status && git diff"
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/env bash
set -Eeuo pipefail
NAMESPACE="${NAMESPACE:-ecommerce}"
echo "== Aplicaciones =="
kubectl -n argocd get application ecommerce-app ecommerce-governance \
-o custom-columns='NAME:.metadata.name,SYNC:.status.sync.status,HEALTH:.status.health.status'
echo
echo "== Pods =="
kubectl -n "${NAMESPACE}" get pods -o wide
echo
echo "== PVC =="
kubectl -n "${NAMESPACE}" get pvc
echo
echo "== Servicios =="
kubectl -n "${NAMESPACE}" get svc \
postgres-svc redis-svc minio-svc medusa-svc
echo
echo "== Health interno =="
kubectl -n "${NAMESPACE}" run commerce-healthcheck \
--image=curlimages/curl:8.12.1 \
--restart=Never \
--rm -i \
--command -- \
curl -fsS --max-time 10 http://medusa-svc:9000/health
echo
echo
echo "== Health público =="
curl -fsS --max-time 15 https://commerce.cruzcloud.net/health
echo