fase 1
This commit is contained in:
@@ -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."
|
||||||
@@ -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."
|
||||||
@@ -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"
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user