-
Story
-
Resolution: Done
-
Normal
-
None
-
None
-
False
-
-
False
-
None
-
Unset
-
None
-
-
-
We need to verify that all pods have the newest feature flags token in their cdappconfig before revoking an old token.
I had Claude cook up a script for this and ran it against stage and prod to verify that we are safe to revoke the old token:
#!/bin/bash # Expected clientAccessToken value EXPECTED_TOKEN="TOKEN_HERE" echo "Checking clientAccessToken across pods with 'app' label..." echo "Expected value: $EXPECTED_TOKEN" echo "===========================================" # Get all pods across all namespaces that have an 'app' label pods=$(oc get pods --all-namespaces -o jsonpath='{range .items[?(@.metadata.labels.app)]}{.metadata.namespace}{" "}{.metadata.name}{"\n"}{end}') # Count total pods for progress tracking total_pods=$(echo "$pods" | wc -l) current_pod=0 checked_pods=0 while IFS=' ' read -r namespace pod_name; do if [[ -z "$namespace" || -z "$pod_name" ]]; then continue fi ((current_pod++)) echo "[$current_pod/$total_pods] Checking pod: $namespace/$pod_name" # Skip if pod is not running pod_status=$(oc get pod "$pod_name" -n "$namespace" -o jsonpath='{.status.phase}' 2>/dev/null) if [[ "$pod_status" != "Running" ]]; then echo " -> Skipping (not running, status: $pod_status)" continue fi # Check if the config file exists first if ! oc exec -n "$namespace" "$pod_name" -- test -f /cdapp/cdappconfig.json 2>/dev/null; then echo " -> Skipping (no config file found)" continue fi ((checked_pods++)) echo " -> Checking token..." # Try to get the clientAccessToken value token_value=$(oc exec -n "$namespace" "$pod_name" -- cat /cdapp/cdappconfig.json 2>/dev/null | jq -r '.featureFlags.clientAccessToken' 2>/dev/null) # Check if the command was successful and if the token matches if [[ $? -eq 0 && "$token_value" != "null" ]]; then if [[ "$token_value" != "$EXPECTED_TOKEN" ]]; then echo " -> MISMATCH: Token: $token_value" else echo " -> Token matches expected value" fi else echo " -> No token found or error reading config" fi done <<< "$pods" echo "===========================================" echo "Check complete. Processed $current_pod pods, checked $checked_pods with config files."