fix(ci): count the kubeconfig's clusters correctly
The cluster-count guard I added used `grep -c '"name"'`, which counts
LINES. The jsonpath output is a single line, so the count was 1 for a
kubeconfig with clusters and 1 for one without - which made the guard
reject every kubeconfig:
ERROR: the kubeconfig has no cluster entries.
The count is now done with `grep -o . | wc -l`, which counts occurrences
rather than lines. Tested against both cases:
- a real kubeconfig with a stale CA -> the CA is refreshed and kubectl works
- a kubeconfig with no clusters -> refuses with a clear message
This commit is contained in:
@@ -56,8 +56,10 @@ if [ -z "$EXPECTED" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Guard against a kubeconfig with no clusters, or an empty one.
|
# Guard against a kubeconfig with no clusters, or an empty one.
|
||||||
CLUSTER_COUNT=$(kubectl config view --raw -o jsonpath='{.clusters}' 2>/dev/null \
|
# `grep -c` counts LINES, and the jsonpath output is a single line, so the
|
||||||
| grep -c '"name"' || true)
|
# count is done with grep -o and wc -l instead.
|
||||||
|
CLUSTER_COUNT=$(kubectl config view --raw -o jsonpath='{.clusters[*].name}' 2>/dev/null \
|
||||||
|
| grep -o . | wc -l || true)
|
||||||
if [ "${CLUSTER_COUNT:-0}" -eq 0 ]; then
|
if [ "${CLUSTER_COUNT:-0}" -eq 0 ]; then
|
||||||
echo "ERROR: the kubeconfig has no cluster entries." >&2
|
echo "ERROR: the kubeconfig has no cluster entries." >&2
|
||||||
echo " The KUBEC_CONFIG_BUILDX_NEW_2 secret looks wrong or empty." >&2
|
echo " The KUBEC_CONFIG_BUILDX_NEW_2 secret looks wrong or empty." >&2
|
||||||
|
|||||||
Reference in New Issue
Block a user