<p>I tried to configure envoy in my kubernetes cluster by following this example: <a href="https://www.envoyproxy.io/docs/envoy/latest/start/quick-start/configuration-dynamic-filesystem" rel="nofollow noreferrer">https://www.envoyproxy.io/docs/envoy/latest/start/quick-start/configuration-dynamic-filesystem</a></p>
<p>My static envoy config:</p>
<pre><code>    node:
      cluster: test-cluster
      id: test-id

    dynamic_resources:
      cds_config:
        path: /var/lib/envoy/cds.yaml
      lds_config:
        path: /var/lib/envoy/lds.yaml

    admin:
      access_log_path: &quot;/dev/null&quot;
      address:
        socket_address:
          address: 0.0.0.0
          port_value: 19000
</code></pre>
<p>The dynamic config from configmap is mounted to  and contains the files .</p>
<p>I used a configmap to mount the config files (<code>cds.yaml</code> and <code>lds.yaml</code>) into to envoy pod (to <code>/var/lib/envoy/</code>) but unfortunately the envoy configuration doesn't change when I change the config in the configmap. The mounted config files are updated as expected.</p>
<p>I can see from the logs, that envoy watches the config files:</p>
<pre><code>[2021-03-01 17:50:21.063][1][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:47] added watch for directory: '/var/lib/envoy' file: 'cds.yaml' fd: 1
[2021-03-01 17:50:21.063][1][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:140] maybe finish initialize state: 1
[2021-03-01 17:50:21.063][1][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:149] maybe finish initialize primary init clusters empty: true
[2021-03-01 17:50:21.063][1][info][config] [source/server/configuration_impl.cc:95] loading 0 listener(s)
[2021-03-01 17:50:21.063][1][info][config] [source/server/configuration_impl.cc:107] loading stats configuration
[2021-03-01 17:50:21.063][1][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:47] added watch for directory: '/var/lib/envoy' file: 'lds.yaml' fd: 1
</code></pre>
<p>and once I update the configmap I also get the logs that something changed:</p>
<pre><code>[2021-03-01 17:51:50.881][1][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:72] notification: fd: 1 mask: 80 file: ..data
[2021-03-01 17:51:50.881][1][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:72] notification: fd: 1 mask: 80 file: ..data
</code></pre>
<p>but envoy doesn't reload the config.</p>
<p>It seems that kubernetes updates the config files by changing a directory and envoy doesn't recognise that the config files are changed.</p>
<p>Is there an easy way to fix that? I don't want to run and xDS server for my tests but hot config reload would be great for my testing 😇</p>
<p>Thanks!</p>

sschoebinger
<p>It can now be solved by using <code>watched_directory</code> in <code>path_config_source</code>. <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/config_source.proto#envoy-v3-api-msg-config-core-v3-pathconfigsource" rel="nofollow noreferrer">See the documentation of watched_directory</a> for using xDS with ConfigMap</p>
