3610 Commits

Author SHA1 Message Date
Zuul
ca472210ca Merge "Docs for isolated aggregates request filter" 2019-09-15 09:20:03 +00:00
Zuul
9b8a8050d8 Merge "PDF documentation build" 2019-09-14 16:37:57 +00:00
shilpa
1bbef754fb Docs for isolated aggregates request filter
Added reference documentation and release note to explain how filtering
of hosts by isolate aggregates works.

Change-Id: I8d8086973039308f9041a36463a834b5275708e3
Implements: blueprint placement-req-filter-forbidden-aggregates
2019-09-12 16:56:32 -05:00
Thomas Bechtold
341a1fab2d Add nova-status to man-pages list
nova-status was missing in the list of man-pages. So when building the
man-pages with:

sphinx-build -b man doc/source doc/build/man

there is no "nova-status" in doc/build/man.

Also sort the list alphabetically so it's easier to parse for humans.

Closes-Bug: 1843714
Change-Id: I20b73d508bc6341195c991111ac84c3e35905c92
2019-09-12 15:05:41 +02:00
Zuul
5fa49cd0b8 Merge "Fix the incorrect powershell command" 2019-09-11 23:57:36 +00:00
Zuul
22a440e0ed Merge "vCPU model selection" 2019-09-11 22:59:42 +00:00
Zuul
690b3ffd38 Merge "Improve SEV documentation and other minor tweaks" 2019-09-11 20:43:03 +00:00
Zuul
0c2e77a983 Merge "Nova object changes for forbidden aggregates request filter" 2019-09-11 20:11:42 +00:00
Zuul
0575eabffb Merge "Enable booting of libvirt guests with AMD SEV memory encryption" 2019-09-11 08:34:19 +00:00
Alexandra Settle
3a99f8a45f Fixing broken links
backport: stein rocky

Change-Id: I6fd8534473465461effc784a1eaa51c7a6da2b12
2019-09-10 14:08:42 +00:00
Adam Spiers
922d8bf811 Improve SEV documentation and other minor tweaks
This is a follow-up to the previous SEV commit which enables booting
SEV guests (I659cb77f12a3), making some minor improvements based on
nits highlighted during review:

- Clarify in the hypervisor-kvm.rst documentation that the
  num_memory_encrypted_guests option is optional, by rewording and
  moving it to the list of optional steps.

- Make things a bit more concise and avoid duplication of information
  between the above page and the documentation for the option
  num_memory_encrypted_guests, instead relying on appropriate
  hyperlinking between them.

- Clarify that virtio-blk can be used for boot disks in newer kernels.

- Hyperlink to a page explaining vhost-user

- Remove an unneeded mocking of a LOG object.

- A few other grammar / spelling tweaks.

blueprint: amd-sev-libvirt-support
Change-Id: I75b7ec3a45cac25f6ebf77c6ed013de86c6ac947
2019-09-10 14:48:32 +01:00
Adam Spiers
8e5d6767bb Enable booting of libvirt guests with AMD SEV memory encryption
Track compute node inventory for the new MEM_ENCRYPTION_CONTEXT
resource class (added in os-resource-classes 0.4.0) which represents
the number of guests a compute node can host concurrently with memory
encrypted at the hardware level.

This serves as a "master switch" for enabling SEV functionality, since
all the code which takes advantage of the presence of this inventory
in order to boot SEV-enabled guests is already in place, but none of
it gets used until the inventory is non-zero.

A discrete inventory is required because on AMD SEV-capable hardware,
the memory controller has a fixed number of slots for holding
encryption keys, one per guest.  Typical early hardware only has 15
slots, thereby limiting the number of SEV guests which can be run
concurrently to 15.  nova needs to track how many slots are available
and used in order to avoid attempting to exceed that limit in the
hardware.

Work is in progress to allow QEMU and libvirt to expose the number of
slots available on SEV hardware; however until this is finished and
released, it will not be possible for nova to programatically detect
the correct value with which to populate the MEM_ENCRYPTION_CONTEXT
inventory.  So as a stop-gap, populate the inventory using the value
manually provided by the cloud operator in a new configuration option
CONF.libvirt.num_memory_encrypted_guests.

Since this commit effectively enables SEV, also add all the relevant
documentation as planned in the AMD SEV spec[0]:

- Add operation.boot-encrypted-vm to the KVM hypervisor feature matrix.

- Update the KVM section of the Configuration Guide.

- Update the flavors section of the User Guide.

- Add a release note.

[0] http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html#documentation-impact

