# get user names and passwords for applications

# Use this script in a .sh format to get application passwords

# \#!/bin/bash

\# get namespaces  
namespaces=$(k3s kubectl get secrets -A | grep -E "dbcreds|cnpg-main-urls" | awk '{print $1, $2}')

\# iterate over namespaces  
( printf "Application | Username | Password | Address | Port\\n"  
echo "$namespaces" | while read ns secret; do  
 # extract application name  
 app\_name=$(echo "$ns" | sed 's/^ix-//')  
 if \[ "$secret" = "dbcreds" \]; then  
 creds=$(k3s kubectl get secret/$secret --namespace "$ns" -o jsonpath='{.data.url}' | base64 -d)  
 else  
 creds=$(k3s kubectl get secret/$secret --namespace "$ns" -o jsonpath='{.data.std}' | base64 -d)  
 fi  
   
 # get username, password, addresspart, and port  
 username=$(echo "$creds" | awk -F '//' '{print $2}' | awk -F ':' '{print $1}')  
 password=$(echo "$creds" | awk -F ':' '{print $3}' | awk -F '@' '{print $1}')  
 addresspart=$(echo "$creds" | awk -F '@' '{print $2}' | awk -F ':' '{print $1}')  
 port=$(echo "$creds" | awk -F ':' '{print $4}' | awk -F '/' '{print $1}')

 # construct full address  
 full\_address="${addresspart}.${ns}.svc.cluster.local"

 # print results with aligned columns  
 printf "%s | %s | %s | %s | %s\\n" "$app\_name" "$username" "$password" "$full\_address" "$port"  
done ) | column -t -s "|"