Files
mac-home/ocp-smart-login-demo.sh
T
2026-09-28 19:08:53 +02:00

376 lines
12 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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