100 Commits

Author SHA1 Message Date
liuyuanfeng
1846d6f776 modify error word node
Change-Id: Ie5c9fa7489eb891ef1bbe57c7d51ecb64e1c0db8
2022-12-30 01:18:36 -08:00
Jakub Jelinek
a99bf274e4 SoftwareRAID: Enable skipping RAIDS
Extend the ability to skip disks to RAID devices
This allows users to specify the volume name of
a logical device in the skip list which is then not cleaned
or created again during the create/apply configuration phase
The volume name can be specified in target raid config provided
the change https://review.opendev.org/c/openstack/ironic-python-agent/+/853182/
passes

Story: 2010233

Change-Id: Ib9290a97519bc48e585e1bafb0b60cc14e621e0f
2022-09-05 20:43:51 +00:00
niuke
4bf88b204f remove unicode prefix from code
Change-Id: I70f0112f1ee3066ffd9316d10b84b9ea5b7fc306
2022-08-23 19:44:10 +08:00
Jakub Jelinek
1ac61e1dbd Improve function list_block_devices_check_skip_list
Fix minor issues suggested by dtantsur
Add an example of skip list specification to the documentation

A follow-up patch to I3bdad3cca8acb3e0a69ebb218216e8c8419e9d65

Change-Id: Ic94a33b7bc0572a1cc8f92b330474ec63a173e81
2022-08-16 15:17:15 +00:00
Jakub Jelinek
0212337bd5 Enable skipping disks for cleaning
Introduce a field skip_block_devices in properties - this is a list of dictionaries
Create a helper function list_block_devices_check_skip_list
Update tests of erase_devices_express to use node when calling _list_erasable_devices
Add tests covering various options of the skip list definition
Use the helper function in get_os_install_device when node is cached

Story: 2009914

Change-Id: I3bdad3cca8acb3e0a69ebb218216e8c8419e9d65
2022-08-11 09:30:00 +00:00
Julia Kreger
beb7484858 Guard shared device/cluster filesystems
Certain filesystems are sometimes used in specialty computing
environments where a shared storage infrastructure or fabric exists.
These filesystems allow for multi-host shared concurrent read/write
access to the underlying block device by *not* locking the entire
device for exclusive use. Generally ranges of the disk are reserved
for each interacting node to write to, and locking schemes are used
to prevent collissions.

These filesystems are common for use cases where high availability
is required or ability for individual computers to collaborate on a
given workload is critical, such as a group of hypervisors supporting
virtual machines because it can allow for nearly seamless transfer
of workload from one machine to another.

Similar technologies are also used for cluster quorum and cluster
durable state sharing, however that is not specifically considered
in scope.

Where things get difficult is becuase the entire device is not
exclusively locked with the storage fabrics, and in some cases locking
is handled by a Distributed Lock Manager on the network, or via special
sector interactions amongst the cluster members which understand
and support the filesystem.

As a reult of this IO/Interaction model, an Ironic-Python-Agent
performing cleaning can effectively destroy the cluster just by
attempting to clean storage which it percieves as attached locally.
This is not IPA's fault, often this case occurs when a Storage
Administrator forgot to update LUN masking or volume settings on
a SAN as it relates to an individual host in the overall
computing environment. The net result of one node cleaning the
shared volume may include restoration from snapshot, backup
storage, or may ultimately cause permenant data loss, depending
on the environment and the usage of that environment.

Included in this patch:
- IBM GPFS - Can be used on a shared block device... apparently according
             to IBM's documentation. The standard use of GPFS is more Ceph
             like in design... however GPFS is also a specially licensed
             commercial offering, so it is a red flag if this is
             encountered, and should be investigated by the environment's
             systems operator.
- Red Hat GFS2 - Is used with shared common block devices in clusters.
- VMware VMFS - Is used with shared SAN block devices, as well as
                local block devices. With shared block devices,
                ranges of the disk are locked instead of the whole
                disk, and the ranges are mapped to virtual machine
                disk interfaces.
                It is unknown, due to lack of information, if this
                will detect and prevent erasure of VMFS logical
                extent volumes.

Co-Authored-by: Jay Faulkner <jay@jvf.cc>
Change-Id: Ic8cade008577516e696893fdbdabf70999c06a5b
Story: 2009978
Task: 44985
2022-07-19 13:24:03 -07:00
waleedm
eb07839bd4 Fix passing kwargs in clean steps
Pass kwargs to dispatch_to_managers method in execute_clean_step