blueprint: amd-sev-libvirt-support
Change-Id: I659cb77f12a38a4d2fb118530ebb9de88d2ed30d
2019-09-10 13:59:02 +01:00
shilpa
3c8af001d5 Nova object changes for forbidden aggregates request filter
This patch modifies Nova objects that will allow Destination object to
store list of forbidden aggregates that placement should ignore in
'GET /allocation_candidates' API at microversion 1.32, including the
code to generate the placement querystring syntax from them.

Change-Id: Ic2bcee40b41c97170a8603b27b935113f0633de7
Implements: blueprint placement-req-filter-forbidden-aggregates
2019-09-09 20:16:32 +00:00
Takashi NATSUME
b244a02730 doc: Fix a broken reference link
Fix a broken reference link in
contributor/testing/zero-downtime-upgrade.rst

Change-Id: I1c0054175f9d665fecd76a03466663177c49f774
Closes-Bug: #1842985
2019-09-09 07:58:38 +09:00
Zuul
e25f3e31c5 Merge "doc: cleanup references to conductor doc" 2019-09-06 22:53:59 +00:00
ya.wang
f80e5f989d vCPU model selection
Rename the exist config attribute: [libvirt]/cpu_model to
[libvirt]/cpu_models, which is an orderded list of CPU models the host
supports. The value in the list can be made case-insensitive.

Change logic of method: '_get_guest_cpu_model_config', if cpu_mode is
custom and cpu_models set. It will parse the required traits
associated with the CPU flags from flavor extra_specs and select the
most appropriate CPU model.

Add new method 'get_cpu_model_names' to host.py. It will return a list
of the cpu models that the CPU arch can support.

Update the docs of hypervisor-kvm.

Change-Id: I06e1f7429c056c4ce8506b10359762e457dbb2a0
Implements: blueprint cpu-model-selection
2019-09-06 14:01:35 +08:00
Matt Riedemann
37164b418e doc: cleanup references to conductor doc
The conductor doc is not really end user material,
so this moves it under reference/, removes it from the
user page and adds it to the reference index for internals.
Also makes the contributor page link to the reference internals
since it's kind of weird to have one contributor section that
only mentions one thing but the internals under reference have
a lot more of that kind of detail. Finally, a todo is added so
we don't forget to update the reference internals about versioned
objects at some point since that's always a point of confusion
for people.

Change-Id: I8d3dbce5334afaa3e1ca309b2669eff9933a0104
2019-09-05 18:37:31 -04:00
zhangbailin
e5b47543cf Add delete_on_termination to volume-attach API
Add the 'delete_on_termination' field to the volume attach API to support
configuring whether to delete the data volume when the instance is destroyed.

To avoid upgrade impact issues with older computes, the
'delete_on_termination' field is set in the API rather than when the BDM
is created in the compute service.

Implements: blueprint support-delete-on-termination-in-server-attach-volume
Change-Id: I55731b1822a4e32909665a2872d80895cb5b12f7
2019-09-05 20:54:56 +08:00
Zuul
f7f5e1846c Merge "Add server sub-resource topology API" 2019-09-05 12:51:36 +00:00
Akihiro Motoki
16b9486bf7 PDF documentation build
- Add a new pdf-docs environment to enable PDF build.
- sphinxcontrib-svg2pdfconverter is used to handle SVG properly.
- maxlistdepth=10 in latex_elements is needed to handle
  deeper levels of nesting.
- Sample config/policy files are skipped in the PDF document
  as inline sample files cause LaTeX error [1] and direct links
  in PDF doc is discouraged. Note that sample-config and sample-policy
  need to be excluded to avoid the LaTeX error [1] and
  :orphan: is specified in those files.

[1] https://github.com/sphinx-doc/sphinx/issues/3099

Change-Id: I3aaea1d15a357f550f529beaa84fb1a1a7748358
2019-09-04 17:34:26 +09:00
chenxing
8e06eeee2b Fix the incorrect powershell command
Change-Id: I28fb4ddacd87b6fb98d8da6bc6a5dea69ae51431
backport: stein rocky
Closes-Bug: #1842130
2019-09-02 11:12:21 +08:00
Yongli He
3dcb404b1f Add server sub-resource topology API
Add a new server topology API to show server NUMA information:
  - GET /servers/{server_id}/topology

Add new policy to control the default behavior:
  - compute:server:topology:index
  - compute:server:topology:host:index

