Commit Graph

332 Commits

Author SHA1 Message Date
Zuul cb5094a38a Merge "reno: Update master for unmaintained/wallaby" 2024-03-14 12:17:23 +00:00
Zuul 693d43531a Merge "reno: Update master for unmaintained/xena" 2024-03-14 12:02:01 +00:00
OpenStack Release Bot 428830af2a reno: Update master for unmaintained/xena
Update the xena release notes configuration to build from
unmaintained/xena.

Change-Id: I95b12b3f3fa25981b1bab2bb9599aa516256e12b
2024-03-14 11:28:19 +00:00
OpenStack Release Bot 9a6e6d8191 reno: Update master for unmaintained/wallaby
Update the wallaby release notes configuration to build from
unmaintained/wallaby.

Change-Id: I3bf7fc681b07b9552a3405d340b480e22c8fd77d
2024-03-14 11:23:48 +00:00
OpenStack Release Bot 52329b09dc reno: Update master for unmaintained/victoria
Update the victoria release notes configuration to build from
unmaintained/victoria.

Change-Id: I8298474d90ff476bb9b582defc70314b987a86fd
2024-03-14 11:19:15 +00:00
OpenStack Release Bot 9601b89f74 reno: Update master for unmaintained/yoga
Update the yoga release notes configuration to build from
unmaintained/yoga.

Change-Id: I44718ad0cfd1fa53a9926aef5f68288c954ac021
2024-02-06 15:04:45 +00:00
Sharpz7 b7d8446de7 [codespell] Adding CI target for Tox Codespell
Third in a series of commits to add Codespell to Ironic Repos. This commit adds the Tox Target to CI

A future commit could potentially add a git-blame-ignore-revs file if their are lots of spelling mistakes that could clutter git blame.

Change-Id: Ic7afcf11342e9a33d7fb76128a0c9746ab879dca
2024-01-26 04:26:38 +00:00
Sharpz7 778403a47b [codespell] Adding Tox Target for Codespell
First in a series of commits to add Codespell to Ironic Repos. This one adds the command that was used to fix the spelling errors.

Future Commits will add CI support and potentially a git-blame-ignore-revs file if their are lots of spelling mistakes that could clutter git blame.

Change-Id: Ibeb4cd8bd38e6bfe04adb8ce66ce36f30f06eb61
2024-01-26 04:26:33 +00:00
Julia Kreger b3a79fa0c3 CI: Ask ironic devstack to set node owner
The metalsmith CI job yaml documents contain a default OS_CLOUD,
which is fine, until Ironic sets the new Secure RBAC model to
enforcing by default. At which time, metalsmith jobs are not able
to see or modify nodes they previously could running as a project
scoped admin.

Executing the job as a project scoped admin is fine. The challenge
is the user's project needs to be granted access to see and use
the baremetal ndoe.

And so, to do this, we'll utilize a flag being added to ironic's
devstack script to trigger the node to be configured with an owner
which will allow metalsmith's requests to be serviced (in that the
baremetal node *will* be visible, and can be scheduled upon).

Change-Id: I5248894c824381f4a283b2746102df04962f20b0
2024-01-08 08:57:13 -08:00
Zuul 49c8cab613 Merge "Document LP as official bugtracker" 2023-11-14 08:42:33 +00:00
Jay Faulkner 66a94ef185 Document LP as official bugtracker
We use launchpad for Ironic projects.

Change-Id: I7156766a575a087697ef15a34aff6e33f887b83d
2023-11-08 12:20:15 -08:00
Jay Faulkner e4fd02fa30 Metalsmith in maintenance mode
As decided at October 2023 vPTG, metalsmith's functionality is to
integrated into mainline Ironic projects and clients. To this end,
we no longer expect to add additional features to metalsmith.

Change-Id: I85ccaa38da58b52fbb483cb0258cce93bf8722ba
2023-10-31 15:18:27 -07:00
OpenStack Release Bot 71192b16a7 Update master for stable/2023.2
Add file to the reno documentation build to show release notes for
stable/2023.2.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.2.

