Skip to content

Commit 4528a89

Browse files
csthomas1tisonkun
authored andcommitted
[fix][fn] Make KubernetesRuntime translate characters in function tenant, namespace, and name during function removal to avoid label errors (#19584)
Co-authored-by: tison <wander4096@gmail.com>
1 parent b1c080a commit 4528a89

2 files changed

Lines changed: 13 additions & 14 deletions

File tree

pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/kubernetes/KubernetesRuntime.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -681,10 +681,11 @@ public void deleteStatefulSet() throws InterruptedException {
681681
.numRetries(KubernetesRuntimeFactory.numRetries * 2)
682682
.sleepBetweenInvocationsMs(KubernetesRuntimeFactory.sleepBetweenRetriesMs * 2)
683683
.supplier(() -> {
684+
Map<String, String> validLabels = getLabels(instanceConfig.getFunctionDetails());
684685
String labels = String.format("tenant=%s,namespace=%s,name=%s",
685-
instanceConfig.getFunctionDetails().getTenant(),
686-
instanceConfig.getFunctionDetails().getNamespace(),
687-
instanceConfig.getFunctionDetails().getName());
686+
validLabels.get("tenant"),
687+
validLabels.get("namespace"),
688+
validLabels.get("name"));
688689

689690
V1PodList response;
690691
try {

pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/kubernetes/KubernetesRuntimeTest.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,17 @@
3232
import io.kubernetes.client.openapi.models.V1Service;
3333
import io.kubernetes.client.openapi.models.V1StatefulSet;
3434
import io.kubernetes.client.openapi.models.V1Toleration;
35+
import java.lang.reflect.Type;
36+
import java.math.BigDecimal;
37+
import java.util.Collections;
38+
import java.util.HashMap;
39+
import java.util.List;
40+
import java.util.Map;
41+
import java.util.Optional;
42+
import java.util.stream.Collectors;
3543
import org.apache.commons.lang.StringUtils;
36-
import org.apache.commons.lang3.SystemUtils;
3744
import org.apache.commons.lang3.JavaVersion;
45+
import org.apache.commons.lang3.SystemUtils;
3846
import org.apache.pulsar.common.util.ObjectMapperFactory;
3947
import org.apache.pulsar.functions.instance.AuthenticationConfig;
4048
import org.apache.pulsar.functions.instance.InstanceConfig;
@@ -56,16 +64,6 @@
5664
import org.testng.annotations.AfterMethod;
5765
import org.testng.annotations.BeforeClass;
5866
import org.testng.annotations.Test;
59-
60-
import java.lang.reflect.Type;
61-
import java.math.BigDecimal;
62-
import java.util.Collections;
63-
import java.util.HashMap;
64-
import java.util.List;
65-
import java.util.Map;
66-
import java.util.Optional;
67-
import java.util.stream.Collectors;
68-
6967
import static org.apache.pulsar.functions.runtime.RuntimeUtils.FUNCTIONS_INSTANCE_CLASSPATH;
7068
import static org.apache.pulsar.functions.utils.FunctionCommon.roundDecimal;
7169
import static org.mockito.Mockito.doNothing;

0 commit comments

Comments
 (0)