This patch is enhancing the create-node.sh script to allow creating UEFI
capable VMs. Two new options were added:
* -L (UEFI Loader): For specifying the absolute path to the UEFI LOADER
* -N (UEFI NVRAM): For specifying the absolute path to the non-volatile
memory to store the UEFI variables, if needed.
Partial-Bug: #1625616
Change-Id: I3a05ff339877ff31eefda8a5a35b6e343bd4627b
Nova pick KVM as preferred virtualization type when possible and
fallback to qemu [0].
This patch introduce devstack IRONIC_VM_ENGINE option that allows to
set libvirt type explicitly. If not set pick it dynamically,
kvm is preffered.
[0] https://review.openstack.org/#/c/31177/4/lib/nova@240
Change-Id: I05859974c312cb5df1d4b96dc3b98fbc1006359e
Correct log the node UUID in the DevStack when it fails to add/update
the network_interface.
Prior to this patch some gibberish was being logged due to a broken grep.
Change-Id: I25206b9a34091bfb18528e39a4885fbfc10a7bd3
This reverts commit I8f0e5405f3e2d6e35418c73f610ac6b779dd75e5
Revert the temporary changes, when problem is fixed in devstack.
https://bugs.launchpad.net/devstack/+bug/1629133
Change-Id: I0b51e748043d785ca18dda8d7be744bf67feeaeb
With multitenancy case there is no need to create a hacky
connection between brbm and br-int. This patch ensure that
we do not call devstack create_ovs_taps() with multitenancy
case.
Change-Id: I1326a3f83d596655d577c48f642ac3ba8a8b6ee2
This is the first step to changing the default boot option from netboot to local.
The new configuration allows setting the default boot option globally.
A warning is issued if no explicit value is provided for this configuration.
Change-Id: I3bd4a165fa2ec1105f34bf5a2150da99136ba4a6
Partial-Bug: #1619339
MTU has been changed in neutron to 1450 by default by [0]
As result ISCSI job on xenial become broken. With this patch
PUBLIC_BRIDGE_MTU is set to smallest mtu of existed interfaces decreased
by 50. MTU on IRONIC_VM_NETWORK_BRIDGE is set to PUBLIC_BRIDGE_MTU.
[0] 51a697817d
Closes-Bug: #1631875
Related-Bug: #1603268
Change-Id: I044d415410a714591e9770a57cfb8509a103cf00
Pass IRONIC_VM_NETWORK_BRIDGE to setup-network.sh script.
Update setup-network.sh script to use new bridge name.
Change-Id: I934e5604fc1850007fb55bc637fe449ac17b98d0
The setting of Q_USE_PROVIDERNET_FOR_PUBLIC was added to
multitenancy job in project-config commit
7d1e2127a2b055640d90808347ae5b133df83847, so no need to set it in
the plugin settings anymore.
Multitenancy devstack setup docs are updated too.
Change-Id: I165bfc8051b9cf3fc80f299c8215712089003f3a
The default for SUBNETPOOL_PREFIX_V4 in devstack causes external
connectivity to be mostly broken in osic-cloud1 nodes. IPA relies on
external activity to build images, and osic-cloud1 is pretty prevalent
for running CI jobs, therefore this breaks IPA CI.
Setting this to the same range as FIXED_RANGE should eliminate this, or
at least reduce the probability of it happening from 1:(size of /8) to
1:(size of /24).
This should be reverted when the actual problem is fixed in devstack.
Related-Bug: #1629133
Change-Id: I8f0e5405f3e2d6e35418c73f610ac6b779dd75e5
This changes up devstack code to make sure OVS does the right thing
after upgrading. After the neutron upgrade, it uses a new OVS tag for
networking, so this changes things over to the new one.
Make sure that we remove all resources that were created during
resources phase.
Set tempest fixed_network_name explicitly as it is prerequirement for
ironic, see reference.
Reference:
https://github.com/openstack/tempest/blob/039b2fe/tempest/scenario/manager.py#L1161
Change-Id: I35789602fb542bb33533211a742c3e4d265a3b91
We only check nova service enabled when VIRT_DRIVER set to ironic,
so moving nova flavor create under the condition in case of nova
disabled.
Change-Id: I351c3628895d25823500d116845eff3c8b9411fe
Devstack allows for services to be deployed with https. Configure
services properly in ironic's devstack plugin in this case.
Change-Id: I3b7e529ef57dc4c7bb5d34160a068945140cf789
Right now devstack sets DEFAULT_IMAGE_NAME depending on the driver in
stackrc. UUID of the image with this name is then written to tempest
config during tempest configuration stage and is used to determine
which image will be used during nova boot.
As ironic python agent now supports both whole disk and partition
images, we should change this logic, and the user should be able to
request which image should be used in tests.
This commit adds IRONIC_TEMPEST_WHOLE_DISK_IMAGE and
IRONIC_IMAGE_NAME variables to provide this possibility.
If IRONIC_TEMPEST_WHOLE_DISK_IMAGE is not set, we try to infer the
image type by the size of the ephemeral partition requested, if it
is 0, we consider the image to be whole disk.
Change-Id: Ic718a6b37c09ae564ecc3913cf31234316f1da63
This patch is changing the configure-vm.py script to use Jinja2
templating when creating new VMs instead of string interpolation.
Jinja templating allows more complex templating such as conditionals
which will greatly simplify the code for creating Legacy BIOS or UEFI
supported VMs.
Change-Id: Id4a8432923fa71ca8f3f28edd1235d3a318c3e95
Partial-Bug: #1625616
The test conditional was not using [[ ]] for the if statement
conditional.
We can use '&&' inside [[ ]]. So put all the tests inside the one
[[ ]] block.
Change-Id: I4c8cb7a3a49f5e00ec638bd1fd1d9eb4931b97a1
Currently when setting up Ironic with multi-tenancy support,
the DevStack plugin by default still sets the cleaning network
to the default private network of the demo project,
which is not exactly correct.
Change the DevStack plugin so that the cleaning network
is the same as provisioning network if IRONIC_CLEAN_NET_NAME is not set:
- In case of multi-tenancy support enabled, use the created separate
provisioning network
- w/o multi-tenancy support use the default private network.
If the IRONIC_CLEAN_NET_NAME is provided, use that.
Change-Id: I9db8f5e3000f05d27a3fa8fc94cfdafe34a6f48a
when iPXE is enabled, it is possible for the bootloader to download
the deploy kernel and ramdisk directly from Swift TempURL instead of
downloading them to conductor and serving from local HTTP server.
This patch adds the required logic and a new config option
`ipxe_use_swift` (default False), setting which to True enables
using Swift TempURLs for deploy ramdisk and kernel.
Note that local caching and serving for kernel and ramdisk of user image
is still performed for partition images that require non-local boot,
as moving those to use TempURLs will make it impossible for the user
to reboot the instance when TempURLs time out or image is deleted from
Glance/Swift.
Change-Id: I106cc6148c329e784bfbb5019fdfeb0509a9de09
Closes-Bug: #1526404
Co-Authored-By: Andrey Shestakov <ashestakov@mirantis.com>
Recently neutron public network type has been changed by default
to flat [0]. It caused ironic-multitenant-network job to failure.
This patch update settings in ironic/settings untill apropriate changes
are merged to project-config and developer documentation.
Reference:
[0] https://review.openstack.org/#/c/346282/
Change-Id: Icd83203f1c61f71c96324c532baabe3a924cf617
This patch changes the devstack plugin to allow users to configure the
ironic service to retrieve (or not) the logs from the deploy ramdisk. By
default this feature is enabled in Ironic to collect the logs upon a
deployment failure but in DevStack we've set it to *always* to help us
with troubleshooting.
Three new configuration were added to devstack:
1. $IRONIC_DEPLOY_LOGS_COLLECT - When Ironic should collect the logs,
possible values are:
* on_failure: Collect the ramdisk logs upon a deployment failure
* always: Collect the ramdisk logs from the deployment on success or
failure
* never: Never collect the ramdisk logs
2. $IRONIC_DEPLOY_LOGS_STORAGE_BACKEND - Where should Ironic store the
logs, possible values are:
* local: To store the logs in the local filesystem
* swift: To store the logs in Swift
3. $IRONIC_DEPLOY_LOGS_LOCAL_PATH - The path to the directory where
Ironic should put the logs when $IRONIC_DEPLOY_LOGS_STORAGE_BACKEND is
set to "local". Defaults to /opt/stack/ironic-bm-logs/deploy_logs
Change-Id: Iedd0858a84eff03d9b5074c04c9e132a90cea1cf
Closes-Bug: #1616969
This patch allows import and enroll nodes with pxe_drac
driver from space separated hardware info node file.
Change-Id: Ie87fed29cc2bb7b156b89ec026cd0c59eb07fb11
This patch is fixing the pep8 warning messages when running "tox -epep8"
with the python3.5 interpreter (the default on some distros, e.g Arch
Linux).
The method file_open() from common/utils.py was removed because it
wasn't being used anywhere and was violating pep8 by using file() which
is only present in python2.
Change-Id: Ie9356a870ea7b271aa44db57accba02f52b3e948
Closes-Bug: #1617947
Now that the dynamic allocation feature has merged, the testing of *_oneview
drivers shall use the new allocation model on the CI infra. To allow this, we're
adding a new parameter to the hwinfo file to indicate when the
dynamic_allocation flag should be added to the node and managing the logic when
it is present.
Change-Id: I40ed9abe96dd15701b31e0ad0b7d71ff065488ef
This patch always set DEFAULT/host option to local machine hostname.
When mutinode setup is used conductors should have different host values.
Change-Id: I54056d163c06f0afb3702c3af98d85342c6e8232
This patch is removing the conditional that was changing the ramdisk
fileystem type from tmpfs to ramfs in case the amount of RAM was lower
than 1GB.
That code was used before to make the bash ramdisk to boot on machines
with less than 1GB of ram, now we do have TinyIPA so I believe this code
is not needed any more.
Ramfs is old and should be replaced with tmpfs which overcomes many of
it's limitation.
Change-Id: I54fd06213e003aba705118ea0cff72f889cfcc08
When authorized_file doesn't contain new-line character at the end,
configure_ironic_ssh_keypair() just append new key to the existed line,
as result both keys becomes corrupted. The patch adds a check for
last character in the authorized_key file, if new-line is missed
add it.
Change-Id: I64a7bba5f3c7dee76ae2faf659af1231280f2b8b
Closes-Bug: #1611207
New phase 'test-config' has been introduced by [0].
'test-config' is called at the end of devstack used to configure
tempest or any other test environments.
This patch uses new phase to configure tempest if it is enabled.
Reference:
[0] https://review.openstack.org/#/c/311797/
Change-Id: I8a6a3aeee89c1c08bfa5e630b1cdd8f8a5fa2007
Introduces new /v1/lookup and /v1/heartbeat/<UUID> endpoints
(and associated controllers).
This change does not deprecate the old passthru endpoints, it should
be done after IPA switches to using the new ones.
Change-Id: I9080c07b03103cd7a323e2fc01be821733b07eea
Partial-Bug: #1570841
Some jobs/installations install ironic without nova. We need to
check that nova service is enabled/installed before adding nova
user to baremetal_admin. Otherwise it leads to deployment errors.
Change-Id: I7d753085d5c8ff6633fba3947752aed0e99c72b2
Closes-Bug: #1610011
This change is about adding the ability to the OneView drivers of
dynamically allocate OneView resources to Ironic. The current
version of the drivers consider what we call "pre-allocation" of
nodes, meaning that when a node is registered in Ironic, even if
it is not in use, this resource is still reserved in OneView.
This change will prevent such situations by allocating OneView
resources only at boot time, allowing both systems to really
share the same pool of hardware.
Change-Id: I43d1db490b4834080562946b8a6ca584ea36864d
Co-Authored-By: Lilia Sampaio <liliars@lsd.ufcg.edu.br>
Co-Authored-By: Xavier <marcusrafael@lsd.ufcg.edu.br>
Co-Authored-By: Hugo Nicodemos <nicodemos@lsd.ufcg.edu.br>
Co-Authored-By: Thiago Paiva Brito <thiagop@lsd.ufcg.edu.br>
Co-Authored-By: Caio Oliveira <caiobo@lsd.ufcg.edu.br>
Partial-Bug: #1541096
Implements more fine-grained policy support within our API service,
following the oslo policy-in-code spec, while maintaining compatibility
with the previous default policy.json file. An empty policy.json file is
included, along with a sample file listig all supported policy settings
and their default values.
A new tox target "genpolicy" has been added to ease automation of
sample policy file generation.
All calls to policy.enforce() have been replaced with with
policy.authorize() to avoid silent failures when a rule is undefined,
because enforce() does not raise() if the target rule does not exist.
NOTE: policy.enforce() is not removed by this patch, but a deprecation
warning will be logged if it this method is invoked.
Updates unit test coverage for the new authorize() method, as well as
more general unit test updates for some of the new rules.
Partial-bug: #1526752
Change-Id: Ie4398f840601d027e2fe209c17d854421687c7b7