Implement oc smart login

This commit is contained in:
yves-sbb committed 2026-09-28 19:08:53 +02:00
1 parent a7e87691a7
commit d32b1d19eb
6 files changed
+1701

No files matched your search

+375
View File
@@ -0,0 +1,375 @@
#!/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