Files
mac-home/OCP-SMART-LOGIN-SETUP.md
T
2026-09-28 19:08:53 +02:00

9.6 KiB

OCP Smart Login - Setup & Integration Guide

📋 Checklist

  • Schritt 1: Neue Dateien in Repository überprüfen
  • Schritt 2: Dateien mit Sync synchronisieren
  • Schritt 3: .zshrc konfigurieren
  • Schritt 4: Environment-Variablen setzen
  • Schritt 5: Shell neu laden
  • Schritt 6: Testen

Schritt 1️⃣ - Neue Dateien überprüfen

Die folgenden Dateien sollten bereits im Repository sein:

cd ~/mac-home/home-content

# Check ob Dateien vorhanden sind
ls -lh .bash_oc_smart.sh .bash_oc_smart_aliases.sh

# Expected output:
# -rwxr-xr-x  ... .bash_oc_smart.sh
# -rwxr-xr-x  ... .bash_oc_smart_aliases.sh

Falls nicht vorhanden:

# Script braucht execute permission
chmod +x ~/.bash_oc_smart.sh ~/.bash_oc_smart_aliases.sh

Schritt 2️⃣ - Synchronisieren mit Repo

Du möchtest die Dateien ins Repo committen:

cd ~/mac-home

# Status prüfen
./sync-home-content.sh status

# Expected: Neue Dateien werden angezeigt

# Synchronisieren (Home → Repo)
./sync-home-content.sh pull --dry-run    # Test
./sync-home-content.sh pull              # Real

# Git commit
cd home-content
git add .bash_oc_smart.sh .bash_oc_smart_aliases.sh
git commit -m "feat: Add OCP smart login system for faster context switching"
git push

Schritt 3️⃣ - .zshrc konfigurieren

Öffne deine ~/.zshrc:

vim ~/.zshrc
# oder
nano ~/.zshrc

Füge am ENDE der Datei ein:

# ============================================================================
# OCP Smart Login/Context Switch
# ============================================================================
# Source helpers and new smart aliases (must be AFTER .bash_aliases)
if [[ -f ~/.bash_oc_smart_aliases.sh ]]; then
    source ~/.bash_oc_smart_aliases.sh
fi

Wichtig:

  • Dies muss NACH den .bash_aliases sein (wenn du die sourced)
  • Manche .zshrc sourced .bash_aliases via: test -f ~/.bash_aliases && . ~/.bash_aliases

Überprüfe, dass .bash_aliases sourced wird:

# In .zshrc nach `source ~/.bash_oc_smart_aliases.sh`
grep -n "bash_aliases" ~/.zshrc

# Expected: irgendwelche Zeilen mit .bash_aliases

Schritt 4️⃣ - Environment-Variablen setzen

Die Smart-Login Funktion nutzt Token aus Umgebungsvariablen.

Option A: In ~/.profile (automatisch bei Login)

Öffne ~/.profile oder ~/.bash_profile:

# Erstelle/öffne ~/.profile
vim ~/.profile

Füge folgende Environment-Variablen hinzu:

# ============================================================================
# OpenShift Token Environment Variables
# ============================================================================
# NOTE: Ersetze die Token mit deinen echten Token!
# WICHTIG: Dieses File nicht ins Repository committen (ist geheim!)

export OPENSHIFT_TOKEN_AWS_TEST="sha256~your-aws-test-token-here"
export OPENSHIFT_TOKEN_AWS_PROD="sha256~your-aws-prod-token-here"
export OPENSHIFT_TOKEN_WZU="sha256~your-wzu-token-here"
export OPENSHIFT_TOKEN_SC02="sha256~your-sc02-token-here"
export OPENSHIFT_TOKEN_SCSputnix="sha256~your-sputnix-token-here"

# Alternativ: Load from encrypted file
# if [[ -f ~/.secrets/ocp_tokens ]]; then
#     source ~/.secrets/ocp_tokens
# fi

