| #!/usr/bin/env bash |
| ################################################################################ |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| ################################################################################ |
| |
| source "$(dirname "$0")"/common.sh |
| |
| # Kinesalite doesn't support CBOR |
| export AWS_CBOR_DISABLE=1 |
| |
| # Required by the KPL native process |
| export AWS_ACCESS_KEY_ID=flinkKinesisTestFakeAccessKeyId |
| export AWS_SECRET_KEY=flinkKinesisTestFakeAccessKey |
| |
| KINESALITE_PORT=4567 |
| |
| function start_kinesalite { |
| #docker run -d --rm --name flink-test-kinesis -p ${KINESALITE_PORT}:${KINESALITE_PORT} instructure/kinesalite |
| # override entrypoint to enable SSL |
| docker run -d --rm --entrypoint "/tini" \ |
| --name flink-test-kinesis \ |
| -p ${KINESALITE_PORT}:${KINESALITE_PORT} \ |
| instructure/kinesalite -- \ |
| /usr/src/app/node_modules/kinesalite/cli.js --path /var/lib/kinesalite --ssl |
| } |
| |
| START_KINESALITE_MAX_RETRIES=50 |
| if ! retry_times ${START_KINESALITE_MAX_RETRIES} 0 start_kinesalite; then |
| echo "Failed to run kinesalite docker image" |
| exit 1 |
| fi |
| |
| # reveal potential issues with the container in the CI environment |
| docker logs flink-test-kinesis |
| |
| function test_cleanup { |
| # job needs to stop before kinesalite |
| stop_cluster |
| echo "terminating kinesalite" |
| docker kill flink-test-kinesis |
| } |
| on_exit test_cleanup |
| |
| # prefix com.amazonaws.sdk.disableCertChecking to account for shading |
| DISABLE_CERT_CHECKING_JAVA_OPTS="-Dorg.apache.flink.kinesis.shaded.com.amazonaws.sdk.disableCertChecking" |
| |
| export FLINK_ENV_JAVA_OPTS=${DISABLE_CERT_CHECKING_JAVA_OPTS} |
| start_cluster |
| |
| TEST_JAR="${END_TO_END_DIR}/flink-streaming-kinesis-test/target/KinesisExample.jar" |
| JVM_ARGS=${DISABLE_CERT_CHECKING_JAVA_OPTS} \ |
| $FLINK_DIR/bin/flink run -p 1 -c org.apache.flink.streaming.kinesis.test.KinesisExampleTest $TEST_JAR \ |
| --input-stream test-input --output-stream test-output \ |
| --aws.endpoint https://localhost:${KINESALITE_PORT} --aws.credentials.provider.basic.secretkey fakekey --aws.credentials.provider.basic.accesskeyid fakeid \ |
| --flink.stream.initpos TRIM_HORIZON \ |
| --flink.partition-discovery.interval-millis 1000 |