Sem-Ver: feature
Change-Id: I585da0c56d9dfe8334ed5de0e853fab663a4b1d1
2023-09-08 14:56:26 +00:00
Harald Jensås 9c928d3004
Set role default metalsmith_provisioning_timeout
Job: metalsmith-integration-glance-centos9-legacy
is failing with:
"""
argument 'timeout' is of type <class 'NoneType'> and we
were unable to convert to int: <class 'NoneType'> cannot be
converted to an int
"""

Set metalsmith_provisioning_timeout in role defaults to 3600,
same as the default timout in module: metalsmith_instances

Change-Id: I7b9c70b03c17c631da8e53f70808fed103c95c06
2023-09-04 21:18:48 +02:00
Riccardo Pittau 968c9a0608 Remove CentOS Stream 8 jobs
They've been supersided by CS9 jobs

Change-Id: I7382a2868d911c2f7944cbf63ce549d9cec9450c
2023-08-28 15:39:26 +02:00
Riccardo Pittau a3b966de02 Add a CentOS Stream 9 bios job
We should replace the old CentOS 8 job

Change-Id: I56a0473ecbff8ab8fc143954d3c493037765cdf1
2023-08-24 11:10:14 +02:00
Zuul 8812991c56 Merge "Use jammy nodes to run CI jobs" 2023-08-22 09:00:42 +00:00
Riccardo Pittau b63793d34e Use jammy nodes to run CI jobs
This is long due

Change-Id: I9c7fda2fb82c496a9154afd84766cd1989614e52
2023-08-21 16:32:14 +02:00
Riccardo Pittau 97b95f1686 Add centos9 based job
And make centos8 jobs non voting

Change-Id: I0002a53f6e2c3582b6de33d8c3e71101ff474196
2023-08-18 15:04:34 +00:00
Zuul 96783e2613 Merge "Update MD5 checksum references" 2023-05-24 10:45:00 +00:00
Julia Kreger 1a8ec3d05c Reduce retry timeout for Metalsmith CI
Change-Id: I15404a130ca9c6508dca345c3169a0587a651274
2023-05-19 09:16:27 -07:00
Julia Kreger ba7d45a526 Update MD5 checksum references
Change-Id: Ibc73ba24aba7644bdfc131a23f2f4060bb053f4f
2023-05-08 12:14:17 -07:00
Jay Faulkner 255fdc7709 Update to hacking v6
Updated pin to hacking 6.0.0. No related code changes needed.

Change-Id: I8b36314e6171d5294f2f166b3616a0b96d4dbb62
2023-04-21 12:45:03 -07:00
OpenStack Release Bot 0e8dd58055 Update master for stable/2023.1
Add file to the reno documentation build to show release notes for
stable/2023.1.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.1.

Sem-Ver: feature
Change-Id: I1a9dfbee53b41dddb63544bde835acd493f95c7b
2023-03-02 14:13:28 +00:00
Zuul 45670dfbe8 Merge "test_provision: don't assert provision_node call order" 2023-02-10 09:09:48 +00:00
Steve Baker 43eec5a109 test_provision: don't assert provision_node call order
provision_node is called from thread pool workers so the call order is
not deterministic. This causes py38 job failures sometimes.

This change asserts that the expected calls are occuring, but not
their order.

Change-Id: Id9f870e35dc9c92f0456d85c087514fb53053b76
2023-02-10 10:15:57 +13:00
Harald Jensås 364fa23916 list_instances - cache allocations
When listing instances fetch all allocations to a cache,
fetch each nodes allocation from the cache. This is
significantly faster than calling get_allocation for each
node.

time metealsmith list # 250 nodes:
  real 0m54.970s vs real 1m45.048s without "cached".

Story: 2010571
Task: 47318
Change-Id: Ic4cef61e338fb57bea5de4f96eb3584386cc5152
2023-02-08 10:08:06 +01:00
Harald Jensås a71776b8a4 Get ports by 'binding:host_id' query filter
By retriving ports from neutron by 'binding:host_id', i.e
ironic node uuid we can remove the list_node_vifs() call
for each node.

