Capture discovery API output in test fixtures
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jordan Liggitt
					Jordan Liggitt