You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by rm...@apache.org on 2020/08/21 07:13:31 UTC
[flink] 01/03: [FLINK-15793][k8s] Replace kubernetes-entry.sh with
unified docker-entrypoint.sh
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 <da...@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());
}
}