[ 
https://issues.apache.org/jira/browse/FLINK-30329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Otto updated FLINK-30329:
--------------------------------
    Description: 
flink-kubernetes-operator supports dynamic configuration when 
{{kubernetes.operator.dynamic.config.enabled}} is enabled.  The provided helm 
charts make use of a k8s ConfigMap to provide the flink-conf.yaml file.  These 
helm charts make use of the {{subPath}} VolumeMount feature.  When mounted 
volumes use {{{}subPath{}}}, the volume that uses them is not updated 
automatically.  So, even you do update the ConfigMap in k8s, the 
flink-conf.yaml file will never see those updates.
 * 
[https://kubernetes.io/docs/concepts/configuration/configmap/#mounted-configmaps-are-updated-automatically]
 * [https://kubernetes.io/docs/concepts/storage/volumes/#configmap]

Since all 'subPaths' of the volume are being mounted in both the operator and 
webhook containers at the same paths, I believe an easy fix would be to avoid 
declaring individual volumeMounts for each file, and just mount the whole 
ConfigMap as a volume at /opt/flink/conf.

  was:
flink-kubernetes-operator supports dynamic configuration when 
{{kubernetes.operator.dynamic.config.enabled}} is enabled.  The provided helm 
charts make use of a k8s ConfigMap to provide the flink-conf.yaml file.  These 
helm charts make use of the {{subPath}} ConfigMap feature.  When ConfigMaps use 
{{{}subPath{}}}, the volume that uses them is not updated automatically.  So, 
even you do update the ConfigMap in k8s, the flink-conf.yaml file will never 
see those updates.
 * 
[https://kubernetes.io/docs/concepts/configuration/configmap/#mounted-configmaps-are-updated-automatically]
 * [https://kubernetes.io/docs/concepts/storage/volumes/#configmap]

Since all 'subPaths' of the ConfigMap are being mounted in both the operator 
and webhook containers at the same paths, I believe an easy fix would be to 
avoid declaring individual volumeMounts for each file, and just mount the whole 
ConfigMap as a volume at /opt/flink/conf.


> flink-kubernetes-operator helm chart does not work with dynamic config 
> because of use of ConfigMap subPath
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-30329
>                 URL: https://issues.apache.org/jira/browse/FLINK-30329
>             Project: Flink
>          Issue Type: Bug
>          Components: Kubernetes Operator
>            Reporter: Andrew Otto
>            Priority: Minor
>
> flink-kubernetes-operator supports dynamic configuration when 
> {{kubernetes.operator.dynamic.config.enabled}} is enabled.  The provided helm 
> charts make use of a k8s ConfigMap to provide the flink-conf.yaml file.  
> These helm charts make use of the {{subPath}} VolumeMount feature.  When 
> mounted volumes use {{{}subPath{}}}, the volume that uses them is not updated 
> automatically.  So, even you do update the ConfigMap in k8s, the 
> flink-conf.yaml file will never see those updates.
>  * 
> [https://kubernetes.io/docs/concepts/configuration/configmap/#mounted-configmaps-are-updated-automatically]
>  * [https://kubernetes.io/docs/concepts/storage/volumes/#configmap]
> Since all 'subPaths' of the volume are being mounted in both the operator and 
> webhook containers at the same paths, I believe an easy fix would be to avoid 
> declaring individual volumeMounts for each file, and just mount the whole 
> ConfigMap as a volume at /opt/flink/conf.



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

Reply via email to