You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by wa...@apache.org on 2022/03/21 03:59:08 UTC
[flink-kubernetes-operator] branch main updated: [FLINK-26715] Extend e2e ci test matrix with watchNamespaces enabled
This is an automated email from the ASF dual-hosted git repository.
wangyang0918 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-kubernetes-operator.git
The following commit(s) were added to refs/heads/main by this push:
new aa66177 [FLINK-26715] Extend e2e ci test matrix with watchNamespaces enabled
aa66177 is described below
commit aa661776448bd0ae87f3f8d5ddf7d7dd168ae0b1
Author: Marton Balassi <ma...@apple.com>
AuthorDate: Fri Mar 18 16:27:49 2022 +0100
[FLINK-26715] Extend e2e ci test matrix with watchNamespaces enabled
---
.github/workflows/ci.yml | 15 ++++++++++++---
e2e-tests/test_kubernetes_application_ha.sh | 4 ++++
e2e-tests/test_last_state_upgrade.sh | 4 ++++
e2e-tests/utils.sh | 14 ++++++++++++++
4 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d1a86a7..a4947c2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -78,6 +78,15 @@ jobs:
stop_minikube
e2e_ci:
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ config:
+ - description: 'Default configuration'
+ namespace: default
+ extraArgs: ''
+ - description: 'WatchNamespaces enabled'
+ namespace: flink
+ extraArgs: '--create-namespace --set "watchNamespaces={default,flink}"'
name: e2e_ci
steps:
- uses: actions/checkout@v2
@@ -111,8 +120,8 @@ jobs:
docker images
- name: Start the operator
run: |
- helm install flink-operator helm/flink-operator --set image.repository=flink-kubernetes-operator --set image.tag=ci-latest
- kubectl wait --for=condition=Available --timeout=120s deploy/flink-operator
+ helm install flink-operator -n ${{ matrix.config.namespace }} helm/flink-operator --set image.repository=flink-kubernetes-operator --set image.tag=ci-latest ${{ matrix.config.extraArgs }}
+ kubectl wait --for=condition=Available --timeout=120s -n ${{ matrix.config.namespace }} deploy/flink-operator
kubectl get pods
- name: Run Flink e2e tests
run: |
@@ -122,7 +131,7 @@ jobs:
done
- name: Stop the operator
run: |
- helm uninstall flink-operator
+ helm uninstall -n ${{ matrix.config.namespace }} flink-operator
- name: Stop minikube
run: |
source e2e-tests/utils.sh
diff --git a/e2e-tests/test_kubernetes_application_ha.sh b/e2e-tests/test_kubernetes_application_ha.sh
index b91eab4..d79c9a5 100755
--- a/e2e-tests/test_kubernetes_application_ha.sh
+++ b/e2e-tests/test_kubernetes_application_ha.sh
@@ -47,6 +47,8 @@ kubectl wait --for=condition=Ready --timeout=${TIMEOUT}s pod/$jm_pod_name || exi
wait_for_logs $jm_pod_name "Rest endpoint listening at" ${TIMEOUT} || exit 1
wait_for_logs $jm_pod_name "Completed checkpoint [0-9]+ for job" ${TIMEOUT} || exit 1
+check_status flinkdep/flink-example-statemachine '.status.jobManagerDeploymentStatus' READY
+check_status flinkdep/flink-example-statemachine '.status.jobStatus.state' RUNNING
job_id=$(kubectl logs $jm_pod_name | grep -E -o 'Job [a-z0-9]+ is submitted' | awk '{print $2}')
@@ -57,6 +59,8 @@ kubectl exec $jm_pod_name -- /bin/sh -c "kill 1"
# Check the new JobManager recovering from latest successful checkpoint
wait_for_logs $jm_pod_name "Restoring job $job_id from Checkpoint" ${TIMEOUT} || exit 1
wait_for_logs $jm_pod_name "Completed checkpoint [0-9]+ for job" ${TIMEOUT} || exit 1
+check_status flinkdep/flink-example-statemachine '.status.jobManagerDeploymentStatus' READY
+check_status flinkdep/flink-example-statemachine '.status.jobStatus.state' RUNNING
echo "Successfully run the Flink Kubernetes application HA test"
diff --git a/e2e-tests/test_last_state_upgrade.sh b/e2e-tests/test_last_state_upgrade.sh
index 20ca7d0..2e7d8a7 100755
--- a/e2e-tests/test_last_state_upgrade.sh
+++ b/e2e-tests/test_last_state_upgrade.sh
@@ -51,6 +51,8 @@ retry_times 5 30 "kubectl apply -f e2e-tests/data/cr.yaml" || exit 1
wait_for_jobmanager_running
wait_for_logs $jm_pod_name "Completed checkpoint [0-9]+ for job" ${TIMEOUT} || exit 1
+check_status flinkdep/flink-example-statemachine '.status.jobManagerDeploymentStatus' READY
+check_status flinkdep/flink-example-statemachine '.status.jobStatus.state' RUNNING
job_id=$(kubectl logs $jm_pod_name | grep -E -o 'Job [a-z0-9]+ is submitted' | awk '{print $2}')
@@ -63,6 +65,8 @@ wait_for_jobmanager_running
# Check the new JobManager recovering from latest successful checkpoint
wait_for_logs $jm_pod_name "Restoring job $job_id from Checkpoint" ${TIMEOUT} || exit 1
wait_for_logs $jm_pod_name "Completed checkpoint [0-9]+ for job" ${TIMEOUT} || exit 1
+check_status flinkdep/flink-example-statemachine '.status.jobManagerDeploymentStatus' READY
+check_status flinkdep/flink-example-statemachine '.status.jobStatus.state' RUNNING
echo "Successfully run the last-state upgrade test"
diff --git a/e2e-tests/utils.sh b/e2e-tests/utils.sh
index 174a2af..0f1f570 100644
--- a/e2e-tests/utils.sh
+++ b/e2e-tests/utils.sh
@@ -36,6 +36,20 @@ function wait_for_logs {
exit 1
}
+function check_status {
+ local resource=$1
+ local status_path=$2
+ local expected_status=$3
+
+ status=$(kubectl get -oyaml $resource | yq $status_path)
+ if [ "$status" == "$expected_status" ]; then
+ echo "Successfully verified that $resource$status_path is in $expected_status state."
+ else
+ echo "Status verification for $resource$status_path failed. It is $status instead of $expected_status."
+ exit 1
+ fi
+}
+
function retry_times() {
local retriesNumber=$1
local backoff=$2