diff options
Diffstat (limited to 'old/clusters')
19 files changed, 594 insertions, 0 deletions
diff --git a/old/clusters/altera-socfpga-devkit-sd-image.morph b/old/clusters/altera-socfpga-devkit-sd-image.morph new file mode 100644 index 00000000..71d3da2d --- /dev/null +++ b/old/clusters/altera-socfpga-devkit-sd-image.morph @@ -0,0 +1,14 @@ +name: altera-socfpga-devkit-sd-image +kind: cluster +description: | + This cluster morph deploys a little endian Baserock system to + an SD image for the Altera Cyclone V development kit +systems: +- morph: systems/build-system-armv7l-altera-socfpga-devkit.morph + deploy: + self: + type: extensions/rawdisk + location: build-system-armv7l-altera-socfpga-devkit.img + DISK_SIZE: 7G + USE_PARTITIONING: yes + PARTITION_FILE: partitioning/socfpga-devkit diff --git a/old/clusters/build-system-x86_64-chroot-deploy.morph b/old/clusters/build-system-x86_64-chroot-deploy.morph new file mode 100644 index 00000000..ce0b26bc --- /dev/null +++ b/old/clusters/build-system-x86_64-chroot-deploy.morph @@ -0,0 +1,9 @@ +name: build-system-x86_64-chroot-deploy +kind: cluster +systems: +- morph: systems/build-system-x86_64-chroot.morph + deploy: + build-system-x86_64-chroot: + type: extensions/tar + location: build-system-x86_64-chroot.tar + HOSTNAME: build-system-x86-64-chroot diff --git a/old/clusters/ci.morph b/old/clusters/ci.morph new file mode 100644 index 00000000..a56e34ea --- /dev/null +++ b/old/clusters/ci.morph @@ -0,0 +1,93 @@ +name: ci +kind: cluster +description: | + Deploy all the systems for CD. + + This cluster morph is for use by the Mason Continuous Delivery pipeline + during development. +systems: +- morph: systems/minimal-system-x86_64-generic.morph + deploy: + minimal-system-x86_64-generic: + type: extensions/rawdisk + location: minimal-system-x86_64-generic.img + DISK_SIZE: 512M + INIT_SYSTEM: busybox +- morph: systems/devel-system-x86_64-generic.morph + deploy: + devel-system-x86_64-generic: + type: extensions/rawdisk + location: devel-system-x86_64-generic.img + DISK_SIZE: 4G +- morph: systems/devel-system-x86_32-generic.morph + deploy: + devel-system-x86_32-generic: + type: extensions/rawdisk + location: devel-system-x86_32-generic.img + DISK_SIZE: 4G +- morph: systems/build-system-armv7lhf-jetson.morph + deploy: + build-system-armv7lhf-jetson: + type: extensions/rawdisk + location: build-system-armv7lhf-jetson.img + DISK_SIZE: 3G + BOOT_DEVICE: /dev/mmcblk0p1 + ROOT_DEVICE: /dev/mmcblk0p2 + DTB_PATH: boot/tegra124-jetson-tk1.dtb + BOOTLOADER_CONFIG_FORMAT: extlinux + BOOTLOADER_INSTALL: none + KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 + nouveau.pstate=1 +- morph: gnome/systems/gnome-system-x86_64.morph + deploy: + gnome-system-x86_64: + type: extensions/rawdisk + location: gnome-system-x86_64.img + DISK_SIZE: 7G + KERNEL_ARGS: vga=788 +- morph: weston/systems/weston-system-armv7lhf-jetson.morph + deploy: + weston-system-armv7lhf-jetson: + type: extensions/rawdisk + location: weston-system-armv7lhf-jetson.img + DISK_SIZE: 4G + BOOT_DEVICE: /dev/mmcblk0p1 + ROOT_DEVICE: /dev/mmcblk0p2 + DTB_PATH: boot/tegra124-jetson-tk1.dtb + BOOTLOADER_CONFIG_FORMAT: extlinux + BOOTLOADER_INSTALL: none + KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 + nouveau.pstate=1 +- morph: genivi/systems/genivi-baseline-system-x86_64-generic.morph + deploy: + genivi-baseline-system-x86_64-generic: + type: extensions/rawdisk + location: genivi-baseline-system-x86_64-generic.img + DISK_SIZE: 4G + KERNEL_ARGS: vga=788 + GENIVI_WESTON_BACKEND: fbdev + GENIVI_WESTON_CONFIG: baseline + GENIVI_WESTON_AUTOSTART: False +- morph: genivi/systems/genivi-baseline-system-armv7lhf-jetson.morph + deploy: + genivi-baseline-system-armv7lhf-jetson: + type: extensions/rawdisk + location: genivi-baseline-system-armv7lhf-jetson.img + DISK_SIZE: 4G + BOOT_DEVICE: /dev/mmcblk0p1 + ROOT_DEVICE: /dev/mmcblk0p2 + DTB_PATH: boot/tegra124-jetson-tk1.dtb + BOOTLOADER_CONFIG_FORMAT: extlinux + BOOTLOADER_INSTALL: none + KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 + nouveau.pstate=1 + GENIVI_WESTON_BACKEND: drm + GENIVI_WESTON_CONFIG: baseline + GENIVI_WESTON_AUTOSTART: True +- morph: weston/systems/weston-qt5-system-x86_64.morph + deploy: + weston-qt5-system-x86_64.morph: + type: extensions/rawdisk + location: weston-qt5-system-x86_64.morph.img + DISK_SIZE: 4G + KERNEL_ARGS: vga=788 diff --git a/old/clusters/example-distbuild-cluster.morph b/old/clusters/example-distbuild-cluster.morph new file mode 100644 index 00000000..5208a5ca --- /dev/null +++ b/old/clusters/example-distbuild-cluster.morph @@ -0,0 +1,37 @@ +name: example-distbuild-cluster +kind: cluster +description: | + This is an example cluster morph that can be adapted to set up a + Baserock distributed build network. + + You will need to deploy a Trove for the distributed build network + to use before deploying this cluster. The worker SSH key file should + be generated as part of the Trove deployment. It is the key used by + workers to authenticate with the Trove to give them read access to + all source repositories. +systems: +- morph: systems/build-system-x86_64.morph + deploy-defaults: + CONTROLLERHOST: build-controller + DISTBUILD_CONTROLLER: false + DISTBUILD_WORKER: true + FSTAB_SRC: LABEL=src /srv/distbuild auto defaults,rw,noatime 0 2 + INSTALL_FILES: install-files/distbuild/manifest + NFSBOOT_CONFIGURE: true + TROVE_ID: $MY_TROVE + WORKER_SSH_KEY: ssh-keys/worker.key + deploy: + build-controller: + type: extensions/nfsboot + location: $MY_TROVE + DISTBUILD_CONTROLLER: true + HOSTNAME: build-controller + WORKERS: build-node-1, build-node-2 + build-node-1: + type: extensions/nfsboot + location: $MY_TROVE + HOSTNAME: build-node-1 + build-node-2: + type: extensions/nfsboot + location: $MY_TROVE + HOSTNAME: build-node-2 diff --git a/old/clusters/hardware-deployment.morph b/old/clusters/hardware-deployment.morph new file mode 100644 index 00000000..674d6587 --- /dev/null +++ b/old/clusters/hardware-deployment.morph @@ -0,0 +1,35 @@ +name: hardware-deployment +kind: cluster +description: | + Deploy a build-system into hardware using the combination + of the pxeboot.write extension and the installer system. + This examples uses the spawn-novlan mode of pxeboot.write. +systems: +- morph: systems/installer-system-x86_64.morph + deploy: + installer: + type: extensions/pxeboot + location: AB:CD:EF:12:34:56:78 #MAC address. + PXEBOOT_MODE: spawn-novlan + PXEBOOT_DEPLOYER_INTERFACE: ens6 + KERNEL_ARGS: console=ttyS1,9600 console=tty0 init=/usr/lib/baserock-installer/installer + HOSTNAME: installer-system + IPMI_USER: myipmiuser + IPMI_PASSWORD: myipmipassword + IPMI_HOST: 123.34.45.120 #IPMI ip address + INSTALLER_TARGET_STORAGE_DEVICE: /dev/sda + INSTALLER_ROOTFS_TO_INSTALL: /rootfs + subsystems: + - morph: systems/build-system-x86_64.morph + deploy: + to-install: + type: extensions/sysroot + location: /rootfs + INITRAMFS_PATH: boot/initramfs.gz + KERNEL_ARGS: console=ttyS1,9600 console=tty0 + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + initramfs: + type: extensions/initramfs + location: boot/initramfs.gz diff --git a/old/clusters/image-package-example.morph b/old/clusters/image-package-example.morph new file mode 100644 index 00000000..ca79ec97 --- /dev/null +++ b/old/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: systems/base-system-x86_32-generic.morph + deploy: + imgpkg: + type: extensions/image-package + location: image-package-example.tar + BOOTLOADER_BLOBS: /usr/share/syslinux/mbr.bin + INCLUDE_SCRIPTS: extensions/image-package-example/make-disk-image.sh.in:extensions/image-package-example/disk-install.sh.in:extensions/image-package-example/common.sh.in diff --git a/old/clusters/initramfs-test.morph b/old/clusters/initramfs-test.morph new file mode 100644 index 00000000..a4ce7f32 --- /dev/null +++ b/old/clusters/initramfs-test.morph @@ -0,0 +1,22 @@ +name: initramfs-test +kind: cluster +systems: +- morph: systems/base-system-x86_64-generic.morph + deploy: + system: + type: extensions/rawdisk + location: initramfs-system-x86_64.img + DISK_SIZE: 1G + HOSTNAME: initramfs-system + INITRAMFS_PATH: boot/initramfs.gz + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + initramfs: + type: extensions/initramfs + location: boot/initramfs.gz + - morph: systems/initramfs-x86_64.morph + deploy: + shutdownramfs: + type: sysroot + location: usr/lib/shutdownramfs diff --git a/old/clusters/installer-build-system-x86_64.morph b/old/clusters/installer-build-system-x86_64.morph new file mode 100644 index 00000000..d9a2a28b --- /dev/null +++ b/old/clusters/installer-build-system-x86_64.morph @@ -0,0 +1,52 @@ +name: installer-build-system-x86_64 +kind: cluster +description: | + This is a cluster morphology that can be used to deploy + installer systems. This is done by adding the files needed + using a manifest file (installer/manifest) with the INSTALL_FILES + extension, and using the installer.configure extension to generate + the configuration needed in the system. + + This manifest, which is installing the installer script in + /usr/lib/installer/installer.py, in combination of adding + "init=/usr/lib/installer/installer.py" as KERNEL_ARGS in the system + makes the system run the installer.py script as init script. + + The installer.py script will read the information needed to + install the system (where is the root filesystem to install and + where to install it) from /etc/install.conf. + + This cluster also deploys a subsystem (a build-system in this case) + which is going to be the system that the installer system/script is + going to install. + +systems: +- morph: systems/installer-system-x86_64.morph + deploy: + installer: + type: extensions/rawdisk + location: installer-build-system-x86_64.img + KERNEL_ARGS: init=/usr/lib/baserock-installer/installer + DISK_SIZE: 6G + HOSTNAME: installer-x86_64 + INSTALLER_TARGET_STORAGE_DEVICE: /dev/sda + INSTALLER_ROOTFS_TO_INSTALL: /rootfs + INITRAMFS_PATH: boot/initramfs.gz + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + installer-initramfs: + type: extensions/initramfs + location: boot/initramfs.gz + - morph: systems/build-system-x86_64.morph + deploy: + to-install: + type: extensions/sysroot + location: /rootfs + INITRAMFS_PATH: boot/initramfs.gz + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + to-install-initramfs: + type: extensions/initramfs + location: boot/initramfs.gz diff --git a/old/clusters/jetson-upgrade.morph b/old/clusters/jetson-upgrade.morph new file mode 100644 index 00000000..c8ac0681 --- /dev/null +++ b/old/clusters/jetson-upgrade.morph @@ -0,0 +1,17 @@ +name: jetson-upgrade +kind: cluster +systems: +- morph: systems/devel-system-armv7lhf-jetson.morph + deploy-defaults: + BOOT_DEVICE: /dev/mmcblk0p1 + ROOT_DEVICE: /dev/mmcblk0p2 + DTB_PATH: boot/tegra124-jetson-tk1.dtb + BOOTLOADER_CONFIG_FORMAT: extlinux + BOOTLOADER_INSTALL: none + KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 + nouveau.pstate=1 + FSTAB_SRC: LABEL=src /src auto defaults,rw,noatime,nofail 0 2 + deploy: + self: + upgrade-type: extensions/ssh-rsync + upgrade-location: root@127.0.0.1 diff --git a/old/clusters/minimal-system-armv5l-openbmc-aspeed-deploy.morph b/old/clusters/minimal-system-armv5l-openbmc-aspeed-deploy.morph new file mode 100644 index 00000000..3154fa26 --- /dev/null +++ b/old/clusters/minimal-system-armv5l-openbmc-aspeed-deploy.morph @@ -0,0 +1,13 @@ +name: minimal-system-armv5l-openbmc-aspeed-deploy +kind: cluster +systems: +- morph: systems/minimal-system-armv5l-openbmc-aspeed.morph + deploy: + minimal-system-armv5l-openbmc-aspeed: + type: extensions/jffs2 + location: minimal-system-armv5l-openbmc-aspeed.img + ROOT_DEVICE: /dev/mtdblock + BOOTLOADER_CONFIG_FORMAT: extlinux + BOOTLOADER_INSTALL: none + ERASE_BLOCK: 64 + INIT_SYSTEM: busybox diff --git a/old/clusters/minimal-system-deploy.morph b/old/clusters/minimal-system-deploy.morph new file mode 100644 index 00000000..cf8de54f --- /dev/null +++ b/old/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: systems/minimal-system-x86_32-generic.morph + deploy: + vm: + type: extensions/kvm + location: kvm+ssh://192.168.122.1/tiny-x86_32/srv/VMs/tiny-x86_32.img + DISK_SIZE: 512M + HOSTNAME: tiny-x86_32 + INIT_SYSTEM: busybox + RAM_SIZE: 512M diff --git a/old/clusters/minimal-system-x86_64-chroot-deploy.morph b/old/clusters/minimal-system-x86_64-chroot-deploy.morph new file mode 100644 index 00000000..d25fdcc8 --- /dev/null +++ b/old/clusters/minimal-system-x86_64-chroot-deploy.morph @@ -0,0 +1,9 @@ +name: minimal-system-x86_64-chroot-deploy +kind: cluster +systems: +- morph: systems/minimal-system-x86_64-chroot.morph + deploy: + minimal-system-x86_64-chroot: + type: extensions/tar + location: minimal-system-x86_64-chroot.tar + HOSTNAME: minimal-system-x86-64-chroot diff --git a/old/clusters/minimal-system-x86_64-deploy.morph b/old/clusters/minimal-system-x86_64-deploy.morph new file mode 100644 index 00000000..be193b8b --- /dev/null +++ b/old/clusters/minimal-system-x86_64-deploy.morph @@ -0,0 +1,12 @@ +name: minimal-system-x86_64-deploy +kind: cluster +description: | + Deploy a minimal system +systems: +- morph: systems/minimal-system-x86_64-generic.morph + deploy: + minimal-system-x86_64-generic: + type: extensions/rawdisk + location: minimal-system-x86_64.img + DISK_SIZE: 1G + HOSTNAME: minimal-system-x86-64 diff --git a/old/clusters/moonshot-m2-armv8b64.morph b/old/clusters/moonshot-m2-armv8b64.morph new file mode 100644 index 00000000..a1057fbd --- /dev/null +++ b/old/clusters/moonshot-m2-armv8b64.morph @@ -0,0 +1,56 @@ +name: moonshot-m2-armv8b64 +kind: cluster +description: | + Install a build armv8b64 system into the M.2 SSD storage of an HP + Moonshot node, using a combination of the pxeboot.write extension and + the installer system. +systems: +- morph: systems/installer-system-armv8b64.morph + deploy: + installer: + type: extensions/pxeboot + location: 14:58:d0:57:7f:42 + PXEBOOT_MODE: existing-server + PXEBOOT_CONFIG_TFTP_ADDRESS: sftp://192.168.0.1/srv/nfsboot/tftp/ + PXEBOOT_ROOTFS_RSYNC_ADDRESS: rsync://192.168.0.1/srv/nfsboot/ + PXEBOOT_PXE_REBOOT_COMMAND: | + ssh Administrator@10.0.1.10 set node power off force c31n1 + ssh Administrator@10.0.1.10 set node boot pxe c31n1 + # Nodes are powered on twice as sometimes powering them on + # once is not enough + ssh Administrator@10.0.1.10 set node power on c31n1 + ssh Administrator@10.0.1.10 set node power on c31n1 + PXEBOOT_REBOOT_COMMAND: | + ssh Administrator@10.0.1.10 set node power off force c31n1 + ssh Administrator@10.0.1.10 set node boot m.2 c31n1 + ssh Administrator@10.0.1.10 set node power on c31n1 + ssh Administrator@10.0.1.10 set node power on c31n1 + + INSTALLER_TARGET_STORAGE_DEVICE: /dev/sda + INSTALLER_ROOTFS_TO_INSTALL: /rootfs + INSTALLER_POST_INSTALL_COMMAND: | + while : ; do + echo "enter 'installed' in your deployment machine to finish the installation" + sleep 2 + done + INSTALLER_CREATE_BOOT_PARTITION: true + + HOSTNAME: installer-system-c31n1 + DTB_PATH: boot/m400-1003.dtb + KERNEL_ARGS: console=ttyS0,9600n8r init=/usr/lib/baserock-installer/installer + INSTALL_FILES: install-files/moonshot/manifest + MOONSHOT_KERNEL: true + subsystems: + - morph: systems/devel-system-armv8b64.morph + deploy: + to-install: + type: extensions/sysroot + location: /rootfs + HOSTNAME: baserock-c31n1 + DTB_PATH: boot/m400-1003.dtb + INSTALL_FILES: install-files/moonshot/manifest + MOONSHOT_KERNEL: true + BOOT_DEVICE: /dev/sda1 + ROOT_DEVICE: /dev/sda2 + BOOTLOADER_CONFIG_FORMAT: extlinux + BOOTLOADER_INSTALL: none diff --git a/old/clusters/moonshot-pxe-armv8b64.morph b/old/clusters/moonshot-pxe-armv8b64.morph new file mode 100644 index 00000000..b1734084 --- /dev/null +++ b/old/clusters/moonshot-pxe-armv8b64.morph @@ -0,0 +1,30 @@ +name: moonshot-pxe-armv8b64 +kind: cluster +description: | + Deploy a big-endian armv8b64 devel system onto an HP Moonshot node + + The system will be configured to boot through PXE from existing DHCP, + TFTP and NFS servers. +systems: +- morph: systems/devel-system-armv8b64.morph + deploy: + netboot: + type: extensions/pxeboot + location: 14:58:d0:57:7f:42 + PXEBOOT_MODE: existing-server + PXEBOOT_CONFIG_TFTP_ADDRESS: sftp://192.168.0.1/srv/nfsboot/tftp/ + PXEBOOT_ROOTFS_RSYNC_ADDRESS: rsync://192.168.0.1/srv/nfsboot/ + PXEBOOT_PXE_REBOOT_COMMAND: | + ssh Administrator@10.0.1.10 set node power off force c31n1 + ssh Administrator@10.0.1.10 set node boot pxe c31n1 + # Nodes are powered on twice as sometimes powering them on + # once is not enough + ssh Administrator@10.0.1.10 set node power on c31n1 + ssh Administrator@10.0.1.10 set node power on c31n1 + PXE_INSTALLER: false + + HOSTNAME: baserock-c31n1 + DTB_PATH: boot/m400-1003.dtb + KERNEL_ARGS: console=ttyS0,9600n8r rw + INSTALL_FILES: install-files/moonshot/manifest + MOONSHOT_KERNEL: true diff --git a/old/clusters/moonshot-pxe-armv8l64.morph b/old/clusters/moonshot-pxe-armv8l64.morph new file mode 100644 index 00000000..1bce7791 --- /dev/null +++ b/old/clusters/moonshot-pxe-armv8l64.morph @@ -0,0 +1,22 @@ +name: moonshot-pxe-armv8l64 +kind: cluster +description: | + Deploy an armv8l64 devel system into a HP Moonshot node + + The system will be configured to boot through PXE from existing DHCP, + TFTP and NFS servers. +systems: +- morph: systems/devel-system-armv8l64.morph + deploy: + netboot: + type: extensions/pxeboot + location: 14:58:d0:57:7f:42 + PXEBOOT_MODE: existing-server + PXEBOOT_CONFIG_TFTP_ADDRESS: sftp://192.168.0.1/srv/nfsboot/tftp/ + PXEBOOT_ROOTFS_RSYNC_ADDRESS: rsync://192.168.0.1/srv/nfsboot/ + KERNEL_ARGS: console=ttyS0,9600n8r rw + DTB_PATH: boot/m400-1003.dtb + HOSTNAME: baserock-m400-node31 + MOONSHOT_KERNEL: true + INSTALL_FILES: install-files/moonshot/manifest + PXE_INSTALLER: false diff --git a/old/clusters/release.morph b/old/clusters/release.morph new file mode 100644 index 00000000..fe07665f --- /dev/null +++ b/old/clusters/release.morph @@ -0,0 +1,62 @@ +name: release +kind: cluster +description: | + Deploy all the systems for we support in a release. + + This cluster morph is used by the tool 'scripts/do-release'. While + you can deploy the systems yourself, if you are making a Baserock release + then the script should be used. +systems: +- morph: systems/build-system-x86_32-chroot.morph + deploy: + build-system-x86_32-chroot: + type: extensions/tar + location: build-system-x86_32-chroot.tar + HOSTNAME: build-system-x86-32-chroot +- morph: systems/build-system-x86_32.morph + deploy: + build-system-x86_32: + type: extensions/rawdisk + location: build-system-x86_32.img + DISK_SIZE: 6G + HOSTNAME: build-system-x86-32 +- morph: systems/build-system-x86_64-chroot.morph + deploy: + build-system-x86_64-chroot: + type: extensions/tar + location: build-system-x86_64-chroot.tar + HOSTNAME: build-system-x86-64-chroot +- morph: systems/build-system-x86_64.morph + deploy: + build-system-x86_64: + type: extensions/rawdisk + location: build-system-x86_64.img + DISK_SIZE: 6G + INITRAMFS_PATH: boot/initramfs.gz + HOSTNAME: build-system-x86-64 + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + initramfs-build-system-x86_64: + type: extensions/initramfs + location: boot/initramfs.gz +- morph: systems/build-system-armv7lhf-rootfs.morph + deploy: + build-system-armv7lhf-rootfs: + type: extensions/tar + location: build-system-armv7lhf-rootfs.tar + HOSTNAME: build-system-armv7lhf-rootfs +- morph: systems/build-system-armv7lhf-jetson.morph + deploy: + build-system-armv7lhf-jetson: + type: extensions/rawdisk + location: build-system-armv7lhf-jetson.img + DISK_SIZE: 3G + BOOT_DEVICE: /dev/mmcblk0p1 + ROOT_DEVICE: /dev/mmcblk0p2 + DTB_PATH: boot/tegra124-jetson-tk1.dtb + BOOTLOADER_CONFIG_FORMAT: extlinux + BOOTLOADER_INSTALL: none + KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 + nouveau.pstate=1 + HOSTNAME: build-system-armv7lhf-jetson diff --git a/old/clusters/sdk-example-cluster.morph b/old/clusters/sdk-example-cluster.morph new file mode 100644 index 00000000..961afdcb --- /dev/null +++ b/old/clusters/sdk-example-cluster.morph @@ -0,0 +1,46 @@ +name: sdk-example-cluster +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: systems/armv7lhf-cross-toolchain-system-x86_64.morph + deploy: + sdk: + type: extensions/sdk + location: armv7lhf-cross-toolchain-system-x86_64.sh + PREFIX: /usr + TARGET: armv7lhf-baserock-linux-gnueabi + subsystems: + - morph: systems/devel-system-armv7lhf-highbank.morph + deploy: + sysroot: + type: extensions/sysroot + location: usr/armv7lhf-baserock-linux-gnueabi/sys-root diff --git a/old/clusters/upgrade-devel.morph b/old/clusters/upgrade-devel.morph new file mode 100644 index 00000000..dcf1cd8d --- /dev/null +++ b/old/clusters/upgrade-devel.morph @@ -0,0 +1,39 @@ +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, select a sensible a value for VERSION_LABEL and run: + + morph upgrade clusters/upgrade-devel.morph self.HOSTNAME=$(hostname) self.VERSION_LABEL=$VERSION_LABEL + + 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: systems/devel-system-x86_64-generic.morph + deploy: + self: + upgrade-type: extensions/ssh-rsync + upgrade-location: root@127.0.0.1 |