Change-Id: Ida4ed4646659b2ee3f8f92b0a4d73c0266dd5a99
Story: 2010123
Task: 45705
2022-07-01 23:03:55 +00:00
Arne Wiebalck
cacdd9bab3 Burn-in: Add network step
Add a clean step for network burn-in via fio. Get basic
run parameters from the node's driver_info.

Story: #2007523
Task: #42385

Change-Id: I2861696740b2de9ec38f7e9fc2c5e448c009d0bf
2021-07-13 11:36:31 +02:00
Arne Wiebalck
20c5894bc2 Burn-in: Add disk step
Add a clean step for disk burn-in via fio. Get basic
run parameters from the node's driver_info.

Story: #2007523
Task: #42384

Change-Id: I5f5e336bd629846b3d779fd0fc7a2060b385b035
2021-05-21 16:33:11 +02:00
Arne Wiebalck
5c222560f0 Burn-in: Add memory step
Add a clean step for memory burn-in via stress-ng. Get basic
run parameters from the node's driver_info.

Story: #2007523
Task: #42383

Change-Id: I33a83968c9f87cf795ec7ec922bce98b52c5181c
2021-05-01 10:36:58 +02:00
Arne Wiebalck
6702fcaa43 Burn-in: Add CPU step
Add a clean step for CPU burn-in via stress-ng. Get basic
run parameters from the node's driver_info.

Story: #2007523
Task: #42382

Change-Id: I14fd4164991fb94263757244f716b6bfe8edf875
2021-05-01 10:36:20 +02:00
Jay Faulkner
de726d4acf Do not permit IPA standalone to be enabled by conf
IPA standalone mode is a developer-only option, and if enabled
accidentally on a production agent could cause undesired behavior.

Developers who need this behavior should build a purpose-built agent,
with standalone hardcoded to True in cmd/agent.py.

Change-Id: Icc67dbe15acbbf6fee886f274d2169a0769a5053
2021-03-25 12:45:28 +01:00
Mohammed Naser
2220aaae57 Added comment about IPA logs being uploaded to Ironic
Change-Id: I983ad3bd6fff539e877844e54788f63689ce8a84
2021-03-01 11:40:51 -05:00
Dmitry Tantsur
59cb08fd28 New deploy step for injecting arbitrary files
This change adds a deploy step inject_files that adds a flexible
way to inject files into the instance.

Change-Id: I0e70a2cbc13744195c9493a48662e465ec010dbe
Story: #2008611
Task: #41794
2021-02-16 16:56:52 +01:00
Zuul
4762aca077 Merge "Add clean step 'erase_pstore'" 2020-11-18 17:38:00 +00:00
Arne Wiebalck
92e26b01e9 Add clean step 'erase_pstore'
Add an automatic clean step to clean the Linux kernel's pstore.
The step is disabled by default.

Story: #2008317
Task: #41214

Change-Id: Ie1a42dfff4c7e1c7abeaf39feca956bb9e2ea497
2020-11-17 18:00:16 +01:00
Vladyslav Drok
c7858d3cc8 Add UUID to BlockDevice object
It'd allow for example custom ansible playbooks to use UUIDs of the
introspected node's disks. In future it might also enable agent
to use UUID (or by_path value) to refer to a device instead of
name, as it happens currently.

Change-Id: Id00437d2295c39fb12f3c25a92b30b56a58eef13
2020-11-11 17:25:59 +00:00
Dmitry Tantsur
565d596dae Document ramdisk TLS and update existing TLS docs
Story: #2007214
Task: #40945
Change-Id: I1a930a0e52ab860edcd597df4d95a4e4eb51da96
2020-09-23 15:07:49 +02:00
Dmitry Tantsur
8f4975763b Documentation: fix incorrect step names
I can never remember if it's "device" or "devices".

Change-Id: Ib1388f0425ec4c02fbeacb26ad55bc90b0f3483c
2020-09-21 18:16:01 +02:00
Arne Wiebalck
9dd968fa30 [doc] Clarify custom hardware manager inheritance
Change-Id: I94657967763f058fccd4f19656925d02cd8973b8
2020-09-15 11:34:11 +02:00
Dmitry Tantsur
ffacb713e5 Document in-band deploy steps and add more docs for custom steps
Change-Id: I304a460f88f3f8ee33cf642355f0e659184db724
Story: #2006963
Task: #40727
2020-08-24 17:39:54 +02:00
Dmitry Tantsur
3faf13bbb4 Refactor and fix documentation
Currently the index page contains a brief introduction and 3 links.
Expand the table of contents to show more subheadings.

