diff options
Diffstat (limited to 'foreman')
-rwxr-xr-x | foreman/ci/deploy.sh | 65 | ||||
-rw-r--r-- | foreman/docs/src/release-notes.rst | 195 |
2 files changed, 246 insertions, 14 deletions
diff --git a/foreman/ci/deploy.sh b/foreman/ci/deploy.sh index d1bb24c..49e1590 100755 --- a/foreman/ci/deploy.sh +++ b/foreman/ci/deploy.sh @@ -41,6 +41,28 @@ function find_ip { ip addr show $1 | grep -Eo '^\s+inet\s+[\.0-9]+' | awk '{print $2}' } +##finds subnet of ip and netmask +##params: ip, netmask +function find_subnet { + IFS=. read -r i1 i2 i3 i4 <<< "$1" + IFS=. read -r m1 m2 m3 m4 <<< "$2" + printf "%d.%d.%d.%d\n" "$((i1 & m1))" "$((i2 & m2))" "$((i3 & m3))" "$((i4 & m4))" +} + +##finds netmask of interface +##params: interface +##returns long format 255.255.x.x +function find_netmask { + ifconfig $1 | grep -Eo 'netmask\s+[\.0-9]+' | awk '{print $2}' +} + +##finds short netmask of interface +##params: interface +##returns short format, ex: /21 +function find_short_netmask { + echo "/$(ip addr show $1 | grep -Eo '^\s+inet\s+[\/\.0-9]+' | awk '{print $2}' | cut -d / -f2)" +} + ##increments next IP ##params: ip ##assumes a /24 subnet @@ -253,7 +275,15 @@ for interface in ${output}; do continue fi interface_ip_arr[$if_counter]=$new_ip - sed -i 's/^.*eth_replace'"$if_counter"'.*$/ config.vm.network "public_network", ip: '\""$new_ip"\"', bridge: '\'"$interface"\''/' Vagrantfile + subnet_mask=$(find_netmask $interface) + if [ "$if_counter" -eq 1 ]; then + private_subnet_mask=$subnet_mask + private_short_subnet_mask=$(find_short_netmask $interface) + fi + if [ "$if_counter" -eq 3 ]; then + storage_subnet_mask=$subnet_mask + fi + sed -i 's/^.*eth_replace'"$if_counter"'.*$/ config.vm.network "public_network", ip: '\""$new_ip"\"', bridge: '\'"$interface"\'', netmask: '\""$subnet_mask"\"'/' Vagrantfile ((if_counter++)) done @@ -291,8 +321,6 @@ else sed -i 's/^.*default_gw =.*$/ default_gw = '\""$defaultgw"\"'/' Vagrantfile fi -sed -i 's/^.*default_gw:.*$/default_gw:'" $defaultgw"'/' opnfv_ksgen_settings.yml - if [ $base_config ]; then if ! cp -f $base_config opnfv_ksgen_settings.yml; then echo "{red}ERROR: Unable to copy $base_config to opnfv_ksgen_settings.yml${reset}" @@ -311,12 +339,13 @@ echo "${blue}Gathering network parameters for Target System...this may take a fe ##if single node deployment all the variables will have the same ip ##interface names will be enp0s3, enp0s8, enp0s9 in chef/centos7 +sed -i 's/^.*default_gw:.*$/default_gw:'" $defaultgw"'/' opnfv_ksgen_settings.yml + ##replace private interface parameter ##private interface will be of hosts, so we need to know the provisioned host interface name ##we add biosdevname=0, net.ifnames=0 to the kickstart to use regular interface naming convention on hosts ##replace IP for parameters with next IP that will be given to controller if [ "$deployment_type" == "single_network" ]; then - sed -i 's/^.*ovs_tunnel_if:.*$/ ovs_tunnel_if: eth0/' opnfv_ksgen_settings.yml ##we also need to assign IP addresses to nodes ##for single node, foreman is managing the single network, so we can't reserve them ##not supporting single network anymore for now @@ -324,13 +353,9 @@ if [ "$deployment_type" == "single_network" ]; then exit 0 elif [[ "$deployment_type" == "multi_network" || "$deployment_type" == "three_network" ]]; then - sed -i 's/^.*ovs_tunnel_if:.*$/ ovs_tunnel_if: eth1/' opnfv_ksgen_settings.yml if [ "$deployment_type" == "three_network" ]; then - sed -i 's/^.*storage_iface:.*$/ storage_iface: eth1/' opnfv_ksgen_settings.yml - sed -i 's/^.*network_type:.*$/ network_type: three_network/' opnfv_ksgen_settings.yml - else - sed -i 's/^.*storage_iface:.*$/ storage_iface: eth3/' opnfv_ksgen_settings.yml + sed -i 's/^.*network_type:.*$/network_type: three_network/' opnfv_ksgen_settings.yml fi ##get ip addresses for private network on controllers to make dhcp entries @@ -365,8 +390,10 @@ elif [[ "$deployment_type" == "multi_network" || "$deployment_type" == "three_ne fi done - ##replace public_vips + ##replace foreman site next_public_ip=${interface_ip_arr[2]} + sed -i 's/^.*foreman_url:.*$/ foreman_url:'" https:\/\/$next_public_ip"'\/api\/v2\//' opnfv_ksgen_settings.yml + ##replace public vips next_public_ip=$(increment_ip $next_public_ip 10) grep -E '*public_vip' opnfv_ksgen_settings.yml | while read -r line ; do sed -i 's/^.*'"$line"'.*$/ '"$line $next_public_ip"'/' opnfv_ksgen_settings.yml @@ -377,11 +404,21 @@ elif [[ "$deployment_type" == "multi_network" || "$deployment_type" == "three_ne fi done + ##replace private_network param + private_subnet=$(find_subnet $next_private_ip $private_subnet_mask) + sed -i 's/^.*private_network:.*$/ private_network:'" $private_subnet"'/' opnfv_ksgen_settings.yml + ##replace storage_network + if [ "$deployment_type" == "three_network" ]; then + sed -i 's/^.*storage_network:.*$/ storage_network:'" $private_subnet"'/' opnfv_ksgen_settings.yml + else + next_storage_ip=${interface_ip_arr[3]} + storage_subnet=$(find_subnet $next_storage_ip $storage_subnet_mask) + sed -i 's/^.*storage_network:.*$/ storage_network:'" $storage_subnet"'/' opnfv_ksgen_settings.yml + fi + ##replace private_subnet param - network=.0 - baseaddr="$(echo $next_private_ip | cut -d. -f1-3)" - private_subnet=$baseaddr$network - sed -i 's/^.*private_subnet:.*$/ private_subnet:'" $private_subnet"''"\/24"'/' opnfv_ksgen_settings.yml + private_subnet=$private_subnet'\'$private_short_subnet_mask + sed -i 's/^.*private_subnet:.*$/ private_subnet:'" $private_subnet"'/' opnfv_ksgen_settings.yml else printf '%s\n' 'deploy.sh: Unknown network type: $deployment_type' >&2 exit 1 diff --git a/foreman/docs/src/release-notes.rst b/foreman/docs/src/release-notes.rst new file mode 100644 index 0000000..cb6db30 --- /dev/null +++ b/foreman/docs/src/release-notes.rst @@ -0,0 +1,195 @@ +:Authors: Tim Rozet (trozet@redhat.com) +:Version: 0.1 + +================================================================ +OPNFV Release Note for "Arno-RC2 release candidate" - Foreman/QuickStack@OPNFV +================================================================ + +Abstract +======== + +This document provides the release notes for ARNO-RC2 release candidate of Foreman/QuickStack@OPNFV. + +License +======= +All Foreman/QuickStack and "common" entities are protected by the Apache License ( http://www.apache.org/licenses/ ) + +**Contents** + +1 Version History + +2 Important notes + +3 Summary + +4 Delivery Data + +5 Known Limitations, Issues and Workarounds + +6 Test Result + +7 References + +1 Version history +=================== + ++--------------------+--------------------+--------------------+--------------------+ +| **Date** | **Ver.** | **Author** | **Comment** | +| | | | | ++--------------------+--------------------+--------------------+--------------------+ +| 2015-04-16 | 0.1.0 | Tim Rozet | First draft | +| | | | | ++--------------------+--------------------+--------------------+--------------------+ + +2 Important notes +=================== + +This is the first OPNFV Arno pre-release that implements the deploy stage of the OPNFV CI pipeline. + +Carefully follow the installation-instructions which guide a user on how to deploy OPNFV using Foreman/QuickStack installer. + +3 Summary +=========== + +Arno Foreman/QuickStack@OPNFV is an installer capable of setting up an OPNFV target system. The current definition of an OPNFV target system is OpenStack Juno upstream project versioncombined with OpenDaylight version: Helium. The system is deployed with OpenStack High Availability (HA) for most OpenStack services. OpenDaylight is deployed in non-HA form as HA is not availble for Arno release. Ceph storage is used as Cinder backend, and is the only supported storage for Arno. Ceph is setup as 3 OSDs and 3 Monitors, one OSD+Mon per Controller node. + +This Arno pre-release of Foreman/QuickStack@OPNFV adds the deploy stage of the OPNFV CI pipeline + +- Documentation is built by Jenkins +- .iso image is built by Jenkins +- Jenkins deploys an Foreman/QuickStack@OPNFV stack to baremetal, which includes 3 control+network nodes, and 2 compute nodes. + +Automatic test of the deployed system is not part of this pre-release. + +4 Release Data +================ + ++--------------------------------------+--------------------------------------+ +| **Project** | Arno/genesis/bgs | +| | | ++--------------------------------------+--------------------------------------+ +| **Repo/tag** | genesis/arno-rc2 | +| | | ++--------------------------------------+--------------------------------------+ +| **Release designation** | Arno RC2 | +| | | ++--------------------------------------+--------------------------------------+ +| **Release date** | 2015-04-23 | +| | | ++--------------------------------------+--------------------------------------+ +| **Purpose of the delivery** | OPNFV Internal quality assurance | +| | and CI Pipline dry-run | +| | | ++--------------------------------------+--------------------------------------+ + +4.1 Version change +------------------ + +4.1.1 Module version changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This is the first tracked version of genesis-Foreman/QuickStack. It is based on following upstream versions: + +- OpenStack (Juno release) + +- OpenDaylight Helium-SR2 + +- CentOS 7 + +4.1.2 Document version changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This is the first tracked version of genesis-Foreman/QuickStack. It comes with the following documentation: + +- OPNFV Installation instructions for - Foreman/QuickStack@OPNFV - ver. 0.0.1 +- OPNFV Release Note for "Arno-RC2 release candidate" - Foreman/QuickStack@OPNFV - ver. 0.1 (this document) + +4.2 Reason for version +---------------------- +4.2.1 Feature additions +~~~~~~~~~~~~~~~~~~~~~~~ + ++--------------------------------------+--------------------------------------+ +| **JIRA REFERENCE** | **SLOGAN** | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: BGS-4 | OPNFV base system install | +| | using Foreman/Quickstack. | ++--------------------------------------+--------------------------------------+ + +4.2.2 Bug corrections +~~~~~~~~~~~~~~~~~~~~~ + +**JIRA TICKETS:** + ++--------------------------------------+--------------------------------------+ +| **JIRA REFERENCE** | **SLOGAN** | +| | | ++--------------------------------------+--------------------------------------+ +| | | +| | | ++--------------------------------------+--------------------------------------+ + +4.3 Deliverables +---------------- + +4.3.1 Software deliverables +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Foreman/QuickStack@OPNFV .iso file +deploy.sh - Automatically deploys Target OPNFV System to Bare Metal + +4.3.2 Documentation deliverables +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- OPNFV Installation instructions for - Foreman/QuickStack@OPNFV - ver. 0.0.1 +- OPNFV Release Note for "Arno-RC2 release candidate" - Foreman/QuickStack@OPNFV - ver. 0.1 (this document) + +5 Known Limitations, Issues and Workarounds +============================================ + +5.1 System Limitations +------------------------- + +**Max number of blades:** 1 Foreman/QuickStack master, 3 Controllers, 20 Compute blades + +**Min number of blades:** 1 Foreman/QuickStack master, 1 Controller, 1 Compute blade + +**Storage:** Ceph is the only supported storage configuration. + +**Min master requirements:** At least 2048 MB of RAM + + +5.2 Known issues +------------------- + +**JIRA TICKETS:** + ++--------------------------------------+--------------------------------------+ +| **JIRA REFERENCE** | **SLOGAN** | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: BGS-13 | bridge br-ex is not auto configured | +| | by puppet | ++--------------------------------------+--------------------------------------+ + +5.3 Workarounds +------------------ +**-** + + +6 Test Result +============== + +Foreman/QuickStack@OPNFV Arno RC2 has undergone QA test runs with the following results: + ++--------------------------------------+--------------------------------------+ +| **TEST-SUITE** | **Results:** | +| | | ++--------------------------------------+--------------------------------------+ +| **-** | **-** | ++--------------------------------------+--------------------------------------+ + + +7 References +============= + +For more information on the OPNFV Arno release, please see: + +http://wiki.opnfv.org/release/arno |