Skip to content

Commit

Permalink
deprecate kntest (#3311)
Browse files Browse the repository at this point in the history
Co-authored-by: upodroid <upodroid@users.noreply.github.com>
  • Loading branch information
upodroid and upodroid authored Aug 28, 2023
1 parent ffd66cf commit d9e6a1f
Show file tree
Hide file tree
Showing 11 changed files with 58 additions and 38 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ require (
github.com/kedacore/keda/v2 v2.8.1
go.opencensus.io v0.24.0
knative.dev/eventing v0.38.1-0.20230815095940-29ac3eee64a4
knative.dev/hack v0.0.0-20230815012940-044c02b7a447
knative.dev/hack v0.0.0-20230818155117-9cc05a31e8c0
knative.dev/pkg v0.0.0-20230815132840-4f651e092853
knative.dev/reconciler-test v0.0.0-20230810072538-a7237b013cbb
sigs.k8s.io/controller-runtime v0.12.3
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1277,8 +1277,8 @@ k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2 h1:GfD9OzL11kvZN5iArC6oTS7RTj7oJ
k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
knative.dev/eventing v0.38.1-0.20230815095940-29ac3eee64a4 h1:619xUZrwrv3xuterMgF8qKXLTJm1MosKwuTLcG5HTOk=
knative.dev/eventing v0.38.1-0.20230815095940-29ac3eee64a4/go.mod h1:InEIckt+XICxXXYy2P4kqEJ4nMDXqI1iCUZ84vGDRbM=
knative.dev/hack v0.0.0-20230815012940-044c02b7a447 h1:Lr4O/WEyZHuUBFbqATYdQlfLXvhPUCluF4zlgRi59T4=
knative.dev/hack v0.0.0-20230815012940-044c02b7a447/go.mod h1:yk2OjGDsbEnQjfxdm0/HJKS2WqTLEFg/N6nUs6Rqx3Q=
knative.dev/hack v0.0.0-20230818155117-9cc05a31e8c0 h1:n9YEGYuoj31pAkhGlNL+xTQAeXKYTLeMmIZLWA9fAeo=
knative.dev/hack v0.0.0-20230818155117-9cc05a31e8c0/go.mod h1:yk2OjGDsbEnQjfxdm0/HJKS2WqTLEFg/N6nUs6Rqx3Q=
knative.dev/pkg v0.0.0-20230815132840-4f651e092853 h1:OyAYpXLa/jQWClFxRegCccGySyX2/1BVRtKaAWRE/xM=
knative.dev/pkg v0.0.0-20230815132840-4f651e092853/go.mod h1:Y5Tis5nMoapB9iTZywW20Qnv/7LBahrtHz9Sm6+l3LE=
knative.dev/reconciler-test v0.0.0-20230810072538-a7237b013cbb h1:XKIYY3OOzlzuN1hX3jc3UoJyIXe33bghVHyyhIpkr2A=
Expand Down
6 changes: 3 additions & 3 deletions test/e2e-tests.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/usr/bin/env bash

source $(dirname $0)/e2e-common.sh
source $(dirname "$0")/e2e-common.sh

if ! ${SKIP_INITIALIZE}; then
initialize $@ --skip-istio-addon --min-nodes=4 --max-nodes=4
initialize "$@" --num-nodes=4
save_release_artifacts || fail_test "Failed to save release artifacts"
fi

Expand All @@ -24,7 +24,7 @@ header "Running tests"

if [ "${EVENTING_KAFKA_BROKER_CHANNEL_AUTH_SCENARIO:-""}" != "" ]; then
# if this flag exists, only test Kafka channel scenarios with auth
$(dirname $0)/channel-e2e-tests.sh || fail_test "Failed to execute KafkaChannel tests"
$(dirname "$0")/channel-e2e-tests.sh || fail_test "Failed to execute KafkaChannel tests"
success
fi

Expand Down
4 changes: 2 additions & 2 deletions test/presubmit-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
export GO111MODULE=on
export DISABLE_MD_LINTING=1

source $(dirname $0)/../vendor/knative.dev/hack/presubmit-tests.sh
source $(dirname $0)/e2e-common.sh
source $(dirname "$0")/../vendor/knative.dev/hack/presubmit-tests.sh
source $(dirname "$0")/e2e-common.sh

function fail_test() {
header "$1"
Expand Down
6 changes: 3 additions & 3 deletions test/reconciler-tests.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#!/usr/bin/env bash

source $(dirname $0)/e2e-common.sh
source $(dirname "$0")/e2e-common.sh
export BROKER_TEMPLATES=./templates/kafka-broker

if ! ${SKIP_INITIALIZE}; then
initialize $@ --skip-istio-addon --min-nodes=4 --max-nodes=4
initialize "$@" --num-nodes=4
save_release_artifacts || fail_test "Failed to save release artifacts"
fi

Expand All @@ -25,7 +25,7 @@ header "Running tests"

if [ "${EVENTING_KAFKA_BROKER_CHANNEL_AUTH_SCENARIO:-""}" != "" ]; then
# if this flag exists, only test Kafka channel scenarios with auth
$(dirname $0)/channel-reconciler-tests.sh || fail_test "Failed to execute KafkaChannel tests"
$(dirname "$0")/channel-reconciler-tests.sh || fail_test "Failed to execute KafkaChannel tests"
success
fi

Expand Down
4 changes: 2 additions & 2 deletions test/upgrade-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

readonly SKIP_INITIALIZE=${SKIP_INITIALIZE:-false}

source $(dirname $0)/e2e-common.sh
source $(dirname "$0")/e2e-common.sh

# Override test_setup from e2e-common since we don't want to apply the latest release
# before running the upgrade test.
Expand All @@ -31,7 +31,7 @@ function test_setup() {
}

if ! ${SKIP_INITIALIZE}; then
initialize $@ --skip-istio-addon
initialize "$@"
save_release_artifacts || fail_test "Failed to save release artifacts"
fi

Expand Down
9 changes: 2 additions & 7 deletions vendor/knative.dev/hack/e2e-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@

source "$(dirname "${BASH_SOURCE[0]:-$0}")/infra-library.sh"

readonly TEST_RESULT_FILE=/tmp/${REPO_NAME}-e2e-result

# Tear down the test resources.
function teardown_test_resources() {
header "Tearing down test environment"
Expand Down Expand Up @@ -133,6 +131,7 @@ E2E_SCRIPT=""
function initialize() {
local run_tests=0
local custom_flags=()
local extra_gcloud_flags=()
local parse_script_flags=0
E2E_SCRIPT="$(get_canonical_path "$0")"
local e2e_script_command=( "${E2E_SCRIPT}" "--run-tests" )
Expand Down Expand Up @@ -177,16 +176,12 @@ function initialize() {
shift
done

if [[ "${CLOUD_PROVIDER}" == "gke" ]]; then
custom_flags+=("--addons=NodeLocalDNS")
fi

readonly SKIP_DUMP_ON_FAILURE
readonly TEARDOWN
readonly CLOUD_PROVIDER

if (( ! run_tests )); then
create_test_cluster "${CLOUD_PROVIDER}" custom_flags e2e_script_command
create_test_cluster "${CLOUD_PROVIDER}" custom_flags extra_gcloud_flags e2e_script_command
else
setup_test_cluster
fi
Expand Down
41 changes: 31 additions & 10 deletions vendor/knative.dev/hack/infra-library.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ function create_test_cluster() {
fi

case "$1" in
gke) create_gke_test_cluster "$2" "$3" "${4:-}" ;;
gke) create_gke_test_cluster "$2" "$3" "$4" "${5:-}" ;;
kind) create_kind_test_cluster "$2" "$3" "${4:-}" ;;
*) echo "unsupported provider: $1"; exit 1 ;;
esac
Expand All @@ -117,29 +117,50 @@ function create_kind_test_cluster() {
}

# Create a GKE test cluster with kubetest2 and run the test command.
# Parameters: $1 - custom flags defined in kntest
# $2 - test command to run after the cluster is created (optional)
# Parameters: $1 - custom flags defined in kubetest2
# $2 - custom flags to pass directly to gcloud
# $3 - test command to run after the cluster is created (optional)
function create_gke_test_cluster() {
local -n _custom_flags=$1
local -n _test_command=$2
local -n _extra_gcloud_flags=$2
local -n _test_command=$3

# We are disabling logs and metrics on Boskos Clusters by default as they are not used. Manually set ENABLE_GKE_TELEMETRY to true to enable telemetry
# and ENABLE_PREEMPTIBLE_NODES to true to create preemptible/spot VMs. VM Preemption is a rare event and shouldn't be distruptive given the fault tolerant nature of our tests.
local extra_gcloud_flags=""
if [[ "${ENABLE_GKE_TELEMETRY:-}" != "true" ]]; then
extra_gcloud_flags="${extra_gcloud_flags} --logging=NONE --monitoring=NONE"
_extra_gcloud_flags+=("--logging=NONE --monitoring=NONE")
fi

if [[ "${CLOUD_PROVIDER}" == "gke" ]]; then
extra_gcloud_flags+=("--addons=NodeLocalDNS")
fi

if [[ "${ENABLE_PREEMPTIBLE_NODES:-}" == "true" ]]; then
extra_gcloud_flags="${extra_gcloud_flags} --preemptible"
_extra_gcloud_flags+=("--preemptible")
fi

_extra_gcloud_flags+=("--quiet")
if ! command -v kubetest2 >/dev/null; then
tmpbin="$(mktemp -d)"
echo "kubetest2 not found, installing in temp path: ${tmpbin}"
GOBIN="$tmpbin" go install sigs.k8s.io/kubetest2/...@latest
export PATH="${tmpbin}:${PATH}"
fi
run_kntest kubetest2 gke "${_custom_flags[@]}" \
--test-command="${_test_command[*]}" \
--extra-gcloud-flags="${extra_gcloud_flags}"
if [[ ! " ${_custom_flags[*]} " =~ "--machine-type=" ]]; then
_custom_flags+=("--machine-type=e2-standard-4")
fi
kubetest2 gke "${_custom_flags[@]}" \
--rundir-in-artifacts \
--up \
--down \
--boskos-heartbeat-interval-seconds=20 \
--v=1 \
--network=e2e-network \
--boskos-acquire-timeout-seconds=1200 \
--region="${E2E_CLUSTER_REGION},us-east1,us-west1" \
--gcloud-extra-flags="${_extra_gcloud_flags[*]}" \
--retryable-error-patterns='.*does not have enough resources available to fulfill.*,.*only \\d+ nodes out of \\d+ have registered; this is likely due to Nodes failing to start correctly.*,.*All cluster resources were brought up.+ but: component .+ from endpoint .+ is unhealthy.*' \
--test=exec \
-- \
"${_test_command[@]}"
}
16 changes: 10 additions & 6 deletions vendor/knative.dev/hack/performance-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# This is a helper script for Knative performance test scripts.
# See README.md for instructions on how to use it.

source $(dirname "${BASH_SOURCE[0]}")/library.sh
source "$(dirname "${BASH_SOURCE[0]}")"/library.sh

# Configurable parameters.
# If not provided, they will fall back to the default values.
Expand Down Expand Up @@ -76,7 +76,8 @@ EOF
update_knative || abort "failed to update knative"
fi
# get benchmark name from the cluster name
local benchmark_name=$(get_benchmark_name "$1")
local benchmark_name
benchmark_name=$(get_benchmark_name "$1")
if function_exists update_benchmark; then
update_benchmark "${benchmark_name}" || abort "failed to update benchmark"
fi
Expand All @@ -92,13 +93,16 @@ function get_benchmark_name() {
# Update the clusters related to the current repo.
function update_clusters() {
header "Updating all clusters for ${REPO_NAME}"
local all_clusters=$(gcloud container clusters list --project="${PROJECT_NAME}" --format="csv[no-heading](name,zone)")
local all_clusters
all_clusters=$(gcloud container clusters list --project="${PROJECT_NAME}" --format="csv[no-heading](name,zone)")
echo ">> Project contains clusters:" "${all_clusters}"
for cluster in ${all_clusters}; do
local name=$(echo "${cluster}" | cut -f1 -d",")
local name
name=$(echo "${cluster}" | cut -f1 -d",")
# the cluster name is prefixed with "${REPO_NAME}--", here we should only handle clusters belonged to the current repo
[[ ! ${name} =~ ^${REPO_NAME}-- ]] && continue
local zone=$(echo "${cluster}" | cut -f2 -d",")
local zone
zone=$(echo "${cluster}" | cut -f2 -d",")

# Update all resources installed on the cluster
update_cluster "${name}" "${zone}"
Expand All @@ -109,7 +113,7 @@ function update_clusters() {
# Run the perf-tests tool
# Parameters: $1..$n - parameters passed to the tool
function run_perf_cluster_tool() {
perf-tests $@
perf-tests "$@"
}

# Delete the old clusters belonged to the current repo, and recreate them with the same configuration.
Expand Down
2 changes: 1 addition & 1 deletion vendor/knative.dev/hack/presubmit-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# This is a helper script for Knative presubmit test scripts.
# See README.md for instructions on how to use it.

source $(dirname "${BASH_SOURCE[0]}")/library.sh
source "$(dirname "${BASH_SOURCE[0]}")"/library.sh

# Custom configuration of presubmit tests
readonly PRESUBMIT_TEST_FAIL_FAST=${PRESUBMIT_TEST_FAIL_FAST:-0}
Expand Down
2 changes: 1 addition & 1 deletion vendor/modules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1441,7 +1441,7 @@ knative.dev/eventing/test/upgrade/prober/wathola/fetcher
knative.dev/eventing/test/upgrade/prober/wathola/forwarder
knative.dev/eventing/test/upgrade/prober/wathola/receiver
knative.dev/eventing/test/upgrade/prober/wathola/sender
# knative.dev/hack v0.0.0-20230815012940-044c02b7a447
# knative.dev/hack v0.0.0-20230818155117-9cc05a31e8c0
## explicit; go 1.18
knative.dev/hack
knative.dev/hack/shell
Expand Down

0 comments on commit d9e6a1f

Please sign in to comment.