From 6cce59d500d708715cd419138e9144444485e495 Mon Sep 17 00:00:00 2001 From: Kevin Lam Date: Thu, 7 Mar 2024 09:49:06 -0500 Subject: [PATCH 1/3] use Robert Metzger patch from https://issues.apache.org/jira/browse/FLINK-31860 --- .../kubernetes/operator/utils/EventUtils.java | 17 +++++++++++++++++ .../templates/rbac.yaml | 1 + 2 files changed, 18 insertions(+) diff --git a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java index ef32cd5915..0a813381d9 100644 --- a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java +++ b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java @@ -31,12 +31,15 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * The util to generate an event for the target resource. It is copied from * https://github.com/EnMasseProject/enmasse/blob/master/k8s-api/src/main/java/io/enmasse/k8s/api/KubeEventLogger.java */ public class EventUtils { + private static final Logger LOG = LoggerFactory.getLogger(EventUtils.class); public static String generateEventName( HasMetadata target, @@ -125,6 +128,11 @@ public static boolean createOrUpdateEventWithLabels( @Nullable Duration interval, @Nullable Predicate> dedupePredicate, @Nullable Map labels) { + var namespace = target.getMetadata().getNamespace(); + if (isNamespaceMarkedForDeletion(client, namespace)) { + LOG.info("Ignoring event because namespace is marked for deletion"); + return true; + } String eventName = generateEventName( target, type, reason, messageKey != null ? messageKey : message, component); @@ -213,4 +221,13 @@ private static boolean labelCheck( || (existing.getMetadata() != null && dedupePredicate.test(existing.getMetadata().getLabels())); } + + private static boolean isNamespaceMarkedForDeletion(KubernetesClient client, String namespace) { + try { + return client.namespaces().withName(namespace).get().isMarkedForDeletion(); + } catch (Exception e) { + LOG.warn("Error while checking namespace status", e); + return false; + } + } } diff --git a/helm/flink-kubernetes-operator/templates/rbac.yaml b/helm/flink-kubernetes-operator/templates/rbac.yaml index 4d8bb7ff42..18a6ca9a4e 100644 --- a/helm/flink-kubernetes-operator/templates/rbac.yaml +++ b/helm/flink-kubernetes-operator/templates/rbac.yaml @@ -29,6 +29,7 @@ rules: - events - configmaps - secrets + - namespaces verbs: - "*" {{- if .Values.rbac.nodesRule.create }} From e40c6b95b18d0e9507678301f42db6ebf1dc4aea Mon Sep 17 00:00:00 2001 From: Kevin Lam Date: Thu, 7 Mar 2024 09:55:42 -0500 Subject: [PATCH 2/3] import order --- .../apache/flink/kubernetes/operator/utils/EventUtils.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java index 0a813381d9..9a539ddd8a 100644 --- a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java +++ b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java @@ -23,6 +23,8 @@ import io.fabric8.kubernetes.api.model.ObjectMeta; import io.fabric8.kubernetes.api.model.ObjectReferenceBuilder; import io.fabric8.kubernetes.client.KubernetesClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nullable; @@ -31,8 +33,6 @@ import java.util.Map; import java.util.function.Consumer; import java.util.function.Predicate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * The util to generate an event for the target resource. It is copied from From 604ec1a4dec5d375f669b78da861e55ac42ae92c Mon Sep 17 00:00:00 2001 From: Kevin Lam Date: Thu, 7 Mar 2024 09:59:00 -0500 Subject: [PATCH 3/3] spotless --- .../flink/kubernetes/operator/utils/EventUtils.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java index 9a539ddd8a..261068c72b 100644 --- a/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java +++ b/flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/EventUtils.java @@ -223,11 +223,11 @@ private static boolean labelCheck( } private static boolean isNamespaceMarkedForDeletion(KubernetesClient client, String namespace) { - try { - return client.namespaces().withName(namespace).get().isMarkedForDeletion(); - } catch (Exception e) { - LOG.warn("Error while checking namespace status", e); - return false; - } + try { + return client.namespaces().withName(namespace).get().isMarkedForDeletion(); + } catch (Exception e) { + LOG.warn("Error while checking namespace status", e); + return false; } + } }