diff options
Diffstat (limited to 'clusters')
-rw-r--r-- | clusters/cephclient.morph | 26 | ||||
-rw-r--r-- | clusters/ci.morph | 39 | ||||
-rw-r--r-- | clusters/example-swift-storage-cluster.morph | 14 | ||||
-rw-r--r-- | clusters/jetson-upgrade.morph | 17 | ||||
-rw-r--r-- | clusters/mason-openstack.morph | 2 | ||||
-rw-r--r-- | clusters/minimal-system-armv5l-openbmc-aspeed-deploy.morph | 6 | ||||
-rw-r--r-- | clusters/moonshot-m2-armv8b64.morph | 36 | ||||
-rw-r--r-- | clusters/moonshot-pxe-armv8b64.morph | 16 | ||||
-rw-r--r-- | clusters/moonshot-pxe-armv8l64.morph | 4 | ||||
-rw-r--r-- | clusters/openstack-one-node-swift.morph | 24 | ||||
-rw-r--r-- | clusters/openstack-one-node.morph | 8 | ||||
-rw-r--r-- | clusters/openstack-three-node-installer.morph | 183 | ||||
-rw-r--r-- | clusters/openstack-two-node-installer.morph | 163 | ||||
-rw-r--r-- | clusters/release.morph | 26 | ||||
-rw-r--r-- | clusters/zookeeper.morph | 36 |
15 files changed, 302 insertions, 298 deletions
diff --git a/clusters/cephclient.morph b/clusters/cephclient.morph index 2585fbdf..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: 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 + 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: 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 69b7c76a..fc3e50a7 100644 --- a/clusters/ci.morph +++ b/clusters/ci.morph @@ -24,12 +24,13 @@ systems: 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: @@ -43,12 +44,13 @@ systems: 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: @@ -62,12 +64,13 @@ systems: 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: diff --git a/clusters/example-swift-storage-cluster.morph b/clusters/example-swift-storage-cluster.morph index e5e7b6ab..ddab6481 100644 --- a/clusters/example-swift-storage-cluster.morph +++ b/clusters/example-swift-storage-cluster.morph @@ -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 diff --git a/clusters/jetson-upgrade.morph b/clusters/jetson-upgrade.morph index e6ec97e0..c335445b 100644 --- a/clusters/jetson-upgrade.morph +++ b/clusters/jetson-upgrade.morph @@ -5,14 +5,15 @@ systems: 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: extensions/ssh-rsync - location: root@127.0.0.1 + type: extensions/ssh-rsync + location: root@127.0.0.1 diff --git a/clusters/mason-openstack.morph b/clusters/mason-openstack.morph index 935e2496..cc7c1d4d 100644 --- a/clusters/mason-openstack.morph +++ b/clusters/mason-openstack.morph @@ -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/minimal-system-armv5l-openbmc-aspeed-deploy.morph b/clusters/minimal-system-armv5l-openbmc-aspeed-deploy.morph index 9647e7a7..3154fa26 100644 --- a/clusters/minimal-system-armv5l-openbmc-aspeed-deploy.morph +++ b/clusters/minimal-system-armv5l-openbmc-aspeed-deploy.morph @@ -6,8 +6,8 @@ systems: 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" + ROOT_DEVICE: /dev/mtdblock + BOOTLOADER_CONFIG_FORMAT: extlinux + BOOTLOADER_INSTALL: none ERASE_BLOCK: 64 INIT_SYSTEM: busybox diff --git a/clusters/moonshot-m2-armv8b64.morph b/clusters/moonshot-m2-armv8b64.morph index c6d62ca2..caa460c3 100644 --- a/clusters/moonshot-m2-armv8b64.morph +++ b/clusters/moonshot-m2-armv8b64.morph @@ -14,32 +14,32 @@ systems: 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: install-files/moonshot/manifest - MOONSHOT_KERNEL: yes + MOONSHOT_KERNEL: true subsystems: - morph: systems/devel-system-armv8b64.morph deploy: @@ -49,8 +49,8 @@ systems: HOSTNAME: baserock-c31n1 DTB_PATH: boot/m400-1003.dtb INSTALL_FILES: install-files/moonshot/manifest - MOONSHOT_KERNEL: yes + 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 ffee0392..af59817a 100644 --- a/clusters/moonshot-pxe-armv8b64.morph +++ b/clusters/moonshot-pxe-armv8b64.morph @@ -15,16 +15,16 @@ systems: 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: install-files/moonshot/manifest - MOONSHOT_KERNEL: yes + MOONSHOT_KERNEL: true diff --git a/clusters/moonshot-pxe-armv8l64.morph b/clusters/moonshot-pxe-armv8l64.morph index 62ee92a2..80771d52 100644 --- a/clusters/moonshot-pxe-armv8l64.morph +++ b/clusters/moonshot-pxe-armv8l64.morph @@ -17,6 +17,6 @@ systems: KERNEL_ARGS: console=ttyS0,9600n8r rw DTB_PATH: boot/m400-1003.dtb HOSTNAME: baserock-m400-node31 - MOONSHOT_KERNEL: yes + MOONSHOT_KERNEL: true INSTALL_FILES: install-files/moonshot/manifest - PXE_INSTALLER: no + PXE_INSTALLER: false diff --git a/clusters/openstack-one-node-swift.morph b/clusters/openstack-one-node-swift.morph index de7066d6..fc289538 100644 --- a/clusters/openstack-one-node-swift.morph +++ b/clusters/openstack-one-node-swift.morph @@ -51,7 +51,7 @@ systems: ## Swift config options ######################################################################### - SWIFT_CONTROLLER: True + SWIFT_CONTROLLER: true SWIFT_ADMIN_PASSWORD: insecure @@ -59,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 @@ -91,13 +91,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 @@ -108,7 +108,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 @@ -123,7 +123,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 diff --git a/clusters/openstack-one-node.morph b/clusters/openstack-one-node.morph index ab12f9b3..1b31996a 100644 --- a/clusters/openstack-one-node.morph +++ b/clusters/openstack-one-node.morph @@ -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 diff --git a/clusters/openstack-three-node-installer.morph b/clusters/openstack-three-node-installer.morph index b9c72364..87c7056b 100644 --- a/clusters/openstack-three-node-installer.morph +++ b/clusters/openstack-three-node-installer.morph @@ -1,59 +1,58 @@ 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 @@ -66,7 +65,7 @@ systems: 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 @@ -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,8 +139,8 @@ 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 @@ -154,7 +153,7 @@ systems: EXTERNAL_INTERFACE: enp3s0 NETWORK_CONFIG: enp3s0:dhcp;enp2s0:static,address=10.0.0.1,netmask=255.255.255.0 - SYNC_TIME_WITH_CONTROLLER: True + SYNC_TIME_WITH_CONTROLLER: true subsystems: - morph: systems/initramfs-x86_64.morph deploy: @@ -174,31 +173,31 @@ 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 + SYNC_TIME_WITH_CONTROLLER: false subsystems: - morph: systems/initramfs-x86_64.morph deploy: @@ -218,24 +217,24 @@ 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 + 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 29c028dc..e9c90cd1 100644 --- a/clusters/openstack-two-node-installer.morph +++ b/clusters/openstack-two-node-installer.morph @@ -1,58 +1,57 @@ 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 @@ -65,7 +64,7 @@ systems: 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 @@ -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,8 +138,8 @@ 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 @@ -151,7 +150,7 @@ systems: 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 + SYNC_TIME_WITH_CONTROLLER: false subsystems: - morph: systems/initramfs-x86_64.morph deploy: @@ -171,31 +170,31 @@ 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 + SYNC_TIME_WITH_CONTROLLER: true subsystems: - morph: systems/initramfs-x86_64.morph deploy: diff --git a/clusters/release.morph b/clusters/release.morph index a18af4f0..3f597a38 100644 --- a/clusters/release.morph +++ b/clusters/release.morph @@ -46,12 +46,13 @@ systems: 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: @@ -74,10 +75,11 @@ systems: 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/zookeeper.morph b/clusters/zookeeper.morph index cca6db81..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: 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 +- 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 |