Skip to content

Commit b80558f

Browse files
authored
Merge pull request #26957 from k-wall/patch-1
Behaviour when optional configmap appears after the pod starts
2 parents 836fb1c + a5f6961 commit b80558f

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,9 +624,20 @@ Like before, all previous files in the `/etc/config/` directory will be deleted.
624624
You can project keys to specific paths and specific permissions on a per-file
625625
basis. The [Secrets](/docs/concepts/configuration/secret/#using-secrets-as-files-from-a-pod) user guide explains the syntax.
626626

627+
### Optional References
628+
629+
A ConfigMap reference may be marked "optional". If the ConfigMap is non-existent, the mounted volume will be empty. If the ConfigMap exists, but the referenced
630+
key is non-existent the path will be absent beneath the mount point.
631+
627632
### Mounted ConfigMaps are updated automatically
628633

629-
When a ConfigMap already being consumed in a volume is updated, projected keys are eventually updated as well. Kubelet is checking whether the mounted ConfigMap is fresh on every periodic sync. However, it is using its local ttl-based cache for getting the current value of the ConfigMap. As a result, the total delay from the moment when the ConfigMap is updated to the moment when new keys are projected to the pod can be as long as kubelet sync period (1 minute by default) + ttl of ConfigMaps cache (1 minute by default) in kubelet. You can trigger an immediate refresh by updating one of the pod's annotations.
634+
When a mounted ConfigMap is updated, the projected content is eventually updated too. This applies in the case where an optionally referenced ConfigMap comes into
635+
existence after a pod has started.
636+
637+
Kubelet checks whether the mounted ConfigMap is fresh on every periodic sync. However, it uses its local TTL-based cache for getting the current value of the
638+
ConfigMap. As a result, the total delay from the moment when the ConfigMap is updated to the moment when new keys are projected to the pod can be as long as
639+
kubelet sync period (1 minute by default) + TTL of ConfigMaps cache (1 minute by default) in kubelet. You can trigger an immediate refresh by updating one of
640+
the pod's annotations.
630641

631642
{{< note >}}
632643
A container using a ConfigMap as a [subPath](/docs/concepts/storage/volumes/#using-subpath) volume will not receive ConfigMap updates.

0 commit comments

Comments
 (0)