Initial commit — LoginMaster tenant deployment toolkit
Toolkit per deployare/aggiornare un tenant LoginMaster su qualsiasi Kubernetes (EKS/AKS/DOKS/Scaleway/vSphere/...). Contiene: - deploy.sh: bootstrap di un nuovo tenant (idempotente, re-run protection, storage class auto-rilevata, prompt separati api/admin tag, generazione segreti crittografici via openssl rand). - update.sh: rolling update zero-downtime con tag api/admin separati, rollback hint via 'kubectl rollout undo', riapplicazione opzionale del ConfigMap. - templates/: 8 manifest parametrici (envsubst): namespace, cert-manager TLS Mongo, NetworkPolicy intra-namespace, ConfigMap, MongoDB StatefulSet 3 repliche con TLS interno + initContainer per keyfile/PEM, tenant-api Deployment 2 repliche con CA validation, tenant-admin, ingress nginx + Let's Encrypt. Sicurezza: TLS interno Mongo (cert-manager CA self-signed 10y), keyFile per auth replica set, password client mai in argv, NetworkPolicy che isola il tenant, pod Mongo non-root (uid 999) con initContainer come root per i file runtime in tmpfs.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: tenant-api-config
|
||||
namespace: ${NAMESPACE}
|
||||
data:
|
||||
NODE_ENV: "production"
|
||||
PORT: "3000"
|
||||
# MONGODB_URI è nel Secret mongodb-tenant-auth (contiene credenziali)
|
||||
LOGINMASTER_API_URL: "${LOGINMASTER_API_URL}"
|
||||
ADMIN_ALLOWED_ORIGIN: "${ADMIN_ALLOWED_ORIGIN}"
|
||||
TENANT_ADMIN_URL: "${TENANT_ADMIN_URL}"
|
||||
# CORS_ORIGIN e MANAGE_ALLOWED_ORIGIN sono alias di TENANT_ADMIN_URL: nomi
|
||||
# storici letti dal codice API. Tenuti per compat — se l'API ne legge solo
|
||||
# uno è innocuo, ma è preferibile che il codice legga TENANT_ADMIN_URL.
|
||||
CORS_ORIGIN: "${TENANT_ADMIN_URL}"
|
||||
MANAGE_ALLOWED_ORIGIN: "${TENANT_ADMIN_URL}"
|
||||
JWT_ACCESS_EXPIRY: "15m"
|
||||
JWT_REFRESH_EXPIRY: "7d"
|
||||
LOG_LEVEL: "info"
|
||||
SMTP_HOST: "${SMTP_HOST}"
|
||||
SMTP_PORT: "${SMTP_PORT}"
|
||||
SMTP_SECURE: "${SMTP_SECURE}"
|
||||
SMTP_USER: "${SMTP_USER}"
|
||||
EMAIL_FROM: "${EMAIL_FROM}"
|
||||
Reference in New Issue
Block a user