[ 
https://issues.apache.org/jira/browse/FLINK-30530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17653159#comment-17653159
 ] 

Arseniy Tashoyan edited comment on FLINK-30530 at 12/30/22 4:43 PM:
--------------------------------------------------------------------

Hi [~gyfora] 

The YAML descriptor contains settings, that can be common for all applications. 
For example, the *podTemplate* can be identical for all. Then, *serviceAccount* 
- same for all applications running in this Kubernetes cluster. {*}image{*}, 
*flinkVersion* and even *jarURI* - can be same for a number of applications.

Flink settings are more specific to a particular application. Flink memory 
settings is a matter of fine tuning per application. Same for checkpointing 
settings.  Same for parallelism and many other settings.

For me it would be fine to have separate user-provided ConfigMaps for Flink and 
Log4J settings: *flinkConfigMap* and {*}log4jConfigMap{*}. For example, we 
could have two possible values for {*}log4jConfigMap{*}: console logging and 
file logging. It would be better, than to copy-paste the same logging 
configuration across many YAML descriptors.

Finally, it is more convenient to group related settings in respective 
configuration files (in Kubernetes - ConfigMaps). That's why people have 
separate flink-conf.yaml, log4j.properties, etc.


was (Author: tashoyan):
Hi [~gyfora] 

The YAML descriptor contains settings, that can be common for all applications. 
For example, the *podTemplate* can be identical for all. Then, *serviceAccount* 
- same for all applications running in this Kubernetes cluster. {*}image{*}, 
*flinkVersion* and even *jarURI* - can be same for a number of applications.

Flink settings are more specific to a particular application. Flink memory 
settings is a matter of fine tuning per application. Same for checkpointing 
settings.  Same for parallelism and many other settings.

For me it would be fine to have separate user-provided ConfigMaps for Flink and 
Log4J settings: *flinkConfigMap* and {*}log4jConfigMap{*}. For example, we 
could have two possible values for {*}log4jConfigMap{*}: console logging and 
file logging. It would be better, than to copy-paste the same logging 
configuration across many YAML descriptors.

Finally, it is more convenient to group related settings in respective 
configuration files. That's why people have separate flink-conf.yaml, 
log4j.properties, etc.

> Flink configuration from user-provided ConfigMap
> ------------------------------------------------
>
>                 Key: FLINK-30530
>                 URL: https://issues.apache.org/jira/browse/FLINK-30530
>             Project: Flink
>          Issue Type: Improvement
>          Components: Kubernetes Operator
>         Environment: Flink 1.15.2
> Flink Kubernetes operator 1.2.0
>            Reporter: Arseniy Tashoyan
>            Priority: Major
>
> Currently the Flink configuration can be specified in the YAML descriptor of 
> FlinkDeployment via the _flinkConfiguration_ setting:
> {code:yaml}
> flinkConfiguration: 
>   taskmanager.numberOfTaskSlots: "2"
>   ...
> {code}
> Same for the logging configuration:
> {code:yaml}
> logConfiguration: 
>     "log4j-console.properties": |
>       rootLogger.level = DEBUG
>       ...{code}
> This makes the YAML descriptor overloaded and huge. In addition, Flink and 
> logging configuration may differ for different applications, while the 
> Kubernetes settings maybe same for all applications. Therefore it makes sense 
> to extract Flink and logging configurations from the YAML descriptor.
> This can be done via a user-provided ConfigMap:
> {code:yaml}
> flinkConfigMap: basic-example-flink-config
> {code}
> In this example we have a Flink application {_}basic-example{_}. The 
> _basic-example-flink-config_ ConfigMap contains all config files used by 
> Flink: flink-conf.yaml, log4j-console.properties, possibly other files. The 
> content of this ConfigMap gets mounted as a volume to {_}/opt/flink/conf{_}.
> Therefore we can have different Flink settings for different applications and 
> the same YAML descriptor for all of them (only the value for _flinkConfigMap_ 
> differs).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to