Currently direct deploy only works if temp urls are enabled or if a
HTTP image URL is given. This patch enables Ironic to serve images
directly from the conductor's HTTP server to the agent so that we can
enable agent deploy with out temp urls.
This also has the added benefit for standalone that the conductors will
cache the HTTP URL images and serve them into the provisioning network
meaning the provisioning network has no need for connectivity to the
outside world.
Story: #1598852
Task: #24639
Co-Authored-By: Kaifeng Wang <kaifeng.w@gmail.com>
Change-Id: Iae6798616f29d876b274d9e0b44a1eb0f24e1747
Support for "fake" is kept for backward compatibility and is deprecated.
Change-Id: Ibee573e660e2ba4204ecb68c8d80ad8d1e0b9a74
Story: #2003203
Task: #23361
The new management interface targets hardware that does not correctly
support changing the boot device via IPMI. For example, some hardware
was reported to break the configured boot order in this case. Using
the "noop" management will allow operators to pre-define the boot order
as PXE -> DISK.
Change-Id: Iae2837b100905e9e06cc2cd2614f0af81bf13752
Story: #2003203
Task: #23359
Sets rescue interface to 'agent' for testing rescue mode in most jobs.
The rescue mode is tested in test_baremetal_server_ops.
Also adds support for the new config option in ironic tempest plugin
default_rescue_interface.
Story: #1526449
Depends-On: I6b62724711ddbe17b59dad30283e544272d9c1f3
Change-Id: Ica26aa96978d22a681d69e7e1e4acd72182a4981
* removes any bits related to loading classic drivers from
the drivers factory code
* removes exceptions that only happen when classic drivers
can be loaded
* removes the BaseDriver, moves the useful functionality to
the BareDriver class
* /v1/drivers/?type=classic now always returns an empty list
* removes the migration updating classic drivers to hardware
types
The documentation will be updated separately.
Change-Id: I8ee58dfade87ae2a2544c5dcc27702c069f5089d
In deployments with a separate baremetal network we need to ensure we
apply an iptables rule to allow traffic on port 80 to the Ironic API.
Change-Id: I468f511dd8ad9a25c17f2a2754f7a45f7147c483
Story: 2002788
Task: 22673
Need to set variable whole_disk_image_url and
whole_disk_image_checksum in tempest.conf
irrespective of IPXE is enabled or disabled.
Also setting the ping_timeout for standalone ironic
like we are setting ssh_timeout in case node is
taking more time for becoming active.
This change is required for iLO-CI as iLO-CI is
running tests as standalone ironic.
Change-Id: Idef1bc876fe440824894332a211af9a10401e49c
Closes-Bug: #1748849
Move ironic-dsvm-standalone away from using the legacy
format converted fromt the project-config repository.
Also enables 3 more tempest jobs(BaremetalAgentIpmitool*)
that were being skipped as agent_ipmitool wasn't configured.
Change-Id: Ic01bf1849620c6d095f130e445c92888548d00c5
This patch includes small changes to complement the removal of iRMC
classic drivers for consistency between irmc hardware type and other
hardware types.
Change-Id: I84dac94f1340e239796ea3da7a5fbd9154813795
This change removes pxe_ipmitool and agent_ipmitool. Some tests
and documentation bits are removed, since we no longer have any
classic drivers to provide examples.
The Inspector.create_if_enabled method is no longer used and was
removed. The [inspector]enabled option will be deprecated in
a follow-up.
IRONIC_ENABLED_DRIVERS is removed from devstack to prevent
devstack-gate from injecting the removed drivers into it.
A temporary migration from queens is updated to disable all
classic drivers. It will be removed when the enabled_drivers
option is completely removed.
Change-Id: Iab247e3b3336f90446ef0687edb340cf8282a925
This change removes pxe_ucs, agent_ucs, pxe_iscsi_cimc and
pxe_agent_cimc. Best effort clean up was done to the documentation.
Change-Id: I4fe75e0d4a36228f2f6be6bf6ced6d37424b6fd3
This removes pxe_ilo, iscsi_ilo and agent_ilo. Also removed is
the whole documentation section dedicated to them.
Change-Id: Ie6f8a65d68ce4eb9c8467c416df5f3a35f0abe98
This value will be used for creating virtual baremetal machines in
the devstack plugin.
Story: 2002079
Task: 19747
Change-Id: I69fbbadb8fdbb110d6e32013a4835e193f30c93d
The create-node.sh and cleanup-node.sh scripts are called with sudo -E
but then runs su which will break the env we were initially trying to
preserve. This is important so that devstack can control things like
$PATH for determining the path to vbmc. Address this by adding a -p to
the su call which should preserve the environment for us.
Unfortunately for PATH specifically even using sudo -E has a tendency
for sanitizing PATH. We work around this behavior by explicitly setting
$PATH in the commands being run by sudo su.
Note that the su appears to be necessary to have the stack user pick up
its new libvirt group membership which allows it to successfully use
virsh to start the virtual baremetal instances.
Change-Id: I3398b6fd14b491a13231a6032a669d6e30deca98
It becomes increasingly harder to maintain functional tests using the fake
hardware type and integration tests in the same jobs. This change creates
two new jobs (for Python 2 and Python 3) and makes API tests run only in them.
Change-Id: I3570323b22d8d4f19635f26733b3ae92bd0c661d
This patch switches ironic API to run under uwsgi,
and drops support for running ironic API under mod_wsgi
from ironic's devstack plugin.
It also effectively moves all jobs except grenade ones to
run ironic-api under UWSGI as we start to honor the devstack's
ENABLE_HTTPD_MOD_WSGI_SERVICES variable (which is True by default).
The new variable in devstack plugin to toggle deployment with uwsgi
is IRONIC_USE_WSGI, which defaults to (now confusingly named)
IRONIC_USE_MOD_WSGI for backward compatibility.
Related-Bug: #1719260
Co-Authored-By: anascko <ovoshchana@mirantis.com>
Change-Id: I9ef3aa48db6efe8e2216af785cc13fdb7f754a02
This commit enables support for grub2 bootloader for UEFI.
It also enables UEFI Secure Boot based provisioning in devstack plugin.
Change-Id: I36a50656a52870121eda099f396523c46b7cb1aa
This patch enables enrolling nodes with a hardware info file when iRMC
hardware type (or classic driver) is used.
Change-Id: Ibdbdb11fbbf7a8872d6ad02e21ceddae6b180506
We currently enable the fake classic driver by default, so it makes
sense to enable fake-hardware now that the classic drivers are
deprecated. It will be used in the updated ironic-inspector
discovery CI job.
Change-Id: I42e72312821b2d3c002f16fbf8b4faa26b4853b3
This change adds support for assiging traits to nodes in the ironic
devstack plugin. The set of traits added is configured by
IRONIC_DEFAULT_TRAITS, which defaults to a single trait - CUSTOM_GOLD
Using nodes with traits during testing ensures that we are exercising
node traits code paths in the Ironic CI.
Node traits are not used for upgrade testing, as the queens devstack
plugin does not currently register traits. Once this change is
backported to queens, we can enable traits during upgrade testing.
Change-Id: I18b9dbf8a5b16e36e0cc14f290b12ffdd634364a
Related-Bug: #1722194
Related-Bug: #1750027
While generally supported by iPXE, in DevStack we do not have any
facilities in place to boot iPXE from a HTTPS URL when the server is
using a custom certificate.
This is moslty concerning ability to boot iPXE directly from Swift's
TempURL when SSL is enabled on Swift in DevStack.
Just die with proper message when IRONIC_IPXE_USE_SWIFT and tls-proxy
are both enabled.
Change-Id: Ie0e01828f05b2706d310d8110e6e8dd8c4a03e4e
We're defaulting to 'latest' in ironicclient now, so only use
it if IRONIC_DEFAULT_API_VERSION is overriden.
Change-Id: Ifa813a9f0980e7d9c65166ef288d0c6f273ba521
Now we have docs, lets point people there rather than attempting to
maintain a copy in tree.
Also update the devstack plugin to know nothing about policy.json, as it
never allowed for customizing the location or the contents anyhow, and
to build ironic.conf from scratch rather than from the sample.
Change-Id: I10a4987204eb335f1fed29d4b1d7f3e075aa1792