Clean up the install, admin and contributing docs of unnecessary
and wrong content and redundant headings.

Update URLs throughout the text.

Change-Id: I03279ffc9faf387b08f727dee3b8898a69918460
2020-08-24 15:27:45 +02:00
Dmitry Tantsur
7fb098aa0b Import example hardware managers from ipa-example-hardware-managers
They're not easily discoverable there, let's keep them in tree.

The examples have been restructured to have two different projects
ready to be copied and adjusted. PEP8 failures have been fixed.

Change-Id: I2af04f4b7f9a2109fe83ec517e716159331a48bb
Co-Authored-By: Jay Faulkner <jay@jvf.cc>
2020-07-31 13:35:34 +02:00
Julia Kreger
cf870ae510 Fix apidoc build
Change-Id: Id7c5686cdbdc79812e06eb4a5f87eddc75005cc3
2020-06-15 11:30:02 -07:00
Jay Faulkner
3dd929eb92 Document how to output journal to console
Having all logs from the device visible on console may be useful for
deployers who do not enable login access to IPA ramdisks as a matter of
policy.

Change-Id: If9d29dd00a8c35fe679e1f54d1574eed0a79470c
2020-06-09 14:30:18 +00:00
Andreas Jaeger
f108b7a2d0 Switch to newer openstackdocstheme and reno versions
Switch to openstackdocstheme 2.2.1 and reno 3.1.0 versions. Using
these versions will allow especially:
* Linking from HTML to PDF document
* Allow parallel building of documents
* Fix some rendering problems

Update Sphinx version as well.

Set openstackdocs_pdf_link to link to PDF file. Note that
the link to the published document only works on docs.openstack.org
where the PDF file is placed in the top-level html directory. The
site-preview places the PDF in a pdf directory.

Disable openstackdocs_auto_name to use 'project' variable as name.

Change pygments_style to 'native' since old theme version always used
'native' and the theme now respects the setting and using 'sphinx' can
lead to some strange rendering.

openstackdocstheme renames some variables, so follow the renames
before the next release removes them. A couple of variables are also
not needed anymore, remove them.
This repo uses storyboard, configure the proper variables.

See also
http://lists.openstack.org/pipermail/openstack-discuss/2020-May/014971.html

Change-Id: Id084bfc9d5ae7a95d3cba22a00b4c03a35967ee4
2020-05-23 18:29:40 +02:00
Arne Wiebalck
b5e25760af [doc] How to pause the IPA for debugging
This patch adds two handy methods to pause the IPA when it needs
to be debugged.

Change-Id: I6ab4d6707fce340ee447355c717b19a12f3fe1ec
2020-02-28 11:03:25 +01:00
Dmitry Tantsur
31b73b4984 Expose collector and hardware manager names via introspection data
This change adds a new introspection data field 'configuration'
with two lists: managers and collectors.

Change-Id: Ice0d7e6ecff3f319bc3a4f41617059fd6914e31c
2020-01-22 11:15:38 +01:00
Dmitry Tantsur
4b602771e9 Document introspection data and collectors
Change-Id: Ie51ec8fbae3848ad8a913b05cc3f0f80f33b5f95
2020-01-21 15:40:40 +01:00
Madhuri Kumari
22ab827796 Remove deprecated ironic-agent element
ironic-agent is deprecated. Also replace disk-image-create
with ironic-python-agent-builder.

Change-Id: I6a3b5a31eda66b122a310119539fad6f8600ed80
2019-12-27 10:13:51 +05:30
Dmitry Tantsur
f1b2df908a Replace WSME and Pecan with Werkzeug
WSME is no longer maintained and Pecan is an overkill for our (purely
internal) API. This change rewrites the API in Werkzeug (the library
underneath Flask). I don't use Flask here since it's also an overkill
for API with 4 meaningful endpoints.

Change-Id: Ifed45f70869adf00e795202a53a2a53c9c57ef30
2019-12-04 16:50:47 +01:00
Pierre Riteau
11862ccae9 Fix instructions for enabling SSH on recent tinyipa images
We need to use AUTHORIZE_SSH since ENABLE_SSH was fully removed in
change I4256c8e89923c7104cb4191f3381312c1593b535.

Change-Id: I5c643b1ae8819b02b667b2df13241753ddca5743
2019-11-11 15:04:46 +01:00
Dmitry Tantsur
16d15931f6 Refer to ironic-python-agent-builder for image building
To avoid duplication, remove image building information from IPA docs.
Instead, add information about pre-built images.

