Compare commits

..
4 Commits
Author SHA1 Message Date
yves-sbb d3b8591fa1 Improve oc smart login 2026-10-07 14:06:50 +02:00
yves-sbb eb82f66226 Fix/add aliases for cus-prod 2026-09-28 20:37:05 +02:00
yves-sbb 4969097d78 Update home dir sync log 2026-09-28 20:01:31 +02:00
yves-sbb c8d9fd013b fix: Suppress console output during zsh initialization to avoid P10K instant prompt warnings
- Add output redirection (&>/dev/null) when sourcing helper functions
- Wrap export -f statements to suppress stderr during loading
- This prevents P10K from detecting console output during initialization
2026-09-28 20:00:37 +02:00
4 changed files with 282 additions and 88 deletions

No files matched your search

+143
View File
@@ -217,3 +217,146 @@
[OK] Status-Zusammenfassung: [OK] Status-Zusammenfassung:
[2026-09-28 19:57:29] ═══════════════════════════════════════════════════════════ [2026-09-28 19:57:29] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen [OK] Abgeschlossen
[2026-09-28 20:00:08] ═══════════════════════════════════════════════════════════
[2026-09-28 20:00:08] Modus: push
[2026-09-28 20:00:08] DRY-RUN: Keine Änderungen werden vorgenommen
[2026-09-28 20:00:08] ═══════════════════════════════════════════════════════════
[2026-09-28 20:00:08] Push: Synchronisiere Repo-Dateien ins Home-Dir...
[WARN] → update: .bash_oc_smart.sh (Repo → Home) [lokale Änderung wird überschrieben]
[WARN] → update: .bash_oc_smart_aliases.sh (Repo → Home) [lokale Änderung wird überschrieben]
[OK] Push abgeschlossen: 0 kopiert, 0 Backups, 0 ausgelassen
[2026-09-28 20:00:09] ═══════════════════════════════════════════════════════════
[OK] DRY-RUN abgeschlossen (keine Änderungen)
[2026-09-28 20:00:12] ═══════════════════════════════════════════════════════════
[2026-09-28 20:00:12] Modus: push
[2026-09-28 20:00:12] ═══════════════════════════════════════════════════════════
[2026-09-28 20:00:12] Push: Synchronisiere Repo-Dateien ins Home-Dir...
[WARN] → update: .bash_oc_smart.sh (Repo → Home) [lokale Änderung wird überschrieben]
[2026-09-28 20:00:12] Backup erstellt: .bash_oc_smart.sh (vor Push) → /Users/u241100/mac-home/.sync-backups/.bash_oc_smart.sh.20260928_200012.backup
[WARN] → update: .bash_oc_smart_aliases.sh (Repo → Home) [lokale Änderung wird überschrieben]
[2026-09-28 20:00:12] Backup erstellt: .bash_oc_smart_aliases.sh (vor Push) → /Users/u241100/mac-home/.sync-backups/.bash_oc_smart_aliases.sh.20260928_200012.backup
[OK] Push abgeschlossen: 2 kopiert, 2 Backups, 0 ausgelassen
[2026-09-28 20:00:12] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-09-28 20:01:20] ═══════════════════════════════════════════════════════════
[2026-09-28 20:01:20] Modus: status
[2026-09-28 20:01:20] ═══════════════════════════════════════════════════════════
[2026-09-28 20:01:20] Status: Vergleiche Repo mit Home-Dir...
[OK] Status-Zusammenfassung:
[2026-09-28 20:01:20] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-09-28 20:30:12] ═══════════════════════════════════════════════════════════
[2026-09-28 20:30:12] Modus: status
[2026-09-28 20:30:12] ═══════════════════════════════════════════════════════════
[2026-09-28 20:30:12] Status: Vergleiche Repo mit Home-Dir...
[WARN] ≠ geändert im Home: .bash_oc_smart_aliases.sh
[OK] Status-Zusammenfassung:
[2026-09-28 20:30:12] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-09-28 20:30:17] ═══════════════════════════════════════════════════════════
[2026-09-28 20:30:17] Modus: status
[2026-09-28 20:30:17] ═══════════════════════════════════════════════════════════
[2026-09-28 20:30:17] Status: Vergleiche Repo mit Home-Dir...
[WARN] ≠ geändert im Home: .bash_oc_smart_aliases.sh
[OK] Status-Zusammenfassung:
[2026-09-28 20:30:18] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[ERROR] Unbekannte Option: help
[2026-09-28 20:30:45] ═══════════════════════════════════════════════════════════
[2026-09-28 20:30:45] Modus: push
[2026-09-28 20:30:45] ═══════════════════════════════════════════════════════════
[2026-09-28 20:30:45] Push: Synchronisiere Repo-Dateien ins Home-Dir...
[WARN] → update: .bash_oc_smart_aliases.sh (Repo → Home) [lokale Änderung wird überschrieben]
[2026-09-28 20:30:45] Backup erstellt: .bash_oc_smart_aliases.sh (vor Push) → /Users/u241100/mac-home/.sync-backups/.bash_oc_smart_aliases.sh.20260928_203045.backup
[OK] Push abgeschlossen: 1 kopiert, 1 Backups, 0 ausgelassen
[2026-09-28 20:30:45] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-09-28 20:30:48] ═══════════════════════════════════════════════════════════
[2026-09-28 20:30:48] Modus: status
[2026-09-28 20:30:48] ═══════════════════════════════════════════════════════════
[2026-09-28 20:30:48] Status: Vergleiche Repo mit Home-Dir...
[OK] Status-Zusammenfassung:
[2026-09-28 20:30:49] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-09-28 20:35:24] ═══════════════════════════════════════════════════════════
[2026-09-28 20:35:24] Modus: status
[2026-09-28 20:35:24] ═══════════════════════════════════════════════════════════
[2026-09-28 20:35:24] Status: Vergleiche Repo mit Home-Dir...
[WARN] ≠ geändert im Home: .bash_aliases
[OK] Status-Zusammenfassung:
[2026-09-28 20:35:24] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-09-28 20:35:28] ═══════════════════════════════════════════════════════════
[2026-09-28 20:35:28] Modus: push
[2026-09-28 20:35:28] ═══════════════════════════════════════════════════════════
[2026-09-28 20:35:28] Push: Synchronisiere Repo-Dateien ins Home-Dir...
[WARN] → update: .bash_aliases (Repo → Home) [lokale Änderung wird überschrieben]
[2026-09-28 20:35:28] Backup erstellt: .bash_aliases (vor Push) → /Users/u241100/mac-home/.sync-backups/.bash_aliases.20260928_203528.backup
[OK] Push abgeschlossen: 1 kopiert, 1 Backups, 0 ausgelassen
[2026-09-28 20:35:28] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-10-07 13:15:34] ═══════════════════════════════════════════════════════════
[2026-10-07 13:15:34] Modus: status
[2026-10-07 13:15:34] ═══════════════════════════════════════════════════════════
[2026-10-07 13:15:34] Status: Vergleiche Repo mit Home-Dir...
[OK] Status-Zusammenfassung:
[2026-10-07 13:15:35] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-10-07 13:25:40] ═══════════════════════════════════════════════════════════
[2026-10-07 13:25:40] Modus: status
[2026-10-07 13:25:40] ═══════════════════════════════════════════════════════════
[2026-10-07 13:25:40] Status: Vergleiche Repo mit Home-Dir...
[WARN] ≠ geändert im Home: .bash_oc_smart.sh
[WARN] ≠ geändert im Home: .bash_oc_smart_aliases.sh
[OK] Status-Zusammenfassung:
[2026-10-07 13:25:41] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-10-07 13:29:57] ═══════════════════════════════════════════════════════════
[2026-10-07 13:29:57] Modus: status
[2026-10-07 13:29:57] ═══════════════════════════════════════════════════════════
[2026-10-07 13:29:57] Status: Vergleiche Repo mit Home-Dir...
[WARN] ≠ geändert im Home: .bash_oc_smart.sh
[WARN] ≠ geändert im Home: .bash_oc_smart_aliases.sh
[OK] Status-Zusammenfassung:
[2026-10-07 13:29:57] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-10-07 13:30:40] ═══════════════════════════════════════════════════════════
[2026-10-07 13:30:40] Modus: sync
[2026-10-07 13:30:40] ═══════════════════════════════════════════════════════════
[2026-10-07 13:30:40] Sync: Bidirektionale Synchronisierung...
[2026-10-07 13:30:40] Backup erstellt: .bash_oc_smart.sh (Konflikt) → /Users/u241100/mac-home/.sync-backups/.bash_oc_smart.sh.20261007_133040.backup
[2026-10-07 13:30:40] Backup erstellt: .bash_oc_smart_aliases.sh (Konflikt) → /Users/u241100/mac-home/.sync-backups/.bash_oc_smart_aliases.sh.20261007_133040.backup
[OK] Sync abgeschlossen: 2 synchronisiert, 0 Backups, 0 Konflikte
[2026-10-07 13:30:41] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-10-07 13:30:44] ═══════════════════════════════════════════════════════════
[2026-10-07 13:30:44] Modus: status
[2026-10-07 13:30:44] ═══════════════════════════════════════════════════════════
[2026-10-07 13:30:44] Status: Vergleiche Repo mit Home-Dir...
[OK] Status-Zusammenfassung:
[2026-10-07 13:30:45] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-10-07 13:32:37] ═══════════════════════════════════════════════════════════
[2026-10-07 13:32:37] Modus: sync
[2026-10-07 13:32:37] ═══════════════════════════════════════════════════════════
[2026-10-07 13:32:38] Sync: Bidirektionale Synchronisierung...
[2026-10-07 13:32:38] Backup erstellt: .bash_aliases (Konflikt) → /Users/u241100/mac-home/.sync-backups/.bash_aliases.20261007_133237.backup
[OK] Sync abgeschlossen: 1 synchronisiert, 0 Backups, 0 Konflikte
[2026-10-07 13:32:38] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-10-07 13:36:06] ═══════════════════════════════════════════════════════════
[2026-10-07 13:36:06] Modus: sync
[2026-10-07 13:36:06] ═══════════════════════════════════════════════════════════
[2026-10-07 13:36:06] Sync: Bidirektionale Synchronisierung...
[2026-10-07 13:36:06] Backup erstellt: .bash_oc_smart.sh (Konflikt) → /Users/u241100/mac-home/.sync-backups/.bash_oc_smart.sh.20261007_133606.backup
[OK] Sync abgeschlossen: 1 synchronisiert, 0 Backups, 0 Konflikte
[2026-10-07 13:36:06] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
[2026-10-07 14:02:45] ═══════════════════════════════════════════════════════════
[2026-10-07 14:02:45] Modus: sync
[2026-10-07 14:02:45] ═══════════════════════════════════════════════════════════
[2026-10-07 14:02:45] Sync: Bidirektionale Synchronisierung...
[2026-10-07 14:02:45] Backup erstellt: .bash_oc_smart.sh (Konflikt) → /Users/u241100/mac-home/.sync-backups/.bash_oc_smart.sh.20261007_140245.backup
[OK] Sync abgeschlossen: 1 synchronisiert, 0 Backups, 0 Konflikte
[2026-10-07 14:02:45] ═══════════════════════════════════════════════════════════
[OK] Abgeschlossen
+3 -10
View File
@@ -62,24 +62,17 @@ alias ocLoginAWS-Test2='oc login --token=${OPENSHIFT_TOKEN_AWS_TEST} --server=ht
alias ocLoginAWS-Lisa='oc login --token=${OPENSHIFT_TOKEN_AWS_PROD} --server=https://api.lisa.sbb-aws.net:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.lisa.sbb-aws.net/oauth/token/request' alias ocLoginAWS-Lisa='oc login --token=${OPENSHIFT_TOKEN_AWS_PROD} --server=https://api.lisa.sbb-aws.net:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.lisa.sbb-aws.net/oauth/token/request'
alias ocLoginAWS-Maggie='oc login --token=${OPENSHIFT_TOKEN_AWS_PROD} --server=https://api.maggie.sbb-aws.net:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.maggie.sbb-aws.net/oauth/token/request' alias ocLoginAWS-Maggie='oc login --token=${OPENSHIFT_TOKEN_AWS_PROD} --server=https://api.maggie.sbb-aws.net:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.maggie.sbb-aws.net/oauth/token/request'
alias ocLoginAWS-WZU='oc login --token=${OPENSHIFT_TOKEN_WZU} --server=https://api.wzu01t.ocp-test.sbb-aws.net:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.wzu01t.ocp-test.sbb-aws.net/oauth/token/request' alias ocLoginAWS-WZU='oc login --token=${OPENSHIFT_TOKEN_WZU} --server=https://api.wzu01t.ocp-test.sbb-aws.net:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.wzu01t.ocp-test.sbb-aws.net/oauth/token/request'
alias ocAWS-Dev='oc config use-context kihub-u241100-dev/api-aws01t-sbb-aws-test-net:6443/u241100 ; oc project kihub-dev-u241100 || ${WEB_BROWSER} https://oauth-openshift.apps.aws01t.sbb-aws-test.net/oauth/token/request' # Note: ocAWS-* smart context-switch functions now defined in ~/.bash_oc_smart_aliases.sh
alias ocAWS-RT='oc config use-context kihub-rt/api-aws01t-sbb-aws-test-net:6443/u241100 ; oc project kihub-rt || ${WEB_BROWSER} https://oauth-openshift.apps.aws01t.sbb-aws-test.net/oauth/token/request'
alias ocAWS-Test='oc config use-context kihub-test/api-aws01t-sbb-aws-test-net:6443/u241100 ; oc project kihub-test || ${WEB_BROWSER} https://oauth-openshift.apps.aws01t.sbb-aws-test.net/oauth/token/request'
alias ocAWS-Int='oc config use-context kihub-int/api-lisa-sbb-aws-net:6443/u241100 ; oc project kihub-int || ${WEB_BROWSER} https://oauth-openshift.apps.lisa.sbb-aws.net/oauth/token/request'
alias ocAWS-Prod='oc config use-context kihub-prod/api-lisa-sbb-aws-net:6443/u241100 ; oc project kihub-prod || ${WEB_BROWSER} https://oauth-openshift.apps.lisa.sbb-aws.net/oauth/token/request'
# OC SC aliases # OC SC aliases
#alias ocLoginSC01t='oc login --token=${OPENSHIFT_TOKEN_SC01} --server=https://api.sc01t.otc-test.sbb.ch:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.sc01t.otc-test.sbb.ch/oauth/token/request' #alias ocLoginSC01t='oc login --token=${OPENSHIFT_TOKEN_SC01} --server=https://api.sc01t.otc-test.sbb.ch:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.sc01t.otc-test.sbb.ch/oauth/token/request'
alias ocLoginSC02t='oc login --token=${OPENSHIFT_TOKEN_SC02} --server=https://api.sc02t.otc-test.sbb.ch:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.sc02t.otc-test.sbb.ch/oauth/token/request' alias ocLoginSC02t='oc login --token=${OPENSHIFT_TOKEN_SC02} --server=https://api.sc02t.otc-test.sbb.ch:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.sc02t.otc-test.sbb.ch/oauth/token/request'
alias ocLoginSCSputnix='oc login --token=${OPENSHIFT_TOKEN_SCSputnix} --server=https://api.sputnix.otc.sbb.ch:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.sputnix.otc.sbb.ch/oauth/token/request' alias ocLoginSCSputnix='oc login --token=${OPENSHIFT_TOKEN_SCSputnix} --server=https://api.sputnix.otc.sbb.ch:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.sputnix.otc.sbb.ch/oauth/token/request'
#alias ocLoginSCMiraculix='oc login --token=${OPENSHIFT_TOKEN_SCMiraculix} --server=https://api.miraculix.otc.sbb.ch:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.miraculix.otc.sbb.ch/oauth/token/request' #alias ocLoginSCMiraculix='oc login --token=${OPENSHIFT_TOKEN_SCMiraculix} --server=https://api.miraculix.otc.sbb.ch:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.miraculix.otc.sbb.ch/oauth/token/request'
alias ocSC-Dev='oc config use-context kihub-u241100-dev/api-sc02t-otc-test-sbb-ch:6443/u241100 ; oc project kihub-dev-u241100 || ${WEB_BROWSER} https://oauth-openshift.apps.sc02t.otc-test.sbb.ch/oauth/token/request' # Note: ocSC-* smart context-switch functions now defined in ~/.bash_oc_smart_aliases.sh
alias ocSC-RT='oc config use-context kihub-rt/api-sc02t-otc-test-sbb-ch:6443/u241100 ; oc project kihub-rt || ${WEB_BROWSER} https://oauth-openshift.apps.sc02t.otc-test.sbb.ch/oauth/token/request'
alias ocSC-Test='oc config use-context kihub-test/api-sc02t-otc-test-sbb-ch:6443/u241100 ; oc project kihub-test || ${WEB_BROWSER} https://oauth-openshift.apps.sc02t.otc-test.sbb.ch/oauth/token/request'
alias ocSC-Int='oc config use-context kihub-int/api-sputnix-otc-sbb-ch:6443/u241100 ; oc project kihub-int || ${WEB_BROWSER} https://oauth-openshift.apps.sputnix.otc.sbb.ch/oauth/token/request'
alias ocSC-Prod='oc config use-context kihub-prod/api-sputnix-otc-sbb-ch:6443/u241100 ; oc project kihub-prod || ${WEB_BROWSER} https://oauth-openshift.apps.sputnix.otc.sbb.ch/oauth/token/request'
alias ocLoginCUS-nonProd='oc login --token=${OPENSHIFT_TOKEN_SCSputnix} --server=https://api.cus01t.sbb-aws-test.net:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.cus01t.sbb-aws-test.net/oauth/token/request' alias ocLoginCUS-nonProd='oc login --token=${OPENSHIFT_TOKEN_SCSputnix} --server=https://api.cus01t.sbb-aws-test.net:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.cus01t.sbb-aws-test.net/oauth/token/request'
alias ocLoginCUS-prod='oc login --token=${OPENSHIFT_TOKEN_SCSputnix} --server=https://api.cus01p.sbb-aws.net:6443 || ${WEB_BROWSER} https://oauth-openshift.apps.cus01p.sbb-aws.net/oauth/token/request'
# SC02t # SC02t
#alias ocArgoCD='oc config use-context kihub-argocd/api-sc02t-otc-test-sbb-ch:6443/u241100' #alias ocArgoCD='oc config use-context kihub-argocd/api-sc02t-otc-test-sbb-ch:6443/u241100'
+41 -20
View File
@@ -64,12 +64,13 @@ get_token_expiry_info() {
################################################################################ ################################################################################
# Smart OCP Cluster Switch Function # Smart OCP Cluster Switch Function
# #
# Usage: oc_smart_switch "aws01t" "AWS-Test1" "context-name" "project" "token-var-name" "login-url" # Usage: oc_smart_switch "aws01t" "AWS-Test1" "context-name" "project" \
# "token_value" "server_url" "browser_url"
# #
# Example: oc_smart_switch "aws01t" "AWS-Test1" \ # Example: oc_smart_switch "aws01t" "AWS-Test1" \
# "kihub-dev/api-aws01t-sbb-aws-test-net:6443/u241100" \ # "kihub-dev/api-aws01t-sbb-aws-test-net:6443/u241100" \
# "kihub-dev" \ # "kihub-dev" \
# "OPENSHIFT_TOKEN_AWS_TEST" \ # "$OPENSHIFT_TOKEN_AWS_TEST" \
# "https://api.aws01t.sbb-aws-test.net:6443" \ # "https://api.aws01t.sbb-aws-test.net:6443" \
# "https://oauth-openshift.apps.aws01t.sbb-aws-test.net/oauth/token/request" # "https://oauth-openshift.apps.aws01t.sbb-aws-test.net/oauth/token/request"
################################################################################ ################################################################################
@@ -79,7 +80,7 @@ oc_smart_switch() {
local cluster_display="$2" local cluster_display="$2"
local context_name="$3" local context_name="$3"
local project_name="$4" local project_name="$4"
local token_var_name="$5" local token_value="$5" # <- Now direct token VALUE, not variable name!
local server_url="$6" local server_url="$6"
local browser_url="$7" local browser_url="$7"
@@ -91,7 +92,7 @@ oc_smart_switch() {
if ! is_oc_logged_in; then if ! is_oc_logged_in; then
echo -e "${YELLOW}→ Not logged in to any cluster${NC}" echo -e "${YELLOW}→ Not logged in to any cluster${NC}"
echo -e "${YELLOW}→ Performing full login...${NC}" echo -e "${YELLOW}→ Performing full login...${NC}"
_oc_perform_login "$cluster_short" "$token_var_name" "$server_url" "$browser_url" _oc_perform_login "$cluster_short" "$token_value" "$server_url" "$browser_url"
return $? return $?
fi fi
@@ -99,7 +100,7 @@ oc_smart_switch() {
if ! is_oc_token_valid; then if ! is_oc_token_valid; then
echo -e "${YELLOW}→ Current token expired or invalid${NC}" echo -e "${YELLOW}→ Current token expired or invalid${NC}"
echo -e "${YELLOW}→ Performing new login...${NC}" echo -e "${YELLOW}→ Performing new login...${NC}"
_oc_perform_login "$cluster_short" "$token_var_name" "$server_url" "$browser_url" _oc_perform_login "$cluster_short" "$token_value" "$server_url" "$browser_url"
return $? return $?
fi fi
@@ -120,13 +121,23 @@ oc_smart_switch() {
if oc config use-context "$context_name" &>/dev/null; then if oc config use-context "$context_name" &>/dev/null; then
echo -e "${GREEN}✓ Context switched successfully${NC}" echo -e "${GREEN}✓ Context switched successfully${NC}"
# Verify the token is still valid for this new context
if ! is_oc_token_valid; then
echo -e "${YELLOW}⚠ Token not valid for this cluster${NC}"
echo -e "${YELLOW}→ Previous login was for a different cluster${NC}"
echo -e "${YELLOW}→ Performing new login with provided token...${NC}"
_oc_perform_login "$cluster_short" "$token_value" "$server_url" "$browser_url"
return $?
fi
_oc_verify_project "$project_name" _oc_verify_project "$project_name"
return 0 return 0
else else
echo -e "${RED}✗ Failed to switch context${NC}" echo -e "${RED}✗ Failed to switch context${NC}"
echo -e "${YELLOW}→ This might mean the cluster/context doesn't exist in kubeconfig${NC}" echo -e "${YELLOW}→ This might mean the cluster/context doesn't exist in kubeconfig${NC}"
echo -e "${YELLOW}→ Performing full login...${NC}" echo -e "${YELLOW}→ Performing full login...${NC}"
_oc_perform_login "$cluster_short" "$token_var_name" "$server_url" "$browser_url" _oc_perform_login "$cluster_short" "$token_value" "$server_url" "$browser_url"
return $? return $?
fi fi
} }
@@ -137,15 +148,13 @@ oc_smart_switch() {
_oc_perform_login() { _oc_perform_login() {
local cluster_short="$1" local cluster_short="$1"
local token_var_name="$2" local token_value="$2" # <- Direct token VALUE (already expanded by alias)
local server_url="$3" local server_url="$3"
local browser_url="$4" local browser_url="$4"
# Get token from environment variable
local token_value="${!token_var_name}"
if [[ -z "$token_value" ]]; then if [[ -z "$token_value" ]]; then
echo -e "${YELLOW}→ Token environment variable '${token_var_name}' not set${NC}" echo -e "${YELLOW}→ Token not provided or empty${NC}"
echo -e "${YELLOW}→ Opening browser for manual token entry...${NC}" echo -e "${YELLOW}→ Opening browser for manual token entry...${NC}"
# Try to find browser # Try to find browser
@@ -160,7 +169,11 @@ _oc_perform_login() {
# Prompt for token # Prompt for token
echo -e "${YELLOW}Please copy the token from the browser and paste it here:${NC}" echo -e "${YELLOW}Please copy the token from the browser and paste it here:${NC}"
if [[ -n "${ZSH_VERSION}" ]]; then
read "?Token: " manual_token
else
read -p "Token: " manual_token read -p "Token: " manual_token
fi
if [[ -z "$manual_token" ]]; then if [[ -z "$manual_token" ]]; then
echo -e "${RED}✗ No token provided${NC}" echo -e "${RED}✗ No token provided${NC}"
@@ -170,7 +183,7 @@ _oc_perform_login() {
oc login --token="$manual_token" --server="$server_url" oc login --token="$manual_token" --server="$server_url"
else else
# Try login with stored token # Try login with stored token
echo -e "${BLUE}→ Using token from ${token_var_name}...${NC}" echo -e "${BLUE}→ Using provided token...${NC}"
if oc login --token="$token_value" --server="$server_url" &>/dev/null; then if oc login --token="$token_value" --server="$server_url" &>/dev/null; then
echo -e "${GREEN}✓ Login successful with stored token${NC}" echo -e "${GREEN}✓ Login successful with stored token${NC}"
return 0 return 0
@@ -188,7 +201,11 @@ _oc_perform_login() {
fi fi
echo -e "${YELLOW}Please copy the new token and paste it here:${NC}" echo -e "${YELLOW}Please copy the new token and paste it here:${NC}"
if [[ -n "${ZSH_VERSION}" ]]; then
read "?Token: " manual_token
else
read -p "Token: " manual_token read -p "Token: " manual_token
fi
if [[ -z "$manual_token" ]]; then if [[ -z "$manual_token" ]]; then
echo -e "${RED}✗ No token provided${NC}" echo -e "${RED}✗ No token provided${NC}"
@@ -271,13 +288,17 @@ oc_logout() {
echo -e "${GREEN}✓ Logged out${NC}" echo -e "${GREEN}✓ Logged out${NC}"
} }
export -f is_oc_logged_in # Export functions for use in subshells (mainly for bash compatibility)
export -f is_oc_token_valid # Suppress output to avoid console noise during zsh initialization
export -f get_token_expiry_info {
export -f oc_smart_switch export -f is_oc_logged_in
export -f _oc_perform_login export -f is_oc_token_valid
export -f _oc_verify_project export -f get_token_expiry_info
export -f oc_status export -f oc_smart_switch
export -f oc_contexts export -f _oc_perform_login
export -f oc_logout export -f _oc_verify_project
export -f oc_status
export -f oc_contexts
export -f oc_logout
} 2>/dev/null
+95 -58
View File
@@ -1,182 +1,216 @@
# ============================================================================ # ============================================================================
# OCP Smart Login/Context Switch Aliases # OCP Smart Login/Context Switch Aliases
# ============================================================================ # ============================================================================
# These aliases intelligently switch between OCP clusters: # These are actually functions (not aliases) for proper variable expansion.
# They intelligently switch between OCP clusters:
# - If logged in with valid token: just switch context (fast) # - If logged in with valid token: just switch context (fast)
# - If token expired or not logged in: full login with browser (safe) # - If token expired or not logged in: full login with browser (safe)
# #
# Source this after .bash_aliases to override the old context-only aliases # Source this after .bash_aliases to override the old context-only aliases
# ============================================================================ # ============================================================================
# First, source the helper functions # First, source the helper functions (suppress all console output during init)
source ~/.bash_oc_smart.sh source ~/.bash_oc_smart.sh &>/dev/null
# ============================================================================ # ============================================================================
# AWS Shared Clusters - Smart Switch Aliases # AWS Shared Clusters - Smart Switch Functions
# ============================================================================ # ============================================================================
# AWS-Test1 (aws01t) # AWS-Test1 (aws01t)
alias ocAWS-Test1='oc_smart_switch \ ocAWS-Test1() {
oc_smart_switch \
"aws01t" \ "aws01t" \
"AWS-Test1" \ "AWS-Test1" \
"kihub-u241100-dev/api-aws01t-sbb-aws-test-net:6443/u241100" \ "kihub-u241100-dev/api-aws01t-sbb-aws-test-net:6443/u241100" \
"kihub-dev-u241100" \ "kihub-dev-u241100" \
"OPENSHIFT_TOKEN_AWS_TEST" \ "$OPENSHIFT_TOKEN_AWS_TEST" \
"https://api.aws01t.sbb-aws-test.net:6443" \ "https://api.aws01t.sbb-aws-test.net:6443" \
"https://oauth-openshift.apps.aws01t.sbb-aws-test.net/oauth/token/request"' "https://oauth-openshift.apps.aws01t.sbb-aws-test.net/oauth/token/request"
}
# AWS-Test2 (aws02t) # AWS-Test2 (aws02t)
alias ocAWS-Test2='oc_smart_switch \ ocAWS-Test2() {
oc_smart_switch \
"aws02t" \ "aws02t" \
"AWS-Test2" \ "AWS-Test2" \
"kihub-u241100-dev/api-aws02t-sbb-aws-test-net:6443/u241100" \ "kihub-u241100-dev/api-aws02t-sbb-aws-test-net:6443/u241100" \
"kihub-dev-u241100" \ "kihub-dev-u241100" \
"OPENSHIFT_TOKEN_AWS_TEST" \ "$OPENSHIFT_TOKEN_AWS_TEST" \
"https://api.aws02t.sbb-aws-test.net:6443" \ "https://api.aws02t.sbb-aws-test.net:6443" \
"https://oauth-openshift.apps.aws02t.sbb-aws-test.net/oauth/token/request"' "https://oauth-openshift.apps.aws02t.sbb-aws-test.net/oauth/token/request"
}
# AWS-Int (Integration on Lisa) # AWS-Int (Integration on Lisa)
alias ocAWS-Int='oc_smart_switch \ ocAWS-Int() {
oc_smart_switch \
"lisa" \ "lisa" \
"AWS-Int" \ "AWS-Int" \
"kihub-int/api-lisa-sbb-aws-net:6443/u241100" \ "kihub-int/api-lisa-sbb-aws-net:6443/u241100" \
"kihub-int" \ "kihub-int" \
"OPENSHIFT_TOKEN_AWS_PROD" \ "$OPENSHIFT_TOKEN_AWS_PROD" \
"https://api.lisa.sbb-aws.net:6443" \ "https://api.lisa.sbb-aws.net:6443" \
"https://oauth-openshift.apps.lisa.sbb-aws.net/oauth/token/request"' "https://oauth-openshift.apps.lisa.sbb-aws.net/oauth/token/request"
}
# AWS-Prod (Production on Lisa) # AWS-Prod (Production on Lisa)
alias ocAWS-Prod='oc_smart_switch \ ocAWS-Prod() {
oc_smart_switch \
"lisa" \ "lisa" \
"AWS-Prod" \ "AWS-Prod" \
"kihub-prod/api-lisa-sbb-aws-net:6443/u241100" \ "kihub-prod/api-lisa-sbb-aws-net:6443/u241100" \
"kihub-prod" \ "kihub-prod" \
"OPENSHIFT_TOKEN_AWS_PROD" \ "$OPENSHIFT_TOKEN_AWS_PROD" \
"https://api.lisa.sbb-aws.net:6443" \ "https://api.lisa.sbb-aws.net:6443" \
"https://oauth-openshift.apps.lisa.sbb-aws.net/oauth/token/request"' "https://oauth-openshift.apps.lisa.sbb-aws.net/oauth/token/request"
}
# AWS-Lisa (Production cluster) # AWS-Lisa (Production cluster)
alias ocAWS-Lisa='oc_smart_switch \ ocAWS-Lisa() {
oc_smart_switch \
"lisa" \ "lisa" \
"AWS-Lisa" \ "AWS-Lisa" \
"kihub-prod/api-lisa-sbb-aws-net:6443/u241100" \ "kihub-prod/api-lisa-sbb-aws-net:6443/u241100" \
"kihub-prod" \ "kihub-prod" \
"OPENSHIFT_TOKEN_AWS_PROD" \ "$OPENSHIFT_TOKEN_AWS_PROD" \
"https://api.lisa.sbb-aws.net:6443" \ "https://api.lisa.sbb-aws.net:6443" \
"https://oauth-openshift.apps.lisa.sbb-aws.net/oauth/token/request"' "https://oauth-openshift.apps.lisa.sbb-aws.net/oauth/token/request"
}
# AWS-Maggie (Production cluster) # AWS-Maggie (Production cluster)
alias ocAWS-Maggie='oc_smart_switch \ ocAWS-Maggie() {
oc_smart_switch \
"maggie" \ "maggie" \
"AWS-Maggie" \ "AWS-Maggie" \
"kihub-prod/api-maggie-sbb-aws-net:6443/u241100" \ "kihub-prod/api-maggie-sbb-aws-net:6443/u241100" \
"kihub-prod" \ "kihub-prod" \
"OPENSHIFT_TOKEN_AWS_PROD" \ "$OPENSHIFT_TOKEN_AWS_PROD" \
"https://api.maggie.sbb-aws.net:6443" \ "https://api.maggie.sbb-aws.net:6443" \
"https://oauth-openshift.apps.maggie.sbb-aws.net/oauth/token/request"' "https://oauth-openshift.apps.maggie.sbb-aws.net/oauth/token/request"
}
# AWS-WZU # AWS-WZU
alias ocAWS-WZU='oc_smart_switch \ ocAWS-WZU() {
oc_smart_switch \
"wzu01t" \ "wzu01t" \
"AWS-WZU" \ "AWS-WZU" \
"kihub-test/api-wzu01t-ocp-test-sbb-aws-net:6443/u241100" \ "kihub-test/api-wzu01t-ocp-test-sbb-aws-net:6443/u241100" \
"" \ "" \
"OPENSHIFT_TOKEN_WZU" \ "$OPENSHIFT_TOKEN_WZU" \
"https://api.wzu01t.ocp-test.sbb-aws.net:6443" \ "https://api.wzu01t.ocp-test.sbb-aws.net:6443" \
"https://oauth-openshift.apps.wzu01t.ocp-test.sbb-aws.net/oauth/token/request"' "https://oauth-openshift.apps.wzu01t.ocp-test.sbb-aws.net/oauth/token/request"
}
# ============================================================================ # ============================================================================
# CUS Private Clusters - Smart Switch Aliases # CUS Private Clusters - Smart Switch Functions
# ============================================================================ # ============================================================================
# AWS-Dev (Development on aws01t) # AWS-Dev (Development on aws01t)
alias ocCUS-Dev='oc_smart_switch \ ocCUS-Dev() {
oc_smart_switch \
"cus01t" \ "cus01t" \
"AWS-Dev" \ "AWS-Dev" \
"kihub-dev-u241100/api-cus01t-sbb-aws-test-net:6443/u241100" \ "kihub-dev-u241100/api-cus01t-sbb-aws-test-net:6443/u241100" \
"kihub-dev-u241100" \ "kihub-dev-u241100" \
"OPENSHIFT_TOKEN_AWS_TEST" \ "$OPENSHIFT_TOKEN_AWS_TEST" \
"https://api.cus01t.sbb-aws-test.net:6443" \ "https://api.cus01t.sbb-aws-test.net:6443" \
"https://oauth-openshift.apps.cus01t.sbb-aws-test.net/oauth/token/request"' "https://oauth-openshift.apps.cus01t.sbb-aws-test.net/oauth/token/request"
}
# AWS-RT (Runtime on aws01t) # AWS-RT (Runtime on aws01t)
alias ocCUS-RT='oc_smart_switch \ ocCUS-RT() {
oc_smart_switch \
"cus01t" \ "cus01t" \
"AWS-RT" \ "AWS-RT" \
"kihub-dev-rt/api-cus01t-sbb-aws-test-net:6443/u241100" \ "kihub-dev-rt/api-cus01t-sbb-aws-test-net:6443/u241100" \
"kihub-dev-rt" \ "kihub-dev-rt" \
"OPENSHIFT_TOKEN_AWS_TEST" \ "$OPENSHIFT_TOKEN_AWS_TEST" \
"https://api.cus01t.sbb-aws-test.net:6443" \ "https://api.cus01t.sbb-aws-test.net:6443" \
"https://oauth-openshift.apps.cus01t.sbb-aws-test.net/oauth/token/request"' "https://oauth-openshift.apps.cus01t.sbb-aws-test.net/oauth/token/request"
}
# AWS-Test (Test on aws01t) # AWS-Test (Test on aws01t)
alias ocCUS-Test='oc_smart_switch \ ocCUS-Test() {
oc_smart_switch \
"cus01t" \ "cus01t" \
"CUS-Test" \ "CUS-Test" \
"kihub-test/api-cus01t-sbb-aws-test-net:6443/u241100" \ "kihub-test/api-cus01t-sbb-aws-test-net:6443/u241100" \
"kihub-test" \ "kihub-test" \
"OPENSHIFT_TOKEN_AWS_TEST" \ "$OPENSHIFT_TOKEN_AWS_TEST" \
"https://api.cus01t.sbb-aws-test.net:6443" \ "https://api.cus01t.sbb-aws-test.net:6443" \
"https://oauth-openshift.apps.cus01t.sbb-aws-test.net/oauth/token/request"' "https://oauth-openshift.apps.cus01t.sbb-aws-test.net/oauth/token/request"
}
# AWS-Test (Test on aws01t) # AWS-Int (Test on aws01t)
alias ocCUS-Int='oc_smart_switch \ ocCUS-Int() {
oc_smart_switch \
"cus01t" \ "cus01t" \
"CUS-Int" \ "CUS-Int" \
"kihub-int/api-cus01t-sbb-aws-test-net:6443/u241100" \ "kihub-int/api-cus01t-sbb-aws-test-net:6443/u241100" \
"kihub-int" \ "kihub-int" \
"OPENSHIFT_TOKEN_AWS_TEST" \ "$OPENSHIFT_TOKEN_AWS_TEST" \
"https://api.cus01t.sbb-aws-test.net:6443" \ "https://api.cus01t.sbb-aws-test.net:6443" \
"https://oauth-openshift.apps.cus01t.sbb-aws-test.net/oauth/token/request"' "https://oauth-openshift.apps.cus01t.sbb-aws-test.net/oauth/token/request"
}
# AWS-Test (Test on aws01t) # AWS-Prod (Test on aws01t)
alias ocCUS-Prod='oc_smart_switch \ ocCUS-Prod() {
oc_smart_switch \
"cus01p" \ "cus01p" \
"CUS-Prod" \ "CUS-Prod" \
"kihub-prod/api-cus01p-sbb-aws-test-net:6443/u241100" \ "kihub-prod/api-cus01p-sbb-aws-net:6443/u241100" \
"kihub-prod" \ "kihub-prod" \
"OPENSHIFT_TOKEN_AWS_TEST" \ "$OPENSHIFT_TOKEN_AWS_TEST" \
"https://api.cus01p.sbb-aws-test.net:6443" \ "https://api.cus01p.sbb-aws-net:6443" \
"https://oauth-openshift.apps.cus01p.sbb-aws-test.net/oauth/token/request"' "https://oauth-openshift.apps.cus01p.sbb-aws.net/oauth/token/request"
}
# ============================================================================ # ============================================================================
# SC (OTC) Clusters - Smart Switch Aliases # SC (OTC) Clusters - Smart Switch Functions
# IMPORTANT: These clusters require separate tokens from AWS clusters!
# Set OPENSHIFT_TOKEN_SC02 and OPENSHIFT_TOKEN_SCSputnix in ~/.profile
# ============================================================================ # ============================================================================
# SC-Test (Test on sc02t) # SC-Test (Test on sc02t - OTC, not AWS!)
alias ocSC-Test='oc_smart_switch \ ocSC-Test() {
oc_smart_switch \
"sc02t" \ "sc02t" \
"SC-Test" \ "SC-Test" \
"kihub-test/api-sc02t-otc-test-sbb-ch:6443/u241100" \ "kihub-test/api-sc02t-otc-test-sbb-ch:6443/u241100" \
"kihub-test" \ "kihub-test" \
"OPENSHIFT_TOKEN_SC02" \ "$OPENSHIFT_TOKEN_SC02" \
"https://api.sc02t.otc-test.sbb.ch:6443" \ "https://api.sc02t.otc-test.sbb.ch:6443" \
"https://oauth-openshift.apps.sc02t.otc-test.sbb.ch/oauth/token/request"' "https://oauth-openshift.apps.sc02t.otc-test.sbb.ch/oauth/token/request"
}
# SC-Int (Integration on Sputnix) # SC-Int (Integration on Sputnix - OTC, not AWS!)
alias ocSC-Int='oc_smart_switch \ ocSC-Int() {
oc_smart_switch \
"sputnix" \ "sputnix" \
"SC-Int" \ "SC-Int" \
"kihub-int/api-sputnix-otc-sbb-ch:6443/u241100" \ "kihub-int/api-sputnix-otc-sbb-ch:6443/u241100" \
"kihub-int" \ "kihub-int" \
"OPENSHIFT_TOKEN_SCSputnix" \ "$OPENSHIFT_TOKEN_SCSputnix" \
"https://api.sputnix.otc.sbb.ch:6443" \ "https://api.sputnix.otc.sbb.ch:6443" \
"https://oauth-openshift.apps.sputnix.otc.sbb.ch/oauth/token/request"' "https://oauth-openshift.apps.sputnix.otc.sbb.ch/oauth/token/request"
}
# SC-Prod (Production on Sputnix) # SC-Prod (Production on Sputnix - OTC, not AWS!)
alias ocSC-Prod='oc_smart_switch \ ocSC-Prod() {
oc_smart_switch \
"sputnix" \ "sputnix" \
"SC-Prod" \ "SC-Prod" \
"kihub-prod/api-sputnix-otc-sbb-ch:6443/u241100" \ "kihub-prod/api-sputnix-otc-sbb-ch:6443/u241100" \
"kihub-prod" \ "kihub-prod" \
"OPENSHIFT_TOKEN_SCSputnix" \ "$OPENSHIFT_TOKEN_SCSputnix" \
"https://api.sputnix.otc.sbb.ch:6443" \ "https://api.sputnix.otc.sbb.ch:6443" \
"https://oauth-openshift.apps.sputnix.otc.sbb.ch/oauth/token/request"' "https://oauth-openshift.apps.sputnix.otc.sbb.ch/oauth/token/request"
}
# ============================================================================ # ============================================================================
# Convenience Aliases for Helper Functions # Convenience Aliases for Helper Functions
# ============================================================================ # ============================================================================
# These can stay as aliases since they're just shortcuts to functions
alias ocStatus='oc_status' alias ocStatus='oc_status'
alias ocCtx='oc_contexts' alias ocCtx='oc_contexts'
alias ocLogout='oc_logout' alias ocLogout='oc_logout'
@@ -195,6 +229,9 @@ alias ocWhoami='oc whoami'
# - Logged in? → Switch context only (FAST) # - Logged in? → Switch context only (FAST)
# - Not logged in? → Full login (SAFE) # - Not logged in? → Full login (SAFE)
# #
# Note: These are FUNCTIONS (not aliases) for proper variable expansion
# in bash and zsh.
#
# Helper commands: # Helper commands:
# ocStatus → Show current auth status # ocStatus → Show current auth status
# ocCtx → List all available contexts # ocCtx → List all available contexts