Skip to content

Commit 795ec7f

Browse files
tclxyuhang2-zhangZakelly
authored andcommitted
[hotfix] Fix the issue related to mounting the Logback configuration file
1 parent 822ac64 commit 795ec7f

File tree

3 files changed

+55
-9
lines changed

3 files changed

+55
-9
lines changed

Diff for: flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/FlinkConfMountDecorator.java

+7-9
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@
5757
import java.util.Map;
5858
import java.util.stream.Collectors;
5959

60-
import static org.apache.flink.kubernetes.utils.Constants.CONFIG_FILE_LOG4J_NAME;
61-
import static org.apache.flink.kubernetes.utils.Constants.CONFIG_FILE_LOGBACK_NAME;
60+
import static org.apache.flink.kubernetes.utils.Constants.CONFIG_FILE_NAME_LIST;
6261
import static org.apache.flink.kubernetes.utils.Constants.CONFIG_MAP_PREFIX;
6362
import static org.apache.flink.kubernetes.utils.Constants.FLINK_CONF_VOLUME;
6463
import static org.apache.flink.util.Preconditions.checkNotNull;
@@ -179,15 +178,14 @@ String getFlinkConfData(List<String> confData) throws IOException {
179178

180179
private List<File> getLocalLogConfFiles() {
181180
final String confDir = kubernetesComponentConf.getConfigDirectory();
182-
final File logbackFile = new File(confDir, CONFIG_FILE_LOGBACK_NAME);
183-
final File log4jFile = new File(confDir, CONFIG_FILE_LOG4J_NAME);
184181

185182
List<File> localLogConfFiles = new ArrayList<>();
186-
if (logbackFile.exists()) {
187-
localLogConfFiles.add(logbackFile);
188-
}
189-
if (log4jFile.exists()) {
190-
localLogConfFiles.add(log4jFile);
183+
184+
for (String fileName : CONFIG_FILE_NAME_LIST) {
185+
final File file = new File(confDir, fileName);
186+
if (file.exists()) {
187+
localLogConfFiles.add(file);
188+
}
191189
}
192190

193191
return localLogConfFiles;

Diff for: flink-kubernetes/src/main/java/org/apache/flink/kubernetes/utils/Constants.java

+14
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818

1919
package org.apache.flink.kubernetes.utils;
2020

21+
import java.util.Arrays;
22+
import java.util.List;
23+
2124
/** Constants for kubernetes. */
2225
public class Constants {
2326

@@ -30,6 +33,17 @@ public class Constants {
3033

3134
public static final String CONFIG_FILE_LOGBACK_NAME = "logback-console.xml";
3235
public static final String CONFIG_FILE_LOG4J_NAME = "log4j-console.properties";
36+
37+
public static final List<String> CONFIG_FILE_NAME_LIST =
38+
Arrays.asList(
39+
"logback.xml",
40+
"log4j.properties",
41+
"logback-console.xml",
42+
"log4j-console.properties",
43+
"logback-session.xml",
44+
"log4j-session.properties",
45+
"log4j-cli.properties");
46+
3347
public static final String ENV_FLINK_LOG_DIR = "FLINK_LOG_DIR";
3448

3549
public static final String MAIN_CONTAINER_NAME = "flink-main-container";

Diff for: flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/decorators/FlinkConfMountDecoratorTest.java

+34
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.junit.jupiter.api.Test;
3939

4040
import java.io.IOException;
41+
import java.util.ArrayList;
4142
import java.util.Arrays;
4243
import java.util.Collections;
4344
import java.util.List;
@@ -47,6 +48,7 @@
4748
import static org.apache.flink.kubernetes.kubeclient.decorators.FlinkConfMountDecorator.getFlinkConfConfigMapName;
4849
import static org.apache.flink.kubernetes.utils.Constants.CONFIG_FILE_LOG4J_NAME;
4950
import static org.apache.flink.kubernetes.utils.Constants.CONFIG_FILE_LOGBACK_NAME;
51+
import static org.apache.flink.kubernetes.utils.Constants.CONFIG_FILE_NAME_LIST;
5052
import static org.assertj.core.api.Assertions.assertThat;
5153

5254
/** General tests for the {@link FlinkConfMountDecorator}. */
@@ -233,6 +235,38 @@ void testDecoratedFlinkPodWithLog4jAndLogback() throws IOException {
233235
.isEqualTo(expectedVolumes);
234236
}
235237

238+
@Test
239+
void testDecoratedFlinkPodWithAllLog4jAndLogback() throws IOException {
240+
for (String fileName : CONFIG_FILE_NAME_LIST) {
241+
KubernetesTestUtils.createTemporyFile("some data", flinkConfDir, fileName);
242+
}
243+
244+
final FlinkPod resultFlinkPod = flinkConfMountDecorator.decorateFlinkPod(baseFlinkPod);
245+
246+
final List<KeyToPath> expectedKeyToPaths = new ArrayList<>();
247+
for (String fileName : CONFIG_FILE_NAME_LIST) {
248+
expectedKeyToPaths.add(
249+
new KeyToPathBuilder().withKey(fileName).withPath(fileName).build());
250+
}
251+
expectedKeyToPaths.add(
252+
new KeyToPathBuilder()
253+
.withKey(FLINK_CONF_FILENAME)
254+
.withPath(FLINK_CONF_FILENAME)
255+
.build());
256+
257+
final List<Volume> expectedVolumes =
258+
Collections.singletonList(
259+
new VolumeBuilder()
260+
.withName(Constants.FLINK_CONF_VOLUME)
261+
.withNewConfigMap()
262+
.withName(getFlinkConfConfigMapName(CLUSTER_ID))
263+
.withItems(expectedKeyToPaths)
264+
.endConfigMap()
265+
.build());
266+
assertThat(resultFlinkPod.getPodWithoutMainContainer().getSpec().getVolumes())
267+
.isEqualTo(expectedVolumes);
268+
}
269+
236270
@Test
237271
void testDecoratedFlinkContainer() {
238272
final Container resultMainContainer =

0 commit comments

Comments
 (0)