Change-Id: I63fd3da36ed2acbd91d365465dec10d96c979035
2019-09-26 14:42:47 +02:00
Zuul
03713c5644 Merge "Remove support for CoreOS images" 2019-09-09 08:32:59 +00:00
Kaifeng Wang
cef3bac3dc Build pdf doc
The is one of community goals that each project could produce a
single PDF file. The pdf should be in the output of openstack-tox-docs
job.

TeX packages are required to build PDF locally, following is recommended:

* inkscape
* texlive-latex-base
* texlive-latex-extra
* texlive-fonts-recommended

More about the goal:
https://governance.openstack.org/tc/goals/train/pdf-doc-generation.html
https://etherpad.openstack.org/p/train-pdf-support-goal
https://etherpad.openstack.org/p/pdf-goal-train-common-problems

Change-Id: If5446ce4ceee7e38a0052503aa8fc2b6c5d7de66
2019-09-06 10:48:58 +08:00
Dmitry Tantsur
e446a5e6c4 Remove support for CoreOS images
Change-Id: Id9737067c678d4d01b20eae0b4a681c6cf9171a8
2019-08-28 19:46:37 +02:00
Shivanand Tendulker
8d3fc928b6 Follow-up of 74339f6da2276a125ace6966d3730f2f2dd8213d
Addreses the minor comments in commit 74339f6da2276a125ace6966d3730f2f2dd8213d

Change-Id: I8c83bbc07c2d678b0ac24eb4e25e231285480ace
2019-07-16 03:07:35 -04:00
Zuul
aebbc93f19 Merge "Modify Tiny IPA image build" 2019-07-16 05:35:49 +00:00
Zuul
f827bfb46c Merge "Bump openstackdocstheme to 1.20.0" 2019-07-15 18:45:34 +00:00
Dongcan Ye
74339f6da2 Modify Tiny IPA image build
Commit dd7e7fdd1acb819a933b905e99ae701abf774788 removes tinyipa
from IPA, this patch reword Tiny IPA image build docs.

Change-Id: Ibad6407ea37b0bd2082487da6ac112c54703bc94
2019-07-15 06:53:42 +00:00
Julia Kreger
696606f682 manual introspection trigger command
Change-Id: I64e66682c1e54f6edc260a22f46f5f6df8e85af1
Story: 2005896
Task: 33756
2019-07-08 07:43:40 -07:00
翟小君
8e219cd51d Bump openstackdocstheme to 1.20.0
Some options are now automatically configured by the version 1.20:
- project
- html_last_updated_fmt
- latex_engine
- latex_elements
- version
- release.

Change-Id: I38d3f05ce9d6a32a0c4e5d44df13e527aa629b2e
2019-07-03 17:45:43 +08:00
Brad P. Crochet
7b3469ee0f Get the hostname of the introspected host
This will retrieve the hostname of the host being introspected, and
return it as part of the introspection data.

Change-Id: I54084251e1b0f3a40fe5ac760b2a7e45199c9fdb
Story: #2005867
Task: #33674
2019-06-12 13:00:21 +00:00
Dongcan Ye
dcffadc196 Docs: Add bmc_v6address hardware inventory
Change-Id: I2cc621ac1e442ba262d76af7fa4e9598ecc2da5a
2019-05-30 15:22:17 +00:00
zhulingjie
b15d5d580c Replace git.openstack.org URLs with opendev.org URLs
Change-Id: I7473b96d47d959fc4c02cecbfaf4785d5f92996a
2019-04-25 09:23:11 +08:00
Zuul
97504b07a6 Merge "Change HTTP links to HTTPS" 2018-12-18 10:01:10 +00:00
zhouxinyong
68ad3661a3 Change HTTP links to HTTPS
Change-Id: I963c32407c109c840d59f4dcf945f2fc78e096f2
2018-12-18 09:41:33 +00:00
chenjiao
27d4e6b2cc Update http link to https
Change-Id: I5cf2627d999d4f3cf7bc2367f4d9cfddf6391146
2018-12-08 18:03:59 +08:00
zhangdebo
391636c289 Update link addresses
Change-Id: I52f275917be720b1e48f17876deb10cd4e6d2501
2018-11-24 14:58:49 +08:00
Shivanand Tendulker
a1d2b2ad0f Follow-up patch for documentation of rescue mode
This is the follow-up patch addresses outstanding comments for
commit 689dbf6b5c6ec1dcaf1fa37d288518c91eedf4ec.

Change-Id: I72c189988c5c274c32d61a2b9aea5a84da2b2c6e
Related-Bug: #1526449
2018-02-12 14:05:14 -05:00