Change-Id: Ie647ef96597195b0ef00f77cece16c2bef8a78d4
Implements: blueprint show-server-numa-topology
Signed-off-by: Yongli He <yongli.he@intel.com>
2019-08-30 10:04:56 +08:00
Zuul
3b54979ae0 Merge "Switch some GitHub URLs to point to opendev.org" 2019-08-29 13:52:07 +00:00
Zuul
b6d0e55746 Merge "doc: pretty up return code table for sync_aggregates" 2019-08-29 13:45:13 +00:00
Zuul
eea4e6b206 Merge "docs: pretty up return code table or heal_allocations" 2019-08-29 13:45:03 +00:00
Zuul
703fb5c73e Merge "Add a "Caveats" section to the eventlet profiling docs" 2019-08-29 13:44:53 +00:00
Zuul
21df56a37a Merge "Docs and functional test for max_local_block_devices" 2019-08-29 13:44:38 +00:00
Zuul
9c2b1be0d6 Merge "nova-manage db archive_deleted_rows is not multi-cell aware" 2019-08-28 20:59:18 +00:00
Zuul
67ee187c06 Merge "Remove 'hw:cpu_policy', 'hw:mem_page_size' extra specs from API samples" 2019-08-28 16:12:39 +00:00
zhangbailin
27b6c18c66 Specify availability_zone to unshelve
This adds support, in a new microversion, for specifying an availability
zone to the unshelve server action when the server is shelved offloaded.

Note that the functional test changes are due to those tests using the
"latest" microversion where an empty dict is not allowed for unshelve
with 2.77 so the value is changed from an empty dict to None.

Implements: blueprint support-specifying-az-when-restore-shelved-server
Closes-Bug: #1723880

Change-Id: I4b13483eef42bed91d69eabf1f30762d6866f957
2019-08-27 12:57:10 -04:00
Stephen Finucane
b01676c418 Remove 'hw:cpu_policy', 'hw:mem_page_size' extra specs from API samples
In a future change, the use of 'hw:cpu_policy' will require a host to
report PCPU inventory. Rather than modify the fake driver used in these
tests to report such inventory, just use a different extra spec,
'hw:numa_nodes'. This has the added bonus of being supported by both the
libvirt and Hyper-V virt drivers, unlike 'hw:cpu_policy' and
'hw:mem_page_size', which are only supported by the libvirt virt driver.

Change-Id: Id203dc07f08557b1b094ec72e1df3493ec9524b1
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-08-27 17:00:46 +01:00
Chris Dent
6fa5bd43fb Add a "Caveats" section to the eventlet profiling docs
There are some bits of wisdom and workarounds required to have a
positive experience when profiling in an eventlet environment.

This patch adds a section where such wisdom can accumlate, and
also provides a workaround for a specific problem when profiling
nova-compute.

Change-Id: Id6362f20c831c43e4d3316fe573e28c6b891d459
2019-08-27 11:41:31 +01:00
Kevin_Zheng
97b8cb3f58 nova-manage db archive_deleted_rows is not multi-cell aware
The archive_deleted_rows cmd depend on DB connection config from config
file, and when applying super-conductor mode, there are several config
files for different cells. If so, the command can only archive rows in
cell0 DB as it only reads the nova.conf

This patch added code that provides --all-cells parameter to the
command and read info for all cells from the api_db and then archive
rows across all cells.

The --all-cells parameter is passed on to the purge command when
archive_deleted_rows is called with both --all-cells and --purge.

Co-Authored-By: melanie witt <melwittt@gmail.com>

Change-Id: Id16c3d91d9ce5db9ffd125b59fffbfedf4a6843d
Closes-Bug: #1719487
2019-08-27 06:01:58 +00:00
Zuul
781f47b243 Merge "Document map_instances return codes in table format" 2019-08-26 14:31:23 +00:00
Zuul
5e1de8ac24 Merge "Change nova-manage unexpected error return code to 255" 2019-08-26 14:31:15 +00:00
Zuul
f4343f7b5c Merge "Document archive_deleted_rows return codes" 2019-08-26 14:26:38 +00:00
Matt Riedemann
364fa30062 Docs and functional test for max_local_block_devices
We get questions about if it's possible to configure nova to
always use cinder for root volumes even if the user isn't
explicitly booting from volume. This change adds a FAQ entry
about that to the block device mappings docs and also suggests
a way to force users to use volume-backed servers using the
max_local_block_devices option. The config option help for that
option is also cleaned up since --image is a CLI option but we
should stick to REST API parameters in descriptions and the
default mentioned in the help already gets rendered by oslo.config.
Finally, a simple functional test is added to assert the workaround
mentioned in the docs.

Change-Id: I3e77796b051e8d007fefe2eea06d38e8265e8272
2019-08-23 12:12:08 -04:00
Zuul
a55ae413ea Merge "doc: remove confusing docs about aggregate allocation ratios" 2019-08-22 20:13:47 +00:00
Zuul
efbe94cd7d Merge "Remove deprecated [neutron]/url option" 2019-08-22 19:57:32 +00:00
Matt Riedemann
a637d6e071 doc: pretty up return code table for sync_aggregates
This just changes the bullet format to a more appealing
table format and is consistent with the other commands
in here that use a table format for documenting return
codes.

