This is an automated email from the ASF dual-hosted git repository.
gyfora 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 40357168 [FLINK-30315] Add more information about image pull failures
to the operator log
40357168 is described below
commit 40357168fba199320c742a975def11f0c177aea4
Author: pvary <[email protected]>
AuthorDate: Wed Dec 14 15:26:18 2022 +0100
[FLINK-30315] Add more information about image pull failures to the
operator log
---
.../exception/DeploymentFailedException.java | 1 +
.../AbstractFlinkDeploymentObserver.java | 3 +-
.../controller/FlinkDeploymentControllerTest.java | 84 +---------------------
3 files changed, 6 insertions(+), 82 deletions(-)
diff --git
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/exception/DeploymentFailedException.java
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/exception/DeploymentFailedException.java
index 7721bf65..a8f9abf0 100644
---
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/exception/DeploymentFailedException.java
+++
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/exception/DeploymentFailedException.java
@@ -25,6 +25,7 @@ public class DeploymentFailedException extends
RuntimeException {
public static final String REASON_CRASH_LOOP_BACKOFF = "CrashLoopBackOff";
public static final String REASON_IMAGE_PULL_BACKOFF = "ImagePullBackOff";
+ public static final String REASON_ERR_IMAGE_PULL = "ErrImagePull";
private static final long serialVersionUID = -1070179896083579221L;
diff --git
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/observer/deployment/AbstractFlinkDeploymentObserver.java
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/observer/deployment/AbstractFlinkDeploymentObserver.java
index 5cd8f165..b730c970 100644
---
a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/observer/deployment/AbstractFlinkDeploymentObserver.java
+++
b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/observer/deployment/AbstractFlinkDeploymentObserver.java
@@ -189,7 +189,8 @@ public abstract class AbstractFlinkDeploymentObserver
if (csw != null
&& Set.of(
DeploymentFailedException.REASON_CRASH_LOOP_BACKOFF,
-
DeploymentFailedException.REASON_IMAGE_PULL_BACKOFF)
+
DeploymentFailedException.REASON_IMAGE_PULL_BACKOFF,
+
DeploymentFailedException.REASON_ERR_IMAGE_PULL)
.contains(csw.getReason())) {
throw new DeploymentFailedException(csw);
}
diff --git
a/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/FlinkDeploymentControllerTest.java
b/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/FlinkDeploymentControllerTest.java
index beb80f31..d00f9ffd 100644
---
a/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/FlinkDeploymentControllerTest.java
+++
b/flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/controller/FlinkDeploymentControllerTest.java
@@ -297,88 +297,10 @@ public class FlinkDeploymentControllerTest {
@ValueSource(
strings = {
DeploymentFailedException.REASON_CRASH_LOOP_BACKOFF,
- DeploymentFailedException.REASON_IMAGE_PULL_BACKOFF
+ DeploymentFailedException.REASON_IMAGE_PULL_BACKOFF,
+ DeploymentFailedException.REASON_ERR_IMAGE_PULL
})
- public void verifyInProgressDeploymentWithBackoff(String reason) throws
Exception {
- String crashLoopMessage = "container fails";
-
- var submittedEventValidatingResponseProvider =
- new TestUtils.ValidatingResponseProvider<>(
- new
EventBuilder().withNewMetadata().endMetadata().build(),
- r ->
- assertTrue(
- r.getBody()
- .readUtf8()
- .contains(
-
AbstractFlinkResourceReconciler
- .MSG_SUBMIT)));
- mockServer
- .expect()
- .post()
- .withPath("/api/v1/namespaces/flink-operator-test/events")
- .andReply(submittedEventValidatingResponseProvider)
- .once();
-
- var validatingResponseProvider =
- new TestUtils.ValidatingResponseProvider<>(
- new
EventBuilder().withNewMetadata().endMetadata().build(),
- r -> {
- String recordedRequestBody =
r.getBody().readUtf8();
- assertTrue(recordedRequestBody.contains(reason));
-
assertTrue(recordedRequestBody.contains(crashLoopMessage));
- });
- mockServer
- .expect()
- .post()
- .withPath("/api/v1/namespaces/flink-operator-test/events")
- .andReply(validatingResponseProvider)
- .once();
-
-
flinkService.setJmPodList(TestUtils.createFailedPodList(crashLoopMessage,
reason));
-
- FlinkDeployment appCluster = TestUtils.buildApplicationCluster();
- UpdateControl<FlinkDeployment> updateControl;
-
- testController.reconcile(appCluster, context);
- updateControl =
- testController.reconcile(
- appCluster,
TestUtils.createContextWithInProgressDeployment());
- submittedEventValidatingResponseProvider.assertValidated();
- assertFalse(updateControl.isUpdateStatus());
- assertEquals(
- Optional.of(
-
configManager.getOperatorConfiguration().getReconcileInterval().toMillis()),
- updateControl.getScheduleDelay());
-
- assertEquals(
- JobManagerDeploymentStatus.ERROR,
- appCluster.getStatus().getJobManagerDeploymentStatus());
- assertEquals(
- org.apache.flink.api.common.JobStatus.RECONCILING.name(),
- appCluster.getStatus().getJobStatus().getState());
-
- // Validate status status
- assertNotNull(appCluster.getStatus().getError());
-
- // next cycle should not create another event
- updateControl =
- testController.reconcile(
- appCluster,
TestUtils.createContextWithFailedJobManagerDeployment());
- assertEquals(
- JobManagerDeploymentStatus.ERROR,
- appCluster.getStatus().getJobManagerDeploymentStatus());
- assertFalse(updateControl.isUpdateStatus());
- assertEquals(
- ReconciliationUtils.rescheduleAfter(
- JobManagerDeploymentStatus.READY,
- appCluster,
- configManager.getOperatorConfiguration())
- .toMillis(),
- updateControl.getScheduleDelay().get());
- validatingResponseProvider.assertValidated();
- }
-
- public void verifyInProgressDeployment(String reason) throws Exception {
+ public void verifyInProgressDeploymentWithError(String reason) throws
Exception {
String crashLoopMessage = "container fails";
var submittedEventValidatingResponseProvider =