aboutsummaryrefslogtreecommitdiffstats
path: root/ci/deploy.sh
AgeCommit message (Collapse)AuthorFilesLines
2017-09-05cleanup: Rename ODL-L3 to ODL, drop ODL-L2Alexandru Avadanii1-3/+3
JIRA: FUEL-279 Change-Id: Ia8bed5e09937a1ffd29a15d40f610d4b0c8f0a17 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-09-05ci/deploy.sh: Remove extra '-s' in image dir pathAlexandru Avadanii1-1/+1
Change-Id: Iabadd8565b7fcac6d3361200f30310391daf6648 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-09-05ci/deploy.sh, lib.sh: Align SSH_KEY with JenkinsAlexandru Avadanii1-10/+13
Jenkins defines a build param also called SSH_KEY, which holds the full path to our MCP private RSA key, as opposed to Fuel@OPNFV, which uses the file basename as SSH_KEY. Switch to using full path in SSH_KEY, while also moving the key outside /tmp. NOTE: When running `ci/deploy.sh` with sudo, key will land in /root/opnfv/mcp.rsa unless SSH_KEY is set via env var. While at it, bring back VM image storage dir param, allowing us to drop one more reference to /tmp. JIRA: FUEL-280 Change-Id: Id1cfa6dbe7b2e6f3915b22281da5957333718401 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-08-23ci/deploy.sh, states: bash debug, continue on errAlexandru Avadanii1-1/+1
Since we don't `set -e` in state files, applying each state will always succeed unless the last instruction in the state fails. Make this uniform by always succeeding in applying the state. While at it, enable bash debugging logs, for better readability of deploy log files. Change-Id: I3cf4886f6d73c6fd1380df1a4e1413334bec1701 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-08-18ci/deploy.sh: yum install --skip-brokenAlexandru Avadanii1-2/+2
Change-Id: I8098eff73ab15fe58cb357db99df76e1bd160652 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-08-17Bring in baremetal supportAlexandru Avadanii1-4/+13
- ci/deploy.sh: fail if default scenario file is missing; - start by copying reclass/classes/cluster/virtual-mcp-ocata-ovs as classes/cluster/baremetal-mcp-ocata-ovs; - add new state (maas) that will handle MaaS configuration; - Split PXE network in two for baremetal: * rename old "pxe" virtual network to "mcpcontrol", make it non-configurable and identical for baremetal/virtual deploys; * new "pxebr" bridge is dedicated for MaaS fabric network, which comes with its own DHCP, TFTP etc.; - Drop hardcoded PXE gateway & static IP for MaaS node, since "mcpcontrol" remains a NAT-ed virtual network, with its own DHCP; - Keep internet access available on first interfaces for cfg01/mas01; - Align MaaS IP addrs (all x.y.z.3), add public IP for easy debug via MaaS dashboard; - Add static IP in new network segment (192.168.11.3/24) on MaaS node's PXE interface; - Set MaaS PXE interface MTU 1500 (weird network errors with jumbo); - MaaS node: Add NAT iptables traffic forward from "mcpcontrol" to "pxebr" interfaces; - MaaS: Add harcoded lf-pod2 machine info (fixed identation in v6); - Switch our targeted scenario to HA; * scenario: s/os-nosdn-nofeature-noha/os-nosdn-nofeature-ha/ - maas region: Use mcp.rsa.pub from ~ubuntu/.ssh/authorized_keys; - add route for 192.168.11.0/24 via mas01 on cfg01; - fix race condition on kvm nodes network setup: * add "noifupdown" support in salt formula for linux.network; * keep primary eth/br-mgmt unconfigured till reboot; TODO: - Read all this info from PDF (Pod Descriptor File) later; - investigate leftover references to eno2, eth3; - add public network interfaces config, IPs; - improve wait conditions for MaaS commision/deploy; - report upstream breakage in system.single; Change-Id: Ie8dd584b140991d2bd992acdfe47f5644bf51409 Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com> Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com> Signed-off-by: Charalampos Kominos <Charalampos.Kominos@enea.com> Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-08-11lib.sh: AArch64: Use VGA video mode for guestsAlexandru Avadanii1-0/+6
On AArch64, there is no Cirrus video, so use VGA mode instead. On Debian systems, also fix a missing link for vgabios-stdvga.bin. Based on previous Armband work from [1]. [1] https://github.com/opnfv/armband/blob/danube.2.0/patches/fuel-library/ arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch Change-Id: Ia84ea5536b68e14993b719488375b0041183a767 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-08-06Merge "ci/deploy.sh: Allow non-root deploys"Alexandru Avadanii1-5/+10
2017-08-01mcp/config: Move scenario defs to separate dirAlexandru Avadanii1-3/+7
Prepare for adding baremetal scenarios by moving existing scenario definitions (intended for deploys on virtual PODs) to their own subdirectory. Change-Id: Iaa75e0b0a9876e4f263fc6bbae796d97848ef99b Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-08-01ci/deploy.sh: Allow non-root deploysAlexandru Avadanii1-5/+10
Currently, deploying Fuel@OPNFV requires the `ci/deploy.sh` to be ran as root user, for: - hypervisor access (virsh); - installing prerequisite packages; We can support non-root deploys if we relax above restriction into: - current user should have hypervisor access beforehand (new check added); - current user has passwordless sudo rights, for installing packages; Later, we should move the package installation out of the deploy script (`ci/deploy.sh`), making the whole deploy possible without sudo, only hypervisor access. After this change, the old way (sudo ci/deploy.sh) should work just like it used to before, so no regression/behavior change should be introduced with this. Change-Id: Ib2ea96aa7b6d67ba0606318407a8adeb51e6969d Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-08-01ci/deploy.sh: Fix "notify" on dumb terminalsAlexandru Avadanii1-1/+1
Dumb terminals (which do not support colors), like "vt220", make `tput setaf` return with an error code, hence bypassing the actual print. Change-Id: Id838583beb30a810aec478ed80d452c6f3203e0f Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-08-01salt.sh: Drop upstream clone in favor of local gitAlexandru Avadanii1-2/+4
salt.sh currently clones the full Fuel@OPNFV git repo from upstream public mirror, preventing us from testing locally edited or new patches. Instead, bring back git submodule handling from old f_repos, clone and patch each submodule locally, then copy the whole parent repo over to cfg01. This is also a first step towards implementing offline deploy support. NOTE: This adds new deploy prerequisite packages: - git (for submodule clone/update); - make (for submodule patching); - rsync (for parent repo replication to cfg01); NOTE: Parent repository is expected to be a git repo, in order to work with git submodules. While at it, perform some minor related changes: - add deploy artifacts (ISOs, qcow2 files) to .gitignore, also used to filter-out such files during rsync to cfg01; - remove obsolete Fuel patches (old f_repos mechanism); - rename "reclass-system-salt-model" submodule; Change-Id: I6210d80d41010b2802e4f1b31acf249a18db7963 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-07-31ci/deploy.sh: MCP cleanup, sanity checksAlexandru Avadanii1-112/+118
- disable false-positive shellcheck errors; - fix obsolete backtick usage; - move obsolete arguments to separate section; - add color-enabled "notify" macro for warn/err messages; - remove obsolete code intended for old Fuel; - fix quoting and double-quoting shellcheck warnings; - minor code changes for better readability; - remove "no healthcheck" flag (obsolete); - add mandantory arguments validation; Change-Id: I991836adc8d76466f2b83b1e472bb9ef6989fff3 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-07-31ci/deploy.sh: Rework bridge arguments for MCPAlexandru Avadanii1-11/+25
Change-Id: I20d6dedeaa31f7986eaa35be49c5388c3fdb4b83 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-07-13Tune network sysctl optionsMichael Polenchuk1-2/+4
* tune net/tcp opts * handle vcpus setting for vms * fix tempest issue with public subnets visible * set reclass data source to local to avoid git clone Change-Id: Ibac9eba8234ebb20854c03b399405968cb2069e8 Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
2017-07-05Turn on opendaylight scenarioMichael Polenchuk1-4/+5
* fix formula & reclass cluster model * bring in running states Change-Id: I8e66e69045f5c745f9aa6f59f7ce6d66b5bf1c95 Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
2017-07-03Rewrite infra deployment scriptsMichael Polenchuk1-22/+35
* bring in scenario files * shift infra code into functions Change-Id: I650a26d03d842c3afcc7fcb97b84ef4826827a38 Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
2017-06-19[mcp] Set default address for salt masterMichael Polenchuk1-3/+3
Change-Id: Iaa9cd3d5734fbf81a224d00ee006b63a66a915f0 Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
2017-06-09[mcp] Copy ssh key to tmp dirAndrii Ostapenko1-2/+2
Copy ssh key to tmp dir to be able to retrieve OS credentials by releng/utils/fetch_os_creds.sh Also adds 'set -x' to ci/deploy.sh Change-Id: I056c626288862f84f47c947461894730ce0483ac Signed-off-by: Andrii Ostapenko <aostapenko@mirantis.com>
2017-06-06[mcp] Mend dpdk scenarioMichael Polenchuk1-0/+3
Make a reboot of the compute nodes to activate hugepages support and re-apply required states then. Also align ovs lcore & pmd masks with two cpu nodes. Change-Id: I4a5defe6f08e912aba2d939ba5ba057af768a40c Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
2017-05-31[mcp] Bring in dpdk scenario supportMichael Polenchuk1-0/+7
Change-Id: Ifd6d61026a0e98e8faf59c7d218333122d70ffe9 Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
2017-05-29[mcp] Mend installation scriptsMichael Polenchuk1-0/+4
* add/unify ssh options * get base image to temporary directory * specify os type for virt install * fix symbolic link to reclass * remove outdated fuel submodules Change-Id: I6833ce78c8fff97e1b89f4e92e6e6b470e9ce99f Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
2017-05-25[mcp] Bring in deployment scriptsMichael Polenchuk1-17/+23
Change-Id: I7d2af958e447a5892f7cd1f6c6fb8616951e2ff3 Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
2016-08-24deploy.sh: accept a timeout flag (-T)Alexandru Avadanii1-4/+15
Original work by Josep, signed by me (Alex) for upstreaming only. Change-Id: I58a7b9bc639bb03b994ea34fc317f5679140d9fd Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com> Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2016-06-17deploy: add support for multiple bridgesJosep Puigdemont1-4/+7
deploy.py: Some Fuel VMs may need more than one network interface. To be able to provide that, we now allow the user to specify the "-b" paramter (bridge) multiple times, creating a new NIC for each one of them. The NICs are created in the same order as they are given in the command line. There is no change in behavior from earlier versions, pxebr will still be the default bridge if none is specified in the command line. deploy.sh: To reflect the new capabilities of deploy.py, we introduce the possibility to specify -B more than once in deploy.sh, and honor that when calling deploy.py. We also make it possible to specify a comma separated list of bridges, as in: -B br1,br2. Change-Id: I1a0100f2cfe755ec6adfeedafb391c2357f46f51 Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
2016-06-16Introducing collection of all fuel and stack deployment logs.Jonas Bjurel1-3/+8
The purpose of this patch is to collect all available Fuel snapshots- and stack/node ldeployment logs for later off-line troubleshooting. The intention is that Jenkins, or other deployment robots will be able to collect all logs from the deployment and store it at some repository where developers can fetch it and perform off-line post deployment trouble-shooting. Following script arguments have been added: CI Arg changes: Added an argument to ci/deploy.sh: -L [Deploy log path and file name], E.g. -L ~/jenkins/deploy/deploy-888.log.tar.gz This will create an tar gzip archive at the path and filename pointed out. If -L is not specified, the log archive will be placed under the CI directory with the following name convention: deploy-YYMMDD-HHMMSS.log.tar.gz Fuel Internal deploy changes: Added an argument to ci/deploy.py -log [Deploy log path and file name], E.g. -log ~/jenkins/deploy/deploy-888.log.tar.gz This will create an tar gzip archive at the path and filename pointed out. If -log is not specified, the log archive will be placed under the CI directory with the following name convention: deploy-YYMMDD-HHMMSS.log.tar.gz READY TO MERGE! VERIFIED! Change-Id: Icb75d9d2e66bdd47f75dcca29071943444d5c823 Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
2016-04-30deploy.sh: do not expect a parameter for -hJosep Puigdemont1-1/+3
If -h was given as a parameter to the script, it would report an error as it expected a parameter, and if it was called as the only parameter, it would run deploy.py as if "old style" parameters had been given, thus showing the usage for the python script, instead of the expected usage message for this script. Update the usage message to include -h. Change-Id: I0930936962c1cb479ec4409ff114cd60a386b276 Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
2016-03-11small fix for deploy.py invocationSzilard Cserey1-6/+9
Change-Id: I8587500c71f05ca69645422ae110651196e0cad2
2016-03-11Add no_deploy_environment optionNikolas Hermanns1-3/+9
For development reason it is useable to have an option so that everything is done except the deploy of the openstack environment. Change-Id: I1f1b7f9c89ee8c9ceea96353e25a51eee53b955c
2016-01-11Added a few more deply.sh arguments needed by JenkinsJonas Bjurel1-8/+53
Added arguments: -B PXE Bridge for booting of Fuel master -f Deploy on existing Fuel master -F Do only create a Fuel master -H NO Health check -S Storage dir for VM images Added checks for URI formats Change-Id: I1f5138a2058e7b3274e9acf4bbbba243a427fb96 Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
2016-01-11Small fixes to the deployment scenario framework:Jonas Bjurel1-18/+27
- Added deploy.sh -d option for dryrun. With -d + all the other mandatory arguments, deploy.sh produces ci/config/dea.yaml and /ci/config/dha.yaml with out actually deploying the stack. - Bugfix to exit with rc <> 0 if deployment fails. - Don't delete the programatically constructed dea.yaml or dha.yaml under fuel/ci/config after deploy has finished. dea.yaml and dha.yaml are needed functest, therefore these files must not be deleted after deployment has finished. They will reside in fuel/ci/config/. - Dont merge the dha-override section in deployment scenarios with the final dha.yaml unless the deployment is virtual. There is no way you can programatically override physicall resources, wireing, ipmi set-up, etc. - while you can for virtual environments. VERIFIED READY TO MERGE Change-Id: If4dedc472e07ed60071ee34c73db29f3b9c45252 Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
2016-01-08A simple method to separate configuration for base fuel, plugins, PODsJonas Bjurel1-6/+178
and deployment/test scenarios READY TO MERGE! Replaces: https://gerrit.opnfv.org/gerrit/#/c/3995/ Abstract -------- This deployment framework relies on a configuration structure, providing base installer configuration, per POD specific configuration, plugin configuration, and deployment scenario configuration. - The base installer configuration resembles the least common denominator of all HW/POD environment and deployment scenarios (These configurations are normally carried by the the installer projects in this case (fuel@OPNFV). - Per POD specific configuration specifies POD unique parameters, the POD parameter possible to alter is governed by the Fuel@OPNFV project. - Plugin configuration - providing configuration of a specific plugin. these configurations maintain there own namespace and are normally maintained by collaborative projects building Fuel@OPNFV plugins - Deployment scenario configuration - provides a high level, POD/HW environment independent scenario configuration for a specific deployment. It defines what features/plugins that shall be deployed - as well needed overrides of the plugin config as well as the base installer-, POD/HW environment- configurations. Objects allowed to override is governed by the Fuel@OPNFV project. Executing a deployment ---------------------- deploy.sh must be executed locally at the target lab/pod/jumpserver A lab configuration structure must be provided - see the section below. It is straight forward to execute a deployment task - as an example: sudo deploy.sh -b file:///home/jenkins/config -l ericsson-1 -p pod-2 -s os_odl-l2_no-ha -i file:///home/jenkins/MyIso.iso -b and -i arguments should be expressed in URI style. The resources can thus be local or remote. Feedback -------- Please give feed-back before I'm going to far on a wrong tangent Implemented scenarios so far: ----------------------------- - os_ha - os_no-ha - os_odl-l3_ha - os_odl-l3_no-ha - os_odl-l2_ha - os_odl-l2_no-ha - os_onos_ha - os_onos_no-ha - os_kvm_ha - os_kvm_no-ha - os_ovs_ha - os_ovs_no-ha - os_kvm_ovs_ha - os_kvm_ovs_no-ha VERIFIED READY TO MERGE JIRA: FUEL-35 Change-Id: I94a9b477d8ed4ee8057c16d8f20fe543f7ecc20d Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
2015-11-27Restructcture of the directory layoutJonas Bjurel1-0/+8
Restructure of the directory layout due to move of Fuel into it's own repo JIRA: FUEL-85 Change-Id: I3647e1992a508f29dce06a5d6c790725c527f6f5 Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>