mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-08 11:38:15 +00:00
Capture discovery API output in test fixtures
This commit is contained in:
parent
23ea6996d2
commit
2ab6fd3590
@ -22,6 +22,7 @@ set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
||||
DISCOVERY_ROOT_DIR="${KUBE_ROOT}/api/discovery"
|
||||
OPENAPI_ROOT_DIR="${KUBE_ROOT}/api/openapi-spec"
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
|
||||
@ -96,6 +97,12 @@ if ! kube::util::wait_for_url "https://${API_HOST}:${API_PORT}/healthz" "apiserv
|
||||
exit 1
|
||||
fi
|
||||
|
||||
kube::log::status "Updating aggregated discovery"
|
||||
|
||||
rm -fr "${DISCOVERY_ROOT_DIR}"
|
||||
mkdir -p "${DISCOVERY_ROOT_DIR}"
|
||||
curl -kfsS -H 'Authorization: Bearer dummy_token' -H 'Accept: application/json;g=apidiscovery.k8s.io;v=v2beta1;as=APIGroupDiscoveryList' "https://${API_HOST}:${API_PORT}/apis" | jq -S . > "${DISCOVERY_ROOT_DIR}/aggregated_v2beta1.json"
|
||||
|
||||
kube::log::status "Updating " "${OPENAPI_ROOT_DIR} for OpenAPI v2"
|
||||
|
||||
rm -f "${OPENAPI_ROOT_DIR}/swagger.json"
|
||||
@ -116,7 +123,7 @@ curl -w "\n" -kfsS -H 'Authorization: Bearer dummy_token' \
|
||||
"https://${API_HOST}:${API_PORT}/openapi/v3" \
|
||||
| jq -r '.paths | to_entries | .[].key' \
|
||||
| while read -r group; do
|
||||
kube::log::status "Updating OpenAPI spec for group ${group}"
|
||||
kube::log::status "Updating OpenAPI spec and discovery for group ${group}"
|
||||
OPENAPI_FILENAME="${group}_openapi.json"
|
||||
OPENAPI_FILENAME_ESCAPED="${OPENAPI_FILENAME//\//__}"
|
||||
OPENAPI_PATH="${OPENAPI_ROOT_DIR}/v3/${OPENAPI_FILENAME_ESCAPED}"
|
||||
@ -124,6 +131,13 @@ curl -w "\n" -kfsS -H 'Authorization: Bearer dummy_token' \
|
||||
"https://${API_HOST}:${API_PORT}/openapi/v3/{$group}" \
|
||||
| jq -S '.info.version="unversioned"' \
|
||||
> "$OPENAPI_PATH"
|
||||
|
||||
if [[ "${group}" == "api"* ]]; then
|
||||
DISCOVERY_FILENAME="${group}.json"
|
||||
DISCOVERY_FILENAME_ESCAPED="${DISCOVERY_FILENAME//\//__}"
|
||||
DISCOVERY_PATH="${DISCOVERY_ROOT_DIR}/${DISCOVERY_FILENAME_ESCAPED}"
|
||||
curl -kfsS -H 'Authorization: Bearer dummy_token' "https://${API_HOST}:${API_PORT}/{$group}" | jq -S . > "$DISCOVERY_PATH"
|
||||
fi
|
||||
done
|
||||
|
||||
kube::log::status "SUCCESS"
|
||||
|
@ -33,13 +33,17 @@ make -C "${KUBE_ROOT}" WHAT=cmd/kube-apiserver
|
||||
|
||||
SPECROOT="${KUBE_ROOT}/api/openapi-spec"
|
||||
SPECV3PATH="${SPECROOT}/v3"
|
||||
DISCOVERYROOT="${KUBE_ROOT}/api/discovery"
|
||||
TMP_SPECROOT="${KUBE_ROOT}/_tmp/openapi-spec"
|
||||
TMP_DISCOVERYROOT="${KUBE_ROOT}/_tmp/discovery"
|
||||
_tmp="${KUBE_ROOT}/_tmp"
|
||||
|
||||
mkdir -p "${_tmp}"
|
||||
cp -a "${SPECROOT}" "${TMP_SPECROOT}"
|
||||
trap 'cp -a ${TMP_SPECROOT} ${SPECROOT}/..; rm -rf ${_tmp}' EXIT SIGINT
|
||||
cp -a "${DISCOVERYROOT}" "${TMP_DISCOVERYROOT}"
|
||||
trap 'cp -a ${TMP_SPECROOT} ${SPECROOT}/..; cp -a ${TMP_DISCOVERYROOT} ${DISCOVERYROOT}/..; rm -rf ${_tmp}' EXIT SIGINT
|
||||
rm -r "${SPECROOT:?}"/*
|
||||
rm -r "${DISCOVERYROOT:?}"/*
|
||||
mkdir -p "${SPECV3PATH}"
|
||||
cp "${TMP_SPECROOT}/README.md" "${SPECROOT}/README.md"
|
||||
|
||||
@ -55,4 +59,15 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "diffing ${DISCOVERYROOT} against freshly generated discovery"
|
||||
ret=0
|
||||
diff -Naupr "${DISCOVERYROOT}" "${TMP_DISCOVERYROOT}" || ret=$?
|
||||
if [[ $ret -eq 0 ]]
|
||||
then
|
||||
echo "${DISCOVERYROOT} up to date."
|
||||
else
|
||||
echo "${DISCOVERYROOT} is out of date. Please run hack/update-openapi-spec.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ex: ts=2 sw=2 et filetype=sh
|
||||
|
Loading…
Reference in New Issue
Block a user