PERF(config): improve kubeconfig decoding
- Remove all whitespace before decoding - Try both -d and --decode options - Fallback to using value as-is (if Gitea already decoded) - Verify YAML validity before using - Better error handling and diagnostics
This commit is contained in:
@@ -41,12 +41,7 @@ jobs:
|
||||
run: |
|
||||
if [ -z "$KUBECONFIG_B64" ]; then
|
||||
echo "❌ KUBECONFIG secret not set"
|
||||
echo ""
|
||||
echo "Please add KUBECONFIG to Gitea repository secrets:"
|
||||
echo "1. Go to: https://gitea0213.kro.kr/bluemayne/jovies/settings/secrets"
|
||||
echo "2. Add new secret:"
|
||||
echo " Name: KUBECONFIG"
|
||||
echo " Value: <base64 encoded kubeconfig>"
|
||||
echo "Please add KUBECONFIG to Gitea repository secrets"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -54,17 +49,33 @@ jobs:
|
||||
|
||||
mkdir -p $HOME/.kube
|
||||
|
||||
# Decode base64 (handle both single-line and multi-line)
|
||||
echo "$KUBECONFIG_B64" | tr -d '\n' | base64 -d > $HOME/.kube/config || {
|
||||
echo "❌ Failed to decode KUBECONFIG"
|
||||
echo "Secret length: ${#KUBECONFIG_B64}"
|
||||
echo "First 50 chars: ${KUBECONFIG_B64:0:50}..."
|
||||
exit 1
|
||||
}
|
||||
# Clean up the base64 string (remove all whitespace and newlines)
|
||||
CLEAN_B64=$(echo "$KUBECONFIG_B64" | tr -d '[:space:]')
|
||||
|
||||
echo "After cleanup: ${#CLEAN_B64} chars"
|
||||
|
||||
# Try decoding
|
||||
if echo "$CLEAN_B64" | base64 -d > $HOME/.kube/config 2>/dev/null; then
|
||||
echo "✅ Successfully decoded kubeconfig"
|
||||
elif echo "$CLEAN_B64" | base64 --decode > $HOME/.kube/config 2>/dev/null; then
|
||||
echo "✅ Successfully decoded kubeconfig (with --decode)"
|
||||
else
|
||||
echo "❌ Both base64 decode methods failed"
|
||||
echo "Trying to save as-is (maybe already decoded)..."
|
||||
echo "$KUBECONFIG_B64" > $HOME/.kube/config
|
||||
fi
|
||||
|
||||
chmod 600 $HOME/.kube/config
|
||||
|
||||
echo "✅ Kubeconfig configured"
|
||||
# Verify it's valid YAML
|
||||
if head -1 $HOME/.kube/config | grep -q "apiVersion"; then
|
||||
echo "✅ Kubeconfig appears valid"
|
||||
else
|
||||
echo "⚠️ Kubeconfig may not be valid, first line:"
|
||||
head -1 $HOME/.kube/config
|
||||
fi
|
||||
|
||||
# Test connection
|
||||
kubectl cluster-info
|
||||
kubectl get nodes -o wide
|
||||
|
||||
|
||||
Reference in New Issue
Block a user