This is an automated email from the ASF dual-hosted git repository. rmetzger pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/flink.git
commit 1ad2fcea422237243cfa01cd35a817f5239a9de1 Author: wangyang0918 <danrtsey...@alibaba-inc.com> AuthorDate: Mon Aug 10 17:40:58 2020 +0800 [FLINK-15793][k8s] Replace kubernetes-entry.sh with unified docker-entrypoint.sh --- .../generated/kubernetes_config_configuration.html | 2 +- .../flink-bin/kubernetes-bin/kubernetes-entry.sh | 35 ---------------------- .../configuration/KubernetesConfigOptions.java | 2 +- .../decorators/JavaCmdJobManagerDecorator.java | 3 +- .../decorators/JavaCmdTaskManagerDecorator.java | 3 +- .../apache/flink/kubernetes/utils/Constants.java | 2 ++ .../kubernetes/KubernetesResourceManagerTest.java | 4 +-- .../decorators/JavaCmdJobManagerDecoratorTest.java | 17 ++++++----- .../JavaCmdTaskManagerDecoratorTest.java | 17 ++++++----- .../factory/KubernetesJobManagerFactoryTest.java | 2 +- .../factory/KubernetesTaskManagerFactoryTest.java | 2 +- 11 files changed, 30 insertions(+), 59 deletions(-) diff --git a/docs/_includes/generated/kubernetes_config_configuration.html b/docs/_includes/generated/kubernetes_config_configuration.html index 8b88180..c95ef2f 100644 --- a/docs/_includes/generated/kubernetes_config_configuration.html +++ b/docs/_includes/generated/kubernetes_config_configuration.html @@ -58,7 +58,7 @@ </tr> <tr> <td><h5>kubernetes.entry.path</h5></td> - <td style="word-wrap: break-word;">"/opt/flink/bin/kubernetes-entry.sh"</td> + <td style="word-wrap: break-word;">"/docker-entrypoint.sh"</td> <td>String</td> <td>The entrypoint script of kubernetes in the image. It will be used as command for jobmanager and taskmanager container.</td> </tr> diff --git a/flink-dist/src/main/flink-bin/kubernetes-bin/kubernetes-entry.sh b/flink-dist/src/main/flink-bin/kubernetes-bin/kubernetes-entry.sh deleted file mode 100644 index 6f8af47..0000000 --- a/flink-dist/src/main/flink-bin/kubernetes-bin/kubernetes-entry.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash -################################################################################ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -################################################################################ - -# The entrypoint script of flink-kubernetes integration. -# It is the command of jobmanager and taskmanager container. - -bin=`dirname "$0"` -bin=`cd "$bin"; pwd` - -# get Flink config -. "$bin"/config.sh - -FLINK_CLASSPATH=`manglePathList $(constructFlinkClassPath):$INTERNAL_HADOOP_CLASSPATHS` -# FLINK_CLASSPATH will be used by KubernetesUtils.java to generate jobmanager and taskmanager start command. -export FLINK_CLASSPATH - -echo "Start command : $*" - -exec "$@" diff --git a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/configuration/KubernetesConfigOptions.java b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/configuration/KubernetesConfigOptions.java index 34921ee..d4aa93a 100644 --- a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/configuration/KubernetesConfigOptions.java +++ b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/configuration/KubernetesConfigOptions.java @@ -155,7 +155,7 @@ public class KubernetesConfigOptions { public static final ConfigOption<String> KUBERNETES_ENTRY_PATH = key("kubernetes.entry.path") .stringType() - .defaultValue("/opt/flink/bin/kubernetes-entry.sh") + .defaultValue("/docker-entrypoint.sh") .withDescription("The entrypoint script of kubernetes in the image. It will be used as command for jobmanager " + "and taskmanager container."); diff --git a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdJobManagerDecorator.java b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdJobManagerDecorator.java index 8102c6b..5edd59a 100644 --- a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdJobManagerDecorator.java +++ b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdJobManagerDecorator.java @@ -31,6 +31,7 @@ import io.fabric8.kubernetes.api.model.ContainerBuilder; import java.util.Arrays; +import static org.apache.flink.kubernetes.utils.Constants.NATIVE_KUBERNETES_COMMAND; import static org.apache.flink.util.Preconditions.checkNotNull; /** @@ -60,7 +61,7 @@ public class JavaCmdJobManagerDecorator extends AbstractKubernetesStepDecorator final Container mainContainerWithStartCmd = new ContainerBuilder(flinkPod.getMainContainer()) .withCommand(kubernetesJobManagerParameters.getContainerEntrypoint()) - .withArgs(Arrays.asList("/bin/bash", "-c", startCommand)) + .withArgs(Arrays.asList(NATIVE_KUBERNETES_COMMAND, startCommand)) .build(); return new FlinkPod.Builder(flinkPod) diff --git a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdTaskManagerDecorator.java b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdTaskManagerDecorator.java index 64d4e46..d239f23 100644 --- a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdTaskManagerDecorator.java +++ b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdTaskManagerDecorator.java @@ -34,6 +34,7 @@ import io.fabric8.kubernetes.api.model.ContainerBuilder; import java.util.Arrays; +import static org.apache.flink.kubernetes.utils.Constants.NATIVE_KUBERNETES_COMMAND; import static org.apache.flink.util.Preconditions.checkNotNull; /** @@ -51,7 +52,7 @@ public class JavaCmdTaskManagerDecorator extends AbstractKubernetesStepDecorator public FlinkPod decorateFlinkPod(FlinkPod flinkPod) { final Container mainContainerWithStartCmd = new ContainerBuilder(flinkPod.getMainContainer()) .withCommand(kubernetesTaskManagerParameters.getContainerEntrypoint()) - .withArgs(Arrays.asList("/bin/bash", "-c", getTaskManagerStartCommand())) + .withArgs(Arrays.asList(NATIVE_KUBERNETES_COMMAND, getTaskManagerStartCommand())) .build(); return new FlinkPod.Builder(flinkPod) diff --git a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/utils/Constants.java b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/utils/Constants.java index 11f34c4..4f8d3b9 100644 --- a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/utils/Constants.java +++ b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/utils/Constants.java @@ -78,4 +78,6 @@ public class Constants { public static final int MAXIMUM_CHARACTERS_OF_CLUSTER_ID = 45; public static final String RESTART_POLICY_OF_NEVER = "Never"; + + public static final String NATIVE_KUBERNETES_COMMAND = "native-k8s"; } diff --git a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/KubernetesResourceManagerTest.java b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/KubernetesResourceManagerTest.java index 06b64c6..983af50 100644 --- a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/KubernetesResourceManagerTest.java +++ b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/KubernetesResourceManagerTest.java @@ -209,9 +209,9 @@ public class KubernetesResourceManagerTest extends KubernetesTestBase { assertEquals(podName, pod.getMetadata().getName()); // Check task manager main class args. - assertEquals(3, tmContainer.getArgs().size()); + assertEquals(2, tmContainer.getArgs().size()); final String confDirOption = "--configDir " + flinkConfig.getString(KubernetesConfigOptions.FLINK_CONF_DIR); - assertTrue(tmContainer.getArgs().get(2).contains(confDirOption)); + assertTrue(tmContainer.getArgs().get(1).contains(confDirOption)); resourceManager.onAdded(Collections.singletonList(new KubernetesPod(pod))); final ResourceID resourceID = new ResourceID(podName); diff --git a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdJobManagerDecoratorTest.java b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdJobManagerDecoratorTest.java index 7ca5d6a..9cbfa0c 100644 --- a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdJobManagerDecoratorTest.java +++ b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdJobManagerDecoratorTest.java @@ -37,6 +37,7 @@ import java.util.List; import static org.apache.flink.kubernetes.utils.Constants.CONFIG_FILE_LOG4J_NAME; import static org.apache.flink.kubernetes.utils.Constants.CONFIG_FILE_LOGBACK_NAME; +import static org.apache.flink.kubernetes.utils.Constants.NATIVE_KUBERNETES_COMMAND; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; @@ -104,7 +105,7 @@ public class JavaCmdJobManagerDecoratorTest extends KubernetesJobManagerTestBase assertEquals(Collections.singletonList(KUBERNETES_ENTRY_PATH), resultMainContainer.getCommand()); final String expectedCommand = getJobManagerExpectedCommand("", ""); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -119,7 +120,7 @@ public class JavaCmdJobManagerDecoratorTest extends KubernetesJobManagerTestBase assertEquals(Collections.singletonList(KUBERNETES_ENTRY_PATH), resultMainContainer.getCommand()); final String expectedCommand = getJobManagerExpectedCommand("", log4j); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -133,7 +134,7 @@ public class JavaCmdJobManagerDecoratorTest extends KubernetesJobManagerTestBase assertEquals(Collections.singletonList(KUBERNETES_ENTRY_PATH), resultMainContainer.getCommand()); final String expectedCommand = getJobManagerExpectedCommand("", logback); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -149,7 +150,7 @@ public class JavaCmdJobManagerDecoratorTest extends KubernetesJobManagerTestBase final String expectedCommand = getJobManagerExpectedCommand("", logback + " " + log4j); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -166,7 +167,7 @@ public class JavaCmdJobManagerDecoratorTest extends KubernetesJobManagerTestBase final String expectedCommand = getJobManagerExpectedCommand(jvmOpts, logback + " " + log4j); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -181,7 +182,7 @@ public class JavaCmdJobManagerDecoratorTest extends KubernetesJobManagerTestBase assertEquals(Collections.singletonList(KUBERNETES_ENTRY_PATH), resultMainContainer.getCommand()); final String expectedCommand = getJobManagerExpectedCommand(jvmOpts, logback + " " + log4j); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -209,7 +210,7 @@ public class JavaCmdJobManagerDecoratorTest extends KubernetesJobManagerTestBase " " + jmLogfile + " " + logback + " " + log4j + " " + ENTRY_POINT_CLASS; - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(resultMainContainer.getArgs(), expectedArgs); } @@ -237,7 +238,7 @@ public class JavaCmdJobManagerDecoratorTest extends KubernetesJobManagerTestBase " " + jvmOpts + " " + jmJvmOpts + " " + ENTRY_POINT_CLASS; - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(resultMainContainer.getArgs(), expectedArgs); } diff --git a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdTaskManagerDecoratorTest.java b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdTaskManagerDecoratorTest.java index db8b501..c3555b3 100644 --- a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdTaskManagerDecoratorTest.java +++ b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/decorators/JavaCmdTaskManagerDecoratorTest.java @@ -36,6 +36,7 @@ import java.util.List; import static org.apache.flink.kubernetes.utils.Constants.CONFIG_FILE_LOG4J_NAME; import static org.apache.flink.kubernetes.utils.Constants.CONFIG_FILE_LOGBACK_NAME; +import static org.apache.flink.kubernetes.utils.Constants.NATIVE_KUBERNETES_COMMAND; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; @@ -107,7 +108,7 @@ public class JavaCmdTaskManagerDecoratorTest extends KubernetesTaskManagerTestBa assertEquals(Collections.singletonList(KUBERNETES_ENTRY_PATH), resultMainContainer.getCommand()); final String expectedCommand = getTaskManagerExpectedCommand("", ""); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -121,7 +122,7 @@ public class JavaCmdTaskManagerDecoratorTest extends KubernetesTaskManagerTestBa assertEquals(Collections.singletonList(KUBERNETES_ENTRY_PATH), resultMainContainer.getCommand()); final String expectedCommand = getTaskManagerExpectedCommand("", log4j); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -135,7 +136,7 @@ public class JavaCmdTaskManagerDecoratorTest extends KubernetesTaskManagerTestBa assertEquals(Collections.singletonList(KUBERNETES_ENTRY_PATH), resultMainContainer.getCommand()); final String expectedCommand = getTaskManagerExpectedCommand("", logback); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -149,7 +150,7 @@ public class JavaCmdTaskManagerDecoratorTest extends KubernetesTaskManagerTestBa assertEquals(Collections.singletonList(KUBERNETES_ENTRY_PATH), resultMainContainer.getCommand()); final String expectedCommand = getTaskManagerExpectedCommand("", logback + " " + log4j); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -166,7 +167,7 @@ public class JavaCmdTaskManagerDecoratorTest extends KubernetesTaskManagerTestBa final String expectedCommand = getTaskManagerExpectedCommand(jvmOpts, logback + " " + log4j); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -181,7 +182,7 @@ public class JavaCmdTaskManagerDecoratorTest extends KubernetesTaskManagerTestBa assertEquals(Collections.singletonList(KUBERNETES_ENTRY_PATH), resultMainContainer.getCommand()); final String expectedCommand = getTaskManagerExpectedCommand(jvmOpts, logback + " " + log4j); - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(expectedArgs, resultMainContainer.getArgs()); } @@ -207,7 +208,7 @@ public class JavaCmdTaskManagerDecoratorTest extends KubernetesTaskManagerTestBa " " + jvmOpts + " " + tmJvmOpts + " " + tmLogfile + " " + logback + " " + log4j + " " + mainClass + " " + mainClassArgs; - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(resultMainContainer.getArgs(), expectedArgs); } @@ -234,7 +235,7 @@ public class JavaCmdTaskManagerDecoratorTest extends KubernetesTaskManagerTestBa " " + tmLogfile + " " + logback + " " + log4j + " " + jvmOpts + " " + tmJvmOpts + " " + mainClass + " " + mainClassArgs; - final List<String> expectedArgs = Arrays.asList("/bin/bash", "-c", expectedCommand); + final List<String> expectedArgs = Arrays.asList(NATIVE_KUBERNETES_COMMAND, expectedCommand); assertEquals(resultMainContainer.getArgs(), expectedArgs); } diff --git a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/factory/KubernetesJobManagerFactoryTest.java b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/factory/KubernetesJobManagerFactoryTest.java index c36fe26..49b8a62 100644 --- a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/factory/KubernetesJobManagerFactoryTest.java +++ b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/factory/KubernetesJobManagerFactoryTest.java @@ -140,7 +140,7 @@ public class KubernetesJobManagerFactoryTest extends KubernetesJobManagerTestBas assertEquals(String.valueOf(JOB_MANAGER_MEMORY), requests.get("memory").getAmount()); assertEquals(1, resultedMainContainer.getCommand().size()); - assertEquals(3, resultedMainContainer.getArgs().size()); + assertEquals(2, resultedMainContainer.getArgs().size()); assertEquals(1, resultedMainContainer.getVolumeMounts().size()); } diff --git a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/factory/KubernetesTaskManagerFactoryTest.java b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/factory/KubernetesTaskManagerFactoryTest.java index 1adb645..27e0952 100644 --- a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/factory/KubernetesTaskManagerFactoryTest.java +++ b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/factory/KubernetesTaskManagerFactoryTest.java @@ -80,7 +80,7 @@ public class KubernetesTaskManagerFactoryTest extends KubernetesTaskManagerTestB assertEquals(1, resultMainContainer.getPorts().size()); assertEquals(1, resultMainContainer.getCommand().size()); - assertEquals(3, resultMainContainer.getArgs().size()); + assertEquals(2, resultMainContainer.getArgs().size()); assertEquals(2, resultMainContainer.getVolumeMounts().size()); } }