diff options
-rwxr-xr-x | ci/deploy.sh | 27 | ||||
-rw-r--r-- | config/build/build_settings.yaml | 26 | ||||
-rw-r--r-- | config/deploy/deploy_settings.yaml | 11 | ||||
-rw-r--r-- | config/deploy/network/network-environment-example.yaml | 71 | ||||
-rw-r--r-- | config/inventory/pod_example_settings.yaml | 46 |
5 files changed, 168 insertions, 13 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh index a3bdf562..9e6c1e08 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -5,16 +5,6 @@ # author: Tim Rozet (trozet@redhat.com) # # Based on RDO Manager http://www.rdoproject.org -# -# Pre-requisties: -# - Supports 3 or 4 network interface configuration -# - Target system must be RPM based -# - Provisioned nodes expected to have following order of network connections (note: not all have to exist, but order is maintained): -# eth0- admin network -# eth1- private network (+storage network in 3 NIC config) -# eth2- public network -# eth3- storage network -# - script assumes /24 subnet mask set -e @@ -28,6 +18,8 @@ vm_index=4 ha_enabled="TRUE" ping_site="8.8.8.8" ntp_server="pool.ntp.org" +net_isolation_enabled="TRUE" + declare -i CNT declare UNDERCLOUD @@ -189,8 +181,6 @@ function setup_instack_vm { # extra space to overwrite the previous connectivity output echo -e "${blue}\r ${reset}" - ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "if ! ip a s eth1 | grep 192.0.2.1 > /dev/null; then ip a a 192.0.2.1/24 dev eth1; fi" - #add the instack brbm1 interface virsh attach-interface --domain instack --type network --source brbm1 --model rtl8139 --config --live sleep 1 @@ -295,6 +285,11 @@ function undercloud_prep_overcloud_deploy { DEPLOY_OPTIONS+=" --ntp-server $ntp_server" fi + if [ $net_isolation_enabled == "TRUE" ]; then + DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml" + DEPLOY_OPTIONS+=" -e network-environment.yaml" + fi + ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI source stackrc set -o errexit @@ -311,7 +306,7 @@ echo "Configuring nameserver on ctlplane network" neutron subnet-update \$(neutron subnet-list | grep -v id | grep -v \\\\-\\\\- | awk {'print \$2'}) --dns-nameserver 8.8.8.8 echo "Executing overcloud deployment, this should run for an extended period without output." sleep 60 #wait for Hypervisor stats to check-in to nova -openstack overcloud deploy --templates $DEPLOY_OPTIONS -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e network-environment.yaml -e opendaylight.yaml +openstack overcloud deploy --templates $DEPLOY_OPTIONS -e opendaylight.yaml EOI } @@ -325,6 +320,7 @@ display_usage() { echo -e " -r|--resources : Directory to deployment resources. Optional. Defaults to /var/opt/opnfv/stack \n" echo -e " -v|--virtual : Virtualize overcloud nodes instead of using baremetal. \n" echo -e " --no-ha : disable High Availablility deployment scheme, this assumes a single controller and single compute node \n" + echo -e " --flat : disable Network Isolation and use a single flat network for the underlay network." } ##translates the command line paramaters into variables @@ -375,6 +371,11 @@ parse_cmdline() { echo "HA Deployment Disabled" shift 1 ;; + --flat ) + net_isolation_enabled="FALSE" + echo "Underlay Network Isolation Disabled: using flat configuration" + shift 1 + ;; *) display_usage exit 1 diff --git a/config/build/build_settings.yaml b/config/build/build_settings.yaml new file mode 100644 index 00000000..93ac9444 --- /dev/null +++ b/config/build/build_settings.yaml @@ -0,0 +1,26 @@ +build_params: + opendaylight: true + onos: false + ovs: true + odl_puppet: true + +opendaylight_config: + name: "OpenDaylight SFC" + method: zip + location: https://www.dropbox.com/s/6w76eo7loltvvb5/openstack.net-virt-sfc-karaf-1.2.1-SNAPSHOT.zip + +onos_config: + name: "ONOS Base Controller" + method: rpm + location: https://www.example.com/onos.rpm + +ovs_config: + name: "OVS NSH Build" + method: rpm + location: https://www.example.com/ovs_nsh_noarch.rpm + +odl_puppet_config: + name: "Puppet to install ODL SFC" + method: git + location: https://github.com/puppet-opendaylight.git + version: "stable/liberty" diff --git a/config/deploy/deploy_settings.yaml b/config/deploy/deploy_settings.yaml new file mode 100644 index 00000000..f024116c --- /dev/null +++ b/config/deploy/deploy_settings.yaml @@ -0,0 +1,11 @@ +global_params: + ha_enabled: true + network_isolation_settings: network/network-environment-example.yaml + +deploy_options: + sdn_controller: opendaylight + tacker: false + congress: false + + + diff --git a/config/deploy/network/network-environment-example.yaml b/config/deploy/network/network-environment-example.yaml new file mode 100644 index 00000000..f6c101fa --- /dev/null +++ b/config/deploy/network/network-environment-example.yaml @@ -0,0 +1,71 @@ +resource_registry: + OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/nic-configs/cinder-storage.yaml + OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/nic-configs/compute.yaml + OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/nic-configs/controller.yaml + OS::TripleO::ObjectStorage::Net::SoftwareConfig: /home/stack/nic-configs/swift-storage.yaml + OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/nic-configs/ceph-storage.yaml + +parameter_defaults: + # Customize all these values to match the local environment + InternalApiNetCidr: 172.17.0.0/24 + StorageNetCidr: 172.18.0.0/24 + StorageMgmtNetCidr: 172.19.0.0/24 + TenantNetCidr: 172.16.0.0/24 + ExternalNetCidr: 10.1.2.0/24 + # CIDR subnet mask length for provisioning network + ControlPlaneSubnetCidr: 24 + InternalApiAllocationPools: [{'start': '172.17.0.10', 'end': '172.17.0.200'}] + StorageAllocationPools: [{'start': '172.18.0.10', 'end': '172.18.0.200'}] + StorageMgmtAllocationPools: [{'start': '172.19.0.10', 'end': '172.19.0.200'}] + TenantAllocationPools: [{'start': '172.16.0.10', 'end': '172.16.0.200'}] + # Use an External allocation pool which will leave room for floating IPs + ExternalAllocationPools: [{'start': '10.1.2.10', 'end': '10.1.2.50'}] + # Set to the router gateway on the external network + ExternalInterfaceDefaultRoute: 10.1.2.1 + # Gateway router for the provisioning network (or Undercloud IP) + ControlPlaneDefaultRoute: 192.0.2.254 + # Generally the IP of the Undercloud + EC2MetadataIp: 192.0.2.1 + # Define the DNS servers (maximum 2) for the overcloud nodes + DnsServers: ["8.8.8.8","8.8.4.4"] + InternalApiNetworkVlanID: 201 + StorageNetworkVlanID: 202 + StorageMgmtNetworkVlanID: 203 + TenantNetworkVlanID: 204 + ExternalNetworkVlanID: 100 + # May set to br-ex if using floating IPs only on native VLAN on bridge br-ex + NeutronExternalNetworkBridge: "''" + # Customize bonding options if required (ignored if bonds are not used) + BondInterfaceOvsOptions: + "bond_mode=balance-tcp lacp=active other-config:lacp-fallback-ab=true" + + ServiceNetMap: + NeutronTenantNetwork: tenant + CeilometerApiNetwork: internal_api + MongoDbNetwork: internal_api + CinderApiNetwork: internal_api + CinderIscsiNetwork: storage + GlanceApiNetwork: storage + GlanceRegistryNetwork: internal_api + KeystoneAdminApiNetwork: internal_api + KeystonePublicApiNetwork: internal_api + NeutronApiNetwork: internal_api + HeatApiNetwork: internal_api + NovaApiNetwork: internal_api + NovaMetadataNetwork: internal_api + NovaVncProxyNetwork: internal_api + SwiftMgmtNetwork: storage_mgmt + SwiftProxyNetwork: storage + HorizonNetwork: internal_api + MemcachedNetwork: internal_api + RabbitMqNetwork: internal_api + RedisNetwork: internal_api + MysqlNetwork: internal_api + CephClusterNetwork: storage_mgmt + CephPublicNetwork: storage + # Define which network will be used for hostname resolution + ControllerHostnameResolveNetwork: internal_api + ComputeHostnameResolveNetwork: internal_api + BlockStorageHostnameResolveNetwork: internal_api + ObjectStorageHostnameResolveNetwork: internal_api + CephStorageHostnameResolveNetwork: storage diff --git a/config/inventory/pod_example_settings.yaml b/config/inventory/pod_example_settings.yaml new file mode 100644 index 00000000..f24b8e1c --- /dev/null +++ b/config/inventory/pod_example_settings.yaml @@ -0,0 +1,46 @@ +nodes: + node1: + mac_address: "10:23:45:67:89:AB" + ipmi_ip: 10.4.17.2 + ipmi_user: root + ipmi_pass: root + cpus: 2 + memory: 2048 + disk: 40 + arch: "x86_64" + node2: + mac_address: "10:23:45:67:89:AC" + ipmi_ip: 10.4.17.3 + ipmi_user: root + ipmi_pass: root + cpus: 2 + memory: 2048 + disk: 40 + arch: "x86_64" + node3: + mac_address: "10:23:45:67:89:AD" + ipmi_ip: 10.4.17.4 + ipmi_user: root + ipmi_pass: root + cpus: 2 + memory: 2048 + disk: 40 + arch: "x86_64" + node4: + mac_address: "10:23:45:67:89:AE" + ipmi_ip: 10.4.17.5 + ipmi_user: root + ipmi_pass: root + cpus: 2 + memory: 2048 + disk: 40 + arch: "x86_64" + node5: + mac_address: "10:23:45:67:89:AF" + ipmi_ip: 10.4.17.6 + ipmi_user: root + ipmi_pass: root + cpus: 2 + memory: 2048 + disk: 40 + arch: "x86_64" |