Change-Id: I427e64f49f152231810ca48908f1ceff5b8a41d9
2019-08-22 12:57:11 -04:00
Matt Riedemann
73ff2a7878 docs: pretty up return code table or heal_allocations
This just converts the bullet list to the prettier table
format like archive_deleted_rows and map_instances use.

Change-Id: I33b78a4d55c9a34fca6ab20b2b9e8db41d747da5
2019-08-22 12:52:57 -04:00
Zuul
44e5c88b22 Merge "FUP for I5576fa2a67d2771614266022428b4a95487ab6d5" 2019-08-22 12:15:08 +00:00
Zuul
1ae57fe04d Merge "Deprecate Aggregate[Core|Ram|Disk]Filters" 2019-08-21 22:27:13 +00:00
Matt Riedemann
7675e28bd1 Document map_instances return codes in table format
This pretties up the return code documentation for the
map_instances command and while in here formats the
--max-count and --reset option mentions in the description.

Change-Id: I03d67e75f5633f4b21bf753698674747a0ed06a8
2019-08-21 17:15:41 -04:00
Matt Riedemann
df2845308d Change nova-manage unexpected error return code to 255
If any nova-manage command fails in an unexpected way and
it bubbles back up to main() the return code will be 1.
There are some commands like archive_deleted_rows,
map_instances and heal_allocations which return 1 for flow
control with automation systems. As a result, those tools
could be calling the command repeatedly getting rc=1 thinking
there is more work to do when really something is failing.

This change makes the unexpected error code 255, updates the
relevant nova-manage command docs that already mention return
codes in some kind of list/table format, and adds an upgrade
release note just to cover our bases in case someone was for
some weird reason relying on 1 specifically for failures rather
than anything greater than 0.

Change-Id: I2937c9ef00f1d1699427f9904cb86fe2f03d9205
Closes-Bug: #1840978
2019-08-21 17:03:11 -04:00
Matt Riedemann
561ed634f4 Document archive_deleted_rows return codes
The archive_deleted_rows command has a specific set of return
codes for both errors and flow control so we should document
those in the CLI guide.

A FIXME is left in the code because of the odd case of when
you could get 1 back meaning "we archived some stuff" or
"something really bad happened".

Change-Id: Id10bd286249ad68a841f2bfb3a3623b429b2b3cc
2019-08-21 16:51:43 -04:00
Matt Riedemann
8f53a051cc Remove deprecated [neutron]/url option
The url option was deprecated in Queens:

  I41724a612a5f3eabd504f3eaa9d2f9d141ca3f69

The same functionality is available in the
endpoint_override option so tests and docs
are updated to use that where they were using
url before.

Note that because the logic in the get_client
method changed, some small changes were made to
the test_withtoken and test_withtoken_context_is_admin
unit tests to differentiate from when there is a
context with a token that is not admin and an
admin context that does not have a token which
was otherwise determined by asserting the default
region name.

Change-Id: I6c068a84c4c0bd88f088f9328d7897bfc1f843f1
2019-08-21 17:55:56 +00:00
Matt Riedemann
69faaddc6c FUP for I5576fa2a67d2771614266022428b4a95487ab6d5
This addresses a single review comment for the vPMU
flavor extra spec docs [1].

[1] https://review.opendev.org/#/c/671338/13/doc/source/user/flavors.rst@379

Change-Id: Id8ba982b0efa92630be60f79c6ecb67f7fd79100
2019-08-21 11:45:51 -04:00
Sean Mooney
588194d785 Deprecate Aggregate[Core|Ram|Disk]Filters
The Aggregate[Core|Ram|Disk]Filters have not worked
correctly since ocata, this change deprecates them
for removal next cycle.
http://lists.openstack.org/pipermail/openstack-dev/2018-January/126283.html

Related-Bug: #1804125
Change-Id: Ibfbfdae9e6ec93f772631a84e8969f4e11da8aee
2019-08-20 16:45:23 -04:00
Sean Mooney
326bc658ee Libvirt: add support for vPMU configuration.
This change adds the ablity for a user or operator to contol
the virtualisation of a performance monitoring unit within a vm.
This change introduces a new "hw:pmu" extra spec and a corresponding
image metadata property "hw_pmu".

The glance image metadata doc will be updated seperately by:
https://review.opendev.org/#/c/675182

Change-Id: I5576fa2a67d2771614266022428b4a95487ab6d5
Implements: blueprint libvirt-pmu-configuration
2019-08-20 14:41:57 +00:00