summaryrefslogtreecommitdiff
path: root/clusters/openstack-three-node-installer.morph
diff options
context:
space:
mode:
Diffstat (limited to 'clusters/openstack-three-node-installer.morph')
-rw-r--r--clusters/openstack-three-node-installer.morph286
1 files changed, 286 insertions, 0 deletions
diff --git a/clusters/openstack-three-node-installer.morph b/clusters/openstack-three-node-installer.morph
new file mode 100644
index 00000000..4c476ea2
--- /dev/null
+++ b/clusters/openstack-three-node-installer.morph
@@ -0,0 +1,286 @@
+name: openstack-three-node-installer
+kind: cluster
+description: |2
+
+ 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-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 ane 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 and METADATA_PROXY_SHARED_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:
+ type: rawdisk
+ location: installer-openstack-network-x86_64.img
+ DISK_SIZE: 6G
+ HOSTNAME: installer-x86_64
+ INITRAMFS_PATH: boot/initramfs.gz
+ INSTALLER_POST_INSTALL_COMMAND: sync; poweroff -f
+ INSTALLER_ROOTFS_TO_INSTALL: /rootfs
+ INSTALLER_TARGET_STORAGE_DEVICE: /dev/sda
+ KERNEL_ARGS: init=/usr/lib/baserock-installer/installer
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ network-initramfs: &id001
+ type: initramfs
+ location: boot/initramfs.gz
+ - morph: systems/openstack-system-x86_64.morph
+ deploy:
+ network-to-install:
+ type: sysroot
+ location: rootfs
+ CINDER_DB_PASSWORD: veryinsecure
+ CINDER_DB_USER: cinderDB
+ CINDER_DEVICE: /dev/sdb
+ CINDER_ENABLE_COMPUTE: false
+ CINDER_ENABLE_CONTROLLER: false
+ CINDER_ENABLE_STORAGE: false
+ CINDER_SERVICE_PASSWORD: veryinsecure
+ CINDER_SERVICE_USER: cinder
+ CONTROLLER_HOST_ADDRESS: threenode-controller.os-mgmt
+ EXTERNAL_INTERFACE: enp3s0
+ GLANCE_DB_PASSWORD: veryinsecure
+ GLANCE_DB_USER: glanceDB
+ GLANCE_SERVICE_PASSWORD: veryinsecure
+ GLANCE_SERVICE_USER: glance
+ HOSTNAME: threenode-network
+ HOSTS_COMPUTE: 10.0.0.3 threenode-compute.os-mgmt
+ HOSTS_CONTROL: 10.0.0.2 threenode-controller.os-mgmt
+ HOSTS_NETWORK: 10.0.0.1 threenode-network.os-mgmt
+ HOSTS_SELF: 10.0.0.1 threenode-network
+ INITRAMFS_PATH: boot/initramfs.gz
+ INSTALL_FILES: openstack/manifest
+ IRONIC_DB_PASSWORD: veryinsecure
+ IRONIC_DB_USER: ironicDB
+ IRONIC_ENABLE_SERVICE: false
+ IRONIC_SERVICE_PASSWORD: veryinsecure
+ IRONIC_SERVICE_USER: ironic
+ KEYSTONE_ADMIN_PASSWORD: veryinsecure
+ KEYSTONE_DB_PASSWORD: veryinsecure
+ KEYSTONE_DB_USER: keystoneDB
+ KEYSTONE_TEMPORARY_ADMIN_TOKEN: 22f3aa1cf538e3f6d5e8
+ MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.1
+ METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret
+ NETWORK_CONFIG: enp3s0:dhcp;enp2s0:static,address=10.0.0.1,netmask=255.255.255.0
+ NEUTRON_DB_PASSWORD: veryinsecure
+ NEUTRON_DB_USER: neutronDB
+ NEUTRON_ENABLE_AGENT: false
+ NEUTRON_ENABLE_CONTROLLER: false
+ NEUTRON_ENABLE_MANAGER: true
+ NEUTRON_SERVICE_PASSWORD: veryinsecure
+ NEUTRON_SERVICE_USER: neutron
+ NOVA_DB_PASSWORD: veryinsecure
+ NOVA_DB_USER: novaDB
+ NOVA_ENABLE_COMPUTE: false
+ NOVA_ENABLE_CONTROLLER: false
+ NOVA_SERVICE_PASSWORD: veryinsecure
+ NOVA_SERVICE_USER: nova
+ NOVA_VIRT_TYPE: kvm
+ RABBITMQ_HOST: threenode-controller.os-mgmt
+ RABBITMQ_PASSWORD: veryinsecure
+ RABBITMQ_PORT: 5672
+ RABBITMQ_USER: rabbitmq
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ network-to-install-initramfs: *id001
+- morph: systems/installer-system-x86_64.morph
+ deploy:
+ controller-installer:
+ type: rawdisk
+ location: installer-openstack-controller-x86_64.img
+ DISK_SIZE: 6G
+ HOSTNAME: installer-x86_64
+ INITRAMFS_PATH: boot/initramfs.gz
+ INSTALLER_POST_INSTALL_COMMAND: sync; poweroff -f
+ INSTALLER_ROOTFS_TO_INSTALL: /rootfs
+ INSTALLER_TARGET_STORAGE_DEVICE: /dev/sda
+ KERNEL_ARGS: init=/usr/lib/baserock-installer/installer
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ controller-initramfs: *id001
+ - morph: systems/openstack-system-x86_64.morph
+ deploy:
+ controller-to-install:
+ type: sysroot
+ location: rootfs
+ CINDER_DB_PASSWORD: veryinsecure
+ CINDER_DB_USER: cinderDB
+ CINDER_DEVICE: /dev/sdb
+ CINDER_ENABLE_COMPUTE: false
+ CINDER_ENABLE_CONTROLLER: false
+ CINDER_ENABLE_STORAGE: false
+ CINDER_SERVICE_PASSWORD: veryinsecure
+ CINDER_SERVICE_USER: cinder
+ CONTROLLER_HOST_ADDRESS: threenode-controller.os-mgmt
+ EXTERNAL_INTERFACE: enp2s0
+ GLANCE_DB_PASSWORD: veryinsecure
+ GLANCE_DB_USER: glanceDB
+ GLANCE_SERVICE_PASSWORD: veryinsecure
+ GLANCE_SERVICE_USER: glance
+ HOSTNAME: threenode-controller
+ HOSTS_COMPUTE: 10.0.0.3 threenode-compute.os-mgmt
+ HOSTS_CONTROL: 10.0.0.2 threenode-controller.os-mgmt
+ HOSTS_NETWORK: 10.0.0.1 threenode-network.os-mgmt
+ HOSTS_SELF: 10.0.0.2 threenode-controller
+ INITRAMFS_PATH: boot/initramfs.gz
+ INSTALL_FILES: openstack/manifest
+ IRONIC_DB_PASSWORD: veryinsecure
+ IRONIC_DB_USER: ironicDB
+ IRONIC_ENABLE_SERVICE: true
+ IRONIC_SERVICE_PASSWORD: veryinsecure
+ IRONIC_SERVICE_USER: ironic
+ KEYSTONE_ADMIN_PASSWORD: veryinsecure
+ KEYSTONE_DB_PASSWORD: veryinsecure
+ KEYSTONE_DB_USER: keystoneDB
+ KEYSTONE_TEMPORARY_ADMIN_TOKEN: 22f3aa1cf538e3f6d5e8
+ MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.2
+ METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret
+ NETWORK_CONFIG: enp2s0:dhcp;enp0s26u1u2:static,address=10.0.0.2,netmask=255.255.255.0
+ NEUTRON_DB_PASSWORD: veryinsecure
+ NEUTRON_DB_USER: neutronDB
+ NEUTRON_ENABLE_AGENT: false
+ NEUTRON_ENABLE_CONTROLLER: true
+ NEUTRON_ENABLE_MANAGER: false
+ NEUTRON_SERVICE_PASSWORD: veryinsecure
+ NEUTRON_SERVICE_USER: neutron
+ NOVA_DB_PASSWORD: veryinsecure
+ NOVA_DB_USER: novaDB
+ NOVA_ENABLE_COMPUTE: false
+ NOVA_ENABLE_CONTROLLER: true
+ NOVA_SERVICE_PASSWORD: veryinsecure
+ NOVA_SERVICE_USER: nova
+ NOVA_VIRT_TYPE: kvm
+ RABBITMQ_HOST: threenode-controller.os-mgmt
+ RABBITMQ_PASSWORD: veryinsecure
+ RABBITMQ_PORT: 5672
+ RABBITMQ_USER: rabbitmq
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ controller-to-install-initramfs: *id001
+- morph: systems/installer-system-x86_64.morph
+ deploy:
+ compute-installer:
+ type: rawdisk
+ location: installer-openstack-compute-x86_64.img
+ DISK_SIZE: 6G
+ HOSTNAME: installer-x86_64
+ INITRAMFS_PATH: boot/initramfs.gz
+ INSTALLER_POST_INSTALL_COMMAND: sync; poweroff -f
+ INSTALLER_ROOTFS_TO_INSTALL: /rootfs
+ INSTALLER_TARGET_STORAGE_DEVICE: /dev/sda
+ KERNEL_ARGS: init=/usr/lib/baserock-installer/installer
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ compute-initramfs: *id001
+ - morph: systems/openstack-system-x86_64.morph
+ deploy:
+ compute-to-install:
+ type: sysroot
+ location: rootfs
+ CINDER_DB_PASSWORD: veryinsecure
+ CINDER_DB_USER: cinderDB
+ CINDER_DEVICE: /dev/sdb
+ CINDER_ENABLE_COMPUTE: true
+ CINDER_ENABLE_CONTROLLER: false
+ CINDER_ENABLE_STORAGE: true
+ CINDER_SERVICE_PASSWORD: veryinsecure
+ CINDER_SERVICE_USER: cinder
+ CONTROLLER_HOST_ADDRESS: threenode-controller.os-mgmt
+ EXTERNAL_INTERFACE: eno1
+ GLANCE_DB_PASSWORD: veryinsecure
+ GLANCE_DB_USER: glanceDB
+ GLANCE_SERVICE_PASSWORD: veryinsecure
+ GLANCE_SERVICE_USER: glance
+ HOSTNAME: threenode-compute
+ HOSTS_COMPUTE: 10.0.0.3 threenode-compute.os-mgmt
+ HOSTS_CONTROL: 10.0.0.2 threenode-controller.os-mgmt
+ HOSTS_NETWORK: 10.0.0.1 threenode-network.os-mgmt
+ HOSTS_SELF: 10.0.0.3 threenode-compute
+ INITRAMFS_PATH: boot/initramfs.gz
+ INSTALL_FILES: openstack/manifest
+ IRONIC_DB_PASSWORD: veryinsecure
+ IRONIC_DB_USER: ironicDB
+ IRONIC_ENABLE_SERVICE: false
+ IRONIC_SERVICE_PASSWORD: veryinsecure
+ IRONIC_SERVICE_USER: ironic
+ KEYSTONE_ADMIN_PASSWORD: veryinsecure
+ KEYSTONE_DB_PASSWORD: veryinsecure
+ KEYSTONE_DB_USER: keystoneDB
+ KEYSTONE_TEMPORARY_ADMIN_TOKEN: 22f3aa1cf538e3f6d5e8
+ MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3
+ METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret
+ NETWORK_CONFIG: eno1:dhcp;enp0s29u1u3:static,address=10.0.0.3,netmask=255.255.255.0
+ NEUTRON_DB_PASSWORD: veryinsecure
+ NEUTRON_DB_USER: neutronDB
+ NEUTRON_ENABLE_AGENT: true
+ NEUTRON_ENABLE_CONTROLLER: false
+ NEUTRON_ENABLE_MANAGER: false
+ NEUTRON_SERVICE_PASSWORD: veryinsecure
+ NEUTRON_SERVICE_USER: neutron
+ NOVA_DB_PASSWORD: veryinsecure
+ NOVA_DB_USER: novaDB
+ NOVA_ENABLE_COMPUTE: true
+ NOVA_ENABLE_CONTROLLER: false
+ NOVA_SERVICE_PASSWORD: veryinsecure
+ NOVA_SERVICE_USER: nova
+ NOVA_VIRT_TYPE: kvm
+ RABBITMQ_HOST: threenode-controller.os-mgmt
+ RABBITMQ_PASSWORD: veryinsecure
+ RABBITMQ_PORT: 5672
+ RABBITMQ_USER: rabbitmq
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ compute-to-install-initramfs: *id001