Story: 2010571
Task: 47302
Change-Id: I1d85f3341e04ddf969027a6f6839f4a807666258
2023-02-07 22:59:38 +01:00
Harald Jensås 9c2252ea88 Use a network cache in Instance
When listing NICs for an instance populate a class global
cache of networks by network_id. When listing nodes with VIFs
on the same network this reduces the amount of calls to the
network service.

250 Nodes without patch: real    6m29.342s
250 Nodes with patch:    real    5m26.544s

Story: 2010571
Task: 47301
Change-Id: I99a2d8ecab657c8e4c852c73e816a5a8f2856471
2023-02-07 15:15:28 +01:00
Riccardo Pittau a5fffb9242 Remove not used old job
Noone uses it anymore

Change-Id: Ic886d7ec56e94c7424f3a8fc50de117e420e279c
2023-01-05 13:18:08 +01:00
Jay Faulkner f1800efeb4 Fixes for tox 4.0
Before this, the config would not parse with tox >=4.0

Change-Id: I687568e85656d984ee69ac62e751c4fcbea7acaa
2022-12-15 09:42:55 -08:00
Steve Baker f988377a6a Revert "CI: Force ansible to version 5"
This reverts commit 523cc1d49a.

Change-Id: I4576ec5a623d053a4aa5505e27996c081273d8dd
2022-10-11 14:33:15 +00:00
Jakob Meng ee008f7a79 Allow to use Ansible OpenStack Col. 1.x.x with openstacksdk >=0.99.0
Ansible OpenStack collection 1.x.x is not compatible to openstacksdk
>=0.99.0, only collection series 2.x.x will be. But the latter has
not been released yet.

This incompatibility only affects modules in Ansible OpenStack
Collection but not the functions that metalsmith uses. Those
functions ARE compatible with recent openstacksdk releases and
will most likely not be removed in collection release 2.0.0.

Thus, as a hacky workaround to allow using Ansible OpenStack
collection 1.x.x with openstacksdk >=0.99.0 this patch removes
the MAXIMUM_SDK_VERSION.

Change-Id: Icbcb0f92fc1e4315e81fe9ce0c2f9ce6b39867c2
2022-10-11 14:42:34 +02:00
Jay Faulkner 523cc1d49a CI: Force ansible to version 5
Default ansible version was changed in CI; this change is to validate
and workaround the issue by forcing the older ansible version. We will
still need to update the version before Zuul support for 5 is removed.

Change-Id: I3119055467a4edfdb13c522ce1c81d2f7eb3588d
2022-10-10 13:19:18 -07:00
OpenStack Release Bot cc8fe24d40 Add Python3 antelope unit tests
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for antelope.

See also the PTI in governance [1].

