From dab2eb78eee1f07b284fcef0b23d934ddeaf5ab5 Mon Sep 17 00:00:00 2001 From: Sergii Golovatiuk Date: Tue, 24 Jul 2018 15:49:33 +0200 Subject: [PATCH] FFWD testing Documenting way to deploy undercloud and overcloud on Scale lab via Infrared and document how to run FFWD. --- RDU-Scale/ffwd/README | 6 + .../1029p-storage-environment.yaml | 64 ++++++ RDU-Scale/ffwd/newton-latest/README.md | 26 +++ RDU-Scale/ffwd/newton-latest/debug.yaml | 5 + .../ffwd/newton-latest/environments/args.yaml | 3 + .../environments/compute-params.yaml | 8 + .../environments/controller-params.yaml | 7 + .../environments/firstboot-env.yaml | 2 + .../newton-latest/firstboot/first-boot.yaml | 83 +++++++ .../ffwd/newton-latest/firstboot/wipe_disk.sh | 26 +++ .../newton-latest/network-environment.yaml | 59 +++++ .../nic-configs/1029p-cephstorage.yaml | 160 ++++++++++++++ .../nic-configs/1029p-compute.yaml | 153 +++++++++++++ .../nic-configs/1029p-controller.yaml | 175 +++++++++++++++ .../nic-configs/r620-cephstorage.yaml | 160 ++++++++++++++ .../nic-configs/r620-compute.yaml | 154 +++++++++++++ .../nic-configs/r620-controller.yaml | 175 +++++++++++++++ .../nic-configs/r630-compute.yaml | 154 +++++++++++++ RDU-Scale/ffwd/newton-latest/nodes.yaml | 12 + .../r620-storage-environment.yaml | 68 ++++++ RDU-Scale/ffwd/newton-latest/roles_data.yaml | 205 ++++++++++++++++++ .../ffwd/newton-latest/scheduler-hints.yaml | 11 + .../newton/1029p-storage-environment.yaml | 64 ++++++ RDU-Scale/ffwd/newton/README.md | 26 +++ RDU-Scale/ffwd/newton/READmE | 2 + RDU-Scale/ffwd/newton/debug.yaml | 5 + RDU-Scale/ffwd/newton/environments/args.yaml | 3 + .../newton/environments/compute-params.yaml | 8 + .../environments/controller-params.yaml | 7 + .../newton/environments/firstboot-env.yaml | 2 + .../ffwd/newton/firstboot/first-boot.yaml | 83 +++++++ RDU-Scale/ffwd/newton/firstboot/wipe_disk.sh | 26 +++ .../ffwd/newton/network-environment.yaml | 59 +++++ .../newton/nic-configs/1029p-cephstorage.yaml | 160 ++++++++++++++ .../newton/nic-configs/1029p-compute.yaml | 153 +++++++++++++ .../newton/nic-configs/1029p-controller.yaml | 175 +++++++++++++++ .../newton/nic-configs/r620-cephstorage.yaml | 160 ++++++++++++++ .../ffwd/newton/nic-configs/r620-compute.yaml | 154 +++++++++++++ .../newton/nic-configs/r620-controller.yaml | 175 +++++++++++++++ .../ffwd/newton/nic-configs/r630-compute.yaml | 154 +++++++++++++ RDU-Scale/ffwd/newton/nodes.yaml | 12 + .../ffwd/newton/r620-storage-environment.yaml | 68 ++++++ RDU-Scale/ffwd/newton/roles_data.yaml | 198 +++++++++++++++++ RDU-Scale/ffwd/newton/scheduler-hints.yaml | 11 + RDU-Scale/ffwd/overcloud_deploy.sh | 16 ++ RDU-Scale/ffwd/scripts/cmds | 112 ++++++++++ RDU-Scale/ffwd/scripts/instack_json.sh | 13 ++ RDU-Scale/ffwd/scripts/minor | 2 + RDU-Scale/ffwd/scripts/tempest | 17 ++ RDU-Scale/ffwd/undercloud.conf | 24 ++ RDU-Scale/ffwd/undercloud_hiera_override.yaml | 26 +++ 51 files changed, 3631 insertions(+) create mode 100644 RDU-Scale/ffwd/README create mode 100644 RDU-Scale/ffwd/newton-latest/1029p-storage-environment.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/README.md create mode 100644 RDU-Scale/ffwd/newton-latest/debug.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/environments/args.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/environments/compute-params.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/environments/controller-params.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/environments/firstboot-env.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/firstboot/first-boot.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/firstboot/wipe_disk.sh create mode 100644 RDU-Scale/ffwd/newton-latest/network-environment.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/nic-configs/1029p-cephstorage.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/nic-configs/1029p-compute.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/nic-configs/1029p-controller.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/nic-configs/r620-cephstorage.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/nic-configs/r620-compute.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/nic-configs/r620-controller.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/nic-configs/r630-compute.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/nodes.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/r620-storage-environment.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/roles_data.yaml create mode 100644 RDU-Scale/ffwd/newton-latest/scheduler-hints.yaml create mode 100644 RDU-Scale/ffwd/newton/1029p-storage-environment.yaml create mode 100644 RDU-Scale/ffwd/newton/README.md create mode 100644 RDU-Scale/ffwd/newton/READmE create mode 100644 RDU-Scale/ffwd/newton/debug.yaml create mode 100644 RDU-Scale/ffwd/newton/environments/args.yaml create mode 100644 RDU-Scale/ffwd/newton/environments/compute-params.yaml create mode 100644 RDU-Scale/ffwd/newton/environments/controller-params.yaml create mode 100644 RDU-Scale/ffwd/newton/environments/firstboot-env.yaml create mode 100644 RDU-Scale/ffwd/newton/firstboot/first-boot.yaml create mode 100644 RDU-Scale/ffwd/newton/firstboot/wipe_disk.sh create mode 100644 RDU-Scale/ffwd/newton/network-environment.yaml create mode 100644 RDU-Scale/ffwd/newton/nic-configs/1029p-cephstorage.yaml create mode 100644 RDU-Scale/ffwd/newton/nic-configs/1029p-compute.yaml create mode 100644 RDU-Scale/ffwd/newton/nic-configs/1029p-controller.yaml create mode 100644 RDU-Scale/ffwd/newton/nic-configs/r620-cephstorage.yaml create mode 100644 RDU-Scale/ffwd/newton/nic-configs/r620-compute.yaml create mode 100644 RDU-Scale/ffwd/newton/nic-configs/r620-controller.yaml create mode 100644 RDU-Scale/ffwd/newton/nic-configs/r630-compute.yaml create mode 100644 RDU-Scale/ffwd/newton/nodes.yaml create mode 100644 RDU-Scale/ffwd/newton/r620-storage-environment.yaml create mode 100644 RDU-Scale/ffwd/newton/roles_data.yaml create mode 100644 RDU-Scale/ffwd/newton/scheduler-hints.yaml create mode 100644 RDU-Scale/ffwd/overcloud_deploy.sh create mode 100644 RDU-Scale/ffwd/scripts/cmds create mode 100644 RDU-Scale/ffwd/scripts/instack_json.sh create mode 100644 RDU-Scale/ffwd/scripts/minor create mode 100644 RDU-Scale/ffwd/scripts/tempest create mode 100644 RDU-Scale/ffwd/undercloud.conf create mode 100644 RDU-Scale/ffwd/undercloud_hiera_override.yaml diff --git a/RDU-Scale/ffwd/README b/RDU-Scale/ffwd/README new file mode 100644 index 0000000..166cbad --- /dev/null +++ b/RDU-Scale/ffwd/README @@ -0,0 +1,6 @@ +Use: +https://infrared.readthedocs.io/en/stable/ +Testing: +ir tempest ... +http://pyshaker.readthedocs.io/en/latest/installation.html +pip install psutil diff --git a/RDU-Scale/ffwd/newton-latest/1029p-storage-environment.yaml b/RDU-Scale/ffwd/newton-latest/1029p-storage-environment.yaml new file mode 100644 index 0000000..ba30659 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/1029p-storage-environment.yaml @@ -0,0 +1,64 @@ +## A Heat environment file which can be used to set up storage +## backends. Defaults to Ceph used as a backend for Cinder, Glance and +## Nova ephemeral storage. +resource_registry: + OS::TripleO::Services::CephMon: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-mon.yaml + OS::TripleO::Services::CephOSD: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-osd.yaml + OS::TripleO::Services::CephClient: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-client.yaml + +parameter_defaults: + + #### BACKEND SELECTION #### + + ## Whether to enable iscsi backend for Cinder. + CinderEnableIscsiBackend: false + ## Whether to enable rbd (Ceph) backend for Cinder. + CinderEnableRbdBackend: true + ## Cinder Backup backend can be either 'ceph' or 'swift'. + CinderBackupBackend: ceph + ## Whether to enable NFS backend for Cinder. + # CinderEnableNfsBackend: false + ## Whether to enable rbd (Ceph) backend for Nova ephemeral storage. + NovaEnableRbdBackend: true + ## Glance backend can be either 'rbd' (Ceph), 'swift' or 'file'. + GlanceBackend: rbd + ## Gnocchi backend can be either 'rbd' (Ceph), 'swift' or 'file'. + #GnocchiBackend: rbd + ExtraConfig: + #ceph::profile::params::fsid: eb2bb192-b1c9-11e6-9205-525400330667 + #ceph::profile::params::osd_pool_default_pg_num: 256 + #ceph::profile::params::osd_pool_default_pgp_num: 256 + ceph::profile::params::osd_pool_default_size: 3 + ceph::profile::params::osd_pool_default_min_size: 2 + ceph::profile::params::osd_recovery_max_active: 1 + ceph::profile::params::osd_max_backfills: 1 + ceph::profile::params::osd_recovery_op_priority: 1 + # OpenStack Ocata creates 8 ceph osd pools: + # rbd, backups, images, manila_data, manila_metadata, metrics, vms, volumes + CephPools: + backups: + pg_num: 8 + pgp_num: 8 + images: + pg_num: 64 + pgp_num: 64 + manila_data: + pg_num: 8 + pgp_num: 8 + manila_metadata: + pg_num: 8 + pgp_num: 8 + metrics: + pg_num: 8 + pgp_num: 8 + vms: + pg_num: 64 + pgp_num: 64 + volumes: + pg_num: 8 + pgp_num: 8 + + CephStorageExtraConfig: + # Just one OSD per 1029p. + ceph::profile::params::osds: + '/dev/nvme0n1': {} diff --git a/RDU-Scale/ffwd/newton-latest/README.md b/RDU-Scale/ffwd/newton-latest/README.md new file mode 100644 index 0000000..485fd27 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/README.md @@ -0,0 +1,26 @@ +# Templates for deploying overcloud for Scale CI + +These templates can be used for deploying an overcloud with the following deploy +command: +``` +openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e templates/network-environment.yaml -e templates/deploy.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml -r templates/roles_data.yaml --ntp-server clock.redhat.com -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e templates/network-environment.yaml -e templates/deploy.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml -r templates/roles_data.yaml --ntp-server clock.redhat.com + +``` + +It is assumed that the command is executed from /home/stack and the +configuration files in this directory are all present in /home/stack/templates +on the undercloud. + +These templates were built based on the assumption that the undercloud +provioning interface would be over em2. Be sure to set *local_interface = em2* +in the undercloud.conf when deploying the undercloud. + +## Hardware Details + +The hardware consists of the following machine types + +* R620 +* R620 +* R720xd +* 1029U +* 1029P diff --git a/RDU-Scale/ffwd/newton-latest/debug.yaml b/RDU-Scale/ffwd/newton-latest/debug.yaml new file mode 100644 index 0000000..61b187a --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/debug.yaml @@ -0,0 +1,5 @@ +--- +parameter_defaults: + Debug: true + ConfigDebug: true + CephAnsiblePlaybookVerbosity: 2 diff --git a/RDU-Scale/ffwd/newton-latest/environments/args.yaml b/RDU-Scale/ffwd/newton-latest/environments/args.yaml new file mode 100644 index 0000000..75435c2 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/environments/args.yaml @@ -0,0 +1,3 @@ +parameter_defaults: + ComputeKernelArgs: "intel_iommu=on iommu=pt" + ComputeHostnameFormat: "1029p" diff --git a/RDU-Scale/ffwd/newton-latest/environments/compute-params.yaml b/RDU-Scale/ffwd/newton-latest/environments/compute-params.yaml new file mode 100644 index 0000000..cb150f9 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/environments/compute-params.yaml @@ -0,0 +1,8 @@ +parameter_defaults: + NovaPCIPassthrough: + - vendor_id: "144d" + product_id: "a804" + device_type: "type-PCI" +# 1029PComputeExtraConfig: +# nova::api::pci_alias: '[{ name: "nvme", product_id: "a804", vendor_id: "144d", device_type: "type-PCI"}]' + diff --git a/RDU-Scale/ffwd/newton-latest/environments/controller-params.yaml b/RDU-Scale/ffwd/newton-latest/environments/controller-params.yaml new file mode 100644 index 0000000..a8e13f3 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/environments/controller-params.yaml @@ -0,0 +1,7 @@ +parameter_defaults: + HeatMaxResourcesPerStack: -1 + NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','DiskFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter'] + NovaSchedulerAvailableFilters: ['nova.scheduler.filters.all_filters'] +# ControllerExtraConfig: +# nova::api::pci_alias: '[{ name: "nvme", product_id: "a804", vendor_id: "144d", device_type: "type-PCI"}]' + diff --git a/RDU-Scale/ffwd/newton-latest/environments/firstboot-env.yaml b/RDU-Scale/ffwd/newton-latest/environments/firstboot-env.yaml new file mode 100644 index 0000000..38c0f4d --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/environments/firstboot-env.yaml @@ -0,0 +1,2 @@ +resource_registry: + OS::TripleO::NodeUserData: ../firstboot/first-boot.yaml diff --git a/RDU-Scale/ffwd/newton-latest/firstboot/first-boot.yaml b/RDU-Scale/ffwd/newton-latest/firstboot/first-boot.yaml new file mode 100644 index 0000000..a668a0b --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/firstboot/first-boot.yaml @@ -0,0 +1,83 @@ +heat_template_version: 2014-10-16 + +description: > + This is an example showing how you can do firstboot configuration + of the nodes via cloud-init. To enable this, replace the default + mapping of OS::TripleO::NodeUserData in ../overcloud_resource_registry* +parameters: + ComputeKernelArgs: + description: > + Space seprated list of Kernel args to be update to grub. + The given args will be appended to existing args of GRUB_CMDLINE_LINUX in file /etc/default/grub + Example: "intel_iommu=on" + type: string + default: "" + ComputeHostnameFormat: + type: string + default: "" + +resources: + userdata: + type: OS::Heat::MultipartMime + properties: + parts: + - config: {get_resource: compute_kernel_args} + - config: {get_resource: wipe_disk} + + # Verify the logs on /var/log/cloud-init.log on the overcloud node + compute_kernel_args: + type: OS::Heat::SoftwareConfig + properties: + config: + str_replace: + template: | + #!/bin/bash + set -x + FORMAT=$COMPUTE_HOSTNAME_FORMAT + if [[ $(hostname) == *$FORMAT* ]] ; then + sed "s/^\(GRUB_CMDLINE_LINUX=\".*\)\"/\1 $KERNEL_ARGS\"/g" -i /etc/default/grub ; + grub2-mkconfig -o /etc/grub2.cfg + + # Sometimes, the IP of the provisioning network is not acquired at the time of + # cloud-init, which will fail the metadata query, looping for 10seconds to ensure + # the network connectivity is ready. + i=0 + while [ $i -lt 5 ]; do + NETWORK=$(curl -m 10 http://169.254.169.254/openstack/latest/network_data.json) + if [ $? -eq 0 ]; then + # Rebooting without running os-net-config will have default ifcfg scripts which + # is boot the interfaces in alphanumberic order and if DHCPDISCOVER of an interface\ + # fails, then the network.service gets failed and does not try others. + # Here we are identifying the provisioning network interface and keep the + # BOOTPROTO as dpch and for all other interfaces make it as none. So that + # network.service will invoke dhcp only on the provisioning network. + # We are identifying the provisioning network using the meta data of the node, + # which will provide the mac address of the provisioning network interface. + # NOTE: Only one provisioning network interface is supported with this script + + MAC=$(echo $NETWORK | jq -r ".links[0].ethernet_mac_address") + IFACE=$(ip a | grep $MAC -B1 | awk 'NR==1{print $2;}' | cut -d ":" -f1) + find /etc/sysconfig/network-scripts/ -name 'ifcfg-*' ! -name 'ifcfg-'$IFACE -type f -exec sed 's/^BOOTPROTO=.*/BOOTPROTO=none/g' -i {} + + + reboot + break + fi + sleep 2 + i=`expr $i + 1` + done + fi + params: + $KERNEL_ARGS: {get_param: ComputeKernelArgs} + $COMPUTE_HOSTNAME_FORMAT: {get_param: ComputeHostnameFormat} + wipe_disk: + type: OS::Heat::SoftwareConfig + properties: + config: {get_file: ./wipe_disk.sh} + +outputs: + # This means get_resource from the parent template will get the userdata, see: + # http://docs.openstack.org/developer/heat/template_guide/composition.html#making-your-template-resource-more-transparent + # Note this is new-for-kilo, an alternative is returning a value then using + # get_attr in the parent template instead. + OS::stack_id: + value: {get_resource: userdata} diff --git a/RDU-Scale/ffwd/newton-latest/firstboot/wipe_disk.sh b/RDU-Scale/ffwd/newton-latest/firstboot/wipe_disk.sh new file mode 100644 index 0000000..c7aa9bd --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/firstboot/wipe_disk.sh @@ -0,0 +1,26 @@ +#!/bin/bash +set -x ; VLOG=/var/log/ospd/firstboot-wipe-disk.log ; exec &> >(tee -a "${VLOG}") + +echo "Number of disks detected: $(lsblk -no NAME,TYPE,MOUNTPOINT | grep "disk" | awk '{print $1}' | wc -l)" +for DEVICE in `lsblk -no NAME,TYPE,MOUNTPOINT | grep "disk" | awk '{print $1}'` +do + ROOTFOUND=0 + echo "Checking /dev/$DEVICE..." + echo "Number of partitions on /dev/$DEVICE: $(expr $(lsblk -n /dev/$DEVICE | awk '{print $7}' | wc -l) - 1)" + for MOUNTS in `lsblk -n /dev/$DEVICE | awk '{print $7}'` + do + if [ "$MOUNTS" = "/" ] + then + ROOTFOUND=1 + fi + done + if [ $ROOTFOUND = 0 ] + then + echo "Root not found in /dev/${DEVICE}" + echo "Wiping disk /dev/${DEVICE}" + sgdisk -Z /dev/${DEVICE} + sgdisk -g /dev/${DEVICE} + else + echo "Root found in /dev/${DEVICE}" + fi +done diff --git a/RDU-Scale/ffwd/newton-latest/network-environment.yaml b/RDU-Scale/ffwd/newton-latest/network-environment.yaml new file mode 100644 index 0000000..28a8c68 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/network-environment.yaml @@ -0,0 +1,59 @@ +resource_registry: + OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/r620-controller.yaml + #OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/1029p-controller.yaml + OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/r620-cephstorage.yaml + #OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/1029p-cephstorage.yaml + OS::TripleO::P1029Compute::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/1029p-compute.yaml + OS::TripleO::P1029Compute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::P1029Compute::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml + OS::TripleO::P1029Compute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage.yaml + OS::TripleO::P1029Compute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::P1029Compute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant.yaml + OS::TripleO::R630Compute::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/r630-compute.yaml + OS::TripleO::R630Compute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::R630Compute::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml + OS::TripleO::R630Compute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage.yaml + OS::TripleO::R630Compute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::R630Compute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant.yaml + OS::TripleO::R620Compute::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/r620-compute.yaml + OS::TripleO::R620Compute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::R620Compute::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml + OS::TripleO::R620Compute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage.yaml + OS::TripleO::R620Compute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::R620Compute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant.yaml + + + +parameter_defaults: + NeutronBridgeMappings: "datacentre:br-ex" + NeutronExternalNetworkBridge: "" + InternalApiNetCidr: 172.26.0.0/16 + TenantNetCidr: 172.27.0.0/16 + StorageNetCidr: 172.28.0.0/16 + StorageMgmtNetCidr: 172.29.0.0/16 + ManagementNetCidr: 172.30.0.0/16 + ExternalNetCidr: 172.21.0.0/16 + ControlPlaneSubnetCidr: 16 + InternalApiAllocationPools: [{'start': '172.26.0.3', 'end': '172.26.255.254'}] + TenantAllocationPools: [{'start': '172.27.0.3', 'end': '172.27.255.254'}] + StorageAllocationPools: [{'start': '172.28.0.3', 'end': '172.28.255.254'}] + StorageMgmtAllocationPools: [{'start': '172.29.0.3', 'end': '172.29.255.254'}] + ManagementAllocationPools: [{'start': '172.30.0.3', 'end': '172.30.255.254'}] + ExternalAllocationPools: [{'start': '172.21.0.3', 'end': '172.21.250.250'}] + # Set to the router gateway on the external network + ExternalInterfaceDefaultRoute: 172.21.0.1 + PublicVirtualFixedIPs: [{'ip_address':'172.21.0.10'}] + # Gateway router for the provisioning network (or Undercloud IP) + ControlPlaneDefaultRoute: 172.31.0.1 + # The IP address of the EC2 metadata server. Generally the IP of the Undercloud + EC2MetadataIp: 172.31.0.1 + # Define the DNS servers (maximum 2) for the overcloud nodes + DnsServers: ["10.11.5.19"] + InternalApiNetworkVlanID: 301 + StorageNetworkVlanID: 302 + StorageMgmtNetworkVlanID: 303 + TenantNetworkVlanID: 304 + ManagementNetworkVlanID: 305 + ExternalNetworkVlanID: 10 + NtpServer: ["clock.redhat.com"] + # Set to "br-ex" if using floating IPs on native VLAN on bridge br-ex diff --git a/RDU-Scale/ffwd/newton-latest/nic-configs/1029p-cephstorage.yaml b/RDU-Scale/ffwd/newton-latest/nic-configs/1029p-cephstorage.yaml new file mode 100644 index 0000000..a7e8c85 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/nic-configs/1029p-cephstorage.yaml @@ -0,0 +1,160 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + storage role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + ExternalNetworkVlanID: + default: 10 + description: Vlan ID for the internal_api network traffic. + type: number + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 70 + description: Vlan ID for the storage management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: enp94s0f0 + primary: true + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: vlan + vlan_id: {get_param: StorageMgmtNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageMgmtIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: enp94s0f2 + primary: true + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: enp94s0f1 + primary: true + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton-latest/nic-configs/1029p-compute.yaml b/RDU-Scale/ffwd/newton-latest/nic-configs/1029p-compute.yaml new file mode 100644 index 0000000..1e831fa --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/nic-configs/1029p-compute.yaml @@ -0,0 +1,153 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + compute role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: enp94s0f0 + primary: true + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: enp94s0f2 + primary: true + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: enp94s0f1 + primary: true + - + type: ovs_bridge + name: br-api + use_dhcp: false + members: + - + type: interface + name: enp94s0f3 + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton-latest/nic-configs/1029p-controller.yaml b/RDU-Scale/ffwd/newton-latest/nic-configs/1029p-controller.yaml new file mode 100644 index 0000000..c600e2f --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/nic-configs/1029p-controller.yaml @@ -0,0 +1,175 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + controller role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + ExternalNetworkVlanID: + default: 10 + description: Vlan ID for the external network traffic. + type: number + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: enp94s0f0 + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: vlan + vlan_id: {get_param: StorageMgmtNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageMgmtIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: enp94s0f2 + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: enp94s0f1 + primary: true + - + type: vlan + vlan_id: {get_param: ExternalNetworkVlanID} + addresses: + - + ip_netmask: {get_param: ExternalIpSubnet} + routes: + - + default: true + next_hop: {get_param: ExternalInterfaceDefaultRoute} + - + type: ovs_bridge + name: br-ctl + use_dhcp: false + members: + - + type: interface + name: enp94s0f3 + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton-latest/nic-configs/r620-cephstorage.yaml b/RDU-Scale/ffwd/newton-latest/nic-configs/r620-cephstorage.yaml new file mode 100644 index 0000000..b2cba32 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/nic-configs/r620-cephstorage.yaml @@ -0,0 +1,160 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + storage role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + ExternalNetworkVlanID: + default: 10 + description: Vlan ID for the internal_api network traffic. + type: number + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 70 + description: Vlan ID for the storage management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: p2p3 + primary: true + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: vlan + vlan_id: {get_param: StorageMgmtNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageMgmtIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: em1 + primary: true + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: p2p4 + primary: true + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton-latest/nic-configs/r620-compute.yaml b/RDU-Scale/ffwd/newton-latest/nic-configs/r620-compute.yaml new file mode 100644 index 0000000..e7d22d3 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/nic-configs/r620-compute.yaml @@ -0,0 +1,154 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + compute role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: p2p3 + primary: true + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: em1 + primary: true + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: p2p4 + primary: true + - + type: ovs_bridge + name: br-api + use_dhcp: false + members: + - + type: interface + name: em2 + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton-latest/nic-configs/r620-controller.yaml b/RDU-Scale/ffwd/newton-latest/nic-configs/r620-controller.yaml new file mode 100644 index 0000000..efd84d5 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/nic-configs/r620-controller.yaml @@ -0,0 +1,175 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + controller role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + ExternalNetworkVlanID: + default: 10 + description: Vlan ID for the external network traffic. + type: number + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: p2p3 + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: vlan + vlan_id: {get_param: StorageMgmtNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageMgmtIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: em1 + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: p2p4 + primary: true + - + type: vlan + vlan_id: {get_param: ExternalNetworkVlanID} + addresses: + - + ip_netmask: {get_param: ExternalIpSubnet} + routes: + - + default: true + next_hop: {get_param: ExternalInterfaceDefaultRoute} + - + type: ovs_bridge + name: br-ctl + use_dhcp: false + members: + - + type: interface + name: em2 + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton-latest/nic-configs/r630-compute.yaml b/RDU-Scale/ffwd/newton-latest/nic-configs/r630-compute.yaml new file mode 100644 index 0000000..884f2bf --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/nic-configs/r630-compute.yaml @@ -0,0 +1,154 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + compute role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: em1 + primary: true + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: em3 + primary: true + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: em2 + primary: true + + - + type: ovs_bridge + name: br-api + use_dhcp: false + members: + - + type: interface + name: em4 + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton-latest/nodes.yaml b/RDU-Scale/ffwd/newton-latest/nodes.yaml new file mode 100644 index 0000000..9529d6a --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/nodes.yaml @@ -0,0 +1,12 @@ +parameter_defaults: + OvercloudP1029ComputeFlavor: baremetal + P1029ComputeCount: 0 + OvercloudR630ComputeFlavor: baremetal + R630ComputeCount: 0 + OvercloudR620ComputeFlavor: baremetal + R620ComputeCount: 20 + OvercloudControlFlavor: baremetal + ControllerCount: 3 + OvercloudCephStorageFlavor: baremetal + CephStorageCount: 3 + diff --git a/RDU-Scale/ffwd/newton-latest/r620-storage-environment.yaml b/RDU-Scale/ffwd/newton-latest/r620-storage-environment.yaml new file mode 100644 index 0000000..b541ac3 --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/r620-storage-environment.yaml @@ -0,0 +1,68 @@ +## A Heat environment file which can be used to set up storage +## backends. Defaults to Ceph used as a backend for Cinder, Glance and +## Nova ephemeral storage. +resource_registry: + OS::TripleO::Services::CephMon: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-mon.yaml + OS::TripleO::Services::CephOSD: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-osd.yaml + OS::TripleO::Services::CephClient: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-client.yaml + +parameter_defaults: + + #### BACKEND SELECTION #### + + ## Whether to enable iscsi backend for Cinder. + CinderEnableIscsiBackend: false + ## Whether to enable rbd (Ceph) backend for Cinder. + CinderEnableRbdBackend: true + ## Cinder Backup backend can be either 'ceph' or 'swift'. + CinderBackupBackend: ceph + ## Whether to enable NFS backend for Cinder. + # CinderEnableNfsBackend: false + ## Whether to enable rbd (Ceph) backend for Nova ephemeral storage. + NovaEnableRbdBackend: true + ## Glance backend can be either 'rbd' (Ceph), 'swift' or 'file'. + GlanceBackend: rbd + ## Gnocchi backend can be either 'rbd' (Ceph), 'swift' or 'file'. + #GnocchiBackend: rbd + ExtraConfig: + #ceph::profile::params::fsid: eb2bb192-b1c9-11e6-9205-525400330667 + #ceph::profile::params::osd_pool_default_pg_num: 256 + #ceph::profile::params::osd_pool_default_pgp_num: 256 + ceph::profile::params::osd_pool_default_size: 3 + ceph::profile::params::osd_pool_default_min_size: 2 + ceph::profile::params::osd_recovery_max_active: 1 + ceph::profile::params::osd_max_backfills: 1 + ceph::profile::params::osd_recovery_op_priority: 1 + # OpenStack Ocata creates 8 ceph osd pools: + # rbd, backups, images, manila_data, manila_metadata, metrics, vms, volumes + CephPools: + backups: + pg_num: 8 + pgp_num: 8 + images: + pg_num: 64 + pgp_num: 64 + manila_data: + pg_num: 8 + pgp_num: 8 + manila_metadata: + pg_num: 8 + pgp_num: 8 + metrics: + pg_num: 8 + pgp_num: 8 + vms: + pg_num: 64 + pgp_num: 64 + volumes: + pg_num: 8 + pgp_num: 8 + + CephStorageExtraConfig: + # Just one OSD per 1029p. + ceph::profile::params::osds: + '/dev/sdb': {} + # NOTE: Some of the R620 nodes have only sda sdb + #'/dev/sde': {} + #'/dev/sdf': {} + #'/dev/sdg': {} diff --git a/RDU-Scale/ffwd/newton-latest/roles_data.yaml b/RDU-Scale/ffwd/newton-latest/roles_data.yaml new file mode 100644 index 0000000..927407d --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/roles_data.yaml @@ -0,0 +1,205 @@ + +- name: Controller # the 'primary' role goes first + CountDefault: 1 + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephMon + - OS::TripleO::Services::CephRgw + - OS::TripleO::Services::CinderApi + - OS::TripleO::Services::CinderBackup + - OS::TripleO::Services::CinderScheduler + - OS::TripleO::Services::CinderVolume + - OS::TripleO::Services::Core + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::Keystone + - OS::TripleO::Services::GlanceApi + - OS::TripleO::Services::GlanceRegistry + - OS::TripleO::Services::HeatApi + - OS::TripleO::Services::HeatApiCfn + - OS::TripleO::Services::HeatApiCloudwatch + - OS::TripleO::Services::HeatEngine + - OS::TripleO::Services::MySQL + - OS::TripleO::Services::NeutronDhcpAgent + - OS::TripleO::Services::NeutronL3Agent + - OS::TripleO::Services::NeutronMetadataAgent + - OS::TripleO::Services::NeutronApi + - OS::TripleO::Services::NeutronCorePlugin + - OS::TripleO::Services::NeutronOvsAgent + - OS::TripleO::Services::RabbitMQ + - OS::TripleO::Services::HAproxy + - OS::TripleO::Services::Keepalived + - OS::TripleO::Services::Memcached + - OS::TripleO::Services::Pacemaker + - OS::TripleO::Services::Redis + - OS::TripleO::Services::NovaConductor + - OS::TripleO::Services::MongoDb + - OS::TripleO::Services::NovaApi + - OS::TripleO::Services::NovaMetadata + - OS::TripleO::Services::NovaScheduler + - OS::TripleO::Services::NovaConsoleauth + - OS::TripleO::Services::NovaVncProxy + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::SwiftProxy + - OS::TripleO::Services::SwiftStorage + - OS::TripleO::Services::SwiftRingBuilder + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::CeilometerApi + - OS::TripleO::Services::CeilometerCollector + - OS::TripleO::Services::CeilometerExpirer + - OS::TripleO::Services::CeilometerAgentCentral + - OS::TripleO::Services::CeilometerAgentNotification + - OS::TripleO::Services::Horizon + - OS::TripleO::Services::GnocchiApi + - OS::TripleO::Services::GnocchiMetricd + - OS::TripleO::Services::GnocchiStatsd + - OS::TripleO::Services::ManilaApi + - OS::TripleO::Services::ManilaScheduler + - OS::TripleO::Services::ManilaBackendGeneric + - OS::TripleO::Services::ManilaBackendNetapp + - OS::TripleO::Services::ManilaBackendCephFs + - OS::TripleO::Services::ManilaShare + - OS::TripleO::Services::AodhApi + - OS::TripleO::Services::AodhEvaluator + - OS::TripleO::Services::AodhNotifier + - OS::TripleO::Services::AodhListener + - OS::TripleO::Services::SaharaApi + - OS::TripleO::Services::SaharaEngine + - OS::TripleO::Services::IronicApi + - OS::TripleO::Services::IronicConductor + - OS::TripleO::Services::NovaIronic + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::OpenDaylightApi + - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: P1029Compute + CountDefault: 0 + HostnameFormatDefault: '%stackname%-1029pcompute-%index%' + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephClient + - OS::TripleO::Services::CephExternal + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::NovaCompute + - OS::TripleO::Services::NovaLibvirt + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::ComputeNeutronCorePlugin + - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::ComputeCeilometerAgent + - OS::TripleO::Services::ComputeNeutronL3Agent + - OS::TripleO::Services::ComputeNeutronMetadataAgent + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::NeutronSriovAgent + - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: R620Compute + CountDefault: 0 + HostnameFormatDefault: '%stackname%-620rcompute-%index%' + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephClient + - OS::TripleO::Services::CephExternal + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::NovaCompute + - OS::TripleO::Services::NovaLibvirt + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::ComputeNeutronCorePlugin + - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::ComputeCeilometerAgent + - OS::TripleO::Services::ComputeNeutronL3Agent + - OS::TripleO::Services::ComputeNeutronMetadataAgent + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::NeutronSriovAgent + - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: R630Compute + CountDefault: 0 + HostnameFormatDefault: '%stackname%-630rcompute-%index%' + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephClient + - OS::TripleO::Services::CephExternal + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::NovaCompute + - OS::TripleO::Services::NovaLibvirt + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::ComputeNeutronCorePlugin + - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::ComputeCeilometerAgent + - OS::TripleO::Services::ComputeNeutronL3Agent + - OS::TripleO::Services::ComputeNeutronMetadataAgent + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::NeutronSriovAgent + - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: BlockStorage + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::BlockStorageCinderVolume + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: ObjectStorage + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::SwiftStorage + - OS::TripleO::Services::SwiftRingBuilder + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: CephStorage + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephOSD + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts diff --git a/RDU-Scale/ffwd/newton-latest/scheduler-hints.yaml b/RDU-Scale/ffwd/newton-latest/scheduler-hints.yaml new file mode 100644 index 0000000..0289d1e --- /dev/null +++ b/RDU-Scale/ffwd/newton-latest/scheduler-hints.yaml @@ -0,0 +1,11 @@ +parameter_defaults: + ControllerSchedulerHints: + 'capabilities:node': 'controller-%index%' + P1029ComputeSchedulerHints: + 'capabilities:node': 'p1029-compute-%index%' + R630ComputeSchedulerHints: + 'capabilities:node': 'r630-compute-%index%' + R620ComputeSchedulerHints: + 'capabilities:node': 'r620-compute-%index%' + CephStorageSchedulerHints: + 'capabilities:node': 'cephstorage-%index%' diff --git a/RDU-Scale/ffwd/newton/1029p-storage-environment.yaml b/RDU-Scale/ffwd/newton/1029p-storage-environment.yaml new file mode 100644 index 0000000..ba30659 --- /dev/null +++ b/RDU-Scale/ffwd/newton/1029p-storage-environment.yaml @@ -0,0 +1,64 @@ +## A Heat environment file which can be used to set up storage +## backends. Defaults to Ceph used as a backend for Cinder, Glance and +## Nova ephemeral storage. +resource_registry: + OS::TripleO::Services::CephMon: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-mon.yaml + OS::TripleO::Services::CephOSD: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-osd.yaml + OS::TripleO::Services::CephClient: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-client.yaml + +parameter_defaults: + + #### BACKEND SELECTION #### + + ## Whether to enable iscsi backend for Cinder. + CinderEnableIscsiBackend: false + ## Whether to enable rbd (Ceph) backend for Cinder. + CinderEnableRbdBackend: true + ## Cinder Backup backend can be either 'ceph' or 'swift'. + CinderBackupBackend: ceph + ## Whether to enable NFS backend for Cinder. + # CinderEnableNfsBackend: false + ## Whether to enable rbd (Ceph) backend for Nova ephemeral storage. + NovaEnableRbdBackend: true + ## Glance backend can be either 'rbd' (Ceph), 'swift' or 'file'. + GlanceBackend: rbd + ## Gnocchi backend can be either 'rbd' (Ceph), 'swift' or 'file'. + #GnocchiBackend: rbd + ExtraConfig: + #ceph::profile::params::fsid: eb2bb192-b1c9-11e6-9205-525400330667 + #ceph::profile::params::osd_pool_default_pg_num: 256 + #ceph::profile::params::osd_pool_default_pgp_num: 256 + ceph::profile::params::osd_pool_default_size: 3 + ceph::profile::params::osd_pool_default_min_size: 2 + ceph::profile::params::osd_recovery_max_active: 1 + ceph::profile::params::osd_max_backfills: 1 + ceph::profile::params::osd_recovery_op_priority: 1 + # OpenStack Ocata creates 8 ceph osd pools: + # rbd, backups, images, manila_data, manila_metadata, metrics, vms, volumes + CephPools: + backups: + pg_num: 8 + pgp_num: 8 + images: + pg_num: 64 + pgp_num: 64 + manila_data: + pg_num: 8 + pgp_num: 8 + manila_metadata: + pg_num: 8 + pgp_num: 8 + metrics: + pg_num: 8 + pgp_num: 8 + vms: + pg_num: 64 + pgp_num: 64 + volumes: + pg_num: 8 + pgp_num: 8 + + CephStorageExtraConfig: + # Just one OSD per 1029p. + ceph::profile::params::osds: + '/dev/nvme0n1': {} diff --git a/RDU-Scale/ffwd/newton/README.md b/RDU-Scale/ffwd/newton/README.md new file mode 100644 index 0000000..485fd27 --- /dev/null +++ b/RDU-Scale/ffwd/newton/README.md @@ -0,0 +1,26 @@ +# Templates for deploying overcloud for Scale CI + +These templates can be used for deploying an overcloud with the following deploy +command: +``` +openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e templates/network-environment.yaml -e templates/deploy.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml -r templates/roles_data.yaml --ntp-server clock.redhat.com -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e templates/network-environment.yaml -e templates/deploy.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml -r templates/roles_data.yaml --ntp-server clock.redhat.com + +``` + +It is assumed that the command is executed from /home/stack and the +configuration files in this directory are all present in /home/stack/templates +on the undercloud. + +These templates were built based on the assumption that the undercloud +provioning interface would be over em2. Be sure to set *local_interface = em2* +in the undercloud.conf when deploying the undercloud. + +## Hardware Details + +The hardware consists of the following machine types + +* R620 +* R620 +* R720xd +* 1029U +* 1029P diff --git a/RDU-Scale/ffwd/newton/READmE b/RDU-Scale/ffwd/newton/READmE new file mode 100644 index 0000000..4fb1846 --- /dev/null +++ b/RDU-Scale/ffwd/newton/READmE @@ -0,0 +1,2 @@ + num=0 ; grep node cloud11_instackenv.json | grep r620 | cut -d ':' -f3 | cut -d ',' -f1 | grep compute | while read i; do CUT=$(echo $i | cut -d '-' -f1,2); sed -i -e "s/${i}/${CUT}-${num}/" cloud11_instackenv.json ; let num=num+1; done + diff --git a/RDU-Scale/ffwd/newton/debug.yaml b/RDU-Scale/ffwd/newton/debug.yaml new file mode 100644 index 0000000..61b187a --- /dev/null +++ b/RDU-Scale/ffwd/newton/debug.yaml @@ -0,0 +1,5 @@ +--- +parameter_defaults: + Debug: true + ConfigDebug: true + CephAnsiblePlaybookVerbosity: 2 diff --git a/RDU-Scale/ffwd/newton/environments/args.yaml b/RDU-Scale/ffwd/newton/environments/args.yaml new file mode 100644 index 0000000..75435c2 --- /dev/null +++ b/RDU-Scale/ffwd/newton/environments/args.yaml @@ -0,0 +1,3 @@ +parameter_defaults: + ComputeKernelArgs: "intel_iommu=on iommu=pt" + ComputeHostnameFormat: "1029p" diff --git a/RDU-Scale/ffwd/newton/environments/compute-params.yaml b/RDU-Scale/ffwd/newton/environments/compute-params.yaml new file mode 100644 index 0000000..cb150f9 --- /dev/null +++ b/RDU-Scale/ffwd/newton/environments/compute-params.yaml @@ -0,0 +1,8 @@ +parameter_defaults: + NovaPCIPassthrough: + - vendor_id: "144d" + product_id: "a804" + device_type: "type-PCI" +# 1029PComputeExtraConfig: +# nova::api::pci_alias: '[{ name: "nvme", product_id: "a804", vendor_id: "144d", device_type: "type-PCI"}]' + diff --git a/RDU-Scale/ffwd/newton/environments/controller-params.yaml b/RDU-Scale/ffwd/newton/environments/controller-params.yaml new file mode 100644 index 0000000..a8e13f3 --- /dev/null +++ b/RDU-Scale/ffwd/newton/environments/controller-params.yaml @@ -0,0 +1,7 @@ +parameter_defaults: + HeatMaxResourcesPerStack: -1 + NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','DiskFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter'] + NovaSchedulerAvailableFilters: ['nova.scheduler.filters.all_filters'] +# ControllerExtraConfig: +# nova::api::pci_alias: '[{ name: "nvme", product_id: "a804", vendor_id: "144d", device_type: "type-PCI"}]' + diff --git a/RDU-Scale/ffwd/newton/environments/firstboot-env.yaml b/RDU-Scale/ffwd/newton/environments/firstboot-env.yaml new file mode 100644 index 0000000..38c0f4d --- /dev/null +++ b/RDU-Scale/ffwd/newton/environments/firstboot-env.yaml @@ -0,0 +1,2 @@ +resource_registry: + OS::TripleO::NodeUserData: ../firstboot/first-boot.yaml diff --git a/RDU-Scale/ffwd/newton/firstboot/first-boot.yaml b/RDU-Scale/ffwd/newton/firstboot/first-boot.yaml new file mode 100644 index 0000000..a668a0b --- /dev/null +++ b/RDU-Scale/ffwd/newton/firstboot/first-boot.yaml @@ -0,0 +1,83 @@ +heat_template_version: 2014-10-16 + +description: > + This is an example showing how you can do firstboot configuration + of the nodes via cloud-init. To enable this, replace the default + mapping of OS::TripleO::NodeUserData in ../overcloud_resource_registry* +parameters: + ComputeKernelArgs: + description: > + Space seprated list of Kernel args to be update to grub. + The given args will be appended to existing args of GRUB_CMDLINE_LINUX in file /etc/default/grub + Example: "intel_iommu=on" + type: string + default: "" + ComputeHostnameFormat: + type: string + default: "" + +resources: + userdata: + type: OS::Heat::MultipartMime + properties: + parts: + - config: {get_resource: compute_kernel_args} + - config: {get_resource: wipe_disk} + + # Verify the logs on /var/log/cloud-init.log on the overcloud node + compute_kernel_args: + type: OS::Heat::SoftwareConfig + properties: + config: + str_replace: + template: | + #!/bin/bash + set -x + FORMAT=$COMPUTE_HOSTNAME_FORMAT + if [[ $(hostname) == *$FORMAT* ]] ; then + sed "s/^\(GRUB_CMDLINE_LINUX=\".*\)\"/\1 $KERNEL_ARGS\"/g" -i /etc/default/grub ; + grub2-mkconfig -o /etc/grub2.cfg + + # Sometimes, the IP of the provisioning network is not acquired at the time of + # cloud-init, which will fail the metadata query, looping for 10seconds to ensure + # the network connectivity is ready. + i=0 + while [ $i -lt 5 ]; do + NETWORK=$(curl -m 10 http://169.254.169.254/openstack/latest/network_data.json) + if [ $? -eq 0 ]; then + # Rebooting without running os-net-config will have default ifcfg scripts which + # is boot the interfaces in alphanumberic order and if DHCPDISCOVER of an interface\ + # fails, then the network.service gets failed and does not try others. + # Here we are identifying the provisioning network interface and keep the + # BOOTPROTO as dpch and for all other interfaces make it as none. So that + # network.service will invoke dhcp only on the provisioning network. + # We are identifying the provisioning network using the meta data of the node, + # which will provide the mac address of the provisioning network interface. + # NOTE: Only one provisioning network interface is supported with this script + + MAC=$(echo $NETWORK | jq -r ".links[0].ethernet_mac_address") + IFACE=$(ip a | grep $MAC -B1 | awk 'NR==1{print $2;}' | cut -d ":" -f1) + find /etc/sysconfig/network-scripts/ -name 'ifcfg-*' ! -name 'ifcfg-'$IFACE -type f -exec sed 's/^BOOTPROTO=.*/BOOTPROTO=none/g' -i {} + + + reboot + break + fi + sleep 2 + i=`expr $i + 1` + done + fi + params: + $KERNEL_ARGS: {get_param: ComputeKernelArgs} + $COMPUTE_HOSTNAME_FORMAT: {get_param: ComputeHostnameFormat} + wipe_disk: + type: OS::Heat::SoftwareConfig + properties: + config: {get_file: ./wipe_disk.sh} + +outputs: + # This means get_resource from the parent template will get the userdata, see: + # http://docs.openstack.org/developer/heat/template_guide/composition.html#making-your-template-resource-more-transparent + # Note this is new-for-kilo, an alternative is returning a value then using + # get_attr in the parent template instead. + OS::stack_id: + value: {get_resource: userdata} diff --git a/RDU-Scale/ffwd/newton/firstboot/wipe_disk.sh b/RDU-Scale/ffwd/newton/firstboot/wipe_disk.sh new file mode 100644 index 0000000..c7aa9bd --- /dev/null +++ b/RDU-Scale/ffwd/newton/firstboot/wipe_disk.sh @@ -0,0 +1,26 @@ +#!/bin/bash +set -x ; VLOG=/var/log/ospd/firstboot-wipe-disk.log ; exec &> >(tee -a "${VLOG}") + +echo "Number of disks detected: $(lsblk -no NAME,TYPE,MOUNTPOINT | grep "disk" | awk '{print $1}' | wc -l)" +for DEVICE in `lsblk -no NAME,TYPE,MOUNTPOINT | grep "disk" | awk '{print $1}'` +do + ROOTFOUND=0 + echo "Checking /dev/$DEVICE..." + echo "Number of partitions on /dev/$DEVICE: $(expr $(lsblk -n /dev/$DEVICE | awk '{print $7}' | wc -l) - 1)" + for MOUNTS in `lsblk -n /dev/$DEVICE | awk '{print $7}'` + do + if [ "$MOUNTS" = "/" ] + then + ROOTFOUND=1 + fi + done + if [ $ROOTFOUND = 0 ] + then + echo "Root not found in /dev/${DEVICE}" + echo "Wiping disk /dev/${DEVICE}" + sgdisk -Z /dev/${DEVICE} + sgdisk -g /dev/${DEVICE} + else + echo "Root found in /dev/${DEVICE}" + fi +done diff --git a/RDU-Scale/ffwd/newton/network-environment.yaml b/RDU-Scale/ffwd/newton/network-environment.yaml new file mode 100644 index 0000000..28a8c68 --- /dev/null +++ b/RDU-Scale/ffwd/newton/network-environment.yaml @@ -0,0 +1,59 @@ +resource_registry: + OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/r620-controller.yaml + #OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/1029p-controller.yaml + OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/r620-cephstorage.yaml + #OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/1029p-cephstorage.yaml + OS::TripleO::P1029Compute::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/1029p-compute.yaml + OS::TripleO::P1029Compute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::P1029Compute::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml + OS::TripleO::P1029Compute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage.yaml + OS::TripleO::P1029Compute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::P1029Compute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant.yaml + OS::TripleO::R630Compute::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/r630-compute.yaml + OS::TripleO::R630Compute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::R630Compute::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml + OS::TripleO::R630Compute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage.yaml + OS::TripleO::R630Compute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::R630Compute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant.yaml + OS::TripleO::R620Compute::Net::SoftwareConfig: /home/stack/ffwd/newton/nic-configs/r620-compute.yaml + OS::TripleO::R620Compute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::R620Compute::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml + OS::TripleO::R620Compute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage.yaml + OS::TripleO::R620Compute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml + OS::TripleO::R620Compute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant.yaml + + + +parameter_defaults: + NeutronBridgeMappings: "datacentre:br-ex" + NeutronExternalNetworkBridge: "" + InternalApiNetCidr: 172.26.0.0/16 + TenantNetCidr: 172.27.0.0/16 + StorageNetCidr: 172.28.0.0/16 + StorageMgmtNetCidr: 172.29.0.0/16 + ManagementNetCidr: 172.30.0.0/16 + ExternalNetCidr: 172.21.0.0/16 + ControlPlaneSubnetCidr: 16 + InternalApiAllocationPools: [{'start': '172.26.0.3', 'end': '172.26.255.254'}] + TenantAllocationPools: [{'start': '172.27.0.3', 'end': '172.27.255.254'}] + StorageAllocationPools: [{'start': '172.28.0.3', 'end': '172.28.255.254'}] + StorageMgmtAllocationPools: [{'start': '172.29.0.3', 'end': '172.29.255.254'}] + ManagementAllocationPools: [{'start': '172.30.0.3', 'end': '172.30.255.254'}] + ExternalAllocationPools: [{'start': '172.21.0.3', 'end': '172.21.250.250'}] + # Set to the router gateway on the external network + ExternalInterfaceDefaultRoute: 172.21.0.1 + PublicVirtualFixedIPs: [{'ip_address':'172.21.0.10'}] + # Gateway router for the provisioning network (or Undercloud IP) + ControlPlaneDefaultRoute: 172.31.0.1 + # The IP address of the EC2 metadata server. Generally the IP of the Undercloud + EC2MetadataIp: 172.31.0.1 + # Define the DNS servers (maximum 2) for the overcloud nodes + DnsServers: ["10.11.5.19"] + InternalApiNetworkVlanID: 301 + StorageNetworkVlanID: 302 + StorageMgmtNetworkVlanID: 303 + TenantNetworkVlanID: 304 + ManagementNetworkVlanID: 305 + ExternalNetworkVlanID: 10 + NtpServer: ["clock.redhat.com"] + # Set to "br-ex" if using floating IPs on native VLAN on bridge br-ex diff --git a/RDU-Scale/ffwd/newton/nic-configs/1029p-cephstorage.yaml b/RDU-Scale/ffwd/newton/nic-configs/1029p-cephstorage.yaml new file mode 100644 index 0000000..a7e8c85 --- /dev/null +++ b/RDU-Scale/ffwd/newton/nic-configs/1029p-cephstorage.yaml @@ -0,0 +1,160 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + storage role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + ExternalNetworkVlanID: + default: 10 + description: Vlan ID for the internal_api network traffic. + type: number + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 70 + description: Vlan ID for the storage management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: enp94s0f0 + primary: true + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: vlan + vlan_id: {get_param: StorageMgmtNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageMgmtIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: enp94s0f2 + primary: true + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: enp94s0f1 + primary: true + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton/nic-configs/1029p-compute.yaml b/RDU-Scale/ffwd/newton/nic-configs/1029p-compute.yaml new file mode 100644 index 0000000..1e831fa --- /dev/null +++ b/RDU-Scale/ffwd/newton/nic-configs/1029p-compute.yaml @@ -0,0 +1,153 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + compute role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: enp94s0f0 + primary: true + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: enp94s0f2 + primary: true + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: enp94s0f1 + primary: true + - + type: ovs_bridge + name: br-api + use_dhcp: false + members: + - + type: interface + name: enp94s0f3 + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton/nic-configs/1029p-controller.yaml b/RDU-Scale/ffwd/newton/nic-configs/1029p-controller.yaml new file mode 100644 index 0000000..c600e2f --- /dev/null +++ b/RDU-Scale/ffwd/newton/nic-configs/1029p-controller.yaml @@ -0,0 +1,175 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + controller role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + ExternalNetworkVlanID: + default: 10 + description: Vlan ID for the external network traffic. + type: number + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: enp94s0f0 + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: vlan + vlan_id: {get_param: StorageMgmtNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageMgmtIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: enp94s0f2 + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: enp94s0f1 + primary: true + - + type: vlan + vlan_id: {get_param: ExternalNetworkVlanID} + addresses: + - + ip_netmask: {get_param: ExternalIpSubnet} + routes: + - + default: true + next_hop: {get_param: ExternalInterfaceDefaultRoute} + - + type: ovs_bridge + name: br-ctl + use_dhcp: false + members: + - + type: interface + name: enp94s0f3 + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton/nic-configs/r620-cephstorage.yaml b/RDU-Scale/ffwd/newton/nic-configs/r620-cephstorage.yaml new file mode 100644 index 0000000..b2cba32 --- /dev/null +++ b/RDU-Scale/ffwd/newton/nic-configs/r620-cephstorage.yaml @@ -0,0 +1,160 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + storage role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + ExternalNetworkVlanID: + default: 10 + description: Vlan ID for the internal_api network traffic. + type: number + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 70 + description: Vlan ID for the storage management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: p2p3 + primary: true + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: vlan + vlan_id: {get_param: StorageMgmtNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageMgmtIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: em1 + primary: true + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: p2p4 + primary: true + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton/nic-configs/r620-compute.yaml b/RDU-Scale/ffwd/newton/nic-configs/r620-compute.yaml new file mode 100644 index 0000000..e7d22d3 --- /dev/null +++ b/RDU-Scale/ffwd/newton/nic-configs/r620-compute.yaml @@ -0,0 +1,154 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + compute role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: p2p3 + primary: true + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: em1 + primary: true + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: p2p4 + primary: true + - + type: ovs_bridge + name: br-api + use_dhcp: false + members: + - + type: interface + name: em2 + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton/nic-configs/r620-controller.yaml b/RDU-Scale/ffwd/newton/nic-configs/r620-controller.yaml new file mode 100644 index 0000000..efd84d5 --- /dev/null +++ b/RDU-Scale/ffwd/newton/nic-configs/r620-controller.yaml @@ -0,0 +1,175 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + controller role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + ExternalNetworkVlanID: + default: 10 + description: Vlan ID for the external network traffic. + type: number + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: p2p3 + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: vlan + vlan_id: {get_param: StorageMgmtNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageMgmtIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: em1 + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: p2p4 + primary: true + - + type: vlan + vlan_id: {get_param: ExternalNetworkVlanID} + addresses: + - + ip_netmask: {get_param: ExternalIpSubnet} + routes: + - + default: true + next_hop: {get_param: ExternalInterfaceDefaultRoute} + - + type: ovs_bridge + name: br-ctl + use_dhcp: false + members: + - + type: interface + name: em2 + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton/nic-configs/r630-compute.yaml b/RDU-Scale/ffwd/newton/nic-configs/r630-compute.yaml new file mode 100644 index 0000000..884f2bf --- /dev/null +++ b/RDU-Scale/ffwd/newton/nic-configs/r630-compute.yaml @@ -0,0 +1,154 @@ +heat_template_version: 2015-04-30 + +description: > + Software Config to drive os-net-config to configure VLANs for the + compute role. + +parameters: + ControlPlaneIp: + default: '' + description: IP address/subnet on the ctlplane network + type: string + ExternalIpSubnet: + default: '' + description: IP address/subnet on the external network + type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal API network + type: string + StorageIpSubnet: + default: '' + description: IP address/subnet on the storage network + type: string + StorageMgmtIpSubnet: + default: '' + description: IP address/subnet on the storage mgmt network + type: string + TenantIpSubnet: + default: '' + description: IP address/subnet on the tenant network + type: string + ManagementIpSubnet: # Only populated when including environments/network-management.yaml + default: '' + description: IP address/subnet on the management network + type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number + ManagementNetworkVlanID: + default: 60 + description: Vlan ID for the management network traffic. + type: number + ControlPlaneSubnetCidr: # Override this via parameter_defaults + default: '24' + description: The subnet CIDR of the control plane network. + type: string + ControlPlaneDefaultRoute: # Override this via parameter_defaults + description: The default route of the control plane network. + type: string + ExternalInterfaceDefaultRoute: # Not used by default in this template + default: '10.0.0.1' + description: The default route of the external network. + type: string + ManagementInterfaceDefaultRoute: # Commented out by default in this template + default: unset + description: The default route of the management network. + type: string + DnsServers: # Override this via parameter_defaults + default: [] + description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf. + type: comma_delimited_list + EC2MetadataIp: # Override this via parameter_defaults + description: The IP address of the EC2 metadata server. + type: string + +resources: + OsNetConfigImpl: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + os_net_config: + network_config: + - + type: ovs_bridge + name: br-storage + members: + - + type: interface + name: em1 + primary: true + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + - + type: ovs_bridge + name: br-tenant + members: + - + type: interface + name: em3 + primary: true + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + - + type: ovs_bridge + name: br-ex + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} + members: + - + type: interface + name: em2 + primary: true + + - + type: ovs_bridge + name: br-api + use_dhcp: false + members: + - + type: interface + name: em4 + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + +outputs: + OS::stack_id: + description: The OsNetConfigImpl resource. + value: {get_resource: OsNetConfigImpl} diff --git a/RDU-Scale/ffwd/newton/nodes.yaml b/RDU-Scale/ffwd/newton/nodes.yaml new file mode 100644 index 0000000..9529d6a --- /dev/null +++ b/RDU-Scale/ffwd/newton/nodes.yaml @@ -0,0 +1,12 @@ +parameter_defaults: + OvercloudP1029ComputeFlavor: baremetal + P1029ComputeCount: 0 + OvercloudR630ComputeFlavor: baremetal + R630ComputeCount: 0 + OvercloudR620ComputeFlavor: baremetal + R620ComputeCount: 20 + OvercloudControlFlavor: baremetal + ControllerCount: 3 + OvercloudCephStorageFlavor: baremetal + CephStorageCount: 3 + diff --git a/RDU-Scale/ffwd/newton/r620-storage-environment.yaml b/RDU-Scale/ffwd/newton/r620-storage-environment.yaml new file mode 100644 index 0000000..b541ac3 --- /dev/null +++ b/RDU-Scale/ffwd/newton/r620-storage-environment.yaml @@ -0,0 +1,68 @@ +## A Heat environment file which can be used to set up storage +## backends. Defaults to Ceph used as a backend for Cinder, Glance and +## Nova ephemeral storage. +resource_registry: + OS::TripleO::Services::CephMon: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-mon.yaml + OS::TripleO::Services::CephOSD: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-osd.yaml + OS::TripleO::Services::CephClient: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-client.yaml + +parameter_defaults: + + #### BACKEND SELECTION #### + + ## Whether to enable iscsi backend for Cinder. + CinderEnableIscsiBackend: false + ## Whether to enable rbd (Ceph) backend for Cinder. + CinderEnableRbdBackend: true + ## Cinder Backup backend can be either 'ceph' or 'swift'. + CinderBackupBackend: ceph + ## Whether to enable NFS backend for Cinder. + # CinderEnableNfsBackend: false + ## Whether to enable rbd (Ceph) backend for Nova ephemeral storage. + NovaEnableRbdBackend: true + ## Glance backend can be either 'rbd' (Ceph), 'swift' or 'file'. + GlanceBackend: rbd + ## Gnocchi backend can be either 'rbd' (Ceph), 'swift' or 'file'. + #GnocchiBackend: rbd + ExtraConfig: + #ceph::profile::params::fsid: eb2bb192-b1c9-11e6-9205-525400330667 + #ceph::profile::params::osd_pool_default_pg_num: 256 + #ceph::profile::params::osd_pool_default_pgp_num: 256 + ceph::profile::params::osd_pool_default_size: 3 + ceph::profile::params::osd_pool_default_min_size: 2 + ceph::profile::params::osd_recovery_max_active: 1 + ceph::profile::params::osd_max_backfills: 1 + ceph::profile::params::osd_recovery_op_priority: 1 + # OpenStack Ocata creates 8 ceph osd pools: + # rbd, backups, images, manila_data, manila_metadata, metrics, vms, volumes + CephPools: + backups: + pg_num: 8 + pgp_num: 8 + images: + pg_num: 64 + pgp_num: 64 + manila_data: + pg_num: 8 + pgp_num: 8 + manila_metadata: + pg_num: 8 + pgp_num: 8 + metrics: + pg_num: 8 + pgp_num: 8 + vms: + pg_num: 64 + pgp_num: 64 + volumes: + pg_num: 8 + pgp_num: 8 + + CephStorageExtraConfig: + # Just one OSD per 1029p. + ceph::profile::params::osds: + '/dev/sdb': {} + # NOTE: Some of the R620 nodes have only sda sdb + #'/dev/sde': {} + #'/dev/sdf': {} + #'/dev/sdg': {} diff --git a/RDU-Scale/ffwd/newton/roles_data.yaml b/RDU-Scale/ffwd/newton/roles_data.yaml new file mode 100644 index 0000000..3c07bcf --- /dev/null +++ b/RDU-Scale/ffwd/newton/roles_data.yaml @@ -0,0 +1,198 @@ + +- name: Controller # the 'primary' role goes first + CountDefault: 1 + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephMon + - OS::TripleO::Services::CephRgw + - OS::TripleO::Services::CinderApi + - OS::TripleO::Services::CinderBackup + - OS::TripleO::Services::CinderScheduler + - OS::TripleO::Services::CinderVolume + - OS::TripleO::Services::Core + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::Keystone + - OS::TripleO::Services::GlanceApi + - OS::TripleO::Services::GlanceRegistry + - OS::TripleO::Services::HeatApi + - OS::TripleO::Services::HeatApiCfn + - OS::TripleO::Services::HeatApiCloudwatch + - OS::TripleO::Services::HeatEngine + - OS::TripleO::Services::MySQL + - OS::TripleO::Services::NeutronDhcpAgent + - OS::TripleO::Services::NeutronL3Agent + - OS::TripleO::Services::NeutronMetadataAgent + - OS::TripleO::Services::NeutronApi + - OS::TripleO::Services::NeutronCorePlugin + - OS::TripleO::Services::NeutronOvsAgent + - OS::TripleO::Services::RabbitMQ + - OS::TripleO::Services::HAproxy + - OS::TripleO::Services::Keepalived + - OS::TripleO::Services::Memcached + - OS::TripleO::Services::Pacemaker + - OS::TripleO::Services::Redis + - OS::TripleO::Services::NovaConductor + - OS::TripleO::Services::MongoDb + - OS::TripleO::Services::NovaApi + - OS::TripleO::Services::NovaMetadata + - OS::TripleO::Services::NovaScheduler + - OS::TripleO::Services::NovaConsoleauth + - OS::TripleO::Services::NovaVncProxy + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::SwiftProxy + - OS::TripleO::Services::SwiftStorage + - OS::TripleO::Services::SwiftRingBuilder + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::CeilometerApi + - OS::TripleO::Services::CeilometerCollector + - OS::TripleO::Services::CeilometerExpirer + - OS::TripleO::Services::CeilometerAgentCentral + - OS::TripleO::Services::CeilometerAgentNotification + - OS::TripleO::Services::Horizon + - OS::TripleO::Services::GnocchiApi + - OS::TripleO::Services::GnocchiMetricd + - OS::TripleO::Services::GnocchiStatsd + - OS::TripleO::Services::ManilaApi + - OS::TripleO::Services::ManilaScheduler + - OS::TripleO::Services::ManilaBackendGeneric + - OS::TripleO::Services::ManilaBackendNetapp + - OS::TripleO::Services::ManilaBackendCephFs + - OS::TripleO::Services::ManilaShare + - OS::TripleO::Services::AodhApi + - OS::TripleO::Services::AodhEvaluator + - OS::TripleO::Services::AodhNotifier + - OS::TripleO::Services::AodhListener + - OS::TripleO::Services::SaharaApi + - OS::TripleO::Services::SaharaEngine + - OS::TripleO::Services::IronicApi + - OS::TripleO::Services::IronicConductor + - OS::TripleO::Services::NovaIronic + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::OpenDaylightApi + - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: P1029Compute + CountDefault: 0 + HostnameFormatDefault: '%stackname%-1029pcompute-%index%' + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephClient + - OS::TripleO::Services::CephExternal + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::NovaCompute + - OS::TripleO::Services::NovaLibvirt + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::ComputeNeutronCorePlugin + - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::ComputeCeilometerAgent + - OS::TripleO::Services::ComputeNeutronL3Agent + - OS::TripleO::Services::ComputeNeutronMetadataAgent + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::NeutronSriovAgent + - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: R620Compute + CountDefault: 0 + HostnameFormatDefault: '%stackname%-620rcompute-%index%' + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephClient + - OS::TripleO::Services::CephExternal + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::NovaCompute + - OS::TripleO::Services::NovaLibvirt + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::ComputeNeutronCorePlugin + - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::ComputeCeilometerAgent + - OS::TripleO::Services::ComputeNeutronL3Agent + - OS::TripleO::Services::ComputeNeutronMetadataAgent + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::NeutronSriovAgent + - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: R630Compute + CountDefault: 0 + HostnameFormatDefault: '%stackname%-630rcompute-%index%' + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephClient + - OS::TripleO::Services::CephExternal + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::NovaCompute + - OS::TripleO::Services::NovaLibvirt + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::ComputeNeutronCorePlugin + - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::ComputeCeilometerAgent + - OS::TripleO::Services::ComputeNeutronL3Agent + - OS::TripleO::Services::ComputeNeutronMetadataAgent + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::NeutronSriovAgent + - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: BlockStorage + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::BlockStorageCinderVolume + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: ObjectStorage + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::SwiftStorage + - OS::TripleO::Services::SwiftRingBuilder + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts + +- name: CephStorage + ServicesDefault: + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephOSD + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::SensuClient + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::VipHosts diff --git a/RDU-Scale/ffwd/newton/scheduler-hints.yaml b/RDU-Scale/ffwd/newton/scheduler-hints.yaml new file mode 100644 index 0000000..93e0e45 --- /dev/null +++ b/RDU-Scale/ffwd/newton/scheduler-hints.yaml @@ -0,0 +1,11 @@ +parameter_defaults: + ControllerSchedulerHints: + 'capabilities:node': 'controller-%index%' + P1029ComputeSchedulerHints: + 'capabilities:node': '1029p-compute-%index%' + R630ComputeSchedulerHints: + 'capabilities:node': 'r630-compute-%index%' + R620ComputeSchedulerHints: + 'capabilities:node': 'r620-compute-%index%' + CephStorageSchedulerHints: + 'capabilities:node': 'cephstorage-%index%' diff --git a/RDU-Scale/ffwd/overcloud_deploy.sh b/RDU-Scale/ffwd/overcloud_deploy.sh new file mode 100644 index 0000000..6c3ffed --- /dev/null +++ b/RDU-Scale/ffwd/overcloud_deploy.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +openstack overcloud deploy \ + --timeout 100 \ + --templates /usr/share/openstack-tripleo-heat-templates \ + --libvirt-type kvm \ + --stack overcloud \ + -r /home/stack/ffwd/newton/roles_data.yaml \ + -e /home/stack/ffwd/newton/nodes.yaml \ + -e /home/stack/ffwd/newton/environments/args.yaml -e /home/stack/ffwd/newton/environments/compute-params.yaml -e /home/stack/ffwd/newton/environments/controller-params.yaml -e /home/stack/ffwd/newton/environments/firstboot-env.yaml \ + -e /home/stack/ffwd/newton/r620-storage-environment.yaml \ + -e /home/stack/ffwd/newton/scheduler-hints.yaml \ + -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ + -e /home/stack/ffwd/newton/network-environment.yaml \ + --log-file overcloud_deployment_64.log + diff --git a/RDU-Scale/ffwd/scripts/cmds b/RDU-Scale/ffwd/scripts/cmds new file mode 100644 index 0000000..5a4bc4d --- /dev/null +++ b/RDU-Scale/ffwd/scripts/cmds @@ -0,0 +1,112 @@ +#!/bin/bash +# TODO: obviously ansible +HOST= +PASSWORD= +CLOUD= +set -x + +time ir foreman --user ${CLOUD} --password ${PASSWORD} --url https://foreman.rdu.openstack.engineering.redhat.com --strategy ipmi --host-ipmi-username quads --host-ipmi-password ${PASSWORD} --host-password 100yard- --medium-id 9 --os-id 1 -vvv --wait 600 --ping-deadline 300 --roles baremetal,undercloud,tester --host-key ${HOME}/.ssh/id_rsa --host-ipmi-address mgmt-${HOST} --host-address ${HOST} -o provision.yaml + +rm -rf ${HOME}/.ssh/known_hosts +ssh-keyscan ${HOST} >> ~/.ssh/known_hosts +sshpass -f ${HOME}/pwd ssh-copy-id -i ~/.ssh/id_rsa.pub root@${HOST} + +# host type dependant cleanup +# P1029 +#ssh -q -o StrictHostKeyChecking=no root@${HOST} ' +#ifdown enp94s0f0.101 enp94s0f0.200 enp94s0f0 enp94s0f1.102 enp94s0f1.200 enp94s0f1 enp94s0f2.103 enp94s0f2.200 enp94s0f2 enp94s0f3.104 enp94s0f3.200 enp94s0f3 +#' +# R620 +ssh -q -o StrictHostKeyChecking=no root@${HOST} ' +for net in em1.103 em1.200 em1 em2.104 em2.200 em2 p2p3.101 p2p3.200 p2p3 p2p4.102 p2p4.200 +do + echo "Shutting down ${net}" + ip link set dev ${net} down + rm -rf /etc/sysconfig/network-scripts/ifcfg-${net} +done + +' +scp ${HOME}/openstack-templates/RDU-Scale/ffwd/undercloud_hiera_override.yaml root@${HOST}:/root/ +ssh -q -o StrictHostKeyChecking=no root@${HOST} ' +chmod +x /root +chmod 755 /root/undercloud_hiera_override.yaml +' + +time ir tripleo-undercloud --config-file ${HOME}/openstack-templates/RDU-Scale/ffwd/undercloud.conf -o undercloud-install.yml --version 10 --images-update no --images-task rpm --mirror bos --ssl True --build z5 +# workaround for failed infrared + +ssh -q -o StrictHostKeyChecking=no root@${HOST} ' +sed -i -e "/MaxSessions/d" /etc/ssh/sshd_config +sed -i -e "/MaxStartups/d" /etc/ssh/sshd_config +echo "MaxSessions 155" >> /etc/ssh/sshd_config +echo "MaxStartups 60:100:300" >> /etc/ssh/sshd_config +systemctl reload sshd +' +ssh -q -o StrictHostKeyChecking=no root@${HOST} ' +cat < /etc/sysconfig/network-scripts/ifcfg-vlan10 +DEVICE=vlan10 +ONBOOT=yes +HOTPLUG=no +TYPE=OVSIntPort +OVS_BRIDGE=br-ctlplane +OVS_OPTIONS="tag=10" +BOOTPROTO=static +IPADDR=172.21.0.1 +PREFIX=24 +NM_CONTROLLED=no +EOF + +ifup vlan10 + +RULE="-s 172.21.0.0/16 ! -d 172.21.0.0/16 -j MASQUERADE" +if ! sudo iptables -t nat -C BOOTSTACK_MASQ $RULE; then + sudo iptables -t nat -A BOOTSTACK_MASQ $RULE + sudo sh -c "iptables-save > /etc/sysconfig/iptables" +fi + +RULE="-s 172.21.0.0/16 -j ACCEPT" +if ! sudo iptables -t filter -C INPUT $RULE; then + POSITION=$(sudo iptables -L --line-numbers | grep REJECT | awk "{print \$1}" | head -n 1) + sudo iptables -t filter -I INPUT $POSITION $RULE + sudo sh -c "iptables-save > /etc/sysconfig/iptables" +fi + +' + +scp ~/instackenv.json stack@${HOST}:/home/stack/ +ssh -q -o StrictHostKeyChecking=no stack@${HOST} ' +source ~/stackrc +openstack baremetal import --json ~/instackenv.json +openstack baremetal configure boot +' + +time ir tripleo-overcloud --deployment-files ${HOME}/openstack-templates/RDU-Scale/ffwd/ --deploy yes --version 10 --introspect no --instackenv-file ${HOME}/instackenv.json --overcloud-script ${HOME}/openstack-templates/RDU-Scale/ffwd/overcloud_deploy.sh + +ssh -q -o StrictHostKeyChecking=no stack@${HOST} ' +source ~/overcloudrc +openstack network create public --external --provider-network-type vlan --provider-physical-network datacentre --provider-segment 10 +openstack subnet create public --network public --dhcp --allocation-pool start=172.21.0.100,end=172.21.250.250 --gateway 172.21.0.1 --subnet-range 172.21.0.0/16 +neutron subnet-update public --dns-nameserver 10.12.64.161 +' + +ssh -q -o StrictHostKeyChecking=no stack@${HOST} ' +sudo yum -y install python-virtualenv gcc-c++ gcc cpp openssl-devel +virtualenv venv +. venv/bin/activate +pip install setuptools -U +pip install cffi -U +pip install functools32 +pip install pyshaker +wget http://elk.browbeatproject.org:9090/~smalleni/shaker-image.qcow2 +source ~/overcloudrc.v3 +openstack image create --public --file shaker-image.qcow2 --disk-format qcow2 shaker-image +openstack flavor create --ram 512 --disk 3 --vcpus 1 shaker-flavor +openstack quota set --cores -1 --instances -1 --volumes -1 \ + --networks -1 --subnets -1 --ports -1 --routers -1 \ + --ram -1 --secgroups -1 --fixed-ips -1 \ + --floating-ips -1 --key-pairs -1 --snapshots -1 admin +' +ssh -q -o StrictHostKeyChecking=no stack@${HOST} ' +source ~/stackrc +for i in `nova list|awk "/ACTIVE/ {print \\\$(NF-1)}" |awk -F"=" "{print \\\$NF}"`; do echo $i; ssh -o StrictHostKeyChecking=no heat-admin@$i "sudo mkdir -p /etc/systemd/system/ovs-vswitchd.service.d/ ; echo -e \"[Service]\nLimitNOFILE=262144\" | sudo tee /etc/systemd/system/ovs-vswitchd.service.d/limit_no_file.conf ; sudo systemctl daemon-reload ; sudo systemctl restart openvswitch; sudo sysctl -w fs.inotify.max_user_instances=4096 "; done +' diff --git a/RDU-Scale/ffwd/scripts/instack_json.sh b/RDU-Scale/ffwd/scripts/instack_json.sh new file mode 100644 index 0000000..a4a91e8 --- /dev/null +++ b/RDU-Scale/ffwd/scripts/instack_json.sh @@ -0,0 +1,13 @@ +curl http://quads.scalelab.redhat.com/cloud/cloud21_instackenv.json > ~/instackenv.json +#Undercloud +jq 'del(.nodes[]|select(.pm_addr == "mgmt-....."))' ~/instackenv.json > ~/new +mv ~/new ~/instackenv.json + +sed -i -e 's/"cpu": "2",/"cpu": "20",/g' ~/instackenv.json +sed -i -e 's/"disk": "20",/"disk": "200",/g' ~/instackenv.json +sed -i -e 's/"memory": "1024",/"memory": "10240",/g' ~/instackenv.json + +sed -i -e 's/mgmt-\(.*\).rdu.openstack.engineering.redhat.com/mgmt-\1.rdu.openstack.engineering.redhat.com",\n "name": "\1.rdu.openstack.engineering.redhat.com",\n "capabilities": "node:\1,boot_option:local,cpu_vt:true,cpu_hugepages:true,cpu_txt:true,cpu_aes:true,cpu_hugepages_1g:true/g' ~/instackenv.json +let x=0 ; grep node ~/instackenv.json | grep capabilities | grep -v controller | grep -v compute | grep -v cephstorage | head -n 3 | cut -d ':' -f3 | cut -d ',' -f1 | while read node; do sed -i -e "s/node:${node}/node:controller-${x}/g" ~/instackenv.json ; let x=x+1; done +let x=0 ; grep node ~/instackenv.json | grep capabilities | grep -v controller | grep -v compute | grep -v cephstorage | head -n 3 | cut -d ':' -f3 | cut -d ',' -f1 | while read node; do sed -i -e "s/node:${node}/node:cephstorage-${x}/g" ~/instackenv.json ; let x=x+1; done +grep node ~/instackenv.json | grep capabilities | grep -v controller | grep -v compute | grep -v cephstorage | cut -d ':' -f3 | cut -d ',' -f1 | cut -d '-' -f3 | sort | uniq |while read TYPE; do let x=0 ; grep node ~/instackenv.json | grep capabilities | grep -v controller | grep -v compute | grep -v cephstorage | grep "${TYPE}" | cut -d ':' -f3 | cut -d ',' -f1 | while read node; do TYPE="$(echo ${node}|cut -d '-' -f3)" ; sed -i -e "s/node:${node}/node:${TYPE,,}-compute-${x}/g" ~/instackenv.json ; let x=x+1; done; done diff --git a/RDU-Scale/ffwd/scripts/minor b/RDU-Scale/ffwd/scripts/minor new file mode 100644 index 0000000..92694d0 --- /dev/null +++ b/RDU-Scale/ffwd/scripts/minor @@ -0,0 +1,2 @@ +git clone https://github.com/xbezdick/hackfest.git +ansible-playbook -i $(infrared workspace inventory) hackfest/minor/minor.yml diff --git a/RDU-Scale/ffwd/scripts/tempest b/RDU-Scale/ffwd/scripts/tempest new file mode 100644 index 0000000..5682c2c --- /dev/null +++ b/RDU-Scale/ffwd/scripts/tempest @@ -0,0 +1,17 @@ +#!/bin/bash +set -x +MIRROR="bos" + IR_HOSTS=$(infrared workspace inventory) + # overcloudrc has to be available locally + ansible -i $IR_HOSTS undercloud \ + -m fetch \ + -a 'dest=./overcloudrc.v3 src=/home/stack/overcloudrc.v3 flat=yes' + + ir tempest --openstack-installer tripleo \ + --tests all \ + --setup rpm \ + --openstack-version 10 \ + --openstackrc ./overcloudrc.v3 \ + --results-formats junitxml,html \ + --config-options "image.http_image=http://rhos-qe-mirror-$MIRROR.usersys.redhat.com/images/cirros-0.3.5-x86_64-disk.img" + diff --git a/RDU-Scale/ffwd/undercloud.conf b/RDU-Scale/ffwd/undercloud.conf new file mode 100644 index 0000000..414fce4 --- /dev/null +++ b/RDU-Scale/ffwd/undercloud.conf @@ -0,0 +1,24 @@ +[DEFAULT] +# Network interface on the Undercloud that will be handling the PXE +# boots and DHCP for Overcloud instances. (string value) +# Machine type dependant +# P1029 +#local_interface = enp94s0f1 +#R620 +local_interface = p2p4 +local_ip = 172.31.0.1/16 +# TODO: test with MTU 9000 +#local_mtu = 9000 +network_gateway = 172.31.0.1 +undercloud_public_vip = 172.31.0.2 +undercloud_admin_vip = 172.31.0.3 +network_cidr = 172.31.0.0/16 +masquerade_network = 172.31.0.0/16 +dhcp_start = 172.31.0.5 +dhcp_end = 172.31.125.35 +inspection_iprange = 172.31.125.40,172.31.250.130 +scheduler_max_attempts = 200 +undercloud_debug = false +# NEEDED FOR 1029p nodes +ipxe_enabled = false +hieradata_override=/root/undercloud_hiera_override.yaml diff --git a/RDU-Scale/ffwd/undercloud_hiera_override.yaml b/RDU-Scale/ffwd/undercloud_hiera_override.yaml new file mode 100644 index 0000000..ec6d565 --- /dev/null +++ b/RDU-Scale/ffwd/undercloud_hiera_override.yaml @@ -0,0 +1,26 @@ +swift::proxy::workers: "24" +glance::api::workers: "24" +glance::registry::workers: "24" +heat::engine::num_engine_workers: "24" +heat::api::workers: "24" +heat::api_cfn::workers: "24" +keystone::admin_workers: "24" +keystone::public_workers: "24" +neutron::server::api_workers: "24" +neutron::server::rpc_workers: "24" +neutron::agents::metadata::metadata_workers: "24" +nova::api::osapi_compute_workers: "24" +nova::api::metadata_workers: "24" +nova::conductor::workers: "24" +ironic::api::workers: "24" +mistral::api::api_workers: "24" +swift::proxy::workers: "24" +keystone::wsgi::apache::threads: "1" +keystone::wsgi::apache::workers: "64" +ceilometer::wsgi::apache::threads: "1" +ceilometer::wsgi::apache::workers: "64" +aodh::wsgi::apache::threads: "1" +aodh::wsgi::apache::workers: "64" +nova::wsgi::apache::threads: "1" +nova::wsgi::apache::workers: "64" +