summaryrefslogtreecommitdiff
path: root/unmaintained/clusters
diff options
context:
space:
mode:
Diffstat (limited to 'unmaintained/clusters')
-rw-r--r--unmaintained/clusters/cephclient.morph20
-rw-r--r--unmaintained/clusters/example-ceph-cluster-on-openstack.morph55
-rw-r--r--unmaintained/clusters/example-swift-storage-cluster.morph62
-rw-r--r--unmaintained/clusters/openstack-one-node-swift.morph142
-rw-r--r--unmaintained/clusters/openstack-one-node.morph104
-rw-r--r--unmaintained/clusters/openstack-three-node-installer.morph238
-rw-r--r--unmaintained/clusters/openstack-two-node-installer.morph199
-rw-r--r--unmaintained/clusters/xfce-system-x86_64-deploy.morph23
-rw-r--r--unmaintained/clusters/zookeeper.morph21
9 files changed, 864 insertions, 0 deletions
diff --git a/unmaintained/clusters/cephclient.morph b/unmaintained/clusters/cephclient.morph
new file mode 100644
index 00000000..ad680a76
--- /dev/null
+++ b/unmaintained/clusters/cephclient.morph
@@ -0,0 +1,20 @@
+name: cephclient
+kind: cluster
+systems:
+- morph: unmaintained/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
+
+ # 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
diff --git a/unmaintained/clusters/example-ceph-cluster-on-openstack.morph b/unmaintained/clusters/example-ceph-cluster-on-openstack.morph
new file mode 100644
index 00000000..73f6729c
--- /dev/null
+++ b/unmaintained/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: unmaintained/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/unmaintained/clusters/example-swift-storage-cluster.morph b/unmaintained/clusters/example-swift-storage-cluster.morph
new file mode 100644
index 00000000..42f52d8a
--- /dev/null
+++ b/unmaintained/clusters/example-swift-storage-cluster.morph
@@ -0,0 +1,62 @@
+name: example-swift-storage-cluster
+kind: cluster
+systems:
+- morph: unmaintained/systems/swift-system-x86_64.morph
+ deploy-defaults:
+ INSTALL_FILES: install-files/swift/manifest
+
+ CONTROLLER_HOST_ADDRESS: <controller host address>
+
+ SWIFT_PART_POWER: 10
+ 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}
+
+ # This value can be any random string or number
+ # but each node in your swift cluster must have the same value
+ SWIFT_REBALANCE_SEED: 3828
+
+ # NOTE: Replace SWIFT_HASH_PATH_PREFIX and SWIFT_HASH_PATH_SUFFIX
+ # with your own unique values,
+ #
+ # `openssl rand -hex 10' can be used to generate unique values
+ #
+ # These values should be kept secret, do not lose them.
+ #
+ SWIFT_HASH_PATH_PREFIX: 041fc210e4e1d333ce1d
+ SWIFT_HASH_PATH_SUFFIX: 4d6f5362a356dda7fb7d
+
+ FSTAB_SDB: /dev/sdb /srv/node/sdb xfs defaults,user,rw 0 0
+ FSTAB_SDC: /dev/sdc /srv/node/sdc xfs defaults,user,rw 0 0
+ FSTAB_SDD: /dev/sdd /srv/node/sdd xfs defaults,user,rw 0 0
+
+ deploy:
+ node0:
+ type: extensions/kvm
+ location: kvm+ssh://user@host/swift-storage-0/home/user/swift-storage-0.img
+ DISK_SIZE: 10G
+ RAM_SIZE: 1G
+ VCPUS: 1
+ HOSTNAME: swift-storage-0
+ NIC_CONFIG: network=default
+ NETWORK_CONFIG: ens3:static,address=<node0 management ip>,netmask=255.255.255.0
+ MANAGEMENT_INTERFACE_IP_ADDRESS: <node0 management ip>
+ ATTACH_DISKS: /dev/node0_sdb:/dev/node0_sdc:/dev/node0_sdd
+ node1:
+ type: extensions/kvm
+ location: kvm+ssh://user@host/swift-storage-1/home/user/swift-storage-1.img
+ DISK_SIZE: 10G
+ RAM_SIZE: 1G
+ VCPUS: 1
+ HOSTNAME: swift-storage-1
+ NIC_CONFIG: network=default
+ NETWORK_CONFIG: ens3:static,address=<node1 management ip>,netmask=255.255.255.0
+ MANAGEMENT_INTERFACE_IP_ADDRESS: <node1 management ip>
+ ATTACH_DISKS: /dev/node1_sdb:/dev/node1_sdc:/dev/node1_sdd
diff --git a/unmaintained/clusters/openstack-one-node-swift.morph b/unmaintained/clusters/openstack-one-node-swift.morph
new file mode 100644
index 00000000..b9d6502b
--- /dev/null
+++ b/unmaintained/clusters/openstack-one-node-swift.morph
@@ -0,0 +1,142 @@
+name: openstack-one-node-swift
+kind: cluster
+description: |
+ This is a cluster morphology for deploying a x86_64 OpenStack system
+ all-in-one-node.
+
+ 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: unmaintained/systems/openstack-system-x86_64.morph
+ deploy:
+ release:
+ type: extensions/rawdisk
+ location: baserock-openstack-system-x86_64.img
+ DISK_SIZE: 10G
+ INSTALL_FILES: install-files/openstack/manifest install-files/swift/manifest
+
+ HOSTNAME: onenode
+
+ #########################################################################
+ ## Swift config options
+ #########################################################################
+
+ SWIFT_CONTROLLER: true
+
+ SWIFT_ADMIN_PASSWORD: insecure
+
+ SWIFT_PART_POWER: 10
+ 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}
+
+ # This value can be any random string or number
+ # but each node in your swift cluster must have the same values
+ SWIFT_REBALANCE_SEED: 3828
+
+ # NOTE: Replace SWIFT_HASH_PATH_PREFIX and SWIFT_HASH_PATH_SUFFIX
+ # with your own unique values,
+ #
+ # `openssl rand -hex 10' can be used to generate unique values
+ #
+ # These values should be kept secret, do not lose them.
+ #
+ SWIFT_HASH_PATH_PREFIX: 041fc210e4e1d333ce1d
+ SWIFT_HASH_PATH_SUFFIX: 4d6f5362a356dda7fb7d
+
+ #########################################################################
+
+ RABBITMQ_HOST: onenode
+ RABBITMQ_PORT: 5672
+ RABBITMQ_USER: rabbitmq
+ RABBITMQ_PASSWORD: veryinsecure
+
+ 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
+ GLANCE_DB_PASSWORD: veryinsecure
+
+ NOVA_SERVICE_USER: nova
+ NOVA_SERVICE_PASSWORD: veryinsecure
+ NOVA_DB_USER: novaDB
+ NOVA_DB_PASSWORD: veryinsecure
+ NOVA_VIRT_TYPE: qemu
+ NOVA_BAREMETAL_SCHEDULING: false
+
+ CINDER_SERVICE_USER: cinder
+ CINDER_SERVICE_PASSWORD: veryinsecure
+ CINDER_DB_USER: cinderDB
+ CINDER_DB_PASSWORD: veryinsecure
+ # Storage device to be used by Cinder
+ CINDER_DEVICE: /dev/sdb
+
+ 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_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
+ # than one available.
+ # EXTERNAL_INTERFACE: eno1
diff --git a/unmaintained/clusters/openstack-one-node.morph b/unmaintained/clusters/openstack-one-node.morph
new file mode 100644
index 00000000..ddecb6fc
--- /dev/null
+++ b/unmaintained/clusters/openstack-one-node.morph
@@ -0,0 +1,104 @@
+name: openstack-one-node
+kind: cluster
+description: |
+ This is a cluster morphology for deploying a x86_64 OpenStack system
+ all-in-one-node.
+
+ 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: unmaintained/systems/openstack-system-x86_64.morph
+ deploy:
+ release:
+ type: extensions/rawdisk
+ location: baserock-openstack-system-x86_64.img
+ DISK_SIZE: 10G
+ INSTALL_FILES: install-files/openstack/manifest
+
+ HOSTNAME: onenode
+
+ RABBITMQ_HOST: onenode
+ RABBITMQ_PORT: 5672
+ RABBITMQ_USER: rabbitmq
+ RABBITMQ_PASSWORD: veryinsecure
+
+ 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
+ GLANCE_DB_PASSWORD: veryinsecure
+
+ NOVA_SERVICE_USER: nova
+ NOVA_SERVICE_PASSWORD: veryinsecure
+ NOVA_DB_USER: novaDB
+ NOVA_DB_PASSWORD: veryinsecure
+ NOVA_VIRT_TYPE: qemu
+ NOVA_BAREMETAL_SCHEDULING: false
+
+ CINDER_SERVICE_USER: cinder
+ CINDER_SERVICE_PASSWORD: veryinsecure
+ CINDER_DB_USER: cinderDB
+ CINDER_DB_PASSWORD: veryinsecure
+ # Storage device to be used by Cinder
+ CINDER_DEVICE: /dev/sdb
+
+ 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_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
+
+ # Network interface to be used, only needed if there are more
+ # than one available.
+ # EXTERNAL_INTERFACE: eno1
diff --git a/unmaintained/clusters/openstack-three-node-installer.morph b/unmaintained/clusters/openstack-three-node-installer.morph
new file mode 100644
index 00000000..9274f9bf
--- /dev/null
+++ b/unmaintained/clusters/openstack-three-node-installer.morph
@@ -0,0 +1,238 @@
+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.
+
+systems:
+- morph: systems/installer-system-x86_64.morph
+ deploy:
+ network-installer: &installer
+ 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
+ INITRAMFS_PATH: boot/initramfs.gz
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ network-initramfs: &initramfs
+ type: extensions/initramfs
+ location: boot/initramfs.gz
+ - morph: unmaintained/systems/openstack-system-x86_64.morph
+ deploy:
+ network-to-install: &stack-node
+ type: extensions/sysroot
+ location: rootfs
+ INSTALL_FILES: install-files/openstack/manifest
+ INITRAMFS_PATH: boot/initramfs.gz
+
+ HOSTNAME: threenode-network
+
+ RABBITMQ_HOST: threenode-controller.os-mgmt
+ RABBITMQ_PORT: 5672
+ RABBITMQ_USER: rabbitmq
+ RABBITMQ_PASSWORD: veryinsecure
+
+ # This token needs to be unique and secret
+ 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_SERVICE_USER: glance
+ GLANCE_SERVICE_PASSWORD: veryinsecure
+ GLANCE_DB_USER: glanceDB
+ GLANCE_DB_PASSWORD: veryinsecure
+
+ 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: 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
+ CINDER_DB_PASSWORD: veryinsecure
+ # Storage device to be used by Cinder
+ CINDER_DEVICE: /dev/sdb
+
+ 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_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
+ 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_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:
+ network-to-install-initramfs: *initramfs
+- morph: systems/installer-system-x86_64.morph
+ deploy:
+ controller-installer:
+ <<: *installer
+ location: installer-openstack-controller-x86_64.img
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ controller-initramfs: *initramfs
+ - morph: unmaintained/systems/openstack-system-x86_64.morph
+ deploy:
+ controller-to-install:
+ <<: *stack-node
+ HOSTNAME: threenode-controller
+
+ KEYSTONE_ENABLE_SERVICE: true
+
+ GLANCE_ENABLE_SERVICE: true
+
+ NOVA_ENABLE_CONTROLLER: true
+
+ CINDER_ENABLE_CONTROLLER: true
+ CINDER_ENABLE_COMPUTE: false
+ CINDER_ENABLE_STORAGE: false
+
+ NEUTRON_ENABLE_AGENT: false
+ NEUTRON_ENABLE_MANAGER: false
+ NEUTRON_ENABLE_CONTROLLER: true
+ METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret
+
+ IRONIC_ENABLE_SERVICE: true
+
+ CEILOMETER_ENABLE_CONTROLLER: true
+ CEILOMETER_ENABLE_COMPUTE: false
+
+ MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.2
+ 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:
+ controller-to-install-initramfs: *initramfs
+- morph: systems/installer-system-x86_64.morph
+ deploy:
+ compute-installer:
+ <<: *installer
+ location: installer-openstack-compute-x86_64.img
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ compute-initramfs: *initramfs
+ - morph: unmaintained/systems/openstack-system-x86_64.morph
+ deploy:
+ compute-to-install:
+ <<: *stack-node
+ HOSTNAME: threenode-compute
+
+ NOVA_ENABLE_COMPUTE: 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
+
+ CEILOMETER_ENABLE_CONTROLLER: false
+ CEILOMETER_ENABLE_COMPUTE: true
+
+ MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3
+ 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:
+ compute-to-install-initramfs: *initramfs
diff --git a/unmaintained/clusters/openstack-two-node-installer.morph b/unmaintained/clusters/openstack-two-node-installer.morph
new file mode 100644
index 00000000..e75b5a5e
--- /dev/null
+++ b/unmaintained/clusters/openstack-two-node-installer.morph
@@ -0,0 +1,199 @@
+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.
+
+systems:
+- morph: systems/installer-system-x86_64.morph
+ deploy:
+ controller-installer: &installer
+ 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
+ INITRAMFS_PATH: boot/initramfs.gz
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ controller-initramfs: &initramfs
+ type: extensions/initramfs
+ location: boot/initramfs.gz
+ - morph: unmaintained/systems/openstack-system-x86_64.morph
+ deploy:
+ controller-to-install: &stack-node
+ type: extensions/sysroot
+ location: rootfs
+ INSTALL_FILES: install-files/openstack/manifest
+ INITRAMFS_PATH: boot/initramfs.gz
+
+ HOSTNAME: twonode-controller
+
+ RABBITMQ_HOST: twonode-controller.os-mgmt
+ RABBITMQ_PORT: 5672
+ RABBITMQ_USER: rabbitmq
+ RABBITMQ_PASSWORD: veryinsecure
+
+ # This token needs to be unique and secret
+ 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
+ GLANCE_DB_PASSWORD: veryinsecure
+
+ 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: 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
+ CINDER_DB_PASSWORD: veryinsecure
+ # Storage device to be used by Cinder
+ CINDER_DEVICE: /dev/sdb
+
+ 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_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
+ 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_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:
+ controller-to-install-initramfs: *initramfs
+- morph: systems/installer-system-x86_64.morph
+ deploy:
+ compute-installer:
+ <<: *installer
+ location: installer-openstack-compute-x86_64.img
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ compute-initramfs: *initramfs
+ - morph: unmaintained/systems/openstack-system-x86_64.morph
+ deploy:
+ compute-to-install:
+ <<: *stack-node
+ HOSTNAME: twonode-compute
+
+ KEYSTONE_ENABLE_SERVICE: false
+
+ GLANCE_ENABLE_SERVICE: false
+
+ NOVA_ENABLE_COMPUTE: true
+ NOVA_ENABLE_CONTROLLER: false
+
+ CINDER_ENABLE_CONTROLLER: false
+ CINDER_ENABLE_COMPUTE: true
+ CINDER_ENABLE_STORAGE: true
+
+ NEUTRON_ENABLE_AGENT: true
+ NEUTRON_ENABLE_MANAGER: false
+ NEUTRON_ENABLE_CONTROLLER: false
+
+ IRONIC_ENABLE_SERVICE: false
+
+ CEILOMETER_ENABLE_CONTROLLER: false
+ CEILOMETER_ENABLE_COMPUTE: true
+
+ MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3
+ 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:
+ compute-to-install-initramfs: *initramfs
diff --git a/unmaintained/clusters/xfce-system-x86_64-deploy.morph b/unmaintained/clusters/xfce-system-x86_64-deploy.morph
new file mode 100644
index 00000000..465ba1d0
--- /dev/null
+++ b/unmaintained/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: unmaintained/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/unmaintained/clusters/zookeeper.morph b/unmaintained/clusters/zookeeper.morph
new file mode 100644
index 00000000..ba859bc1
--- /dev/null
+++ b/unmaintained/clusters/zookeeper.morph
@@ -0,0 +1,21 @@
+name: zookeeper
+kind: cluster
+systems:
+- morph: unmaintained/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: unmaintained/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