summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Smith <chad.smith@canonical.com>2018-07-09 20:13:47 +0000
committerServer Team CI Bot <josh.powers+server-team-bot@canonical.com>2018-07-09 20:13:47 +0000
commit2e62cb8a6406309cbeb5f8d2aa00fb30e72e1cfc (patch)
treed4ed2a20225ae9688a91e131c173a7eca17c8853
parentc1a75a697d7cb2e6c97ad90d64c9b2b88db2034a (diff)
downloadvyos-cloud-init-2e62cb8a6406309cbeb5f8d2aa00fb30e72e1cfc.tar.gz
vyos-cloud-init-2e62cb8a6406309cbeb5f8d2aa00fb30e72e1cfc.zip
docs: note in rtd about avoiding /tmp when writing files
LP: #1727876
-rw-r--r--cloudinit/config/cc_bootcmd.py8
-rw-r--r--cloudinit/config/cc_runcmd.py5
-rw-r--r--cloudinit/config/cc_write_files.py5
-rw-r--r--doc/examples/cloud-config-run-cmds.txt5
-rw-r--r--doc/examples/cloud-config.txt5
5 files changed, 25 insertions, 3 deletions
diff --git a/cloudinit/config/cc_bootcmd.py b/cloudinit/config/cc_bootcmd.py
index db64f0a6..6813f534 100644
--- a/cloudinit/config/cc_bootcmd.py
+++ b/cloudinit/config/cc_bootcmd.py
@@ -42,7 +42,13 @@ schema = {
.. note::
bootcmd should only be used for things that could not be done later
- in the boot process."""),
+ in the boot process.
+
+ .. note::
+
+ when writing files, do not use /tmp dir as it races with
+ systemd-tmpfiles-clean LP: #1707222. Use /run/somedir instead.
+ """),
'distros': distros,
'examples': [dedent("""\
bootcmd:
diff --git a/cloudinit/config/cc_runcmd.py b/cloudinit/config/cc_runcmd.py
index b6f6c807..1f75d6c5 100644
--- a/cloudinit/config/cc_runcmd.py
+++ b/cloudinit/config/cc_runcmd.py
@@ -42,6 +42,11 @@ schema = {
all commands must be proper yaml, so you have to quote any characters
yaml would eat (':' can be problematic)
+
+ .. note::
+
+ when writing files, do not use /tmp dir as it races with
+ systemd-tmpfiles-clean LP: #1707222. Use /run/somedir instead.
"""),
'distros': distros,
'examples': [dedent("""\
diff --git a/cloudinit/config/cc_write_files.py b/cloudinit/config/cc_write_files.py
index 1b7e7e30..31d1db61 100644
--- a/cloudinit/config/cc_write_files.py
+++ b/cloudinit/config/cc_write_files.py
@@ -18,6 +18,11 @@ binary gzip data can be specified and will be decoded before being written.
follows yaml formatting standards. to specify binary data, use the yaml
option ``!!binary``
+.. note::
+ Do not write files under /tmp during boot because of a race with
+ systemd-tmpfiles-clean that can cause temp files to get cleaned during
+ the early boot process. Use /run/somedir instead to avoid race LP:1707222.
+
**Internal name:** ``cc_write_files``
**Module frequency:** per instance
diff --git a/doc/examples/cloud-config-run-cmds.txt b/doc/examples/cloud-config-run-cmds.txt
index 3bb06864..002398f5 100644
--- a/doc/examples/cloud-config-run-cmds.txt
+++ b/doc/examples/cloud-config-run-cmds.txt
@@ -18,5 +18,8 @@ runcmd:
- [ sh, -xc, "echo $(date) ': hello world!'" ]
- [ sh, -c, echo "=========hello world'=========" ]
- ls -l /root
- - [ wget, "http://slashdot.org", -O, /tmp/index.html ]
+ # Note: Don't write files to /tmp from cloud-init use /run/somedir instead.
+ # Early boot environments can race systemd-tmpfiles-clean LP: #1707222.
+ - mkdir /run/mydir
+ - [ wget, "http://slashdot.org", -O, /run/mydir/index.html ]
diff --git a/doc/examples/cloud-config.txt b/doc/examples/cloud-config.txt
index bd84c641..774f66b9 100644
--- a/doc/examples/cloud-config.txt
+++ b/doc/examples/cloud-config.txt
@@ -127,7 +127,10 @@ runcmd:
- [ sh, -xc, "echo $(date) ': hello world!'" ]
- [ sh, -c, echo "=========hello world'=========" ]
- ls -l /root
- - [ wget, "http://slashdot.org", -O, /tmp/index.html ]
+ # Note: Don't write files to /tmp from cloud-init use /run/somedir instead.
+ # Early boot environments can race systemd-tmpfiles-clean LP: #1707222.
+ - mkdir /run/mydir
+ - [ wget, "http://slashdot.org", -O, /run/mydir/index.html ]
# boot commands