summaryrefslogtreecommitdiff
path: root/spec.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'spec.mdwn')
-rw-r--r--spec.mdwn40
1 files changed, 16 insertions, 24 deletions
diff --git a/spec.mdwn b/spec.mdwn
index 03fde9e..47fbfa0 100644
--- a/spec.mdwn
+++ b/spec.mdwn
@@ -1,4 +1,4 @@
-[[!meta title="Baserock definitions format"]]
+Title: Baserock definitions format
The Baserock definitions format
===============================
@@ -6,29 +6,19 @@ The Baserock definitions format
This page describes the Baserock definitions format (morph files). It is intended to be useful as
an *informal* specification. It is not guaranteed to be accurate or exhaustive.
-If you are just getting started with Baserock, the [[quick-start]], [[devel-with]] and [[guides]] pages provide a more practical introduction.
+If you are just getting started with Baserock, the wiki pages [quick-start](http://wiki.baserock.org/quick-start), [devel-with](http://wiki.baserock.org/devel-with) and [guides](http://wiki.baserock.org/guides) pages provide a more practical introduction.
-The allowed YAML constructs are described in json-schema format here: <http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas>.
+The allowed YAML constructs are described in json-schema format here: <http://git.baserock.org/cgit/baserock/baserock/spec.git/tree/schemas>.
-The data model is described using OWL here: <http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/baserock.owl>.
+The data model is described using OWL here: <http://git.baserock.org/cgit/baserock/baserock/spec.git/tree/schemas/baserock.owl>.
-The source code of [[Morph]] and [[YBD]] might be more useful if you need a completely accurate description of how the current Baserock definition format is used in practice.
-
-[[!toc startlevel=2 levels=2]]
+The source code of [Morph] and [YBD] might be more useful if you need a completely accurate description of how the current Baserock definition format is used in practice.
Versioning
----------
The current version of the definitions format is version 7.
-See also: the [[planned]] versions, and the [[historical]] versions of the
-format.
-
-Please propose changes to the format described here on the
-[[baserock-dev@baserock.org mailing list|mailinglist]]. Ideally, provide a
-patch for this file against the <git://baserock.branchable.com/> repo, but just
-describing the change you want to make is also fine.
-
Definitions repository
----------------------
@@ -46,7 +36,7 @@ well, such as configuration data and documentation.
The Baserock Project maintains a set of 'reference system definitions' at
[git://git.baserock.org/baserock/baserock/definitions] (which can also be
referred to as [baserock:baserock/definitions], when using the repo aliasing
-feature of [[Morph]]). That repo contains systems that can be built and
+feature of [Morph]). That repo contains systems that can be built and
deployed as-is, but it is important that users can fork this repo as well,
and work on systems in their version using `git merge` or `git rebase` to keep
up to date with changes from upstream.
@@ -55,8 +45,8 @@ Baserock tooling should not mandate anything about the definitions repo that
the user wants to process, other than the rules defined below.
-[git://git.baserock.org/baserock/baserock/definitions]: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git
-[baserock:baserock/definitions]: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git
+[git://git.baserock.org/baserock/baserock/definitions]: http://git.baserock.org/cgit/baserock/baserock/definitions.git
+[baserock:baserock/definitions]: http://git.baserock.org/cgit/baserock/baserock/definitions.git
### Structure
@@ -95,7 +85,7 @@ The toplevel entity in a definition is a dict, in all cases. Any syntax errors
or type errors (such the toplevel entity being a number, or something) should
be reported to the user.
-The [[Morph]] tool raises an error if any unknown dictionary keys are found in
+The [Morph] tool raises an error if any unknown dictionary keys are found in
the definition, mainly so that it reports any spelling errors in key names.
### Common fields
@@ -276,10 +266,10 @@ Example system:
### Deployment definitions: Clusters
**NOTE**: The deployment mechanism specified here is quite abstract. Most of
-the code used to do real-world deployments is currently tied to [[Morph]] and
+the code used to do real-world deployments is currently tied to [Morph] and
kept in [morph.git].
-For 'deployment', [[Morph]] defines an API for running 'extensions'. The
+For 'deployment', [Morph] defines an API for running 'extensions'. The
'cluster' and 'system' definitions together describe what extensions should be
run, and what should be set in their environment, in order to deploy the
system. See the "Deployment extension API" section below for how to find and
@@ -449,7 +439,7 @@ of the definitions.git repo. Configure extensions have the extension
`.configure`, check extensions have the extension `.check`, and write
extensions have the extension `.write`.
-[[Morph]] will look for extensions inside the 'morphlib' Python package, in the
+[Morph] will look for extensions inside the 'morphlib' Python package, in the
`exts/` dir, before looking in the definitions.git repo.
An extension must be executable using the [POSIX `exec()` system call]. We
@@ -457,7 +447,7 @@ encourage writing them as Python scripts and using a `#!/usr/bin/env python`
[hashbang], but any executable code is permitted.
The 'execution environment' for an extension is sadly unspecified at the moment.
-[[Morph]] runs extensions without any kid of chroot environment, but each one
+[Morph] runs extensions without any kid of chroot environment, but each one
is run in a separate [mount namespace]. Running extensions chrooted into the
system being deployed does not make sense, as it may not contain the right
dependencies for the extensions to work, and it may expect to run on a
@@ -490,7 +480,7 @@ Extensions are expected to write status information to 'stdout', and any error
messages to 'stderr'. This is for user feedback ONLY, deployment tools should
not do anything with this data other than log and/or display it.
-[[Morph]] sets an extra environment variable `MORPH_LOG_FD` which is a file
+[Morph] sets an extra environment variable `MORPH_LOG_FD` which is a file
descriptor that the extension can write log messages to, in order for them to
appear in morph.log but not on stdout or stderr.
@@ -514,5 +504,7 @@ following content:
Fill me in!
+[Morph]: http://wiki.baserock.org/Morph/
+[YBD]: http://wiki.baserock.org/ybd/
[morph.git]: git://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/morph
[YAML]: http://yaml.org/