376 lines
12 KiB
Bash
Executable File
376 lines
12 KiB
Bash
Executable File
#!/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
|
||
|