#!/bin/bash ################################################################################ # OCP Smart Login - Interaktive Demo # # Zeigt die Funktionsweise des neuen Smart-Login Systems ################################################################################ set -e # Colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' CYAN='\033[0;36m' NC='\033[0m' ################################################################################ show_header() { echo -e "${BLUE}═══════════════════════════════════════════════════════════════════════════${NC}" echo -e "${BLUE}$1${NC}" echo -e "${BLUE}═══════════════════════════════════════════════════════════════════════════${NC}" } show_info() { echo -e "${CYAN}ℹ $1${NC}" } show_success() { echo -e "${GREEN}✓ $1${NC}" } show_warning() { echo -e "${YELLOW}⚠ $1${NC}" } show_error() { echo -e "${RED}✗ $1${NC}" } pause_for_input() { echo "" read -p "Drücke ENTER zum Fortfahren..." echo "" } ################################################################################ main() { clear show_header "OCP Smart Login System - Demo & Erklärung" echo "" show_info "Dieses Demo zeigt die Funktionsweise des neuen Smart-Login Systems" echo "" # ======================================================================== # Part 1: Das Problem # ======================================================================== show_header "📌 PART 1: Das Problem (Altes System)" echo "" echo -e "${YELLOW}Scenario: Heute mit 3 verschiedenen Clustern arbeiten${NC}" echo "" echo " Step 1: Anmelden zu AWS-Test1" echo " $ ocLoginAWS-Test1" echo " → Browser öffnet sich" echo " → Token kopieren (Browser)" echo " → Token einfügen (Terminal)" echo -e " ⏱ Dauer: ~30 Sekunden${NC}" echo "" echo " Step 2: Wechsel zu AWS-Int (Integration)" echo " $ ocAWS-Int" echo -e " ✗ ERROR: You must be logged in to perform this action${NC}" echo " → Token ist für anderen Cluster!" echo " → Muss neu anmelden..." echo -e " ⏱ Dauer: ~30 Sekunden${NC}" echo "" echo " Step 3: Zurück zu AWS-Test1" echo " $ ocAWS-Test1" echo " → Browser öffnet sich (NOCHMAL!)" echo " → Token kopieren (Browser)" echo " → Token einfügen (Terminal)" echo -e " ⏱ Dauer: ~30 Sekunden${NC}" echo "" echo -e "${RED}Total Dauer für 3 Cluster: ~90 Sekunden${NC}" echo -e "${RED}Browser öffnete sich: 2x (für gleichen User! 😤)${NC}" pause_for_input # ======================================================================== # Part 2: Die Lösung # ======================================================================== clear show_header "✨ PART 2: Die Lösung (Neues System)" echo "" echo -e "${GREEN}Scenario: Gleich 3 Cluster, aber mit Smart-Login${NC}" echo "" echo " Step 1: Wechsel zu AWS-Test1" echo " $ ocAWS-Test1" echo "" echo " [Prüfung der Authentifizierung...]" echo " → Bin ich angemeldet? NEIN" echo " → Token gültig? —" echo " → Starte Full Login..." echo "" echo " → Browser öffnet sich" echo " → Token kopieren (Browser)" echo " → Token einfügen (Terminal)" echo -e " ⏱ Dauer: ~30 Sekunden${NC}" echo "" echo " Step 2: Wechsel zu AWS-Int (Integration)" echo " $ ocAWS-Int" echo "" echo " [Prüfung der Authentifizierung...]" echo " → Bin ich angemeldet? JA" echo " → Token gültig? JA" echo " → Wechsel Kontext..." echo "" echo " ✓ Context switched from aws01t to Lisa" echo " ✓ Project switched to kihub-int" echo -e " ⏱ Dauer: ~2 Sekunden${NC}" echo "" echo " Step 3: Zurück zu AWS-Test1" echo " $ ocAWS-Test1" echo "" echo " [Prüfung der Authentifizierung...]" echo " → Bin ich angemeldet? JA" echo " → Token gültig? JA ✓" echo " → Wechsel Kontext..." echo "" echo " ✓ Context switched from Lisa to aws01t" echo " ✓ Already in project kihub-dev-u241100" echo -e " ⏱ Dauer: ~2 Sekunden${NC}" echo "" echo -e "${GREEN}Total Dauer für 3 Cluster: ~34 Sekunden${NC}" echo -e "${GREEN}Browser öffnete sich: 1x (nur 1x pro Tag!)${NC}" echo -e "${GREEN}Ersparnis: 56 Sekunden = 62% schneller!${NC}" pause_for_input # ======================================================================== # Part 3: Wie funktioniert es? # ======================================================================== clear show_header "🔧 PART 3: Wie funktioniert es?" echo "" show_info "Das System prüft 3 Dinge vor jedem Cluster-Wechsel:" echo "" echo " 1️⃣ Bin ich überhaupt angemeldet?" echo " $ oc config current-context" echo " → Falls FEHLER: Login erforderlich" echo " → Falls erfolgreich: weiter zu Schritt 2" echo "" echo " 2️⃣ Ist mein Token noch gültig?" echo " $ oc get projects" echo " → Falls FEHLER: Token abgelaufen → Login erforderlich" echo " → Falls erfolgreich: weiter zu Schritt 3" echo "" echo " 3️⃣ Bin ich bereits auf dem Target-Cluster?" echo " $ oc config current-context" echo " → Falls JA: Fertig!" echo " → Falls NEIN: Context wechseln (schnell!)" echo "" echo -e "${CYAN}Diesen Test können Sie manuell testen mit:${NC}" echo " • is_oc_logged_in → Prüfe ob angemeldet" echo " • is_oc_token_valid → Prüfe ob Token gültig" echo " • oc_status → Detaillierter Status" pause_for_input # ======================================================================== # Part 4: Neue Befehle # ======================================================================== clear show_header "📚 PART 4: Verfügbare Befehle" echo "" show_info "AWS Cluster Aliases:" echo " ocAWS-Test1 AWS-Test1 (aws01t)" echo " ocAWS-Test2 AWS-Test2 (aws02t)" echo " ocAWS-Dev Development (aws01t)" echo " ocAWS-RT Runtime (aws01t)" echo " ocAWS-Test Test Project (aws01t)" echo " ocAWS-Int Integration (Lisa)" echo " ocAWS-Prod Production (Lisa)" echo " ocAWS-Lisa Lisa Cluster" echo " ocAWS-Maggie Maggie Cluster" echo "" show_info "OTC (SC) Cluster Aliases:" echo " ocSC-Dev Development (sc02t)" echo " ocSC-RT Runtime (sc02t)" echo " ocSC-Test Test (sc02t)" echo " ocSC-Int Integration (Sputnix)" echo " ocSC-Prod Production (Sputnix)" echo "" show_info "Helper Aliases:" echo " ocStatus Zeige aktuellen Auth-Status" echo " ocCtx Liste alle verfügbaren Contexts" echo " ocWhoami Zeige aktuellen User" echo " ocLogout Logout aus aktuellem Cluster" pause_for_input # ======================================================================== # Part 5: Setup # ======================================================================== clear show_header "⚙️ PART 5: Setup & Installation" echo "" show_info "Folgende Schritte notwendig:" echo "" echo " 1. Dateien mit Sync synchronisieren:" echo " $ cd ~/mac-home" echo " $ ./sync-home-content.sh pull" echo "" echo " 2. ~/.zshrc konfigurieren:" echo " $ vim ~/.zshrc" echo "" echo " # Am ENDE der Datei hinzufügen:" echo " if [[ -f ~/.bash_oc_smart_aliases.sh ]]; then" echo " source ~/.bash_oc_smart_aliases.sh" echo " fi" echo "" echo " 3. Tokens setzen (in ~/.profile oder ~/.secrets/ocp_tokens):" echo " export OPENSHIFT_TOKEN_AWS_TEST='sha256~your-token'" echo " export OPENSHIFT_TOKEN_AWS_PROD='sha256~your-token'" echo " export OPENSHIFT_TOKEN_SC02='sha256~your-token'" echo " ..." echo "" echo " 4. Shell neu laden:" echo " $ source ~/.zshrc" echo "" echo " 5. Testen:" echo " $ ocStatus # Check Status" echo " $ ocAWS-Dev # Try cluster switch" echo "" echo -e "${GREEN}Detaillierte Anleitung in: OCP-SMART-LOGIN-SETUP.md${NC}" pause_for_input # ======================================================================== # Part 6: Benefits # ======================================================================== clear show_header "🎯 PART 6: Vorteile & Benefits" echo "" echo -e "${GREEN}✓ Geschwindigkeit${NC}" echo " • 50-60% schneller bei Multi-Cluster-Arbeit" echo " • Context-Switch: 2-5 Sekunden (vs 30s Login)" echo " • Browser öffnet sich nur 1x pro Tag (nicht 3x!)" echo "" echo -e "${GREEN}✓ Sicherheit${NC}" echo " • Token wird intelligent gültigkeitsprüft" echo " • Automatischer Fallback auf Browser-Login" echo " • Keine hardcodierten Tokens in Aliases" echo "" echo -e "${GREEN}✓ Benutzerfreundlichkeit${NC}" echo " • Gleiche Alias-Namen (ocAWS-Dev, ocSC-Int)" echo " • Intelligentes Auto-Erkennung" echo " • Rückwärts-Kompatibilität (alte ocLogin* noch verfügbar)" echo "" echo -e "${GREEN}✓ Zuverlässigkeit${NC}" echo " • Fehlerbehandlung für Edge-Cases" echo " • Helper-Funktionen für Debugging" echo " • Klare Fehlermeldungen" echo "" pause_for_input # ======================================================================== # Part 7: Nächste Schritte # ======================================================================== clear show_header "🚀 PART 7: Nächste Schritte" echo "" echo "1. Lies die Dokumentation:" echo " $ cat OCP-SMART-LOGIN.md" echo " $ cat OCP-SMART-LOGIN-SETUP.md" echo "" echo "2. Führe Setup durch:" echo " $ vim ~/.zshrc # Alias-Import konfigurieren" echo " $ vim ~/.profile # Tokens setzen" echo "" echo "3. Teste das System:" echo " $ ocStatus # Prüfe Status" echo " $ ocAWS-Dev # Wechsel zu Dev" echo " $ ocAWS-Int # Wechsel zu Int (FAST!)" echo "" echo "4. Nutze den Alias für tägliche Arbeit:" echo " $ ocAWS-Test1 # 1x Browser" echo " $ ocAWS-Int # Schnell" echo " $ ocSC-Prod # Schnell" echo " $ ocAWS-Prod # Schnell" echo "" echo "5. Gib uns Feedback:" echo " • Was funktioniert?" echo " • Was könnte verbessert werden?" echo " • Welche Cluster fehlten?" echo "" pause_for_input # ======================================================================== # Finale # ======================================================================== clear show_header "✨ Fertig!" echo "" echo -e "${GREEN}Viel Erfolg beim schnelleren Cluster-Switching! 🎉${NC}" echo "" echo "Tipps:" echo " • Speichere deine Tokens SICHER (nicht in git!)" echo " • Nutze ~/.secrets mit 700 Permissions" echo " • Logout am Ende des Tages: ocLogout" echo " • Bei Problemen: ocStatus debuggt den Status" echo "" echo "Dokumentation:" echo " • OCP-SMART-LOGIN.md → Detaillierte Erklärung" echo " • OCP-SMART-LOGIN-SETUP.md → Step-by-step Setup" echo " • ~/.bash_oc_smart.sh → Helper Funktionen" echo " • ~/.bash_oc_smart_aliases.sh → Neue Aliases" echo "" show_success "Demo abgeschlossen!" } # Run main