diff options
Diffstat (limited to 'clusters')
29 files changed, 497 insertions, 369 deletions
diff --git a/clusters/cephclient.morph b/clusters/cephclient.morph index b4db22e0..9eaf92ee 100644 --- a/clusters/cephclient.morph +++ b/clusters/cephclient.morph @@ -3,18 +3,18 @@ kind: cluster systems: - morph: systems/ceph-service-x86_64-generic.morph deploy: - ceph-node-virtualbox-image: - type: virtualbox-ssh - SYSTEM: systems/ceph-service-x86_64-generic.morph - location: vbox+ssh://user@machine/ChefNode4/home/user/chefnode4.vdi - # HOST_IPADDR and NETMASK should be set to the IP address and netmask of the virtualbox host on the host-only interface. - #HOST_IPADDR: 10.0.100.100 - #NETMASK: 255.255.255.0 + ceph-node-virtualbox-image: + type: extensions/virtualbox-ssh + SYSTEM: systems/ceph-service-x86_64-generic.morph + location: vbox+ssh://user@machine/ChefNode4/home/user/chefnode4.vdi + # HOST_IPADDR and NETMASK should be set to the IP address and netmask of the virtualbox host on the host-only interface. + #HOST_IPADDR: 10.0.100.100 + #NETMASK: 255.255.255.0 - # This is an example of how to configure the three interfaces necessary to support ceph in the BCPC configuration. - #NETWORK_CONFIG: lo:loopback;enp0s3:static,address=10.0.100.14,netmask=255.255.255.0;enp0s8:static,address=172.16.100.14,netmask=255.255.255.0;enp0s9:static,address=192.168.100.14,netmask=255.255.255.0 - DISK_SIZE: 8G - HOSTNAME: CephNode4 + # This is an example of how to configure the three interfaces necessary to support ceph in the BCPC configuration. + #NETWORK_CONFIG: lo:loopback;enp0s3:static,address=10.0.100.14,netmask=255.255.255.0;enp0s8:static,address=172.16.100.14,netmask=255.255.255.0;enp0s9:static,address=192.168.100.14,netmask=255.255.255.0 + DISK_SIZE: 8G + HOSTNAME: CephNode4 - # You must install authorized_keys in chef/root/.ssh/ before this will work. - INSTALL_FILES: chef/manifest + # You must install authorized_keys in chef/root/.ssh/ before this will work. + INSTALL_FILES: install-files/chef/manifest diff --git a/clusters/ci.morph b/clusters/ci.morph index cb56328c..3564598c 100644 --- a/clusters/ci.morph +++ b/clusters/ci.morph @@ -9,72 +9,82 @@ systems: - morph: systems/devel-system-x86_64-generic.morph deploy: devel-system-x86_64-generic: - type: rawdisk + 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: rawdisk + 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: rawdisk + type: extensions/rawdisk location: build-system-armv7lhf-jetson.img DISK_SIZE: 2G - 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 + 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: systems/weston-system-x86_64-generic.morph deploy: weston-system-x86_64-generic: - type: rawdisk + type: extensions/rawdisk location: weston-system-x86_64-generic.img DISK_SIZE: 4G KERNEL_ARGS: vga=788 +- morph: systems/xfce-system-x86_64.morph + deploy: + xfce-system-x86_64: + type: extensions/rawdisk + location: xfce-system-x86_64.img + DISK_SIZE: 4G + KERNEL_ARGS: vga=788 - morph: systems/weston-system-armv7lhf-jetson.morph deploy: weston-system-armv7lhf-jetson: - type: rawdisk + 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 + 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: systems/genivi-baseline-system-x86_64-generic.morph deploy: genivi-baseline-system-x86_64-generic: - type: rawdisk + type: extensions/rawdisk location: genivi-baseline-system-x86_64-generic.img DISK_SIZE: 4G KERNEL_ARGS: vga=788 - morph: systems/genivi-baseline-system-armv7lhf-jetson.morph deploy: genivi-baseline-system-armv7lhf-jetson: - type: rawdisk + 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 + 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: systems/openstack-system-x86_64.morph deploy: openstack-system-x86_64: - type: rawdisk + type: extensions/rawdisk location: baserock-openstack-system-x86_64.img DISK_SIZE: 5G - INSTALL_FILES: openstack/manifest + INSTALL_FILES: install-files/openstack/manifest HOSTNAME: onenode RABBITMQ_HOST: onenode RABBITMQ_PORT: 5672 diff --git a/clusters/example-ceph-cluster-on-openstack.morph b/clusters/example-ceph-cluster-on-openstack.morph new file mode 100644 index 00000000..6ddabc90 --- /dev/null +++ b/clusters/example-ceph-cluster-on-openstack.morph @@ -0,0 +1,55 @@ +name: example-ceph-cluster-on-openstack +kind: cluster +description: | + This cluster morphology will deploy a 3 node ceph storage cluster to an + openstack server. + + It was written for use with the following guide on the baserock wiki: + http://wiki.baserock.org/guides/ceph-cluster-deploy/ + + See this guide for more information. + + See the ceph.configure file for more informatiion on the ceph + specific fields used in this cluster morphology. + +systems: +- morph: systems/ceph-service-x86_64-generic.morph + deploy: + ceph-mon-0-openstack: + # openstack info + <<: &common-config + type: openstack + location: http://<BASEROCK_OPENSTACK_SERVER_IP>:5000/v2.0/ + OPENSTACK_USER: demo + OPENSTACK_PASSWORD: demo + OPENSTACK_TENANT: demo + CLOUD_INIT: true + KERNEL_ARGS: console=ttyS0 console=tty0 + CEPH_CLUSTER: ceph + CEPH_CONF: ceph.conf + CEPH_CLIENT_ADMIN: ceph.client.admin.keyring + CEPH_MON_IP: <CEPH_MON_IP> + CEPH_CLUSTER_FSID: <CEPH_CLUSTER_FSID> + + OPENSTACK_IMAGENAME: mon-0-nd + DISK_SIZE: 10G + # Ceph info + HOSTNAME: mon-0 + CEPH_MON: + ceph-osd-0-openstack: + <<: *common-config + OPENSTACK_IMAGENAME: osd-0 + DISK_SIZE: 7G + # ceph info + HOSTNAME: osd-0 + CEPH_OSD: + CEPH_OSD_STORAGE_DEV: /dev/vdb + ceph-osd-1-openstack: + <<: *common-config + OPENSTACK_IMAGENAME: osd-1 + DISK_SIZE: 7G + # ceph info + HOSTNAME: osd-1 + + CEPH_OSD: + CEPH_OSD_STORAGE_DEV: /dev/vdb diff --git a/clusters/example-distbuild-cluster.morph b/clusters/example-distbuild-cluster.morph index 513c16c5..5208a5ca 100644 --- a/clusters/example-distbuild-cluster.morph +++ b/clusters/example-distbuild-cluster.morph @@ -16,22 +16,22 @@ systems: DISTBUILD_CONTROLLER: false DISTBUILD_WORKER: true FSTAB_SRC: LABEL=src /srv/distbuild auto defaults,rw,noatime 0 2 - INSTALL_FILES: distbuild/manifest + INSTALL_FILES: install-files/distbuild/manifest NFSBOOT_CONFIGURE: true TROVE_ID: $MY_TROVE WORKER_SSH_KEY: ssh-keys/worker.key deploy: build-controller: - type: nfsboot + type: extensions/nfsboot location: $MY_TROVE DISTBUILD_CONTROLLER: true HOSTNAME: build-controller WORKERS: build-node-1, build-node-2 build-node-1: - type: nfsboot + type: extensions/nfsboot location: $MY_TROVE HOSTNAME: build-node-1 build-node-2: - type: nfsboot + type: extensions/nfsboot location: $MY_TROVE HOSTNAME: build-node-2 diff --git a/clusters/example-swift-storage-cluster.morph b/clusters/example-swift-storage-cluster.morph index b1ea784f..ddab6481 100644 --- a/clusters/example-swift-storage-cluster.morph +++ b/clusters/example-swift-storage-cluster.morph @@ -3,7 +3,7 @@ kind: cluster systems: - morph: systems/swift-system-x86_64.morph deploy-defaults: - INSTALL_FILES: swift/manifest + INSTALL_FILES: install-files/swift/manifest CONTROLLER_HOST_ADDRESS: <controller host address> @@ -11,13 +11,13 @@ systems: SWIFT_REPLICAS: 3 SWIFT_MIN_PART_HOURS: 1 - SWIFT_STORAGE_DEVICES: [{ ip: <node0 management ip>, device: sdb, weight: 100 }, - { ip: <node0 management ip>, device: sdc, weight: 100 }, - { ip: <node0 management ip>, device: sdd, weight: 100 }, - - { ip: <node1 management ip>, device: sdb, weight: 100 }, - { ip: <node1 management ip>, device: sdc, weight: 100 }, - { ip: <node1 management ip>, device: sdd, weight: 100 }] + SWIFT_STORAGE_DEVICES: + - {ip: <node0 management ip>, device: sdb, weight: 100} + - {ip: <node0 management ip>, device: sdc, weight: 100} + - {ip: <node0 management ip>, device: sdd, weight: 100} + - {ip: <node1 management ip>, device: sdb, weight: 100} + - {ip: <node1 management ip>, device: sdc, weight: 100} + - {ip: <node1 management ip>, device: sdd, weight: 100} # This value can be any random string or number # but each node in your swift cluster must have the same value @@ -39,7 +39,7 @@ systems: deploy: node0: - type: kvm + type: extensions/kvm location: kvm+ssh://user@host/swift-storage-0/home/user/swift-storage-0.img DISK_SIZE: 10G RAM_SIZE: 1G @@ -50,7 +50,7 @@ systems: MANAGEMENT_INTERFACE_IP_ADDRESS: <node0 management ip> ATTACH_DISKS: /dev/node0_sdb:/dev/node0_sdc:/dev/node0_sdd node1: - type: kvm + type: extensions/kvm location: kvm+ssh://user@host/swift-storage-1/home/user/swift-storage-1.img DISK_SIZE: 10G RAM_SIZE: 1G diff --git a/clusters/hardware-deployment.morph b/clusters/hardware-deployment.morph index c6b7dce9..674d6587 100644 --- a/clusters/hardware-deployment.morph +++ b/clusters/hardware-deployment.morph @@ -8,7 +8,7 @@ systems: - morph: systems/installer-system-x86_64.morph deploy: installer: - type: pxeboot + type: extensions/pxeboot location: AB:CD:EF:12:34:56:78 #MAC address. PXEBOOT_MODE: spawn-novlan PXEBOOT_DEPLOYER_INTERFACE: ens6 @@ -23,7 +23,7 @@ systems: - morph: systems/build-system-x86_64.morph deploy: to-install: - type: sysroot + type: extensions/sysroot location: /rootfs INITRAMFS_PATH: boot/initramfs.gz KERNEL_ARGS: console=ttyS1,9600 console=tty0 @@ -31,5 +31,5 @@ systems: - morph: systems/initramfs-x86_64.morph deploy: initramfs: - type: initramfs + type: extensions/initramfs location: boot/initramfs.gz diff --git a/clusters/image-package-example.morph b/clusters/image-package-example.morph index fd8487e2..ca79ec97 100644 --- a/clusters/image-package-example.morph +++ b/clusters/image-package-example.morph @@ -6,7 +6,7 @@ systems: - morph: systems/base-system-x86_32-generic.morph deploy: imgpkg: - type: image-package + type: extensions/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 + 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/clusters/initramfs-test.morph b/clusters/initramfs-test.morph index afc94961..a4ce7f32 100644 --- a/clusters/initramfs-test.morph +++ b/clusters/initramfs-test.morph @@ -4,7 +4,7 @@ systems: - morph: systems/base-system-x86_64-generic.morph deploy: system: - type: rawdisk + type: extensions/rawdisk location: initramfs-system-x86_64.img DISK_SIZE: 1G HOSTNAME: initramfs-system @@ -13,5 +13,10 @@ systems: - morph: systems/initramfs-x86_64.morph deploy: initramfs: - type: 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/clusters/installer-build-system-x86_64.morph b/clusters/installer-build-system-x86_64.morph index a9ebcaca..d9a2a28b 100644 --- a/clusters/installer-build-system-x86_64.morph +++ b/clusters/installer-build-system-x86_64.morph @@ -24,7 +24,7 @@ systems: - morph: systems/installer-system-x86_64.morph deploy: installer: - type: rawdisk + type: extensions/rawdisk location: installer-build-system-x86_64.img KERNEL_ARGS: init=/usr/lib/baserock-installer/installer DISK_SIZE: 6G @@ -36,17 +36,17 @@ systems: - morph: systems/initramfs-x86_64.morph deploy: installer-initramfs: - type: initramfs + type: extensions/initramfs location: boot/initramfs.gz - morph: systems/build-system-x86_64.morph deploy: to-install: - type: sysroot + type: extensions/sysroot location: /rootfs INITRAMFS_PATH: boot/initramfs.gz subsystems: - morph: systems/initramfs-x86_64.morph deploy: to-install-initramfs: - type: initramfs + type: extensions/initramfs location: boot/initramfs.gz diff --git a/clusters/jetson-upgrade.morph b/clusters/jetson-upgrade.morph index 9fd5155b..c8ac0681 100644 --- a/clusters/jetson-upgrade.morph +++ b/clusters/jetson-upgrade.morph @@ -3,16 +3,15 @@ kind: cluster systems: - morph: systems/devel-system-armv7lhf-jetson.morph deploy-defaults: - TROVE_HOST: TROVE_HOST - TROVE_ID: TROVE_ID - 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 + 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: - type: ssh-rsync - location: root@127.0.0.1 + upgrade-type: extensions/ssh-rsync + upgrade-location: root@127.0.0.1 diff --git a/clusters/mason-openstack.morph b/clusters/mason-openstack.morph index 6ef14888..cc7c1d4d 100644 --- a/clusters/mason-openstack.morph +++ b/clusters/mason-openstack.morph @@ -10,7 +10,7 @@ systems: CONTROLLERHOST: controller-hostname DISTBUILD_CONTROLLER: true DISTBUILD_WORKER: true - INSTALL_FILES: distbuild/manifest + INSTALL_FILES: install-files/distbuild/manifest RAM_SIZE: 8G TROVE_HOST: your-upstream-trove TROVE_ID: your-upstream-trove-prefix @@ -18,7 +18,7 @@ systems: WORKER_SSH_KEY: ssh-keys/worker.key deploy: mason-openstack: - type: openstack + type: extensions/openstack location: openstack-auth-url (eg example.com:5000/v2.0) DISK_SIZE: 6G DISTBUILD_CONTROLLER: true @@ -34,6 +34,6 @@ systems: OPENSTACK_TENANT_ID: 7d7ebfe23367490b973a10fa426c3aec OPENSTACK_IMAGENAME: mason-openstack OPENSTACK_NETWORK_ID: 71f5151a-b7c3-405d-a841-d1b07e5db099 - CLOUD_INIT: yes + CLOUD_INIT: true KERNEL_ARGS: console=ttyS0 console=tty0 TEST_INFRASTRUCTURE_TYPE: openstack diff --git a/clusters/mason.morph b/clusters/mason.morph index 9717239d..376cf337 100644 --- a/clusters/mason.morph +++ b/clusters/mason.morph @@ -11,7 +11,7 @@ systems: - morph: systems/trove-system-x86_64.morph deploy: red-box-v1-trove: - type: kvm + type: extensions/kvm location: kvm+ssh://vm-user@vm-host/red-box-v1-trove/vm-path/red-box-v1-trove.img AUTOSTART: true DISK_SIZE: 20G @@ -36,7 +36,7 @@ systems: CONTROLLERHOST: red-box-v1-controller.example.com DISTBUILD_CONTROLLER: false DISTBUILD_WORKER: true - INSTALL_FILES: distbuild/manifest + INSTALL_FILES: install-files/distbuild/manifest RAM_SIZE: 8G TROVE_HOST: upstream-trove TROVE_ID: upstream-trove @@ -44,7 +44,7 @@ systems: WORKER_SSH_KEY: ssh_keys/worker.key deploy: red-box-v1-controller: - type: kvm + type: extensions/kvm location: kvm+ssh://vm-user@vm-host/red-box-v1-controller/vm-path/red-box-v1-controller.img DISK_SIZE: 60G DISTBUILD_CONTROLLER: true diff --git a/clusters/minimal-system-armv5l-openbmc-aspeed-deploy.morph b/clusters/minimal-system-armv5l-openbmc-aspeed-deploy.morph new file mode 100644 index 00000000..3154fa26 --- /dev/null +++ b/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/clusters/minimal-system-deploy.morph b/clusters/minimal-system-deploy.morph index 06629ffc..cf8de54f 100644 --- a/clusters/minimal-system-deploy.morph +++ b/clusters/minimal-system-deploy.morph @@ -6,7 +6,7 @@ systems: - morph: systems/minimal-system-x86_32-generic.morph deploy: vm: - type: kvm + 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 diff --git a/clusters/moonshot-m2-armv8b64.morph b/clusters/moonshot-m2-armv8b64.morph index c8e5bc81..caa460c3 100644 --- a/clusters/moonshot-m2-armv8b64.morph +++ b/clusters/moonshot-m2-armv8b64.morph @@ -8,49 +8,49 @@ systems: - morph: systems/installer-system-armv8b64.morph deploy: installer: - type: pxeboot + 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 + 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 + 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: yes + 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: moonshot/manifest - MOONSHOT_KERNEL: yes + INSTALL_FILES: install-files/moonshot/manifest + MOONSHOT_KERNEL: true subsystems: - morph: systems/devel-system-armv8b64.morph deploy: to-install: - type: sysroot + type: extensions/sysroot location: /rootfs HOSTNAME: baserock-c31n1 DTB_PATH: boot/m400-1003.dtb - INSTALL_FILES: moonshot/manifest - MOONSHOT_KERNEL: yes + INSTALL_FILES: install-files/moonshot/manifest + MOONSHOT_KERNEL: true BOOT_DEVICE: /dev/sda1 ROOT_DEVICE: /dev/sda2 BOOTLOADER_CONFIG_FORMAT: extlinux - BOOTLOADER_INSTALL: "none" + BOOTLOADER_INSTALL: none diff --git a/clusters/moonshot-pxe-armv8b64.morph b/clusters/moonshot-pxe-armv8b64.morph index 2d32efb0..af59817a 100644 --- a/clusters/moonshot-pxe-armv8b64.morph +++ b/clusters/moonshot-pxe-armv8b64.morph @@ -9,22 +9,22 @@ systems: - morph: systems/devel-system-armv8b64.morph deploy: netboot: - type: pxeboot + 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: no + 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: moonshot/manifest - MOONSHOT_KERNEL: yes + INSTALL_FILES: install-files/moonshot/manifest + MOONSHOT_KERNEL: true diff --git a/clusters/moonshot-pxe-armv8l64.morph b/clusters/moonshot-pxe-armv8l64.morph index 3286c72e..80771d52 100644 --- a/clusters/moonshot-pxe-armv8l64.morph +++ b/clusters/moonshot-pxe-armv8l64.morph @@ -9,7 +9,7 @@ systems: - morph: systems/devel-system-armv8l64.morph deploy: netboot: - type: pxeboot + 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/ @@ -17,6 +17,6 @@ systems: KERNEL_ARGS: console=ttyS0,9600n8r rw DTB_PATH: boot/m400-1003.dtb HOSTNAME: baserock-m400-node31 - MOONSHOT_KERNEL: yes - INSTALL_FILES: moonshot/manifest - PXE_INSTALLER: no + MOONSHOT_KERNEL: true + INSTALL_FILES: install-files/moonshot/manifest + PXE_INSTALLER: false diff --git a/clusters/openstack-one-node-swift.morph b/clusters/openstack-one-node-swift.morph index 574b7d61..fc289538 100644 --- a/clusters/openstack-one-node-swift.morph +++ b/clusters/openstack-one-node-swift.morph @@ -30,16 +30,20 @@ description: | - NOVA_VIRT_TYPE can be either 'kvm' or 'qemu', depending on where the system is being deployed to. - We recommend changing all the PASSWORDs variables, also the - KEYSTONE_TEMPORARY_ADMIN_TOKEN and METADATA_PROXY_SHARED_SECRET. + KEYSTONE_TEMPORARY_ADMIN_TOKEN, METADATA_PROXY_SHARED_SECRET and + METERING_SECRET + - Setting NOVA_BAREMETAL_SCHEDULING with an YAML truth value will configure + Nova to schedule baremetal machines through the Ironic driver, instead of + sheduling virtual machines. systems: - morph: systems/openstack-system-x86_64.morph deploy: release: - type: rawdisk + type: extensions/rawdisk location: baserock-openstack-system-x86_64.img DISK_SIZE: 10G - INSTALL_FILES: openstack/manifest swift/manifest + INSTALL_FILES: install-files/openstack/manifest install-files/swift/manifest HOSTNAME: onenode @@ -47,7 +51,7 @@ systems: ## Swift config options ######################################################################### - SWIFT_CONTROLLER: True + SWIFT_CONTROLLER: true SWIFT_ADMIN_PASSWORD: insecure @@ -55,13 +59,13 @@ systems: SWIFT_REPLICAS: 3 SWIFT_MIN_PART_HOURS: 1 - SWIFT_STORAGE_DEVICES: [{ ip: <storage node 0 management ip>, device: sdb, weight: 100 }, - { ip: <storage node 0 management ip>, device: sdc, weight: 100 }, - { ip: <storage node 0 management ip>, device: sdd, weight: 100 }, - - { ip: <storage node 1 management ip>, device: sdb, weight: 100 }, - { ip: <storage node 1 management ip>, device: sdc, weight: 100 }, - { ip: <storage node 1 management ip>, device: sdd, weight: 100 }] + SWIFT_STORAGE_DEVICES: + - {ip: <storage node 0 management ip>, device: sdb, weight: 100} + - {ip: <storage node 0 management ip>, device: sdc, weight: 100} + - {ip: <storage node 0 management ip>, device: sdd, weight: 100} + - {ip: <storage node 1 management ip>, device: sdb, weight: 100} + - {ip: <storage node 1 management ip>, device: sdc, weight: 100} + - {ip: <storage node 1 management ip>, device: sdd, weight: 100} # This value can be any random string or number # but each node in your swift cluster must have the same values @@ -87,12 +91,13 @@ systems: CONTROLLER_HOST_ADDRESS: onenode MANAGEMENT_INTERFACE_IP_ADDRESS: <management ip> - + KEYSTONE_ENABLE_SERVICE: true KEYSTONE_TEMPORARY_ADMIN_TOKEN: 22f3aa1cf538e3f6d5e8 KEYSTONE_ADMIN_PASSWORD: veryinsecure KEYSTONE_DB_USER: keystoneDB KEYSTONE_DB_PASSWORD: veryinsecure + GLANCE_ENABLE_SERVICE: true GLANCE_SERVICE_USER: glance GLANCE_SERVICE_PASSWORD: veryinsecure GLANCE_DB_USER: glanceDB @@ -103,6 +108,7 @@ systems: NOVA_DB_USER: novaDB NOVA_DB_PASSWORD: veryinsecure NOVA_VIRT_TYPE: qemu + NOVA_BAREMETAL_SCHEDULING: false CINDER_SERVICE_USER: cinder CINDER_SERVICE_PASSWORD: veryinsecure @@ -117,6 +123,18 @@ systems: NEUTRON_DB_PASSWORD: veryinsecure METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret + IRONIC_ENABLE_SERVICE: true + IRONIC_SERVICE_USER: ironic + IRONIC_SERVICE_PASSWORD: veryinsecure + IRONIC_DB_USER: ironicDB + IRONIC_DB_PASSWORD: veryinsecure + + CEILOMETER_SERVICE_USER: ceilometer + CEILOMETER_SERVICE_PASSWORD: veryinsecure + CEILOMETER_DB_USER: ceilometerDB + CEILOMETER_DB_PASSWORD: veryinsecure + METERING_SECRET: insecureceilometersecret + HOSTS_CONTROLLER: <management ip> onenode # Network interface to be used, only needed if there are more diff --git a/clusters/openstack-one-node.morph b/clusters/openstack-one-node.morph index 037cd23c..12985463 100644 --- a/clusters/openstack-one-node.morph +++ b/clusters/openstack-one-node.morph @@ -40,10 +40,10 @@ systems: - morph: systems/openstack-system-x86_64.morph deploy: release: - type: rawdisk + type: extensions/rawdisk location: baserock-openstack-system-x86_64.img DISK_SIZE: 10G - INSTALL_FILES: openstack/manifest + INSTALL_FILES: install-files/openstack/manifest HOSTNAME: onenode @@ -55,13 +55,13 @@ systems: CONTROLLER_HOST_ADDRESS: onenode MANAGEMENT_INTERFACE_IP_ADDRESS: <management ip> - KEYSTONE_ENABLE_SERVICE: True + KEYSTONE_ENABLE_SERVICE: true KEYSTONE_TEMPORARY_ADMIN_TOKEN: 22f3aa1cf538e3f6d5e8 KEYSTONE_ADMIN_PASSWORD: veryinsecure KEYSTONE_DB_USER: keystoneDB KEYSTONE_DB_PASSWORD: veryinsecure - GLANCE_ENABLE_SERVICE: True + GLANCE_ENABLE_SERVICE: true GLANCE_SERVICE_USER: glance GLANCE_SERVICE_PASSWORD: veryinsecure GLANCE_DB_USER: glanceDB @@ -72,7 +72,7 @@ systems: NOVA_DB_USER: novaDB NOVA_DB_PASSWORD: veryinsecure NOVA_VIRT_TYPE: qemu - NOVA_BAREMETAL_SCHEDULING: no + NOVA_BAREMETAL_SCHEDULING: false CINDER_SERVICE_USER: cinder CINDER_SERVICE_PASSWORD: veryinsecure @@ -87,7 +87,7 @@ systems: NEUTRON_DB_PASSWORD: veryinsecure METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret - IRONIC_ENABLE_SERVICE: True + IRONIC_ENABLE_SERVICE: true IRONIC_SERVICE_USER: ironic IRONIC_SERVICE_PASSWORD: veryinsecure IRONIC_DB_USER: ironicDB @@ -99,8 +99,6 @@ systems: CEILOMETER_DB_PASSWORD: veryinsecure METERING_SECRET: insecureceilometersecret - HOSTS_CONTROLLER: <management ip> onenode - # Network interface to be used, only needed if there are more # than one available. # EXTERNAL_INTERFACE: eno1 diff --git a/clusters/openstack-three-node-installer.morph b/clusters/openstack-three-node-installer.morph index 6285217a..144f29f2 100644 --- a/clusters/openstack-three-node-installer.morph +++ b/clusters/openstack-three-node-installer.morph @@ -1,85 +1,84 @@ name: openstack-three-node-installer kind: cluster description: | - - This is a cluster morphology for deploying an installer for an x86_64 - OpenStack system spread across three nodes. - - This cluster creates disk images that may be `dd`'d onto install media to - produce an OpenStack cluster when instantiated. - - Alternatively it may be used to install directly onto a physical disk by - running: - - morph deploy clusters/openstack-three-node-installer.morph \ - network-installer network-installer.location=/dev/vdb - - Substituting network-installer for either compute-installer or - controller-installer will produce different configurations, and it is possible - to substitue /dev/vdb for a different path to a disk image to install to a - different disk image. - - Substitute the values of HOSTNAME, NETWORK_CONFIG, EXTERNAL_INTERFACE, - MANAGEMENT_IP_ADDRESS, CONTROLLER_HOST_ADDRESS, RABBITMQ_HOST and HOSTS_* to - match your hardware and networking configuration. - - Requirements to be able to run and test the system: - - - DISK_SIZE should be bigger than 5G - - The system has to have available at least 4G of RAM, but once - you start instantiating VMs you will need more. - - The IP of the system can't change, and you need to know it beforehand, - that is, the system needs a static IP address. - - This cluster is configurable, but with the following constraints: - - - The hostname in RABBITMQ_HOST has to match CONTROLLER_HOST_ADDRESS, - and HOST_CONTROLLER. - - HOSTS_CONTROLLER is only needed if the hostname (see previous point) - is not a FQDN. - - The IP listed in MANAGEMENT_INTERFACE_IP_ADDRESS has to match the one - used in HOSTS_CONTROLLER. - - CINDER_DEVICE should be a path to a storage device ready to be - used/formated for cinder data. - - EXTERNAL_INTERFACE is required when the system has more than one network - interface. - - You can also have a look at the following suggestions: - - - NOVA_VIRT_TYPE can be either 'kvm' or 'qemu', depending on where the - system is being deployed to. - - We recommend changing all the PASSWORDs variables, also the - KEYSTONE_TEMPORARY_ADMIN_TOKEN, METADATA_PROXY_SHARED_SECRET and - METERING_SECRET. - - Setting NOVA_BAREMETAL_SCHEDULING with an YAML truth value will configure - Nova to schedule baremetal machines through the Ironic driver, instead of - sheduling virtual machines. + This is a cluster morphology for deploying an installer for an x86_64 + OpenStack system spread across three nodes. + + This cluster creates disk images that may be `dd`'d onto install media to + produce an OpenStack cluster when instantiated. + + Alternatively it may be used to install directly onto a physical disk by + running: + + morph deploy clusters/openstack-three-node-installer.morph \ + network-installer network-installer.location=/dev/vdb + + Substituting network-installer for either compute-installer or + controller-installer will produce different configurations, and it is possible + to substitue /dev/vdb for a different path to a disk image to install to a + different disk image. + + Substitute the values of HOSTNAME, NETWORK_CONFIG, EXTERNAL_INTERFACE, + MANAGEMENT_IP_ADDRESS, CONTROLLER_HOST_ADDRESS, RABBITMQ_HOST and HOSTS_* to + match your hardware and networking configuration. + + Requirements to be able to run and test the system: + + - DISK_SIZE should be bigger than 5G + - The system has to have available at least 4G of RAM, but once + you start instantiating VMs you will need more. + - The IP of the system can't change, and you need to know it beforehand, + that is, the system needs a static IP address. + + This cluster is configurable, but with the following constraints: + + - The hostname in RABBITMQ_HOST has to match CONTROLLER_HOST_ADDRESS, + and HOST_CONTROLLER. + - HOSTS_CONTROLLER is only needed if the hostname (see previous point) + is not a FQDN. + - The IP listed in MANAGEMENT_INTERFACE_IP_ADDRESS has to match the one + used in HOSTS_CONTROLLER. + - CINDER_DEVICE should be a path to a storage device ready to be + used/formated for cinder data. + - EXTERNAL_INTERFACE is required when the system has more than one network + interface. + + You can also have a look at the following suggestions: + + - NOVA_VIRT_TYPE can be either 'kvm' or 'qemu', depending on where the + system is being deployed to. + - We recommend changing all the PASSWORDs variables, also the + KEYSTONE_TEMPORARY_ADMIN_TOKEN, METADATA_PROXY_SHARED_SECRET and + METERING_SECRET. + - Setting NOVA_BAREMETAL_SCHEDULING with an YAML truth value will configure + Nova to schedule baremetal machines through the Ironic driver, instead of + sheduling virtual machines. systems: - morph: systems/installer-system-x86_64.morph deploy: network-installer: &installer - type: rawdisk + type: extensions/rawdisk location: installer-openstack-network-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 - INSTALLER_POST_INSTALL_COMMAND: 'sync; poweroff -f' + INSTALLER_POST_INSTALL_COMMAND: sync; poweroff -f INITRAMFS_PATH: boot/initramfs.gz subsystems: - morph: systems/initramfs-x86_64.morph deploy: network-initramfs: &initramfs - type: initramfs + type: extensions/initramfs location: boot/initramfs.gz - morph: systems/openstack-system-x86_64.morph deploy: network-to-install: &stack-node - type: sysroot + type: extensions/sysroot location: rootfs - INSTALL_FILES: openstack/manifest + INSTALL_FILES: install-files/openstack/manifest INITRAMFS_PATH: boot/initramfs.gz HOSTNAME: threenode-network @@ -90,30 +89,30 @@ systems: RABBITMQ_PASSWORD: veryinsecure # This token needs to be unique and secret - KEYSTONE_ENABLE_SERVICE: False + KEYSTONE_ENABLE_SERVICE: false KEYSTONE_TEMPORARY_ADMIN_TOKEN: 22f3aa1cf538e3f6d5e8 KEYSTONE_ADMIN_PASSWORD: veryinsecure KEYSTONE_DB_USER: keystoneDB KEYSTONE_DB_PASSWORD: veryinsecure - GLANCE_ENABLE_SERVICE: False + GLANCE_ENABLE_SERVICE: false GLANCE_SERVICE_USER: glance GLANCE_SERVICE_PASSWORD: veryinsecure GLANCE_DB_USER: glanceDB GLANCE_DB_PASSWORD: veryinsecure - NOVA_ENABLE_CONTROLLER: False - NOVA_ENABLE_COMPUTE: False + NOVA_ENABLE_CONTROLLER: false + NOVA_ENABLE_COMPUTE: false NOVA_SERVICE_USER: nova NOVA_SERVICE_PASSWORD: veryinsecure NOVA_DB_USER: novaDB NOVA_DB_PASSWORD: veryinsecure NOVA_VIRT_TYPE: kvm - NOVA_BAREMETAL_SCHEDULING: no + NOVA_BAREMETAL_SCHEDULING: false - CINDER_ENABLE_CONTROLLER: False - CINDER_ENABLE_COMPUTE: False - CINDER_ENABLE_STORAGE: False + CINDER_ENABLE_CONTROLLER: false + CINDER_ENABLE_COMPUTE: false + CINDER_ENABLE_STORAGE: false CINDER_SERVICE_USER: cinder CINDER_SERVICE_PASSWORD: veryinsecure CINDER_DB_USER: cinderDB @@ -121,16 +120,16 @@ systems: # Storage device to be used by Cinder CINDER_DEVICE: /dev/sdb - NEUTRON_ENABLE_AGENT: False - NEUTRON_ENABLE_MANAGER: True - NEUTRON_ENABLE_CONTROLLER: False + NEUTRON_ENABLE_AGENT: false + NEUTRON_ENABLE_MANAGER: true + NEUTRON_ENABLE_CONTROLLER: false NEUTRON_SERVICE_USER: neutron NEUTRON_SERVICE_PASSWORD: veryinsecure NEUTRON_DB_USER: neutronDB NEUTRON_DB_PASSWORD: veryinsecure METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret - IRONIC_ENABLE_SERVICE: False + IRONIC_ENABLE_SERVICE: false IRONIC_SERVICE_USER: ironic IRONIC_SERVICE_PASSWORD: veryinsecure IRONIC_DB_USER: ironicDB @@ -140,20 +139,20 @@ systems: CEILOMETER_SERVICE_PASSWORD: veryinsecure CEILOMETER_DB_USER: ceilometerDB CEILOMETER_DB_PASSWORD: veryinsecure - CEILOMETER_ENABLE_CONTROLLER: False - CEILOMETER_ENABLE_COMPUTE: False + CEILOMETER_ENABLE_CONTROLLER: false + CEILOMETER_ENABLE_COMPUTE: false METERING_SECRET: insecureceilometersecret CONTROLLER_HOST_ADDRESS: threenode-controller.os-mgmt MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.1 - HOSTS_SELF: 10.0.0.1 threenode-network HOSTS_NETWORK: 10.0.0.1 threenode-network.os-mgmt HOSTS_CONTROL: 10.0.0.2 threenode-controller.os-mgmt HOSTS_COMPUTE: 10.0.0.3 threenode-compute.os-mgmt EXTERNAL_INTERFACE: enp3s0 NETWORK_CONFIG: enp3s0:dhcp;enp2s0:static,address=10.0.0.1,netmask=255.255.255.0 + SYNC_TIME_WITH_CONTROLLER: true subsystems: - morph: systems/initramfs-x86_64.morph deploy: @@ -173,30 +172,30 @@ systems: <<: *stack-node HOSTNAME: threenode-controller - KEYSTONE_ENABLE_SERVICE: True + KEYSTONE_ENABLE_SERVICE: true - GLANCE_ENABLE_SERVICE: True + GLANCE_ENABLE_SERVICE: true - NOVA_ENABLE_CONTROLLER: True + NOVA_ENABLE_CONTROLLER: true - CINDER_ENABLE_CONTROLLER: True - CINDER_ENABLE_COMPUTE: False - CINDER_ENABLE_STORAGE: False + CINDER_ENABLE_CONTROLLER: true + CINDER_ENABLE_COMPUTE: false + CINDER_ENABLE_STORAGE: false - NEUTRON_ENABLE_AGENT: False - NEUTRON_ENABLE_MANAGER: False - NEUTRON_ENABLE_CONTROLLER: True + NEUTRON_ENABLE_AGENT: false + NEUTRON_ENABLE_MANAGER: false + NEUTRON_ENABLE_CONTROLLER: true METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret - IRONIC_ENABLE_SERVICE: True + IRONIC_ENABLE_SERVICE: true - CEILOMETER_ENABLE_CONTROLLER: True - CEILOMETER_ENABLE_COMPUTE: False + CEILOMETER_ENABLE_CONTROLLER: true + CEILOMETER_ENABLE_COMPUTE: false MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.2 - HOSTS_SELF: 10.0.0.2 threenode-controller EXTERNAL_INTERFACE: enp2s0 NETWORK_CONFIG: enp2s0:dhcp;enp0s26u1u2:static,address=10.0.0.2,netmask=255.255.255.0 + SYNC_TIME_WITH_CONTROLLER: false subsystems: - morph: systems/initramfs-x86_64.morph deploy: @@ -216,23 +215,23 @@ systems: <<: *stack-node HOSTNAME: threenode-compute - NOVA_ENABLE_COMPUTE: True + NOVA_ENABLE_COMPUTE: true - CINDER_ENABLE_CONTROLLER: False - CINDER_ENABLE_COMPUTE: True - CINDER_ENABLE_STORAGE: True + CINDER_ENABLE_CONTROLLER: false + CINDER_ENABLE_COMPUTE: true + CINDER_ENABLE_STORAGE: true - NEUTRON_ENABLE_AGENT: True - NEUTRON_ENABLE_MANAGER: False - NEUTRON_ENABLE_CONTROLLER: False + NEUTRON_ENABLE_AGENT: true + NEUTRON_ENABLE_MANAGER: false + NEUTRON_ENABLE_CONTROLLER: false - CEILOMETER_ENABLE_CONTROLLER: False - CEILOMETER_ENABLE_COMPUTE: True + CEILOMETER_ENABLE_CONTROLLER: false + CEILOMETER_ENABLE_COMPUTE: true MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3 - HOSTS_SELF: 10.0.0.3 threenode-compute EXTERNAL_INTERFACE: eno1 NETWORK_CONFIG: eno1:dhcp;enp0s29u1u3:static,address=10.0.0.3,netmask=255.255.255.0 + SYNC_TIME_WITH_CONTROLLER: true subsystems: - morph: systems/initramfs-x86_64.morph deploy: diff --git a/clusters/openstack-two-node-installer.morph b/clusters/openstack-two-node-installer.morph index f05b0e9b..0c08bd4f 100644 --- a/clusters/openstack-two-node-installer.morph +++ b/clusters/openstack-two-node-installer.morph @@ -1,84 +1,83 @@ name: openstack-two-node-installer kind: cluster description: | - - This is a cluster morphology for deploying an installer for an x86_64 - OpenStack system spread across three nodes. - - This cluster creates disk images that may be `dd`'d onto install media to - produce an OpenStack cluster when instantiated. - - Alternatively it may be used to install directly onto a physical disk by - running: - - morph deploy clusters/openstack-two-node-installer.morph \ - controller-installer controller-installer.location=/dev/vdb - - Substituting contrller-installer for compute-installer will produce - different configurations, and it is possible to substitue /dev/vdb for a - different path to a disk image to install to a different disk image. - - Substitute the values of HOSTNAME, NETWORK_CONFIG, EXTERNAL_INTERFACE, - MANAGEMENT_IP_ADDRESS, CONTROLLER_HOST_ADDRESS, RABBITMQ_HOST and HOSTS_* to - match your hardware and networking configuration. - - Requirements to be able to run and test the system: - - - DISK_SIZE should be bigger than 5G - - The system has to have available at least 4G of RAM, but once - you start instantiating VMs you will need more. - - The IP of the system can't change, and you need to know it beforehand, - that is, the system needs a static IP address. - - This cluster is configurable, but with the following constraints: - - - The hostname in RABBITMQ_HOST has to match CONTROLLER_HOST_ADDRESS, - and HOST_CONTROLLER. - - HOSTS_CONTROLLER is only needed if the hostname (see previous point) - is not a FQDN. - - The IP listed in MANAGEMENT_INTERFACE_IP_ADDRESS has to match the one - used in HOSTS_CONTROLLER. - - CINDER_DEVICE should be a path to a storage device ready to be - used/formated for cinder data. - - EXTERNAL_INTERFACE is required when the system has more than one network - interface. - - You can also have a look at the following suggestions: - - - NOVA_VIRT_TYPE can be either 'kvm' or 'qemu', depending on where the - system is being deployed to. - - We recommend changing all the PASSWORDs variables, also the - KEYSTONE_TEMPORARY_ADMIN_TOKEN, METADATA_PROXY_SHARED_SECRET and - METERING_SECRET. - - Setting NOVA_BAREMETAL_SCHEDULING with a YAML truth value will configure - Nova to schedule baremetal machines through the Ironic driver, instead of - sheduling virtual machines. + This is a cluster morphology for deploying an installer for an x86_64 + OpenStack system spread across three nodes. + + This cluster creates disk images that may be `dd`'d onto install media to + produce an OpenStack cluster when instantiated. + + Alternatively it may be used to install directly onto a physical disk by + running: + + morph deploy clusters/openstack-two-node-installer.morph \ + controller-installer controller-installer.location=/dev/vdb + + Substituting contrller-installer for compute-installer will produce + different configurations, and it is possible to substitue /dev/vdb for a + different path to a disk image to install to a different disk image. + + Substitute the values of HOSTNAME, NETWORK_CONFIG, EXTERNAL_INTERFACE, + MANAGEMENT_IP_ADDRESS, CONTROLLER_HOST_ADDRESS, RABBITMQ_HOST and HOSTS_* to + match your hardware and networking configuration. + + Requirements to be able to run and test the system: + + - DISK_SIZE should be bigger than 5G + - The system has to have available at least 4G of RAM, but once + you start instantiating VMs you will need more. + - The IP of the system can't change, and you need to know it beforehand, + that is, the system needs a static IP address. + + This cluster is configurable, but with the following constraints: + + - The hostname in RABBITMQ_HOST has to match CONTROLLER_HOST_ADDRESS, + and HOST_CONTROLLER. + - HOSTS_CONTROLLER is only needed if the hostname (see previous point) + is not a FQDN. + - The IP listed in MANAGEMENT_INTERFACE_IP_ADDRESS has to match the one + used in HOSTS_CONTROLLER. + - CINDER_DEVICE should be a path to a storage device ready to be + used/formated for cinder data. + - EXTERNAL_INTERFACE is required when the system has more than one network + interface. + + You can also have a look at the following suggestions: + + - NOVA_VIRT_TYPE can be either 'kvm' or 'qemu', depending on where the + system is being deployed to. + - We recommend changing all the PASSWORDs variables, also the + KEYSTONE_TEMPORARY_ADMIN_TOKEN, METADATA_PROXY_SHARED_SECRET and + METERING_SECRET. + - Setting NOVA_BAREMETAL_SCHEDULING with a YAML truth value will configure + Nova to schedule baremetal machines through the Ironic driver, instead of + sheduling virtual machines. systems: - morph: systems/installer-system-x86_64.morph deploy: controller-installer: &installer - type: rawdisk + type: extensions/rawdisk location: installer-openstack-controller-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 - INSTALLER_POST_INSTALL_COMMAND: 'sync; poweroff -f' + INSTALLER_POST_INSTALL_COMMAND: sync; poweroff -f INITRAMFS_PATH: boot/initramfs.gz subsystems: - morph: systems/initramfs-x86_64.morph deploy: controller-initramfs: &initramfs - type: initramfs + type: extensions/initramfs location: boot/initramfs.gz - morph: systems/openstack-system-x86_64.morph deploy: controller-to-install: &stack-node - type: sysroot + type: extensions/sysroot location: rootfs - INSTALL_FILES: openstack/manifest + INSTALL_FILES: install-files/openstack/manifest INITRAMFS_PATH: boot/initramfs.gz HOSTNAME: twonode-controller @@ -89,30 +88,30 @@ systems: RABBITMQ_PASSWORD: veryinsecure # This token needs to be unique and secret - KEYSTONE_ENABLE_SERVICE: True + KEYSTONE_ENABLE_SERVICE: true KEYSTONE_TEMPORARY_ADMIN_TOKEN: 22f3aa1cf538e3f6d5e8 KEYSTONE_ADMIN_PASSWORD: veryinsecure KEYSTONE_DB_USER: keystoneDB KEYSTONE_DB_PASSWORD: veryinsecure - GLANCE_ENABLE_SERVICE: True + GLANCE_ENABLE_SERVICE: true GLANCE_SERVICE_USER: glance GLANCE_SERVICE_PASSWORD: veryinsecure GLANCE_DB_USER: glanceDB GLANCE_DB_PASSWORD: veryinsecure - NOVA_ENABLE_CONTROLLER: True - NOVA_ENABLE_COMPUTE: False + NOVA_ENABLE_CONTROLLER: true + NOVA_ENABLE_COMPUTE: false NOVA_SERVICE_USER: nova NOVA_SERVICE_PASSWORD: veryinsecure NOVA_DB_USER: novaDB NOVA_DB_PASSWORD: veryinsecure NOVA_VIRT_TYPE: kvm - NOVA_BAREMETAL_SCHEDULING: no + NOVA_BAREMETAL_SCHEDULING: false - CINDER_ENABLE_CONTROLLER: True - CINDER_ENABLE_COMPUTE: False - CINDER_ENABLE_STORAGE: False + CINDER_ENABLE_CONTROLLER: true + CINDER_ENABLE_COMPUTE: false + CINDER_ENABLE_STORAGE: false CINDER_SERVICE_USER: cinder CINDER_SERVICE_PASSWORD: veryinsecure CINDER_DB_USER: cinderDB @@ -120,16 +119,16 @@ systems: # Storage device to be used by Cinder CINDER_DEVICE: /dev/sdb - NEUTRON_ENABLE_AGENT: False - NEUTRON_ENABLE_MANAGER: True - NEUTRON_ENABLE_CONTROLLER: True + NEUTRON_ENABLE_AGENT: false + NEUTRON_ENABLE_MANAGER: true + NEUTRON_ENABLE_CONTROLLER: true NEUTRON_SERVICE_USER: neutron NEUTRON_SERVICE_PASSWORD: veryinsecure NEUTRON_DB_USER: neutronDB NEUTRON_DB_PASSWORD: veryinsecure METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret - IRONIC_ENABLE_SERVICE: True + IRONIC_ENABLE_SERVICE: true IRONIC_SERVICE_USER: ironic IRONIC_SERVICE_PASSWORD: veryinsecure IRONIC_DB_USER: ironicDB @@ -139,18 +138,18 @@ systems: CEILOMETER_SERVICE_PASSWORD: veryinsecure CEILOMETER_DB_USER: ceilometerDB CEILOMETER_DB_PASSWORD: veryinsecure - CEILOMETER_ENABLE_CONTROLLER: True - CEILOMETER_ENABLE_COMPUTE: False + CEILOMETER_ENABLE_CONTROLLER: true + CEILOMETER_ENABLE_COMPUTE: false METERING_SECRET: insecureceilometersecret CONTROLLER_HOST_ADDRESS: twonode-controller.os-mgmt MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.1 - HOSTS_SELF: 10.0.0.1 twonode-controller HOSTS_CONTROL: 10.0.0.1 twonode-controller.os-mgmt HOSTS_COMPUTE: 10.0.0.3 twonode-compute.os-mgmt EXTERNAL_INTERFACE: enp3s0 NETWORK_CONFIG: enp3s0:dhcp;enp2s0:static,address=10.0.0.1,netmask=255.255.255.0 + SYNC_TIME_WITH_CONTROLLER: false subsystems: - morph: systems/initramfs-x86_64.morph deploy: @@ -170,30 +169,30 @@ systems: <<: *stack-node HOSTNAME: twonode-compute - KEYSTONE_ENABLE_SERVICE: False + KEYSTONE_ENABLE_SERVICE: false - GLANCE_ENABLE_SERVICE: False + GLANCE_ENABLE_SERVICE: false - NOVA_ENABLE_COMPUTE: True - NOVA_ENABLE_CONTROLLER: False + NOVA_ENABLE_COMPUTE: true + NOVA_ENABLE_CONTROLLER: false - CINDER_ENABLE_CONTROLLER: False - CINDER_ENABLE_COMPUTE: True - CINDER_ENABLE_STORAGE: True + CINDER_ENABLE_CONTROLLER: false + CINDER_ENABLE_COMPUTE: true + CINDER_ENABLE_STORAGE: true - NEUTRON_ENABLE_AGENT: True - NEUTRON_ENABLE_MANAGER: False - NEUTRON_ENABLE_CONTROLLER: False + NEUTRON_ENABLE_AGENT: true + NEUTRON_ENABLE_MANAGER: false + NEUTRON_ENABLE_CONTROLLER: false - IRONIC_ENABLE_SERVICE: False + IRONIC_ENABLE_SERVICE: false - CEILOMETER_ENABLE_CONTROLLER: False - CEILOMETER_ENABLE_COMPUTE: True + CEILOMETER_ENABLE_CONTROLLER: false + CEILOMETER_ENABLE_COMPUTE: true MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3 - HOSTS_SELF: 10.0.0.3 twonode-compute EXTERNAL_INTERFACE: eno1 NETWORK_CONFIG: eno1:dhcp;enp0s29u1u3:static,address=10.0.0.3,netmask=255.255.255.0 + SYNC_TIME_WITH_CONTROLLER: true subsystems: - morph: systems/initramfs-x86_64.morph deploy: diff --git a/clusters/release.morph b/clusters/release.morph index c5bfffca..3f597a38 100644 --- a/clusters/release.morph +++ b/clusters/release.morph @@ -10,67 +10,76 @@ systems: - morph: systems/build-system-x86_32-chroot.morph deploy: build-system-x86_32-chroot: - type: tar + 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: rawdisk + 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: tar + 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: rawdisk + 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: initramfs + type: extensions/initramfs location: boot/initramfs.gz - morph: systems/build-system-armv7lhf-jetson.morph deploy: build-system-armv7lhf-jetson: - type: rawdisk + type: extensions/rawdisk location: build-system-armv7lhf-jetson.img DISK_SIZE: 2G - 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 + 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 - morph: systems/genivi-baseline-system-x86_64-generic.morph deploy: genivi-baseline-system-x86_64-generic: - type: rawdisk + type: extensions/rawdisk location: genivi-baseline-system-x86_64-generic.img DISK_SIZE: 4G KERNEL_ARGS: vga=788 INITRAMFS_PATH: boot/initramfs.gz + HOSTNAME: genivi-baseline-system-x86-64-generic subsystems: - morph: systems/initramfs-x86_64.morph deploy: initramfs-genivi-baseline-system-x86_64-generic: - type: initramfs + type: extensions/initramfs location: boot/initramfs.gz - morph: systems/genivi-baseline-system-armv7lhf-jetson.morph deploy: genivi-baseline-system-armv7lhf-jetson: - type: rawdisk + 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 + 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: genivi-baseline-system-armv7lhf-jetson diff --git a/clusters/sdk-example-cluster.morph b/clusters/sdk-example-cluster.morph index 92e4a413..a4413c3b 100644 --- a/clusters/sdk-example-cluster.morph +++ b/clusters/sdk-example-cluster.morph @@ -34,7 +34,7 @@ systems: - morph: systems/armv7lhf-cross-toolchain-system-x86_64.morph deploy: sdk: - type: sdk + type: extensions/sdk location: armv7lhf-cross-toolchain-system-x86_64.sh PREFIX: /usr TARGET: armv7lhf-baserock-linux-gnueabi @@ -42,5 +42,5 @@ systems: - morph: systems/devel-system-armv7lhf-highbank.morph deploy: sysroot: - type: sysroot + type: extensions/sysroot location: usr/armv7lhf-baserock-linux-gnueabi/sys-root diff --git a/clusters/trove-example.morph b/clusters/trove-example.morph index 2812f60e..81b1c901 100644 --- a/clusters/trove-example.morph +++ b/clusters/trove-example.morph @@ -50,9 +50,9 @@ systems: UPSTREAM_TROVE: '' deploy: initial: - type: kvm + type: extensions/kvm location: kvm+ssh://vm-user@vm-host/test-trove/vm-path/test-trove.img VERSION_LABEL: 1 upgrade: - type: ssh-rsync + type: extensions/ssh-rsync location: test-trove diff --git a/clusters/trove.baserock.org-upgrade.morph b/clusters/trove.baserock.org-upgrade.morph index eaf939e1..e66fd6bc 100644 --- a/clusters/trove.baserock.org-upgrade.morph +++ b/clusters/trove.baserock.org-upgrade.morph @@ -13,7 +13,7 @@ systems: - morph: systems/trove-system-x86_64.morph deploy: gbo: - type: ssh-rsync + type: extensions/ssh-rsync location: root@git.baserock.org FSTAB_HOME: LABEL=homes /home auto defaults,noatime,rw 0 2 HOSTNAME: firehose1 diff --git a/clusters/upgrade-devel.morph b/clusters/upgrade-devel.morph index b7ce9bc0..dcf1cd8d 100644 --- a/clusters/upgrade-devel.morph +++ b/clusters/upgrade-devel.morph @@ -18,7 +18,7 @@ description: | To upgrade, select a sensible a value for VERSION_LABEL and run: - morph deploy --upgrade upgrade-devel.morph self.HOSTNAME=$(hostname) self.VERSION_LABEL=$VERSION_LABEL + 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 @@ -35,5 +35,5 @@ systems: - morph: systems/devel-system-x86_64-generic.morph deploy: self: - type: ssh-rsync - location: root@127.0.0.1 + upgrade-type: extensions/ssh-rsync + upgrade-location: root@127.0.0.1 diff --git a/clusters/weston-system-x86_64-generic-deploy.morph b/clusters/weston-system-x86_64-generic-deploy.morph index 3a6f29ef..65e35bd7 100644 --- a/clusters/weston-system-x86_64-generic-deploy.morph +++ b/clusters/weston-system-x86_64-generic-deploy.morph @@ -10,7 +10,7 @@ systems: - morph: systems/weston-system-x86_64-generic.morph deploy: weston-system-x86_64-generic: - type: rawdisk + type: extensions/rawdisk location: /weston-system-x86_64-generic.img DISK_SIZE: 4G KERNEL_ARGS: vga=788 @@ -19,5 +19,5 @@ systems: - morph: systems/initramfs-x86_64.morph deploy: initramfs: - type: initramfs + type: extensions/initramfs location: boot/initramfs.gz diff --git a/clusters/xfce-system-x86_64-deploy.morph b/clusters/xfce-system-x86_64-deploy.morph new file mode 100644 index 00000000..e8bfe1e9 --- /dev/null +++ b/clusters/xfce-system-x86_64-deploy.morph @@ -0,0 +1,23 @@ +name: xfce-system-x86_64-deploy +kind: cluster +description: | + Deploy a stock XFCE system. + + The resulting image can be copied to a USB and booted from there, + as well as in a virtual machine. + +systems: +- morph: systems/xfce-system-x86_64.morph + deploy: + xfce-system-x86_64: + type: extensions/rawdisk + location: /xfce-system-x86_64.img + DISK_SIZE: 6G + KERNEL_ARGS: vga=788 + INITRAMFS_PATH: boot/initramfs.gz + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + initramfs: + type: extensions/initramfs + location: boot/initramfs.gz diff --git a/clusters/zookeeper.morph b/clusters/zookeeper.morph index 1153d4b0..80197726 100644 --- a/clusters/zookeeper.morph +++ b/clusters/zookeeper.morph @@ -1,21 +1,21 @@ name: zookeeper kind: cluster systems: - - morph: systems/zookeeper-client-x86_64.morph - deploy: - my-client-system: - type: kvm - location: kvm+ssh://username@HOSTNAME/machinename/path/to/zookeeper-client.img - DISK_SIZE: 4G - RAM_SIZE: 1G - VCPUS: 1 - HOSTNAME: zkclient - - morph: systems/zookeeper-server-x86_64.morph - deploy: - my-server-system: - type: kvm - location: kvm+ssh://username@HOSTNAME/machinename/path/to/zookeeper-server.img - DISK_SIZE: 4G - RAM_SIZE: 1G - VCPUS: 1 - HOSTNAME: zkserver +- morph: systems/zookeeper-client-x86_64.morph + deploy: + my-client-system: + type: extensions/kvm + location: kvm+ssh://username@HOSTNAME/machinename/path/to/zookeeper-client.img + DISK_SIZE: 4G + RAM_SIZE: 1G + VCPUS: 1 + HOSTNAME: zkclient +- morph: systems/zookeeper-server-x86_64.morph + deploy: + my-server-system: + type: extensions/kvm + location: kvm+ssh://username@HOSTNAME/machinename/path/to/zookeeper-server.img + DISK_SIZE: 4G + RAM_SIZE: 1G + VCPUS: 1 + HOSTNAME: zkserver |