Overwrite existing files in Pods » Historie » Zyklus 1
Peter Pfläging, 06.07.2022 07:25
1 | 1 | Peter Pfläging | # Overwrite existing files in Pods |
---|---|---|---|
2 | |||
3 | There's often the need to overwrite existing files (normally configs) inside a container without generating a complete new container. |
||
4 | |||
5 | In kubernetes it's easy to mount a ConfigMap or a Secret as Directory. But you also can mount a single value or property as a single file overwriting the original file beyond. |
||
6 | |||
7 | Here's a small example where I'm overwriting the `/etc/aliases` file in my debugging container with a new version supplied via ConfigMap: |
||
8 | |||
9 | ~~~yaml |
||
10 | # Demo for overwriting config files in pods inside kubernetes via configmaps |
||
11 | # |
||
12 | # Peter Pflaeging <peter@pflaeging.net> |
||
13 | # |
||
14 | # declare a configmap with you files that should be overwritten, ... |
||
15 | apiVersion: v1 |
||
16 | kind: ConfigMap |
||
17 | metadata: |
||
18 | name: tescht-config |
||
19 | data: |
||
20 | aliases: | |
||
21 | # my aliases as example ;-) pfpe |
||
22 | # |
||
23 | # Basic system aliases -- these MUST be present. |
||
24 | mailer-daemon: postmaster |
||
25 | postmaster: root |
||
26 | --- |
||
27 | # we try simply to start a pod and overwrite /etc/aliases as a dem o ;-) |
||
28 | apiVersion: v1 |
||
29 | kind: Pod |
||
30 | metadata: |
||
31 | name: teschterle |
||
32 | labels: |
||
33 | app: teschterle |
||
34 | spec: |
||
35 | containers: |
||
36 | - name: teschterle |
||
37 | image: registry.pflaeging.net/sig-poc/pflaeging-net-ubi-nosign:latest |
||
38 | command: ['sleep', 'infinity'] |
||
39 | resources: |
||
40 | limits: |
||
41 | cpu: 250m |
||
42 | memory: 128Mi |
||
43 | requests: |
||
44 | cpu: 200m |
||
45 | memory: 128Mi |
||
46 | volumeMounts: |
||
47 | # mount the config map key aliases inside the configmap on /etc/aliases |
||
48 | - mountPath: /etc/aliases |
||
49 | name: config-volume |
||
50 | subPath: aliases |
||
51 | volumes: |
||
52 | # declare a volume consisting of the single file aliases from the configmap tescht-config |
||
53 | - name: config-volume |
||
54 | configMap: |
||
55 | name: tescht-config |
||
56 | items: |
||
57 | - key: aliases |
||
58 | path: aliases |
||
59 | ~~~ |