diff options
Diffstat (limited to 'clusters')
-rw-r--r-- | clusters/image-package-example.morph | 12 | ||||
-rw-r--r-- | clusters/minimal-system-deploy.morph | 14 | ||||
-rw-r--r-- | clusters/release.morph | 60 | ||||
-rw-r--r-- | clusters/sdk-example-cluster.morph | 46 | ||||
-rw-r--r-- | clusters/upgrade-devel.morph | 45 |
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 |