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
commit 6ce3d96937849c70e00ef5f3837bc08ed31d9952 Author: SteNicholas <[email protected]> AuthorDate: Sat May 7 18:02:06 2022 +0800 [FLINK-27412] Allow flinkVersion v1_13 in flink-kubernetes-operator and improve e2e tests to cover all supported Flink versions This closes #197. --- .github/workflows/ci.yml | 11 +++++++++++ docs/content/docs/custom-resource/job-management.md | 2 +- docs/content/docs/custom-resource/overview.md | 2 +- docs/content/docs/custom-resource/pod-template.md | 2 +- docs/content/docs/custom-resource/reference.md | 1 + docs/content/docs/operations/ingress.md | 2 +- e2e-tests/data/flinkdep-cr.yaml | 4 ++-- e2e-tests/data/sessionjob-cr.yaml | 4 ++-- examples/basic-session-job.yaml | 4 ++-- .../flink/kubernetes/operator/crd/spec/FlinkVersion.java | 1 + .../apache/flink/kubernetes/operator/FlinkOperatorITCase.java | 2 +- .../operator/controller/DeploymentRecoveryTest.java | 10 ++++------ .../crds/flinkdeployments.flink.apache.org-v1.yml | 1 + 13 files changed, 29 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 388d04d..f2c7056 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -98,6 +98,13 @@ jobs: - description: 'WatchNamespaces enabled' namespace: flink extraArgs: '--create-namespace --set "watchNamespaces={default,flink}"' + versions: + - image: flink:1.13 + flinkVersion: v1_13 + - image: flink:1.14 + flinkVersion: v1_14 + - image: flink:1.15 + flinkVersion: v1_15 name: e2e_ci steps: - uses: actions/checkout@v2 @@ -143,10 +150,14 @@ jobs: kubectl get pods - name: Run Flink e2e tests run: | + sed -i "s/image: flink:.*/image: ${{ matrix.versions.image }}/" e2e-tests/data/*.yaml + sed -i "s/flinkVersion: .*/flinkVersion: ${{ matrix.versions.flinkVersion }}/" e2e-tests/data/*.yaml + git diff HEAD ls e2e-tests/test_*.sh | while read script_test;do \ echo "Running $script_test" bash $script_test || exit 1 done + git reset --hard - name: Stop the operator run: | helm uninstall -n ${{ matrix.config.namespace }} flink-kubernetes-operator diff --git a/docs/content/docs/custom-resource/job-management.md b/docs/content/docs/custom-resource/job-management.md index d4697c9..8e5f4bc 100644 --- a/docs/content/docs/custom-resource/job-management.md +++ b/docs/content/docs/custom-resource/job-management.md @@ -102,7 +102,7 @@ metadata: namespace: default name: basic-checkpoint-ha-example spec: - image: flink:1.14.3 + image: flink:1.14 flinkVersion: v1_14 flinkConfiguration: taskmanager.numberOfTaskSlots: "2" diff --git a/docs/content/docs/custom-resource/overview.md b/docs/content/docs/custom-resource/overview.md index 34a74ff..88efe8d 100644 --- a/docs/content/docs/custom-resource/overview.md +++ b/docs/content/docs/custom-resource/overview.md @@ -111,7 +111,7 @@ metadata: namespace: default name: basic-example spec: - image: flink:1.14.3 + image: flink:1.14 flinkVersion: v1_14 flinkConfiguration: taskmanager.numberOfTaskSlots: "2" diff --git a/docs/content/docs/custom-resource/pod-template.md b/docs/content/docs/custom-resource/pod-template.md index f2d0a7f..3342164 100644 --- a/docs/content/docs/custom-resource/pod-template.md +++ b/docs/content/docs/custom-resource/pod-template.md @@ -49,7 +49,7 @@ metadata: namespace: default name: pod-template-example spec: - image: flink:1.14.3 + image: flink:1.14 flinkVersion: v1_14 flinkConfiguration: taskmanager.numberOfTaskSlots: "2" diff --git a/docs/content/docs/custom-resource/reference.md b/docs/content/docs/custom-resource/reference.md index 64b20e7..78cb500 100644 --- a/docs/content/docs/custom-resource/reference.md +++ b/docs/content/docs/custom-resource/reference.md @@ -76,6 +76,7 @@ This page serves as a full reference for FlinkDeployment custom resource definit | Value | Docs | | ----- | ---- | +| v1_13 | | | v1_14 | | | v1_15 | | | v1_16 | | diff --git a/docs/content/docs/operations/ingress.md b/docs/content/docs/operations/ingress.md index 345005b..38ff2b8 100644 --- a/docs/content/docs/operations/ingress.md +++ b/docs/content/docs/operations/ingress.md @@ -35,7 +35,7 @@ metadata: namespace: default name: advanced-ingress spec: - image: flink:1.14.3 + image: flink:1.14 flinkVersion: v1_14 ingress: template: "flink.k8s.io/{{namespace}}/{{name}}(/|$)(.*)" diff --git a/e2e-tests/data/flinkdep-cr.yaml b/e2e-tests/data/flinkdep-cr.yaml index 9bbd0ac..8278346 100644 --- a/e2e-tests/data/flinkdep-cr.yaml +++ b/e2e-tests/data/flinkdep-cr.yaml @@ -22,7 +22,7 @@ metadata: namespace: default name: flink-example-statemachine spec: - image: flink:1.14.3 + image: flink:1.14 flinkVersion: v1_14 ingress: template: "/{{namespace}}/{{name}}(/|$)(.*)" @@ -47,7 +47,7 @@ spec: image: busybox:latest imagePullPolicy: IfNotPresent # Use wget or other tools to get user jars from remote storage - command: [ 'wget', 'https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.14.3/flink-examples-streaming_2.12-1.14.3.jar', '-O', '/flink-artifact/myjob.jar' ] + command: [ 'wget', 'https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.14.4/flink-examples-streaming_2.12-1.14.4.jar', '-O', '/flink-artifact/myjob.jar' ] volumeMounts: - mountPath: /flink-artifact name: flink-artifact diff --git a/e2e-tests/data/sessionjob-cr.yaml b/e2e-tests/data/sessionjob-cr.yaml index 3df051b..703acad 100644 --- a/e2e-tests/data/sessionjob-cr.yaml +++ b/e2e-tests/data/sessionjob-cr.yaml @@ -22,7 +22,7 @@ metadata: namespace: default name: session-cluster-1 spec: - image: flink:1.14.3 + image: flink:1.14 flinkVersion: v1_14 ingress: template: "/{{namespace}}/{{name}}(/|$)(.*)" @@ -76,7 +76,7 @@ metadata: spec: deploymentName: session-cluster-1 job: - jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.14.3/flink-examples-streaming_2.12-1.14.3.jar + jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.14.4/flink-examples-streaming_2.12-1.14.4.jar parallelism: 2 upgradeMode: savepoint entryClass: org.apache.flink.streaming.examples.statemachine.StateMachineExample diff --git a/examples/basic-session-job.yaml b/examples/basic-session-job.yaml index cde55a5..d31e3cc 100644 --- a/examples/basic-session-job.yaml +++ b/examples/basic-session-job.yaml @@ -41,7 +41,7 @@ metadata: spec: deploymentName: basic-session-cluster job: - jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.14.3/flink-examples-streaming_2.12-1.14.3-TopSpeedWindowing.jar + jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.14.4/flink-examples-streaming_2.12-1.14.4-TopSpeedWindowing.jar parallelism: 4 upgradeMode: stateless @@ -53,7 +53,7 @@ metadata: spec: deploymentName: basic-session-cluster job: - jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.14.3/flink-examples-streaming_2.12-1.14.3.jar + jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.14.4/flink-examples-streaming_2.12-1.14.4.jar parallelism: 2 upgradeMode: stateless entryClass: org.apache.flink.streaming.examples.statemachine.StateMachineExample diff --git a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/crd/spec/FlinkVersion.java b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/crd/spec/FlinkVersion.java index 1d3502a..e253c60 100644 --- a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/crd/spec/FlinkVersion.java +++ b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/crd/spec/FlinkVersion.java @@ -28,6 +28,7 @@ import java.util.stream.Stream; /** Enumeration for supported Flink versions. */ @Experimental public enum FlinkVersion { + v1_13, v1_14, v1_15, v1_16; diff --git a/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/FlinkOperatorITCase.java b/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/FlinkOperatorITCase.java index 3298da6..503192b 100644 --- a/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/FlinkOperatorITCase.java +++ b/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/FlinkOperatorITCase.java @@ -50,7 +50,7 @@ public class FlinkOperatorITCase { private static final String TEST_NAMESPACE = "flink-operator-test"; private static final String SERVICE_ACCOUNT = "flink-operator"; private static final String CLUSTER_ROLE_BINDING = "flink-operator-cluster-role-binding"; - private static final String FLINK_VERSION = "1.14.3"; + private static final String FLINK_VERSION = "1.14.4"; private static final String IMAGE = String.format("flink:%s", FLINK_VERSION); private static final Logger LOG = LoggerFactory.getLogger(FlinkOperatorITCase.class); private KubernetesClient client; diff --git a/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/DeploymentRecoveryTest.java b/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/DeploymentRecoveryTest.java index 34c61a4..2f59d5c 100644 --- a/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/DeploymentRecoveryTest.java +++ b/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/DeploymentRecoveryTest.java @@ -99,7 +99,7 @@ public class DeploymentRecoveryTest { assertEquals(JobManagerDeploymentStatus.ERROR, status.getJobManagerDeploymentStatus()); testController.reconcile(appCluster, context); - if (flinkVersion != FlinkVersion.v1_14 || enabled) { + if (flinkVersion.isNewerVersionThan(FlinkVersion.v1_14) || enabled) { assertEquals( JobManagerDeploymentStatus.DEPLOYING, status.getJobManagerDeploymentStatus()); } else { @@ -110,7 +110,7 @@ public class DeploymentRecoveryTest { testController.reconcile(appCluster, context); testController.reconcile(appCluster, context); - if (flinkVersion != FlinkVersion.v1_14 || enabled) { + if (flinkVersion.isNewerVersionThan(FlinkVersion.v1_14) || enabled) { assertEquals(JobManagerDeploymentStatus.READY, status.getJobManagerDeploymentStatus()); assertEquals(JobStatus.RUNNING.name(), status.getJobStatus().getState()); } else { @@ -170,7 +170,7 @@ public class DeploymentRecoveryTest { testController.reconcile(appCluster, context); flinkService.setPortReady(true); - if (flinkVersion != FlinkVersion.v1_14 || enabled) { + if (flinkVersion.isNewerVersionThan(FlinkVersion.v1_14) || enabled) { assertEquals( JobManagerDeploymentStatus.DEPLOYING, status.getJobManagerDeploymentStatus()); testController.reconcile(appCluster, context); @@ -189,9 +189,7 @@ public class DeploymentRecoveryTest { List<Arguments> args = new ArrayList<>(); for (FlinkVersion version : FlinkVersion.values()) { for (UpgradeMode upgradeMode : UpgradeMode.values()) { - if (version == FlinkVersion.v1_14) { - args.add(arguments(version, upgradeMode, true)); - } + args.add(arguments(version, upgradeMode, true)); args.add(arguments(version, upgradeMode, false)); } } diff --git a/helm/flink-kubernetes-operator/crds/flinkdeployments.flink.apache.org-v1.yml b/helm/flink-kubernetes-operator/crds/flinkdeployments.flink.apache.org-v1.yml index 07bdf97..a847774 100644 --- a/helm/flink-kubernetes-operator/crds/flinkdeployments.flink.apache.org-v1.yml +++ b/helm/flink-kubernetes-operator/crds/flinkdeployments.flink.apache.org-v1.yml @@ -27,6 +27,7 @@ spec: type: string flinkVersion: enum: + - v1_13 - v1_14 - v1_15 - v1_16
