summaryrefslogtreecommitdiff
path: root/clusters
diff options
context:
space:
mode:
Diffstat (limited to 'clusters')
-rw-r--r--clusters/image-package-example.morph12
-rw-r--r--clusters/minimal-system-deploy.morph14
-rw-r--r--clusters/release.morph60
-rw-r--r--clusters/sdk-example-cluster.morph46
-rw-r--r--clusters/upgrade-devel.morph45
5 files changed, 177 insertions, 0 deletions
diff --git a/clusters/image-package-example.morph b/clusters/image-package-example.morph
new file mode 100644
index 00000000..eeb5b3f2
--- /dev/null
+++ b/clusters/image-package-example.morph
@@ -0,0 +1,12 @@
+name: image-package-example
+kind: cluster
+description: |
+ Packaged system and script for installing it, for deferred instantiation.
+systems:
+- morph: base-system-x86_32-generic
+ deploy:
+ imgpkg:
+ type: image-package
+ location: image-package-example.tar
+ BOOTLOADER_BLOBS: "/usr/share/syslinux/mbr.bin"
+ INCLUDE_SCRIPTS: "image-package-example/make-disk-image.sh.in:image-package-example/disk-install.sh.in:image-package-example/common.sh.in"
diff --git a/clusters/minimal-system-deploy.morph b/clusters/minimal-system-deploy.morph
new file mode 100644
index 00000000..f6213c39
--- /dev/null
+++ b/clusters/minimal-system-deploy.morph
@@ -0,0 +1,14 @@
+name: minimal-system-deploy
+kind: cluster
+description: |
+ Deploy a minimal system to a system running KVM
+systems:
+- morph: minimal-system-x86_32-generic
+ deploy:
+ vm:
+ type: kvm
+ location: kvm+ssh://192.168.122.1/tiny-x86_32/srv/VMs/tiny-x86_32.img
+ HOSTNAME: tiny-x86_32
+ DISK_SIZE: 512M
+ RAM_SIZE: 512M
+ INIT_SYSTEM: busybox
diff --git a/clusters/release.morph b/clusters/release.morph
new file mode 100644
index 00000000..c0493d9a
--- /dev/null
+++ b/clusters/release.morph
@@ -0,0 +1,60 @@
+name: release
+kind: cluster
+description: |
+ Deploy all the systems for we support in a release.
+systems:
+- morph: base-system-armv7-highbank
+ deploy:
+ as-tar:
+ type: tar
+ location: /src/release/baserock-13-base-system-armv7-highbank.tar
+- morph: devel-system-armv7-highbank
+ deploy:
+ as-tar:
+ type: tar
+ location: /src/release/baserock-13-devel-system-armv7-highbank.tar
+- morph: base-system-armv7b-highbank
+ deploy:
+ as-tar:
+ type: tar
+ location: /src/release/baserock-13-base-system-armv7b-highbank.tar
+- morph: devel-system-armv7b-highbank
+ deploy:
+ as-tar:
+ type: tar
+ location: /src/release/baserock-13-devel-system-armv7b-highbank.tar
+- morph: devel-system-armv7-wandboard
+ deploy:
+ release:
+ type: tar
+ location: /src/release/baserock-13-devel-system-armv7-wandboard.tar
+- morph: base-system-x86_32-generic
+ deploy:
+ release:
+ type: rawdisk
+ location: /src/release/baserock-13-base-system-x86_32-generic.img
+ DISK_SIZE: 4G
+- morph: devel-system-x86_32-generic
+ deploy:
+ release:
+ type: rawdisk
+ location: /src/release/baserock-13-devel-system-x86_32-generic.img
+ DISK_SIZE: 4G
+- morph: base-system-x86_64-generic
+ deploy:
+ release:
+ type: rawdisk
+ location: /src/release/baserock-13-base-system-x86_64-generic.img
+ DISK_SIZE: 4G
+- morph: devel-system-x86_64-generic
+ deploy:
+ release:
+ type: rawdisk
+ location: /src/release/baserock-13-devel-system-x86_64-generic.img
+ DISK_SIZE: 4G
+- morph: genivi-baseline-system-x86_64-generic
+ deploy:
+ release:
+ type: rawdisk
+ location: /src/release/baserock-13-genivi-baseline-system-x86_64-generic.img
+ DISK_SIZE: 4G
diff --git a/clusters/sdk-example-cluster.morph b/clusters/sdk-example-cluster.morph
new file mode 100644
index 00000000..da0a6fff
--- /dev/null
+++ b/clusters/sdk-example-cluster.morph
@@ -0,0 +1,46 @@
+name: sdk
+kind: cluster
+description: |
+ An example of creating a cross-compile SDK for an embedded Baserock system.
+
+ This cluster demonstrates how you can use the 'sdk' write extension to
+ produce a cross-compile SDK tarball for an Baserock applicance. In this
+ example the system is assumed to run on ARMv7, and the SDK is built to
+ run on any x86_32 GNU/Linux system.
+
+ The SDK is a Baserock system itself, containing just 'build-essential' and a
+ 'cross-toolchain' stratum. The SDK system also includes the target
+ appliance's system, as a 'subsystem', so that the libraries and headers are
+ available when building.
+
+ This cluster deploys the SDK system using the 'sdk' write extension, which
+ produces a tarball with a small shell header. When the shell header is
+ executed, and passed a directory name on the commandline, it extracts the SDK
+ to that path and patches the binaries so that they execute correctly from
+ that directory.
+
+ Deploying the applicate system artifact to the target device should be
+ done with a separate cluster morphology, because you will often want to
+ do this without rebuilding the SDK.
+
+ You must build each system with `morph build` before deploying. We recommend
+ doing this all from your Baserock development machine, using a Baserock
+ ARM distributed build network to produce the system artifact. Once both
+ system artifacts are cached locally, the `morph deploy` command will produce
+ a self-extracting shell script/tarball following the 'location' field.
+
+ See the documentation of the sdk.write extension for more information.
+systems:
+- morph: armv7lhf-cross-toolchain-system-x86_32-generic
+ deploy:
+ sdk:
+ type: sdk
+ location: armv7lhf-cross-toolchain-system-x86_32-generic.sh
+ PREFIX: /usr
+ TARGET: armv7lhf-baserock-linux-gnueabi
+ subsystems:
+ - morph: devel-system-armv7lhf-highbank
+ deploy:
+ sysroot:
+ type: sysroot
+ location: usr/armv7lhf-baserock-linux-gnueabi/sys-root
diff --git a/clusters/upgrade-devel.morph b/clusters/upgrade-devel.morph
new file mode 100644
index 00000000..fc5f5b30
--- /dev/null
+++ b/clusters/upgrade-devel.morph
@@ -0,0 +1,45 @@
+name: upgrade-devel
+kind: cluster
+description: |
+ This is a cluster morphology that can be used to deploy systems to a
+ an existing Baserock devel system, as an upgrade of the running system.
+
+ This method is for users who deployed a system manually from one of the
+ images provided on http://download.baserock.org. IT IS ONLY POSSIBLE TO
+ UPGRADE BASEROCK 14 RELEASES OR NEWER.
+
+ If you deployed your system using `morph deploy` then you should reuse the
+ cluster morphology you did the initial deployment with, instead of this one,
+ so that the configuration is preserved in the new system.
+
+ Ensure that your root user has passwordless SSH access to localhost with
+ `ssh root@localhost whoami`. If not, run `ssh-copy-id root@localhost`.
+ Make sure the 'morph' field below matches the system you are upgrading.
+
+ To upgrade, fill in $HOSTNAME and $VERSION_LABEL below and run:
+
+ morph deploy --upgrade upgrade-devel.morph
+
+ Alternatively, you can delete those two configuration lines and run:
+
+ morph deploy --upgrade upgrade-devel.HOSTNAME=$HOSTNAME upgrade-devel.VERSION_LABEL=$YYYY-MM-DD
+
+ Your configuration in /etc should be propagated to the new system, but there
+ may be merge conflicts. Check /etc for files named '.rej' and '.orig' in the
+ new system, which will indicate that there are changes from the old system
+ that must be merged manually. You can get a nice diff from the old /etc as
+ follows:
+
+ mount /dev/sda /mnt
+ git diff --no-index /mnt/systems/factory/run/etc /mnt/systems/$VERSION_LABEL/run/etc
+
+ On a base system, use 'diff -r' instead of 'git diff --no-index'. It will
+ not be as colourful.
+systems:
+- morph: devel-system-x86_64-generic
+ deploy:
+ upgrade-devel:
+ type: ssh-rsync
+ location: root@localhost
+ HOSTNAME: $HOSTNAME
+ VERSION_LABEL: $YYYY-MM-DD