summaryrefslogtreecommitdiffstats
path: root/xci/infra/bifrost
AgeCommit message (Collapse)AuthorFilesLines
2018-10-26Reduce complexity when using bifrost rolesManuel Buil2-3/+2
We are using two variables which have a similar scope: - create_image_via_dib - use_prebuilt_images We could use one of them and not both. create_image_via_dib is selected because it also exists in upstream bifrost use_prebuilt_images = false is the same as create_image_via_dib = true use_prebuilt_images = true is the same as create_image_via_dib = false Change-Id: Ieaab78f1dc2d199746a2b13ebc82e9dc615d92e9 Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-10-17[Baremetal] Add baremetal support to create-nodesManuel Buil2-5/+31
Information about baremetal servers is collected for ironic to do the provisioning. Two main things are done: 1 - baremetalhoststojson.yml fills the json config file fed to ironic so that it knows how to boot the blades. In the baremetal case, the create_vm.yml playbook will only create opnfv vm. The variable vms_to_create holds that information. The variable baremetal_nodes specifies the physical nodes (empty when non baremetal deployments) 2 - For PXE to work, we create a file called baremetalstaticips that has the mapping between mac address from servers and its ip. That file is moved into the dnsmasq config directory Change-Id: I0e788db1deb50769c183b71524a68ac0b925f8aa Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-10-15[baremetal] Add two interfaces to the opnfv vmManuel Buil1-0/+9
opnfv vm requires connectivity to two physical interfaces of the host. These interfaces are: 1 - admin, where DHCP requests will arrive from blades to do PXE boot 2 - mgmt, which connects to the mgmt of the blades to do the ansible configuration To achive this, it is required: 1 - Two libvirt networks that connect to two different linux bridges. The important physical interfaces are connected to them. The interfaces name is fetched from the idf 2 - Two templates representing the new libvirt networks (net-mgmt.xml.j2 and net-admin.xml.j2) 3 - Two interfaces defined in vm.xml.j2 Change-Id: I9037aa36802cfde44717b9394bab79b22d7dfaab Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-10-15[Baremetal] Modify interaction with bifrost rolesManuel Buil4-5/+40
Change some of the variables when calling opnfv-virtual.yml and baremetal=true: 1 - We want to configure DHCP mapping between ip and mac when doing baremetal. The create-nodes role will generate a file with that mapping for us (baremetalstaticips) 2 - Don't download the standard IPA image but build one with Fedora (only one that works in ericsson-pod2) when doing baremetal 3 - Wait for the blade to complete its booting. Its ssh port becomes available with the IPA provision but that is not the final state. We need to wait until the required distro gets installed. When not doing baremetal, this is fine as the VMs boot very fast with the chosen distro but for baremetal it takes a while (ericsson-pod2 servers take around 2 minutes to finish all BIOS booting). The playbook wait-for-baremetal.yml does this. Change-Id: I5536517209ff7f46ec034554d29566707778e397 Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-10-12Update bifrost SHAsManuel Buil1-0/+34
There is a bug when ironic communicates with rabbitmq due to a parameter deprecation. This patch fixes it: https://review.openstack.org/#/c/609499/ And we can take the opportunity to update all SHAs THere is a problem: "Unable to retrieve file contents\nCould not find or access '/home/opnfv/releng-xci/xci/infra/bifrost/playbooks/roles/common/venv_python_path.yml'"} That file is in: /home/opnfv/releng-xci/.cache/repos/bifrost/playbooks/roles/common/venv_python_path.yml As I am not sure how to fix the ansible PATH, for the time being, I just added to where Ansible is searching for it Change-Id: I8e60f43ed7fc78a8925efaa36e41b0d872ea9a74 Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-10-04Merge "[Baremetal] - Change roles and playbooks names"Manuel Buil3-3/+3
2018-10-04Bug fix: Remove use_prebuilt_images conditionManuel Buil1-4/+2
The creation or not of the IPA image does not depend on the value of the use_prebuilt_images. This variable is intended to control the following call to bifrost-create-dib-image role. I added a few comments to clarify what we are doing in each call to the bifrost-create-dib-image role Change-Id: Id66e1a969ca279a055640481719f118744eedf38 Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-10-03[Baremetal] - Change roles and playbooks namesManuel Buil3-3/+3
A few playbooks and the create-vm-nodes role should change the name to reflect the new reality once the baremetal patches are merged. The playbooks that must change the name are: - xci-prepare-virtual.yml - xci-create-virtual.yml Change-Id: Iaed1f93561fa9d39c7916e0643a5445cdddf4f97 Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-09-28[baremetal] idf for opnfv_vm and update the pdfManuel Buil1-1/+2
Physical hardware PODs provide a pdf and a idf to describe hardware and other information (e.g. what is the purpose for each interface). To reuse the same code for opnfv vm and also become consistent, we should also describe the opnfv vm with an idf and a pdf. This patch simplifies what needs to be done for baremetal, especially for this (future) patch: https://gerrit.opnfv.org/gerrit/#/c/60797/11 As we add an idf, we should update dynamic_inventory and how we create the opnfv vm. Obviously, he opnfv_vm.yml gets removed. Change-Id: I930728474631fc214e4a9adc8581e0c16d230176 Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-09-21Add idf and pdf to the xci-create-virtual.ymlManuel Buil2-1/+4
This patch complements this other: https://gerrit.opnfv.org/gerrit/#/c/62575/2 We require the pdf and the idf (when doing baremetal) in the create-vm role, so we should propagate that variable to the playbook that triggers those roles Change-Id: I15806d386db4e6b11192829f2dbc61662bffec2b Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-09-04xci: infra: bifrost: Allow DNS overridesMarkos Chandras1-4/+2
Deployers may want to use a different DNS server so allow them to override the ipv4_nameserver option. If the variable is not set, then we use the libvirt DNS if we are behind a proxy, otherwise we default to the Google DNS. Change-Id: I96cf63758902d4aae3d155b2e8beef650449ebc9 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-06-28Use PDF to set up the XCI VMsManuel Buil9-201/+327
This patch is doing the first work item of the spec: https://github.com/opnfv/releng-xci/blob/master/docs/specs/infra_manager.rst It creates the required VMs by XCI to afterwards deploy the VIM. It does that by reading the pdf provided by the user. - It is currently assumed that the OS for the VM will be installed in the first disk of the node described by the pdf - It is assumed that the opnfv VM characteristics are not described in the pdf but in a similar document called opnfv_vm.yml - All references to csv from bifrost-create-vm-nodes were removed Change-Id: I46a85284e4ce7df21cbf66f66619b35f74251e68 Signed-off-by: Manuel Buil <mbuil@suse.com> Co-Authored-by: Markos Chandras <mchandras@suse.de>
2018-04-17xci: infra: bifrost: Use XCI virtual environment for bifrostMarkos Chandras1-2/+10
We have already prepared a virtual environment for XCI so we may as well use it for bifrost as well. Change-Id: I084e5da7259a392c5d58e62e7985feb75bb45fb2 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-04-06xci: bifrost: Fix unbound variable errorMarkos Chandras1-1/+1
If we are not in a virtual environment, then VIRTUAL_ENV is going to be unset and we will fail with the following error: ./scripts/bifrost-provision.sh: line 105: VIRTUAL_ENV: unbound variable As such, we need to provide a default value if that variable is unset. We also fix a typo in the _sudo variable. Change-Id: Ic018716c03ffba6e8e742e34720ea462b85341be Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-04-04xci: bifrost: Use 'sudo' to install dependencies for bifrost jobsMarkos Chandras1-2/+4
When bifrost jobs are being executed, the virtual environment hasn't been prepared yet because that's something that bifrost does later on. As such, we need to use sudo to install the required dependencies to avoid the following issue: Exception: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/usr/lib/python2.7/site-packages/pip/commands/install.py", line 342, in run prefix=options.prefix_path, File "/usr/lib/python2.7/site-packages/pip/req/req_set.py", line 784, in install **kwargs File "/usr/lib/python2.7/site-packages/pip/req/req_install.py", line 851, in install self.move_wheel_files(self.source_dir, root=root, prefix=prefix) File "/usr/lib/python2.7/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files isolated=self.isolated, File "/usr/lib/python2.7/site-packages/pip/wheel.py", line 345, in move_wheel_files clobber(source, lib_dir, True) File "/usr/lib/python2.7/site-packages/pip/wheel.py", line 316, in clobber ensure_dir(destdir) File "/usr/lib/python2.7/site-packages/pip/utils/__init__.py", line 83, in ensure_dir os.makedirs(path) File "/usr/lib64/python2.7/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 13] Permission denied: '/usr/lib/python2.7/site-packages/pbr' Change-Id: I081884ec18d27af19a053bf5b734f6f3846c60f1 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-03-28Merge "xci: bifrost: Only use libvirt as DNS server if using proxy servers"Markos Chandras1-1/+5
2018-03-28xci: infra: bifrost: Make sure XCI variables are defined firstMarkos Chandras1-7/+7
It's best to define all the XCI variables before everything else to ensure that all subsequent bifrost variables are properly defined. Change-Id: Id4a9e0c89e8dd32b852cfef6b9bb336c4b75f5a7 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-03-27xci: bifrost: Only use libvirt as DNS server if using proxy serversMarkos Chandras1-1/+5
Commit 0d332a80cf731e5927c81c9f6929a8b83d43cddd ("Add proxy support") switched the default DNS server to the libvirt bridge. However, we only need to override the default DNS if we are behind a proxy server. Change-Id: I7d8fe8c10a1aba2db4a703a81e74ef76fa593d95 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-03-26xci: infra: bifrost: Define more XCI variables for bifrost jobsMarkos Chandras1-0/+3
This is similar to eeb906a553d6ddf70ffc5af1acadb33a13ff5990 ("xci: infra: bifrost: Set XCI_DISTRO if it's not defined") so we need to define more XCI variables if we are running the standalone bifrost jobs. Change-Id: I112cfbfdda677174bdb0d0afef73f035c74cb79e Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-03-23Merge "xci: install: Move all pip installations to virtualenv"Fatih Degirmenci1-2/+3
2018-03-23xci: install: Move all pip installations to virtualenvMarkos Chandras1-2/+3
Now that all pip installations are managed in the same way we can move them inside a global virtual environment to further isolate the XCI artifacts from the rest of the system. Moreover, we further simplify the initial package installation to install everything at once instead of calling the package manager for every single package that we need. Change-Id: I6a170d2439fae8b0653f3141e0e8bb8ead67657e Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-03-23xci: infra: bifrost: Set XCI_DISTRO if it's not definedMarkos Chandras1-0/+4
The XCI_DISTRO variable is normally set from the XCI deployment script. However, on bifrost jobs, we don't run this script as part of XCI so we need to ensure that this variable is set properly. Change-Id: I295b65176bab6ccbdd12aa50449d3c021a88b43d Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-03-21Clean up opnfv ansible vars and switch to lowercaseFatih Degirmenci1-11/+11
This change removes the variables that are not used in any of the playbooks/roles from opnfv ansible vars. Apart from that, all caps ansible vars replaced with lowercase ones and impacted playbooks/roles are updated. installer-type:osa deploy-scenario:os-nosdn-nofeature Change-Id: I99ebdc155b3903176ac5940b64cef0c0f3aa0f0d Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
2018-03-20Add proxy supportVictor Morales1-0/+6
In some cases the XCI development environment can be located behind a corporate proxy resulting in a additional layer to consider to configure. These changes pretend to include proxy support for all linux distros in all the posible flavors. Change-Id: Iab469268809ac471d09e244bb3ccd83de1a41b88 Signed-off-by: Victor Morales <victor.morales@intel.com>
2018-03-20xci: Move cleanup script outside of bifrostMarkos Chandras2-82/+0
The cleanup script has grown quite a bit over time and it now does more things than cleaning up old 'bifrost' artifacts to move it to the global files directory so it can be used by all installers. Change-Id: Ibf70ff255f14e798216cedc71fb7c5f5476b964a Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-03-20xci: infra: bifrost: Avoid installing Ansible twiceMarkos Chandras1-27/+4
We already install Ansible globally and we also install another version of it in the bifrost venv. Even though the OSA Ansible may move faster than the bifrost one, we normally pin both projects so we can move them when they can work with the same Ansible version. As such, lets make the deployment a little bit faster by simply not installing Ansible twice. Change-Id: I121ef5979607b62e76300db1bc6d51fc27362d5b Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-03-20Add initial support for multiple infra deployersMarkos Chandras6-0/+502
bifrost is currently the only way to deploy the infrastructure but in the future other solutions will be added so we need to do some preparation for XCI integration. Change-Id: I961dd42157c924d88747074ddba6a318f8b537ac Signed-off-by: Markos Chandras <mchandras@suse.de>