You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by rm...@apache.org on 2020/08/21 07:13:33 UTC
[flink] 03/03: [FLINK-15793][e2e] Add E2E test to enable plugin for
native K8s
This is an automated email from the ASF dual-hosted git repository.
rmetzger pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit 5db513770b5b3205b4948ecd8ffdc6327177ad52
Author: wangyang0918 <da...@alibaba-inc.com>
AuthorDate: Tue Aug 18 15:48:29 2020 +0800
[FLINK-15793][e2e] Add E2E test to enable plugin for native K8s
---
flink-end-to-end-tests/run-nightly-tests.sh | 3 ++-
.../test-scripts/common_dummy_fs.sh | 12 +++++++--
.../test-scripts/test_kubernetes_session.sh | 29 +++++++++++++++++++---
3 files changed, 38 insertions(+), 6 deletions(-)
diff --git a/flink-end-to-end-tests/run-nightly-tests.sh b/flink-end-to-end-tests/run-nightly-tests.sh
index a2571e6..d879af3 100755
--- a/flink-end-to-end-tests/run-nightly-tests.sh
+++ b/flink-end-to-end-tests/run-nightly-tests.sh
@@ -125,7 +125,8 @@ if [[ ${PROFILE} != *"jdk11"* ]]; then
run_test "Wordcount on Docker test (custom fs plugin)" "$END_TO_END_DIR/test-scripts/test_docker_embedded_job.sh dummy-fs"
run_test "Run Kubernetes test" "$END_TO_END_DIR/test-scripts/test_kubernetes_embedded_job.sh"
- run_test "Run kubernetes session test" "$END_TO_END_DIR/test-scripts/test_kubernetes_session.sh"
+ run_test "Run kubernetes session test (default input)" "$END_TO_END_DIR/test-scripts/test_kubernetes_session.sh"
+ run_test "Run kubernetes session test (custom fs plugin)" "$END_TO_END_DIR/test-scripts/test_kubernetes_session.sh dummy-fs"
run_test "Run kubernetes application test" "$END_TO_END_DIR/test-scripts/test_kubernetes_application.sh"
run_test "Running Flink over NAT end-to-end test" "$END_TO_END_DIR/test-scripts/test_nat.sh" "skip_check_exceptions"
diff --git a/flink-end-to-end-tests/test-scripts/common_dummy_fs.sh b/flink-end-to-end-tests/test-scripts/common_dummy_fs.sh
index aba7e51..d025619 100644
--- a/flink-end-to-end-tests/test-scripts/common_dummy_fs.sh
+++ b/flink-end-to-end-tests/test-scripts/common_dummy_fs.sh
@@ -17,9 +17,17 @@
# limitations under the License.
################################################################################
+DUMMY_FS_PATH="${END_TO_END_DIR}/flink-plugins-test/dummy-fs/target/flink-dummy-fs.jar"
+ANOTHER_DUMMY_FS_PATH="${END_TO_END_DIR}/flink-plugins-test/another-dummy-fs/target/flink-another-dummy-fs.jar"
+
function dummy_fs_setup() {
mkdir -p "$FLINK_DIR/plugins/dummy-fs"
mkdir -p "$FLINK_DIR/plugins/another-dummy-fs"
- cp "${END_TO_END_DIR}/flink-plugins-test/dummy-fs/target/flink-dummy-fs.jar" "${FLINK_DIR}/plugins/dummy-fs/"
- cp "${END_TO_END_DIR}/flink-plugins-test/another-dummy-fs/target/flink-another-dummy-fs.jar" "${FLINK_DIR}/plugins/another-dummy-fs/"
+ cp "$DUMMY_FS_PATH" "${FLINK_DIR}/plugins/dummy-fs/"
+ cp "$ANOTHER_DUMMY_FS_PATH" "${FLINK_DIR}/plugins/another-dummy-fs/"
+}
+
+function cp_dummy_fs_to_opt() {
+ cp "$DUMMY_FS_PATH" "${FLINK_DIR}/opt/"
+ cp "$ANOTHER_DUMMY_FS_PATH" "${FLINK_DIR}/opt/"
}
diff --git a/flink-end-to-end-tests/test-scripts/test_kubernetes_session.sh b/flink-end-to-end-tests/test-scripts/test_kubernetes_session.sh
index 7ccdc8d..f0a580f 100755
--- a/flink-end-to-end-tests/test-scripts/test_kubernetes_session.sh
+++ b/flink-end-to-end-tests/test-scripts/test_kubernetes_session.sh
@@ -24,7 +24,26 @@ CLUSTER_ID="flink-native-k8s-session-1"
FLINK_IMAGE_NAME="test_kubernetes_session"
LOCAL_OUTPUT_PATH="${TEST_DATA_DIR}/out/wc_out"
OUTPUT_PATH="/tmp/wc_out"
-ARGS="--output ${OUTPUT_PATH}"
+OUTPUT_ARGS="--output ${OUTPUT_PATH}"
+
+INPUT_TYPE=${1:-embedded}
+case $INPUT_TYPE in
+ (embedded)
+ INPUT_ARGS=""
+ ;;
+ (dummy-fs)
+ source "$(dirname "$0")"/common_dummy_fs.sh
+ cp_dummy_fs_to_opt
+ INPUT_ARGS="--input dummy://localhost/words --input anotherDummy://localhost/words"
+ RESULT_HASH="0e5bd0a3dd7d5a7110aa85ff70adb54b"
+ ENABLE_DUMMPY_FS_ARGS="-Dcontainerized.master.env.ENABLE_BUILT_IN_PLUGINS=flink-dummy-fs.jar;flink-another-dummy-fs.jar \
+ -Dcontainerized.taskmanager.env.ENABLE_BUILT_IN_PLUGINS=flink-dummy-fs.jar;flink-another-dummy-fs.jar"
+ ;;
+ (*)
+ echo "Unknown input type $INPUT_TYPE"
+ exit 1
+ ;;
+esac
function internal_cleanup {
kubectl delete deployment ${CLUSTER_ID}
@@ -39,13 +58,17 @@ kubectl create clusterrolebinding ${CLUSTER_ROLE_BINDING} --clusterrole=edit --s
mkdir -p "$(dirname $LOCAL_OUTPUT_PATH)"
+# Enable dummy fs for Flink client
+[[ $INPUT_TYPE = 'dummy-fs' ]] && dummy_fs_setup
+
# Set the memory and cpu smaller than default, so that the jobmanager and taskmanager pods could be allocated in minikube.
"$FLINK_DIR"/bin/kubernetes-session.sh -Dkubernetes.cluster-id=${CLUSTER_ID} \
-Dkubernetes.container.image=${FLINK_IMAGE_NAME} \
-Djobmanager.memory.process.size=1088m \
-Dkubernetes.jobmanager.cpu=0.5 \
-Dkubernetes.taskmanager.cpu=0.5 \
- -Dkubernetes.rest-service.exposed.type=NodePort
+ -Dkubernetes.rest-service.exposed.type=NodePort \
+ $ENABLE_DUMMPY_FS_ARGS
kubectl wait --for=condition=Available --timeout=30s deploy/${CLUSTER_ID} || exit 1
jm_pod_name=$(kubectl get pods --selector="app=${CLUSTER_ID},component=jobmanager" -o jsonpath='{..metadata.name}')
@@ -53,7 +76,7 @@ wait_rest_endpoint_up_k8s $jm_pod_name
"$FLINK_DIR"/bin/flink run -e kubernetes-session \
-Dkubernetes.cluster-id=${CLUSTER_ID} \
- ${FLINK_DIR}/examples/batch/WordCount.jar ${ARGS}
+ ${FLINK_DIR}/examples/batch/WordCount.jar ${INPUT_ARGS} ${OUTPUT_ARGS}
if ! check_logs_output $jm_pod_name 'Starting KubernetesSessionClusterEntrypoint'; then
echo "JobManager logs are not accessible via kubectl logs."