427 lines
9.6 KiB
Markdown
427 lines
9.6 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
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:
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
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`:
|
|
|
|
```bash
|
|
vim ~/.zshrc
|
|
# oder
|
|
nano ~/.zshrc
|
|
```
|
|
|
|
**Füge am ENDE der Datei ein:**
|
|
|
|
```bash
|
|
# ============================================================================
|
|
# 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:
|
|
```bash
|
|
# 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`:
|
|
|
|
```bash
|
|
# Erstelle/öffne ~/.profile
|
|
vim ~/.profile
|
|
```
|
|
|
|
**Füge folgende Environment-Variablen hinzu:**
|
|
|
|
```bash
|
|
# ============================================================================
|
|
# 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:**
|
|
```bash
|
|
# 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)
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# Reload .zshrc
|
|
source ~/.zshrc
|
|
|
|
# Oder neues Terminal-Tab öffnen (laden neue .profile)
|
|
```
|
|
|
|
Überprüfe dass Aliases geladen sind:
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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)
|
|
```bash
|
|
# 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)
|
|
```bash
|
|
# 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!)
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
chmod +x ~/.bash_oc_smart.sh ~/.bash_oc_smart_aliases.sh
|
|
```
|
|
|
|
### Problem: "Failed to switch context"
|
|
|
|
**Ursache:** Context existiert nicht in kubeconfig
|
|
|
|
**Lösung:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
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! 🎉
|
|
|