Sicherheit:

# Berechtigungen setzen
chmod 600 ~/.profile      # Nur du kannst lesen

# Oder in separater Datei:
mkdir -p ~/.secrets
chmod 700 ~/.secrets
vim ~/.secrets/ocp_tokens
chmod 600 ~/.secrets/ocp_tokens

# In ~/.profile dann:
# [[ -f ~/.secrets/ocp_tokens ]] && source ~/.secrets/ocp_tokens

Option B: Im Moment eingeben (für Test)

# Einmalig für diese Shell-Session:
export OPENSHIFT_TOKEN_AWS_TEST="sha256~your-token"
export OPENSHIFT_TOKEN_AWS_PROD="sha256~your-token"
# ... etc

# Testen
ocStatus

Token abrufen

Falls du deine Token nicht kennst:

# Login manuell, dann Token auslesen
oc login --server=https://api.aws01t.sbb-aws-test.net:6443
# Browser öffnet sich, Token eingeben

# Token ist jetzt in kubeconfig
oc whoami -t

# Copy den Token und speichere ihn in ~/.profile oder ~/.secrets/ocp_tokens

Schritt 5️⃣ - Shell neu laden

# Reload .zshrc
source ~/.zshrc

# Oder neues Terminal-Tab öffnen (laden neue .profile)

Überprüfe dass Aliases geladen sind:

# Check ob aliases vorhanden sind
alias | grep ocAWS

# Expected: 
# ocAWS-Dev='oc_smart_switch ...'
# ocAWS-Int='oc_smart_switch ...'
# ... etc

Schritt 6️⃣ - Testen

Test 1: Helper-Funktion testen

# Check Auth Status
ocStatus

# Expected output (wenn nicht angemeldet):
# [ERROR] ✗ Not logged in to any cluster

# Oder (wenn angemeldet):
# [OK] ✓ Authenticated as: u241100
# [OK] ✓ Current context: kihub-dev/...

Test 2: Cluster wechseln (First time = Login)

# First cluster (sollte Browser öffnen)
ocAWS-Test1

# Expected output:
# ═══════════════════════════════════════════
# OCP Smart Switch: AWS-Test1
# ═══════════════════════════════════════════
# → Not logged in to any cluster
# → Performing full login...
# [Browser opens for token]
# ✓ Login successful
# ✓ Context switched successfully
# ✓ Switched to project: kihub-dev-u241100

Test 3: Schneller Context-Switch (2x)

# Zu anderem Cluster (Token ist noch valid = nur Context switch)
ocAWS-Int

# Expected output (SCHNELL):
# ═══════════════════════════════════════════
# OCP Smart Switch: AWS-Int
# ═══════════════════════════════════════════
# ✓ Token valid, switching context...
#   From: kihub-dev/api-aws01t-sbb-aws-test-net:6443/u241100
#   To:   kihub-int/api-lisa-sbb-aws-net:6443/u241100
# ✓ Context switched successfully
# ✓ Switched to project: kihub-int

Test 4: Zurück-Switch (auch schnell!)

# Zurück zum ersten Cluster
ocAWS-Test1

# Expected output (schnell, gleicher Token):
# ✓ Token valid, switching context...
# ✓ Context switched successfully
# ✓ Already in project: kihub-dev-u241100

Test 5: Helper Aliases

# Show status
ocStatus

# List contexts
ocCtx

# Who am I?
ocWhoami

# Logout
ocLogout

🐛 Häufige Probleme

Problem: "command not found: ocAWS-Dev"

Ursache: Alias wurde nicht geladen

Lösung:

# 1. Überprüfe ob .bash_oc_smart_aliases.sh sourced wird
cat ~/.zshrc | grep bash_oc_smart_aliases

# 2. Falls nicht vorhanden, hinzufügen (siehe Schritt 3)

# 3. Shell neu laden
source ~/.zshrc

