#!/usr/bin/env bash # Copyright (c) HashiCorp, Inc. # SPDX-License-Identifier: BUSL-1.1 # The Vault smoke test to verify the Vault version installed set -e fail() { echo "$1" 1>&2 exit 1 } if [[ "${CHECK_BUILD_DATE}" == "false" ]]; then expected_build_date="" else cfg_build_date="${BUILD_DATE}" if [[ "${cfg_build_date}" == "" ]]; then cfg_build_date=$(echo "${VAULT_STATUS}" | jq -Mr .build_date) fi expected_build_date=", built $cfg_build_date" fi vault_expected_version="Vault v${EXPECTED_VERSION} (${VAULT_REVISION})" case "${VAULT_EDITION}" in ce) version_expected="${vault_expected_version}${expected_build_date}";; ent) version_expected="${vault_expected_version}${expected_build_date}";; ent.hsm) version_expected="${vault_expected_version}${expected_build_date} (cgo)";; ent.fips1402) version_expected="${vault_expected_version}${expected_build_date} (cgo)" ;; ent.hsm.fips1402) version_expected="${vault_expected_version}${expected_build_date} (cgo)" ;; *) fail "(${VAULT_EDITION}) does not match any known Vault editions" esac version_expected_nosha=$(echo "$version_expected" | awk '!($3="")' | sed 's/ / /' | sed -e 's/[[:space:]]*$//') if [[ "${ACTUAL_VERSION}" == "$version_expected_nosha" ]] || [[ "${ACTUAL_VERSION}" == "$version_expected" ]]; then echo "Version verification succeeded!" else echo "Version checking enabled: ${CHECK_BUILD_DATE}" 1>&2 echo "Given build date: ${BUILD_DATE}" 1>&2 echo "Interpreted build date: ${cfg_build_date}" 1>&2 fail "expected Version=$version_expected or $version_expected_nosha, got: ${ACTUAL_VERSION}" fi