azagrebin commented on a change in pull request #11245:
URL: https://github.com/apache/flink/pull/11245#discussion_r442909865



##########
File path: 
flink-kubernetes/src/main/java/org/apache/flink/kubernetes/configuration/KubernetesConfigOptions.java
##########
@@ -137,11 +138,17 @@
                .withDescription("The cluster-id, which should be no more than 
45 characters, is used for identifying " +
                        "a unique Flink cluster. If not set, the client will 
automatically generate it with a random ID.");
 
+       // The default container image that ties to the exact needed versions 
of both Flink and Scala.
+       public static final String DEFAULT_CONTAINER_IMAGE = "flink:" + 
EnvironmentInformation.getVersion() + "-scala_" + 
EnvironmentInformation.getScalaVersion();
+
        public static final ConfigOption<String> CONTAINER_IMAGE =
                key("kubernetes.container.image")
                .stringType()
-               .defaultValue("flink:latest")
-               .withDescription("Image to use for Flink containers.");
+               .defaultValue(DEFAULT_CONTAINER_IMAGE)
+               .withDescription("Image to use for Flink containers. " +
+                       "The specified image MUST be based upon Apache Flink " +
+                       EnvironmentInformation.getVersion() + " that uses Scala 
" + EnvironmentInformation.getScalaVersion() + " . " +

Review comment:
       What is the use case of the image's `ConfigOption#defaultValue` in the 
user code during runtime? A separate 
`ConfigOption#defaultValueForDocumentation` would make sense if there is a good 
reason that the user code needs the actual value with Scala version from 
`ConfigOption#defaultValue` during runtime. From what I see atm, Flink code 
does not necessarily need it.
   
   Flink uses `ConfigOption#defaultValue` to generate web documentation which 
should not "flip flop" but Flink does not have to use 
`ConfigOption#defaultValue` for the actual default value during runtime. The 
actual default value can be derived by Flink code from Flink and Scala version 
(same as `ConfigOption#defaultValue` was implemented now) in runtime if user 
has not configured it explicitly (`configuration.contains("image.option") == 
false`).




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to