# 4. Überprüfe ob alias vorhanden
type ocAWS-Dev

Problem: "Token environment variable not set"

Ursache: OPENSHIFT_TOKEN_* nicht gesetzt

Lösung:

# 1. Check ob Variable gesetzt ist
echo $OPENSHIFT_TOKEN_AWS_TEST

# 2. Falls leer, setze in ~/.profile
echo 'export OPENSHIFT_TOKEN_AWS_TEST="sha256~your-token"' >> ~/.profile

# 3. Neue Shell öffnen oder
source ~/.profile

# 4. Überprüfe
echo $OPENSHIFT_TOKEN_AWS_TEST
# Sollte nicht leer sein

Problem: "script permission denied"

Ursache: .bash_oc_smart.sh hat keine execute permission

Lösung:

chmod +x ~/.bash_oc_smart.sh ~/.bash_oc_smart_aliases.sh

Problem: "Failed to switch context"

Ursache: Context existiert nicht in kubeconfig

Lösung:

# 1. Überprüfe verfügbare contexts
oc config get-contexts

# 2. Wenn context fehlt: Login durchführen
ocAWS-Test1
# Generiert kubeconfig mit neuen contexts

# 3. Erneut versuchen
ocAWS-Dev

Problem: Token wird immer erneut abgefragt

Ursache:

  • Token ist sehr kurz gültig (Cluster-Config)
  • Oder: OPENSHIFT_TOKEN_* Variable ist falsch/abgelaufen

Lösung:

# 1. Token aktualisieren
oc login --server=https://api.aws01t.sbb-aws-test.net:6443
# Browser öffnet
oc whoami -t  # Neuen Token kopieren

# 2. In ~/.profile/~/.secrets/ocp_tokens aktualisieren
vim ~/.profile
# Ersetze OPENSHIFT_TOKEN_AWS_TEST="..."

# 3. Shell neu laden
source ~/.profile

📚 Next Steps

Nach erfolgreichem Setup:

  1. Speichere die Tokens sicher:

    # Nicht in ~/.zshrc (wird möglicherweise committed)
    # Nicht in .bash_aliases (auch versioniert)
    # Am besten: ~/.secrets/ocp_tokens mit 600 permissions
    
  2. Alias die Aliases:

    # Für noch schnellere Nutzung in ~/.zshrc:
    alias test='ocAWS-Test1'
    alias int='ocAWS-Int'
    alias prod='ocAWS-Prod'
    alias intsc='ocSC-Int'
    alias prodsc='ocSC-Prod'
    
    # Dann:
    test    # Statt ocAWS-Test1
    int     # Statt ocAWS-Int
    
  3. Dokumentiere deine Cluster-Mappings:

    # In Projekt-README oder Konfluence:
    # Welche Alias entspricht welcher Environment?
    # ocAWS-Dev → Development cluster (aws01t)
    # ocAWS-Int → Integration cluster (Lisa)
    # ocAWS-Prod → Production cluster (Lisa/Maggie)
    

✅ Fertig!

Dein OCP Smart Login System ist nun aktiv.

Teste mit:

ocStatus      # Check aktueller Status
ocAWS-Dev     # Switch zu Dev (1x Browser first time)
ocAWS-Int     # Switch zu Int (schnell!)
ocAWS-Prod    # Switch zu Prod (schnell!)
ocAWS-Dev     # Zurück zu Dev (schnell!)

Ersparte Zeit beim täglichen Cluster-Switching: ~50-60% 🚀


🎓 Weitere Ressourcen

  • Detaillierte Dokumentation: OCP-SMART-LOGIN.md
  • Alte Manual-Logins noch vorhanden: ocLoginAWS-*, ocLoginSC-*
  • Helper Functions: ~/.bash_oc_smart.sh
  • Alias Definitions: ~/.bash_oc_smart_aliases.sh

Viel Erfolg beim schnelleren Cluster-Switching! 🎉