Skip to content

Commit c4694ce

Browse files
committed
fix: preserve merged kubeconfig for chainsaw
Signed-off-by: Matt Kornfield <mkornfield@nvidia.com>
1 parent 023ed22 commit c4694ce

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

e2e/k8s/scripts/test_network_policies.sh

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,15 @@ run_chainsaw() {
7373
--no-color
7474
}
7575

76+
flattened_kubeconfig=""
77+
78+
cleanup() {
79+
if [ -n "${flattened_kubeconfig}" ]; then
80+
rm -f "${flattened_kubeconfig}"
81+
fi
82+
}
83+
trap cleanup EXIT
84+
7685
if command -v chainsaw >/dev/null 2>&1; then
7786
log_info "Running NetworkPolicy smoke test with local chainsaw"
7887
run_chainsaw "${CHAINSAW_TEST_DIR}" "${CHAINSAW_REPORT_PATH}"
@@ -85,19 +94,17 @@ if ! command -v docker >/dev/null 2>&1; then
8594
exit 1
8695
fi
8796

88-
kubeconfig="${KUBECONFIG:-${HOME}/.kube/config}"
89-
if [[ "${kubeconfig}" == *:* ]]; then
90-
log_warn "KUBECONFIG contains multiple paths; using the first path for Docker-mounted Chainsaw"
91-
kubeconfig="${kubeconfig%%:*}"
97+
flattened_kubeconfig="$(mktemp)"
98+
if ! kubectl config view --flatten --raw > "${flattened_kubeconfig}"; then
99+
log_error "Failed to create flattened kubeconfig for Docker-mounted Chainsaw"
100+
exit 1
92101
fi
93102

94-
if [ ! -f "${kubeconfig}" ]; then
95-
log_error "Kubeconfig not found for Docker-mounted Chainsaw: ${kubeconfig}"
103+
if [ ! -s "${flattened_kubeconfig}" ]; then
104+
log_error "Flattened kubeconfig is empty for Docker-mounted Chainsaw"
96105
exit 1
97106
fi
98107

99-
kubeconfig="$(cd "$(dirname "${kubeconfig}")" && pwd -P)/$(basename "${kubeconfig}")"
100-
101108
case "${CHAINSAW_TEST_DIR}" in
102109
"${REPO_ROOT}"/*)
103110
chainsaw_test_dir_container="/repo/${CHAINSAW_TEST_DIR#"${REPO_ROOT}/"}"
@@ -114,7 +121,7 @@ docker run --rm \
114121
--network="${CHAINSAW_DOCKER_NETWORK:-host}" \
115122
-v "${REPO_ROOT}:/repo:ro" \
116123
-v "${CHAINSAW_REPORT_PATH}:/chainsaw-report" \
117-
-v "${kubeconfig}:/kubeconfig:ro" \
124+
-v "${flattened_kubeconfig}:/kubeconfig:ro" \
118125
-e KUBECONFIG=/kubeconfig \
119126
"${CHAINSAW_IMAGE}" test "${chainsaw_test_dir_container}" \
120127
--namespace "${NAMESPACE}" \

0 commit comments

Comments
 (0)