[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: I81af7f55703046e349c3b7c4bffcf6c6cadb472d
2022-09-08 07:52:30 +00:00
OpenStack Release Bot 951e6435cc Update master for stable/zed
Add file to the reno documentation build to show release notes for
stable/zed.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/zed.

Sem-Ver: feature
Change-Id: If9988dcccb8b6eb7be97955f73a3ffcdeb1c5b3f
2022-09-08 07:52:29 +00:00
Dmitry Tantsur 77d802f3d6 Deprecate instance network boot
Remove or update the corresponding CI jobs. Use the new custom Cirros
image in the HTTP job to avoid relying on CentOS.

Temporary increase complexity requirements while we have a deprecation
warning in the provisioner.

Change-Id: I5e65f9949ee3b78430309017800b88c1ba21dd02
2022-08-24 13:19:52 +02:00
Steve Baker 6c5e68a443 Do a precise node lookup for unprovision
A hostname or name is passed to the unprovision call, and the node is
looked up by allocation name (hostname), falling back to node name.

This can result in the wrong node being unprovisioned in the following
scenario:
* node and hostname naming scheme are identical
* node and hostname names are mixed because allocation placement
  doesn't take the node name into account
* a node has already been unprovisioned by hostname (allocation)
  lookup
* unprovision is performed a second time, this time matching the
  hostname with a different node's name
* the wrong node is unprovisioned

The unprovision_node method can also take a node object instead of a
string identifier, so this change does a precise node lookup before
calling it. This means only hostnames are used for allocation lookups,
and node names for node lookups.

Change-Id: I9507f8d30c871ae62a250148789393695d59183a
Resolves: rhbz#2092444
2022-07-12 08:55:39 +00:00
Riccardo Pittau f234b87bbb Add linters job
Fix lint errors to unblock CI

Change-Id: I02c1d7cc9f2f91e76d1b3edbc340df7ea83d2902
2022-07-12 10:05:31 +02:00
Zuul 3f91201be5 Merge "metalsmith_instances module, unprovision by hostname" 2022-06-24 00:34:48 +00:00
Zuul c79aaef1b6 Merge "metalsmith_instances module, pass hostname in reserve" 2022-06-24 00:34:46 +00:00
Zuul 4f3b968844 Merge "metalsmith list handle missing port" 2022-06-23 23:50:42 +00:00
Julia Kreger 98c4c96c33 CI: Extend timeouts for RAX
It appears our jobs end up encountering some performance issues
on some RAX hosts where the overall runtime is already close to
the maximum for the job window.

Ultimately what happens is the performance ends up putting the boot
of the workload VM just a little bit later and we end up failing
the job as the VM is still early in booting up.

Change-Id: I309220d7f61f87b7457668fcf586d4ea152d363b
2022-06-23 09:32:13 -07:00
Steve Baker 5459c30ed4 metalsmith_instances module, unprovision by hostname
The node lookup for unprovision first attempts the allocation name
(hostname)[1] but the metalsmith_instances unprovision passes the node
name.

This means in cases where the node naming scheme and the allocation
naming scheme are the same, the wrong node may be unprovisioned.

This change switches to passing the hostname for unprovision, only
passing the node name if the hostname is missing from the instances
entry.

[1] https://opendev.org/openstack/metalsmith/src/branch/master/metalsmith/_provisioner.py#L653

Change-Id: Ie6b989f8d67c03606be37310777175cfb8d9303e
Resolves: rhbz#2092444
2022-06-20 10:18:08 +12:00
Steve Baker e6568a02bd metalsmith_instances module, pass hostname in reserve
The allocation name/hostname is set during the provision step, but it
is also possible to set it during the reserve step, which is done in
this change.

Setting the name during reservation is more correct, and triggers some
extra sanity checks during provision. But it also enables this change[1]
which attempts to reserve the node with the same name as the
allocation.

[1] https://review.opendev.org/c/openstack/ironic/+/845856

Change-Id: I0da4644a955b8e9fbf509c074b939b97c64739cb
2022-06-20 10:18:02 +12:00
Steve Baker cf6b37ab22 metalsmith list handle missing port
Currently if a port is missing, running metalsmith list will fail with
an error. This change handles missing ports by not showing any IP
address for that VIF, and logging a warning.

Change-Id: I94924ebc81b46a2aa4c3b6f82bd46480f37b3150
Resolves: rhbz#2092444
2022-06-16 09:43:59 +12:00
Dmitry Tantsur 5816be550b Provide a work around to fix the CI
Somehow, openstacksdk ends up logging to stdout. Strip the log message
before parsing it as JSON.

Change-Id: Id8e635de7bd8a246af7ae1750a556b752dd7dc85
2022-05-24 15:34:05 +02:00
Dmitry Tantsur a3e205fc05 Add a CentOS job with legacy local boot
When netboot is removed from Ironic, we need a job to cover local boot
in legacy mode. The new job will do it.

Also drop "local" from the job name, it's the default.

Change-Id: I6cad4556d770a733245d12f9a211e8ff7a3d884b
2022-05-16 18:16:26 +02:00
Dmitry Tantsur 018a19c1e8 Add a workaround to fix the CI
Change-Id: I9f939d115e0c6d167ab437c4420e06b4b211c66b
2022-04-14 16:24:19 +02:00
OpenStack Release Bot d06a066813 Add Python3 zed unit tests
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for zed.

See also the PTI in governance [1].

[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: I3757f2ffe3fc521bb1b61512a7228da9d8a69f65
2022-03-07 14:07:55 +00:00