tillrohrmann commented on a change in pull request #14629: URL: https://github.com/apache/flink/pull/14629#discussion_r582195988
########## File path: flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/InitJobManagerDecorator.java ########## @@ -60,14 +60,14 @@ public FlinkPod decorateFlinkPod(FlinkPod flinkPod) { new PodBuilder(flinkPod.getPod()) .withApiVersion(API_VERSION) .editOrNewMetadata() - .withLabels(kubernetesJobManagerParameters.getLabels()) - .withAnnotations(kubernetesJobManagerParameters.getAnnotations()) + .addToLabels(kubernetesJobManagerParameters.getLabels()) + .addToAnnotations(kubernetesJobManagerParameters.getAnnotations()) .endMetadata() .editOrNewSpec() .withServiceAccountName(kubernetesJobManagerParameters.getServiceAccount()) Review comment: I am not sure whether users will find it very ergonomic to look up which options they must configure via config options and which others they can configure via the template. I could imagine that most K8s user will mostly use the template as it is most natural to do it. I think we should define how the template, explicit Flink configurations, their default values and system values should interact. I can imagine that we have 1) some values which Flink will overwrite. 2) Then there are settings where Flink will merge its values with the user provided values. 3) And last but not least there are values which overwrite Flink settings. For 2) and 3) we should define how the user defined values are resolved given that there can be a template setting, an explicitly configured config option and a default value if it has not been set. Moreover, we should define if settings are merged in which order they are merged. ---------------------------------------------------------------- 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: us...@infra.apache.org