Migration complète vers PrimeFaces Freya - Corrections des incompatibilités et intégration de primefaces-freya-extension
This commit is contained in:
243
scripts/create-kubernetes-secrets-production.ps1
Normal file
243
scripts/create-kubernetes-secrets-production.ps1
Normal file
@@ -0,0 +1,243 @@
|
||||
#!/usr/bin/env pwsh
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Script pour créer les secrets Kubernetes en production
|
||||
|
||||
.DESCRIPTION
|
||||
Ce script crée les secrets Kubernetes nécessaires pour Lions User Manager :
|
||||
- Secret frontend (Keycloak client secret, OIDC encryption secret)
|
||||
- Secret backend (Keycloak service account secret, DB password, etc.)
|
||||
|
||||
.PARAMETER VpsHost
|
||||
Host SSH du VPS (ex: lions@176.57.150.2)
|
||||
|
||||
.PARAMETER Namespace
|
||||
Namespace Kubernetes (défaut: lions-user-manager)
|
||||
|
||||
.PARAMETER FrontendClientSecret
|
||||
Secret du client frontend Keycloak
|
||||
|
||||
.PARAMETER BackendClientSecret
|
||||
Secret du service account backend Keycloak
|
||||
|
||||
.PARAMETER OidcEncryptionSecret
|
||||
Secret de chiffrement OIDC (32+ caractères)
|
||||
|
||||
.PARAMETER KeycloakAdminPassword
|
||||
Mot de passe admin Keycloak
|
||||
|
||||
.PARAMETER DatabasePassword
|
||||
Mot de passe base de données
|
||||
|
||||
.PARAMETER BackendUrl
|
||||
URL du backend (défaut: https://api.lions.dev/lions-user-manager)
|
||||
|
||||
.EXAMPLE
|
||||
.\create-kubernetes-secrets-production.ps1 `
|
||||
-VpsHost "lions@176.57.150.2" `
|
||||
-FrontendClientSecret "frontend-secret" `
|
||||
-BackendClientSecret "backend-secret" `
|
||||
-OidcEncryptionSecret "32-char-encryption-secret-here" `
|
||||
-KeycloakAdminPassword "admin-password" `
|
||||
-DatabasePassword "db-password"
|
||||
#>
|
||||
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$VpsHost,
|
||||
|
||||
[Parameter(Mandatory=$false)]
|
||||
[string]$Namespace = "lions-user-manager",
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$FrontendClientSecret,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$BackendClientSecret,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$OidcEncryptionSecret,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$KeycloakAdminPassword,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$DatabasePassword,
|
||||
|
||||
[Parameter(Mandatory=$false)]
|
||||
[string]$BackendUrl = "https://api.lions.dev/lions-user-manager"
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# Couleurs
|
||||
function Write-Success { Write-Host "✅ $args" -ForegroundColor Green }
|
||||
function Write-Info { Write-Host "ℹ️ $args" -ForegroundColor Cyan }
|
||||
function Write-Warning { Write-Host "⚠️ $args" -ForegroundColor Yellow }
|
||||
function Write-Error { Write-Host "❌ $args" -ForegroundColor Red }
|
||||
function Write-Step { Write-Host "`n🚀 $args" -ForegroundColor Magenta }
|
||||
|
||||
Write-Host @"
|
||||
|
||||
╔═══════════════════════════════════════════════════════════════════════════════╗
|
||||
║ ║
|
||||
║ 🔐 CRÉATION SECRETS KUBERNETES PRODUCTION 🔐 ║
|
||||
║ ║
|
||||
╚═══════════════════════════════════════════════════════════════════════════════╝
|
||||
|
||||
"@ -ForegroundColor Cyan
|
||||
|
||||
Write-Info "VPS Host: $VpsHost"
|
||||
Write-Info "Namespace: $Namespace"
|
||||
Write-Info ""
|
||||
|
||||
# Vérifier que le namespace existe
|
||||
Write-Step "1. Vérification du namespace..."
|
||||
|
||||
$checkNsCmd = "kubectl get namespace $Namespace"
|
||||
try {
|
||||
ssh.exe $VpsHost $checkNsCmd | Out-Null
|
||||
Write-Success "Namespace $Namespace existe"
|
||||
} catch {
|
||||
Write-Info "Création du namespace $Namespace..."
|
||||
$createNsCmd = "kubectl create namespace $Namespace"
|
||||
ssh.exe $VpsHost $createNsCmd
|
||||
Write-Success "Namespace $Namespace créé"
|
||||
}
|
||||
|
||||
# 2. Créer le secret frontend
|
||||
Write-Step "2. Création du secret frontend..."
|
||||
|
||||
$frontendSecretYaml = @"
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: lions-user-manager-client-secrets
|
||||
namespace: $Namespace
|
||||
type: Opaque
|
||||
stringData:
|
||||
KEYCLOAK_CLIENT_SECRET: $FrontendClientSecret
|
||||
OIDC_ENCRYPTION_SECRET: $OidcEncryptionSecret
|
||||
LIONS_USER_MANAGER_BACKEND_URL: $BackendUrl
|
||||
"@
|
||||
|
||||
$frontendSecretFile = [System.IO.Path]::GetTempFileName()
|
||||
$frontendSecretYaml | Out-File -FilePath $frontendSecretFile -Encoding UTF8
|
||||
|
||||
try {
|
||||
# Supprimer le secret s'il existe déjà
|
||||
$deleteCmd = "kubectl delete secret lions-user-manager-client-secrets -n $Namespace --ignore-not-found=true"
|
||||
ssh.exe $VpsHost $deleteCmd | Out-Null
|
||||
|
||||
# Copier le fichier sur le VPS et créer le secret
|
||||
$remoteFile = "/tmp/frontend-secret.yaml"
|
||||
scp.exe $frontendSecretFile "$VpsHost`:$remoteFile"
|
||||
$createSecretCmd = "kubectl apply -f $remoteFile"
|
||||
ssh.exe $VpsHost $createSecretCmd
|
||||
|
||||
Write-Success "Secret frontend créé"
|
||||
} catch {
|
||||
Write-Error "Erreur création secret frontend: $($_.Exception.Message)"
|
||||
exit 1
|
||||
} finally {
|
||||
Remove-Item $frontendSecretFile -Force
|
||||
}
|
||||
|
||||
# 3. Créer le secret backend
|
||||
Write-Step "3. Création du secret backend..."
|
||||
|
||||
$backendSecretYaml = @"
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: lions-user-manager-server-secrets
|
||||
namespace: $Namespace
|
||||
type: Opaque
|
||||
stringData:
|
||||
KEYCLOAK_CLIENT_SECRET: $BackendClientSecret
|
||||
KEYCLOAK_ADMIN_USERNAME: admin
|
||||
KEYCLOAK_ADMIN_PASSWORD: $KeycloakAdminPassword
|
||||
DB_PASSWORD: $DatabasePassword
|
||||
"@
|
||||
|
||||
$backendSecretFile = [System.IO.Path]::GetTempFileName()
|
||||
$backendSecretYaml | Out-File -FilePath $backendSecretFile -Encoding UTF8
|
||||
|
||||
try {
|
||||
# Supprimer le secret s'il existe déjà
|
||||
$deleteCmd = "kubectl delete secret lions-user-manager-server-secrets -n $Namespace --ignore-not-found=true"
|
||||
ssh.exe $VpsHost $deleteCmd | Out-Null
|
||||
|
||||
# Copier le fichier sur le VPS et créer le secret
|
||||
$remoteFile = "/tmp/backend-secret.yaml"
|
||||
scp.exe $backendSecretFile "$VpsHost`:$remoteFile"
|
||||
$createSecretCmd = "kubectl apply -f $remoteFile"
|
||||
ssh.exe $VpsHost $createSecretCmd
|
||||
|
||||
Write-Success "Secret backend créé"
|
||||
} catch {
|
||||
Write-Error "Erreur création secret backend: $($_.Exception.Message)"
|
||||
exit 1
|
||||
} finally {
|
||||
Remove-Item $backendSecretFile -Force
|
||||
}
|
||||
|
||||
# 4. Vérifier les secrets
|
||||
Write-Step "4. Vérification des secrets créés..."
|
||||
|
||||
$listSecretsCmd = "kubectl get secrets -n $Namespace | grep lions-user-manager"
|
||||
try {
|
||||
$secrets = ssh.exe $VpsHost $listSecretsCmd
|
||||
Write-Success "Secrets listés:"
|
||||
Write-Host $secrets
|
||||
} catch {
|
||||
Write-Warning "Erreur lors de la vérification: $($_.Exception.Message)"
|
||||
}
|
||||
|
||||
# 5. Décrire les secrets (sans afficher les valeurs)
|
||||
Write-Step "5. Description des secrets (sans valeurs)..."
|
||||
|
||||
try {
|
||||
Write-Info "Secret frontend:"
|
||||
$describeFrontendCmd = "kubectl describe secret lions-user-manager-client-secrets -n $Namespace"
|
||||
ssh.exe $VpsHost $describeFrontendCmd
|
||||
|
||||
Write-Info "Secret backend:"
|
||||
$describeBackendCmd = "kubectl describe secret lions-user-manager-server-secrets -n $Namespace"
|
||||
ssh.exe $VpsHost $describeBackendCmd
|
||||
} catch {
|
||||
Write-Warning "Erreur lors de la description: $($_.Exception.Message)"
|
||||
}
|
||||
|
||||
# 6. Résumé
|
||||
Write-Step "6. Résumé de la configuration..."
|
||||
|
||||
Write-Host @"
|
||||
|
||||
╔═══════════════════════════════════════════════════════════════════════════════╗
|
||||
║ ║
|
||||
║ ✅ SECRETS KUBERNETES CRÉÉS ✅ ║
|
||||
║ ║
|
||||
╚═══════════════════════════════════════════════════════════════════════════════╝
|
||||
|
||||
"@ -ForegroundColor Green
|
||||
|
||||
Write-Host "📋 SECRETS CRÉÉS:" -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
Write-Host "🔐 FRONTEND (lions-user-manager-client-secrets):" -ForegroundColor Cyan
|
||||
Write-Host " - KEYCLOAK_CLIENT_SECRET"
|
||||
Write-Host " - OIDC_ENCRYPTION_SECRET"
|
||||
Write-Host " - LIONS_USER_MANAGER_BACKEND_URL"
|
||||
Write-Host ""
|
||||
Write-Host "🔐 BACKEND (lions-user-manager-server-secrets):" -ForegroundColor Cyan
|
||||
Write-Host " - KEYCLOAK_CLIENT_SECRET"
|
||||
Write-Host " - KEYCLOAK_ADMIN_USERNAME"
|
||||
Write-Host " - KEYCLOAK_ADMIN_PASSWORD"
|
||||
Write-Host " - DB_PASSWORD"
|
||||
Write-Host ""
|
||||
Write-Host "⚠️ PROCHAINES ÉTAPES:" -ForegroundColor Yellow
|
||||
Write-Host " 1. Vérifiez que les secrets sont correctement créés"
|
||||
Write-Host " 2. Configurez les Deployments pour utiliser ces secrets"
|
||||
Write-Host " 3. Procédez au déploiement avec lionsctl"
|
||||
Write-Host ""
|
||||
|
||||
Reference in New Issue
Block a user