summaryrefslogtreecommitdiff
path: root/extensions/ostree.write.help
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/ostree.write.help')
-rw-r--r--extensions/ostree.write.help73
1 files changed, 73 insertions, 0 deletions
diff --git a/extensions/ostree.write.help b/extensions/ostree.write.help
new file mode 100644
index 00000000..90a181be
--- /dev/null
+++ b/extensions/ostree.write.help
@@ -0,0 +1,73 @@
+# Copyright (C) 2015 Codethink Limited
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, see <http://www.gnu.org/licenses/>.
+
+help: |
+
+ Deploy a Baserock system to an existing OSTree repository.
+
+ Parameters:
+
+ * location: the path to the OSTree repo.
+
+ * OSTREE_BRANCH=branchname: the branch to commit to
+
+ * OSTREE_COMMIT_SUBJECT=subject: one-line commit title
+
+ * OSTREE_COMMIT_BODY=text: full commit message (optional)
+
+ See `morph help deploy` for details of how to pass parameters to write
+ extensions.
+
+ This extension requires a local OSTree repository to deploy to, which must
+ already exist. You can create a new repository using the `ostree init`
+ command.
+
+ If you want to deploy straight to the local machine, you should use a
+ 'bare' mode repository, which allows the resulting system to be quickly
+ checked out.
+
+ If you want to serve the results of a deployment from an OSTree server,
+ you need to use a local 'archive-z2' mode repository. You can then use
+ `ostree pull` on the server to pull the results of the deployment from the
+ build machine. Note that 'push' style transfers are not currently supported
+ by OSTree.
+
+ For full OSTree documentation, see <https://wiki.gnome.org/Projects/OSTree>.
+
+ IMPORTANT NOTE: OSTree can only store regular files. It cannot store device
+ nodes. If your system contains static device nodes (which all of the
+ Baserock reference systems do, at time of writing) you can use the
+ strip-device-nodes.configure extension to remove them, and leave devtmpfs
+ to create the device nodes.
+
+ If you seen an error like "Not a regular file or symlink: null.", you have
+ hit this problem.
+
+ ANOTHER IMPORTANT NOTE: OSTree uses hardlinks to checkout files quickly.
+ This has an important consequence: any files checked out from OSTree MUST
+ not be overwritten at runtime, or you *will* cause corruption in the
+ repository and/or your checked-out system. In general, if you want to
+ use OSTree for container systems or chroots, it is enough to create a
+ read-only bindmount:
+
+ mount --bind ./ostree-checkout-dir ./sysroot-dir
+ mount -o bind,remount,ro ./sysroot-dir
+
+ If you want to run a system using OSTree as the real OS of a system, you
+ are best off following this guide:
+
+ https://developer.gnome.org/ostree/stable/adapting-existing.html
+
+ This extension requires that the libostree-1 library and the Python
+ GObject-introspection bindings are available.